Теги и фильтры
Поддерживаются все стандартные теги Liquid. В Jekyll есть несколько встроенных тегов, помогающих создавать сайт. Вы также можете создавать собственные теги с помощью плагинов.
Включения
Если вы многократно используете фрагменты страниц на своём сайте, включение — идеальный способ упростить их поддержку.
Подсветка фрагментов кода
Jekyll поддерживает подсветку синтаксиса для более чем 100 языков благодаря Rouge. Начиная с Jekyll 3, Rouge используется по умолчанию для подсветки синтаксиса.
Поддержка Pygments объявлена устаревшей и отсутствует в Jekyll 4; параметр конфигурации highlighter: pygments теперь автоматически переключается на Rouge, написанный на Ruby и на 100% совместимый с таблицами стилей для Pygments. Чтобы отобразить блок кода с подсветкой синтаксиса, оберните код следующим образом:
{% highlight ruby %}
def foo
puts 'foo'
end
{% endhighlight %}
Аргумент тега highlight (ruby в примере выше) — это идентификатор языка. Чтобы найти подходящий идентификатор для языка, который нужно подсветить, найдите его «короткое имя» в вики Rouge.
Jekyll обрабатывает все фильтры Liquid в блоках кода
Если вы используете язык, в котором встречаются фигурные скобки, вероятно, потребуется обернуть код тегами
{% raw %}и{% endraw %}. Начиная с Jekyll 4.0 вы можете добавитьrender_with_liquid: falseв заголовок документа, чтобы полностью отключить Liquid для этого документа.
Нумерация строк
У тега highlight есть необязательный второй аргумент под названием linenos. Если указать аргумент linenos, в подсвеченном коде будут отображаться номера строк. Например, в следующем блоке кода рядом с каждой строкой будут указаны её номера:
{% highlight ruby linenos %}
def foo
puts 'foo'
end
{% endhighlight %}
Выделение отдельных строк4.4.0
Вы можете выделить отдельные строки во фрагменте кода с помощью необязательного аргумента mark_lines. В этом аргументе указывается разделённый пробелами список номеров строк, заключённый в двойные кавычки. Например, в следующем блоке кода будут выделены строки 1 и 2, но не строка 3:
{% highlight ruby mark_lines="1 2" %}
def foo
puts 'foo'
end
{% endhighlight %}
Для выделенных строк будет применено имя класса по умолчанию hll.
Таблицы стилей для подсветки синтаксиса
Чтобы подсветка отображалась, необходимо подключить таблицу стилей для подсветки. Для Pygments или Rouge можно использовать таблицу стилей Pygments. Примеры можно найти в этой галерее или в репозитории.
Скопируйте файл CSS (например, native.css) в каталог css и импортируйте стили подсветки синтаксиса в main.css:
@import "native.css";
Ссылки
Начиная с Jekyll 4.0 тегиlinkиpost_urlне нужно предварять тегомsite.baseurl.
Ссылки на страницы
Чтобы создать ссылку на публикацию, страницу, элемент коллекции или файл, тег link создаст правильный URL постоянной ссылки для указанного пути. Например, если использовать тег link для ссылки на mypage.html, то даже при изменении формата постоянных ссылок — например, если добавить или убрать расширение файла, — URL, сформированный тегом link, всегда будет действительным.
При использовании тега link необходимо указывать исходное расширение файла. Вот несколько примеров:
{% link _collection/name-of-document.md %}
{% link _posts/2016-07-26-name-of-post.md %}
{% link news/index.html %}
{% link /assets/files/doc.pdf %}
Также можно использовать тег link для создания ссылки в Markdown следующим образом:
[Link to a document]({% link _collection/name-of-document.md %})
[Link to a post]({% link _posts/2016-07-26-name-of-post.md %})
[Link to a page]({% link news/index.html %})
[Link to a file]({% link /assets/files/doc.pdf %})
Путь к публикации, странице или коллекции задаётся относительно корневого каталога (где находится файл конфигурации), а не относительно текущей страницы.
Например, предположим, что вы создаёте ссылку в page_a.md (хранится в pages/folder1/folder2) на page_b.md (хранится в pages/folder1). Путь в ссылке не должен быть ../page_b.html. Вместо этого укажите /pages/folder1/page_b.md.
Если вы не уверены в правильности пути, добавьте {{ page.path }} на страницу — он отобразит путь.
Одно из важных преимуществ использования тегов link или post_url — проверка ссылок. Если ссылка не существует, Jekyll не соберёт сайт. Это полезно, поскольку позволяет обнаружить и исправить неработающую ссылку, а не собирать и публиковать сайт с нерабочими ссылками.
Обратите внимание: к тегам link нельзя добавлять фильтры. Например, нельзя присоединить строку с помощью фильтров Liquid, таких как {% link mypage.html | append: "#section1" %}. Чтобы ссылаться на разделы страницы, используйте обычные средства создания ссылок в HTML или Markdown.
Имя файла, на который нужно сослаться, можно указать в переменной вместо явного имени файла. Например, предположим, что в заголовке страницы вы определили переменную следующим образом:
--- title: My page my_variable: footer_company_a.html ---
Затем можно использовать эту переменную в ссылке:
{% link {{ page.my_variable }} %}
В этом примере тег link создаст ссылку на файл footer_company_a.html.
Ссылки на публикации
Если вы хотите добавить ссылку на публикацию на своём сайте, тег post_url создаст правильный URL постоянной ссылки на указанную публикацию.
{% post_url 2010-07-21-name-of-post %}
Если публикации размещены в подкаталогах, необходимо указать путь к публикации с подкаталогом:
{% post_url /subdir/2010-07-21-name-of-post %}
При использовании тега post_url указывать расширение файла не нужно.
Также можно использовать этот тег для создания ссылки на публикацию в Markdown следующим образом:
[Name of Link]({% post_url 2010-07-21-name-of-post %})
© 2025 Jekyll Core Team and contributors
Licensed under the MIT license.
https://jekyllrb.com/docs/liquid/tags/