2013-09-01 8 views
4

Я использую сборку.io для автоматизации разработки моего интерфейса и хочу использовать переднюю задачу YAML для создания простого навигационного меню.Как использовать руль # в качестве помощника с передним элементом YAML

HTML, я хочу, чтобы достичь это:

<li><a href="#link1">Link1</a></li> 
<li><a href="#link2">Link2</a></li> 

Я думаю, что правильный рули разметки заключается в следующем:

 {{#each sublinks}} 
     <li><a href="#{{section}}">{{section}}</li> 
     {{/each}} 

Но что такое правильный YFM? Я начал с этим, но знать синтаксис не является правильным:

--- 
sublinks: 
    - section: link1, link2 
--- 

ответ

9

Для шаблона, как это:

{{#each sublinks}} 
<li><a href="#{{section}}">{{section}}</li> 
{{/each}} 

Вы бы хотите структуру данных, как это:

sublinks = [ 
    { section: 'link1' }, 
    { section: 'link2' }, 
    //... 
] 

и в YAML, это будет выглядеть так:

sublinks: 
    - section: link1 
    - section: link2 

Вы также должны быть в состоянии использовать эту YAML:

sublinks: 
    - link1 
    - link2 

с этим шаблоном:

{{#each sublinks}} 
<li><a href="#{{.}}">{{.}}</li> 
{{/each}} 

Ваш YAML соответствует структуре данных, как это:

sublinks = [ 
    { section: 'link1, link2' } 
] 

и это не очень полезно, если вы не хотите разделить строку 'link1, link2' с помощью помощника Handlebars.

3

Добавление к большому ответу @ Mu, вы также можете сделать это следующим образом:

Учитывая это YAML вводная:

--- 
sublinks: 
    - href: link/to/foo 
    text: Foo Text 
    - href: link/to/bar 
    text: Bar Text 
    - href: link/to/baz 
    text: Baz Text 
--- 

Ваши шаблоны будут выглядеть следующим образом:

{{#each sublinks}} 
    <li><a href="#{{href}}">{{text}}</a></li> 
{{/each}} 

Обратите внимание, что спецификация YAML также позволяет использовать синтаксис, похожий на JavaScript-объект:

--- 
sublinks: 
    - {href: link/to/foo, text: Foo Text} 
    - {href: link/to/bar, text: Bar Text} 
    - {href: link/to/baz, text: Baz Text} 
--- 
+0

Привет, Джон, обязательно писать json-like на одной строке после тире ('- {href: link/to/foo, text: Foo Text}'), или мы можем разбить его на другие строки ? Я привык писать каждый ключ/значение на своей собственной линии, чтобы улучшить читаемость;) – Tilt

+0

YAML 1.2 - это надмножество JSON. Вы можете ожидать, что действительный JSON будет признан действительным YAML. Так что да, вы можете сделать свой YAML менее удобочитаемым, сделав его более похожим на JSON;), но только если вы будете следовать правилам форматирования пробелов YAML. – jonschlinkert

+0

Спасибо @jonschlinkert, я думаю, что останусь синтаксисом YAML, в конце концов;) – Tilt