YAML Front Matter может использоваться для непосредственного хранения дополнительного контента для страницы. Это делается путем создания пользовательских переменных ключа/значения. В макете/шаблоне используются теги жидкости, чтобы проверить, доступен ли дополнительный контент. Если это так, он получает выход. В противном случае раздел пропускается.
Вот пример шаблона макета, который проверяет, чтобы увидеть, если пользовательская переменная называется myvar1
устанавливается:
---
layout: default
---
<header class="sidebar">
<h2>{{ page.title }}</h2>
{% if page.myvar1 %}
<p>Secondary content here: {{ page.myvar1 }}</p>
{% endif %}
</header>
<section class="content">
{{ content }}
</section>
Примечание: Для того, чтобы соответствовать вашему исходному примеру, этот файл макета вызывает родительский макет «по умолчанию» , В этом примере приведенное выше находится в файле макета под названием «_layouts/nested_layout.html».
Чтобы использовать новый слот, A myvar1
переменная добавляется к передней материи, как это:
---
layout: nested_layout
title: This is the post test layout
myvar1: More here <strong>including bold text</strong>.
---
And here is the page content: The quick brown fox jumps over the lazy dog.
Когда эта страница обрабатывается, вторичное содержание будет отображаться. Если вы создаете другую страницу, которая не имеет myvar1
, в этой части шаблона ничего не будет отображаться.
Вы можете добавить любое количество настраиваемых переменных на свои страницы по мере необходимости. Значения могут включать HTML, как показано в этом примере. (Это работает для меня в Jekyll 0.11.2.) Если у вас есть много кода, который вы хотите добавить (вместо того, что легко вписывается в одну строку), или если вы хотите иметь один и тот же контент для включения/off для нескольких страниц, вы можете использовать пользовательскую переменную в качестве флага. Затем в теге {% if%} вы должны вызвать include, если значение установлено.