Jekyll включает в себя и передний план YAML

Можно ли каким-то образом разгрузить переднюю часть во включение? Мой сайт Jekyll использует переменную frontmatter для заголовка страницы, однако у меня есть некоторые страницы, которые имеют общее включение из-за повторения кода. Помещение заголовка страницы во включение обрабатывает его как необработанный HTML. Есть ли способ смоделировать это и установить переменные во включении?


person RedBassett    schedule 08.07.2015    source источник


Ответы (3)


Согласно документации Jekyll по передача переменных параметров во включения , вам нужно сначала зафиксировать вступительную часть как переменную.

В их примере используется захват, но вы можете использовать assign, если просто передаете переменную. Вот мой проверенный пример того, как это сделать:

включить

<div>
{{ include.title }} 
</div>

включить в содержание

{% assign include-title = page.title %}
{% include example.html title=include-title %}
person Edward    schedule 10.04.2019

В инклюзах нет переднего плана.

Но вы можете получить доступ к заголовку страницы внутри включения, используя page.title, и любую другую переменную страницы с помощью page.myVarName.

person David Jacquel    schedule 08.07.2015
comment
Извиняюсь за путаницу в вопросе. Я знаю, что фронтматтер не работает в включениях, и я знаю, что переменные не могут быть изменены после их установки. Есть ли обходной путь для объявления переменной заголовка страницы внутри включения? По сути, я хочу, чтобы заголовок страницы исходил из файла данных, который используется в include. - person RedBassett; 08.07.2015
comment
Итак, вы можете отредактировать свой вопрос и объяснить немного больше. Дайте нам несколько небольших примеров кода того, что вы уже пробовали. - person David Jacquel; 09.07.2015

Вы можете передать параметр в include. Пытаться:

{% include name.html var={{page.title}} %}

Затем во включении получите доступ к параметру, используя include.var.

См. «Передача параметров во включения» по адресу https://jekyllrb.com/docs/includes/.

person Karan Gill    schedule 31.03.2017