首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Metalsmith和swig访问模型中的单个对象

使用Metalsmith和swig访问模型中的单个对象
EN

Stack Overflow用户
提问于 2016-04-21 06:44:27
回答 1查看 175关注 0票数 0

我有一个包含多个对象的json数据文件,其中包含命名键。

代码语言:javascript
复制
{
  "berlin:" : {
    "location": "Berlin",
    "folder": "berlin-2016"
  },
  "seattle" : {
    "location": "Seattle ",
    "folder": "seattle-2016"
  }
}

在我的内容文件中,我想指定使用模型中的哪个对象,然后在swig中引用该对象。如下所示:

代码语言:javascript
复制
---
model:
  conference: conferences['berlin']
---    

{{ model.conference.location }}

这个是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-04 20:10:29

对于metalsmith来说,这绝对是可能的。我并不完全了解您的构建过程,但是对于这个解决方案,您必须使用metalsmith javascript api

./data.json

代码语言:javascript
复制
{
  "berlin:" : {
    "location": "Berlin",
    "folder": "berlin-2016"
  },
  "seattle" : {
    "location": "Seattle ",
    "folder": "seattle-2016"
  }
}

./build.js

代码语言:javascript
复制
// 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)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36756532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档