Можно ли каким-то образом разгрузить переднюю часть во включение? Мой сайт Jekyll использует переменную frontmatter для заголовка страницы, однако у меня есть некоторые страницы, которые имеют общее включение из-за повторения кода. Помещение заголовка страницы во включение обрабатывает его как необработанный HTML. Есть ли способ смоделировать это и установить переменные во включении?
Jekyll включает в себя и передний план YAML
Ответы (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
Извиняюсь за путаницу в вопросе. Я знаю, что фронтматтер не работает в включениях, и я знаю, что переменные не могут быть изменены после их установки. Есть ли обходной путь для объявления переменной заголовка страницы внутри включения? По сути, я хочу, чтобы заголовок страницы исходил из файла данных, который используется в include.
- person RedBassett; 08.07.2015
Итак, вы можете отредактировать свой вопрос и объяснить немного больше. Дайте нам несколько небольших примеров кода того, что вы уже пробовали.
- 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
Передача параметров во включения является мощной и, вероятно, будет работать для того, что вы пытаетесь сделать. На странице включений см., в частности, этот раздел: Передача параметров во включения а>.
- person Tom Johnson; 02.04.2017
это неверно и приведет к ошибке. Вы должны превратить вступительную часть в переменную с помощью метода assign или capture, а затем перейти к включению. Я подробно описал этот метод в своем ответе выше: stackoverflow.com/a/55616695/3411192
- person Edward; 10.04.2019