无法从 Handlebars 模板访问 metalsmith-collections 'path' 密钥?
metalsmith-collections 'path' key not accessible from Handlebars template?
我的模板:
{{#each collections }}
<span class="Category__Title">{{ @key }}</span>
{{#each this }}
<a href="{{ this.path }}">{{ this.title }}</a>
{{/each}}
{{/each}}
渲染(this.path 未定义):
<span class="Category__Title">French</span>
<a href="">Braised vegetables</a>
<span class="Category__Title">Thai</span>
<a href="">Rice noodles</a>
我正在使用 metalsmith:
metalsmith
.use(collections())
.use(markdown())
.use(templates({
engine: 'handlebars',
directory: 'templates'
}))
.use(permalinks({
pattern: ':title'
}))
.destination('./public')
在编译的时候,我控制台日志收集
var m = metalsmith.metadata();
console.log(m.collections);
而且我可以看到每个集合都有一个文件数组,每个文件都包含键 'path'。控制台日志 ->
{ title: 'Braised vegetables',
date: '10/12/1923',
tags: [ 'braise', 'old world' ],
collection: [ 'french' ],
template: 'recipe.hbt',
contents: <Buffer 3...>,
mode: '0644',
stats: { },
path: 'women-s-liberation-1906' }
奇怪?我可以通过节点以编程方式访问 file.path。此外,Handlebars 能够访问 file.title 和所有其他键。在此先感谢您的帮助。
谢谢——在发布我的问题时,我意识到我试图在永久链接有机会将 属性 添加到文件树之前访问 'path' 键——只需将永久链接移动到模板上方解决了这个问题。
.use(permalinks({
pattern: ':title',
relative: false
}))
.use(templates({
engine: 'handlebars',
directory: 'templates'
}))
我的模板:
{{#each collections }}
<span class="Category__Title">{{ @key }}</span>
{{#each this }}
<a href="{{ this.path }}">{{ this.title }}</a>
{{/each}}
{{/each}}
渲染(this.path 未定义):
<span class="Category__Title">French</span>
<a href="">Braised vegetables</a>
<span class="Category__Title">Thai</span>
<a href="">Rice noodles</a>
我正在使用 metalsmith:
metalsmith
.use(collections())
.use(markdown())
.use(templates({
engine: 'handlebars',
directory: 'templates'
}))
.use(permalinks({
pattern: ':title'
}))
.destination('./public')
在编译的时候,我控制台日志收集
var m = metalsmith.metadata();
console.log(m.collections);
而且我可以看到每个集合都有一个文件数组,每个文件都包含键 'path'。控制台日志 ->
{ title: 'Braised vegetables',
date: '10/12/1923',
tags: [ 'braise', 'old world' ],
collection: [ 'french' ],
template: 'recipe.hbt',
contents: <Buffer 3...>,
mode: '0644',
stats: { },
path: 'women-s-liberation-1906' }
奇怪?我可以通过节点以编程方式访问 file.path。此外,Handlebars 能够访问 file.title 和所有其他键。在此先感谢您的帮助。
谢谢——在发布我的问题时,我意识到我试图在永久链接有机会将 属性 添加到文件树之前访问 'path' 键——只需将永久链接移动到模板上方解决了这个问题。
.use(permalinks({
pattern: ':title',
relative: false
}))
.use(templates({
engine: 'handlebars',
directory: 'templates'
}))