2012-05-27 4 views
0

Я начал экспериментировать с посредником и рубином.В посреднике, как установить переменные?

Компоновка образец имеет следующую строку:

<body class="<%= page_classes %> 

На любой странице, как я установить «page_class»?

+2

Я не уверен, что посреднику конкретно, но я собираюсь рисковать образованным предположим, что 'page_classes' является nit переменной, но на самом деле является методом. – d11wtq

ответ

1

Вы можете определить переменную в config.rb с символом @, таких как:

@var = ["something", "here", ...] 

и сделать его видимым для шаблонов, добавив, в config.rb:

set :var, @var 

, если это вместо этого вы должны просто определить его в разделе помощника config.rb.

3

<%= page_classes %> является одним из помощников посредника по умолчанию для Middleman и возвращает строку на основе имени файла и каталога текущей страницы, e. г.

  • для /index.html он возвращает index
  • для /folder1/index.html он возвращает folder1 folder1_index
  • для /folder1/folder2/page.html он возвращает folder1 folder1_folder2 folder1_folder2_page

и так далее (выше примеры адаптированы из Middleman's Relish documentation for 'page_classes').

Используя фрагмент из типового макета, как и вы, вы можете создать свои страницы или highlight the corresponding navigation item via CSS.

Edit: Чтобы добавить еще больше вариантов ответов, полученных от Марека, вы могли бы использовать

оба из которых описаны на веб-сайте/документации Middleman.
Обратите внимание, что переменные, установленные через YAML Frontmatter, также становятся доступными в вашем layouts.

0

Вы можете определить переменную в config.rb

set :var, ["something", "here"] 

В шаблоне вы будете иметь в своем распоряжении

config[:var]