Ключ пути «металлические коллекции» недоступен из шаблона Handlebars?

Мой шаблон:

{{#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
  .use(collections())
  .use(markdown())
  .use(templates({
    engine: 'handlebars',
    directory: 'templates'
  }))
  .use(permalinks({
    pattern: ':title'
  }))
  .destination('./public')

Во время компиляции я консолью журнал для сбора

var m = metalsmith.metadata();
console.log(m.collections);

И я вижу, что каждая коллекция имеет массив файлов, и каждый файл ДЕЙСТВИТЕЛЬНО содержит ключ «путь». Журнал консоли ->

 { 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 через node. Кроме того, Handlebars может получить доступ к file.title и любому другому ключу. Заранее спасибо за помощь.


person tgk    schedule 16.02.2015    source источник


Ответы (1)


Спасибо - публикуя свой вопрос, я понял, что пытался получить доступ к ключу "путь" до того, как постоянные ссылки получили возможность добавить это свойство в дерево файлов - простое перемещение постоянных ссылок над шаблонами решило эту проблему.

.use(permalinks({
    pattern: ':title',
    relative: false
  }))
  .use(templates({
    engine: 'handlebars',
    directory: 'templates'
  }))
person tgk    schedule 16.02.2015
comment
Потрясающий! Я провел последние три часа в поисках решения @.@ спасибо! - person Matt; 24.01.2016