我有一个包含多个对象的json数据文件,其中包含命名键。
{
"berlin:" : {
"location": "Berlin",
"folder": "berlin-2016"
},
"seattle" : {
"location": "Seattle ",
"folder": "seattle-2016"
}
}在我的内容文件中,我想指定使用模型中的哪个对象,然后在swig中引用该对象。如下所示:
---
model:
conference: conferences['berlin']
---
{{ model.conference.location }}这个是可能的吗?
发布于 2016-05-04 20:10:29
对于metalsmith来说,这绝对是可能的。我并不完全了解您的构建过程,但是对于这个解决方案,您必须使用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的情况下完成此操作(我不推荐使用javascript api,因为您会失去一些灵活性),在这种情况下,您可以使用插件(例如:metalsmith-json)
https://stackoverflow.com/questions/36756532
复制相似问题