Skip to content

Instantly share code, notes, and snippets.

@nowri
Last active August 29, 2015 14:10
Show Gist options
  • Select an option

  • Save nowri/f3c1b5ece31c92077172 to your computer and use it in GitHub Desktop.

Select an option

Save nowri/f3c1b5ece31c92077172 to your computer and use it in GitHub Desktop.
grunt-contrib-jadeでjade名と同名のjsonファイルがあったら自動で読み込む
function jadeDataFunc(env) {
return function(dest, srcAr) { //dest が生成するhtml、srcが参照元jadeファイル
var _ = grunt.util._,
regDest = /\/([A-Za-z_0-9-]+?)\.html/,
destName = dest.match(regDest)[1],
dataPath = "src/jade/json/" + destName + ".json",
mergeData = _.clone(grunt.file.readJSON("src/jade/json/_common.json")),
data;
try {
data = grunt.file.readJSON(dataPath);
} catch(e) {
data = {};
}
_.extend(mergeData.pc, data.pc || {});
_.extend(mergeData.sp, data.sp || {});
_.extend(mergeData.common, data.common || {});
return _.extend(mergeData, {
env:env,
page:destName
});
};
}
grunt.initConfig({
/*
* 初期設定
* */
dirs:{
deploy:'deploy',
release:'_release',
src:'src'
},
pkg:grunt.file.readJSON('package.json'),
jade:{
options:{
pretty:true
},
deploy_pc:{
options:{
data:jadeDataFunc("pc")
},
files:[{
expand:true,
cwd:'<%= dirs.src %>/jade',
src:[
'*.jade'
],
dest:'<%= dirs.deploy %>',
ext:'.html'
}]
},
deploy_sp:{
options:{
data:jadeDataFunc("sp")
},
files:[{
expand:true,
cwd:'<%= dirs.src %>/jade/sp',
src:[
'*.jade'
],
dest:'<%= dirs.deploy %>/sp',
ext:'.html'
}]
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment