2013-09-18 6 views
1

Хотя что-то вроде этого работает в assemble.io страницах:Assemble.io - можно использовать lodash в YAML вводной части обертонов

--- 
title: "My title" 
woo: <%= title %> 
--- 

(т.е. {{В}} выводит «Моего титула» на страницу), если у меня одно и то же в частичном, в woo нет ничего. Кто-нибудь знает, если это по дизайну, или я делаю что-то неправильно?

Спасибо!

ответ

2

В Assemble конвенция должна использовать переднюю матрицу YAML как значение «this», а контекст для частичных имен должен быть заменен именами, используя имя частичного в качестве первого пути в контексте.

Так на странице, вы можете сделать, как вы заметили, но с частичным имени alert.hbs, вы должны сделать что-то вроде {{alert.title}}, или:

{{#alert}} 
    {{title}} 
{{/alert}} 

Мы знаем, что это может быть немного запутанным , а IMO немного разочаровывает, так как передний элемент YAML не работает одинаково в частичных страницах, но пока эта проблема с Handlebars не решена, мы должны жить с ограничениями этой библиотеки: https://github.com/wycats/handlebars.js/issues/392 (теперь собирает поддержку шаблонов Swig , но это не решает эту проблему для вас).

Последнее, что вы можете создать пользовательские помощники, чтобы обойти его. У библиотеки assemble-yaml есть методы для доступа к элементу управления YAML в шаблонах (проект yfm показывает некоторые альтернативы и примеры того, как вы можете использовать контекст из YFM в шаблонах), а их значение - grunt-init template для создания хелперов Handlebars.

+0

Спасибо, это то, что мне нужно было знать! – toby1kenobi

+0

У меня проблема simialr здесь http://stackoverflow.com/questions/25720831/assemble-io-context-of-yaml-data-in-partials-not-working – Adi