金属匠绝对可以做到这一点。我没有您构建过程的完整图片,但对于此解决方案,您必须使用metalsmith javascript api:
./data.json
{
"berlin:" : {
"location": "Berlin",
"folder": "berlin-2016"
},
"seattle" : {
"location": "Seattle ",
"folder": "seattle-2016"
}
}
./build.js
// Dependencies
var metalsmith = require('metalsmith');
var layouts = require('metalsmith-layouts');
// Import metadata
var metadata = require('./data.json');
// Build
metalsmith(__dirname)
// Make data available
.metadata(data)
// Process templates
.use(layouts('swig'))
// Build site
.build(function(err){
if (err) throw err;
});
然后node build.js
在您的根项目文件夹中运行以进行构建。在您的模板中,来自的数据data.json
将作为{{ berlin.location }}
.
您也可以在没有 javascript api 的情况下执行此操作(我不建议这样做,因为您会失去一些灵活性),在这种情况下您将使用插件(例如:metalsmith-json)