ejs_static: require('./tasks/ejs_static')(grunt)
配置方法一:
ejs_static.js
module.exports=function(grunt){ var config={ dest: 'app/html', path_to_data: 'data/data.json', path_to_layouts: 'app/assets/html/', index_page: 'index', parent_dirs: false, underscores_to_dashes: true, file_extension: '.html' }return {preview: {options: config}, release:{options: grunt.util._.merge({ }, config, { dest:'<%= yeoman.dist %>/html' }) }}}
data.json
{ index: { meta: { title: Home, description: Compile static html from ejs templates, keywords: gruntplugin, ejs, static html, static site generator, templates, templating engine, template, embedded js } }, about: { path_to_layout: app/assets/html/about.ejs, meta: { title: About, description: Compile static html from ejs templates, keywords: gruntplugin, ejs, static html, static site generator, templates, templating engine, template, embedded js } }}
ejs模板頁中引用方法(對應各檔案名稱的meta):<%= meta.title %>
配置方法二:
ejs_static.js
module.exports=function(grunt){ var config={ dest: 'app/html', path_to_data: 'data/routes.json', path_to_layouts: 'app/assets/html/', index_page: 'index', parent_dirs: false, underscores_to_dashes: true, file_extension: '.html' }return {preview: {options: config}, release:{options: grunt.util._.merge({ }, config, { dest:'<%= yeoman.dist %>/html' }) }}}
routes.json
{ home: { path_to_layout: app/assets/html/index.ejs, path_to_data: [ data/global.json, {data/meta.json: home} ] }, a: { path_to_layout: app/assets/html/about.ejs, path_to_data: [ data/global.json, data/a.json ] }, b: { path_to_layout: app/assets/html/about.ejs, path_to_data: data/a.json }}
meta.json
{ home: { title: Grunt EJS Static | Home, description: The demo page for Grunt EJS Static, keywords: gruntplugin, ejs, static html, static site generator, templates, templating engine, template, embedded js }}
global.json
{ site_name: Grunt EJS Static, google_analytics: XOXOXO}
a.json
{ title: About, description: Compile static html from ejs templates, keywords: gruntplugin, ejs, static html, static site generator, templates, templating engine, template, embedded js}
ejs模板頁中引用:<%= global.site_name%> <%= meta.title%> <%= a.title %>
注意:global.site_name中的global對應的是該path_to_data載入的json檔案名稱