Spec-Zone.ru › Jekyll 4

Постоянные ссылки

Постоянные ссылки — это пути вывода для ваших страниц, записей или коллекций. Они позволяют задавать структуру каталогов исходного кода, отличную от структуры каталогов в выходных данных.

Начальные данные

Самый простой способ задать постоянную ссылку — использовать начальные данные. Укажите переменную permalink в начальных данных, задав путь вывода, который вам нужен.

Например, на вашем сайте может быть страница по адресу /my_pages/about-me.html, для которой вы хотите задать URL вывода /about/. В начальных данных страницы укажите:

---
permalink: /about/
---

Глобальные настройки

Задавать постоянную ссылку в начальных данных для каждой страницы сайта — не самое удобное решение. К счастью, Jekyll позволяет задать структуру постоянных ссылок глобально в _config.yml.

Чтобы задать глобальную постоянную ссылку, используйте переменную permalink в _config.yml. Для желаемого пути вывода можно использовать заполнители. Например:

permalink: /:categories/:year/:month/:day/:title:output_ext

Обратите внимание, что у страниц и коллекций (за исключением posts и drafts) нет времени и категорий (для страниц приведённое выше :title эквивалентно :basename), поэтому эти составляющие формата постоянной ссылки игнорируются при формировании выходных данных.

Например, для коллекции posts формат постоянной ссылки /:categories/:year/:month/:day/:title:output_ext преобразуется в /:title.html для страниц и коллекций (за исключением posts и drafts).

Заполнители

Полный список доступных заполнителей:

Переменная Описание

:year

Год из имени файла записи, состоящий из четырёх цифр. Может быть переопределён с помощью начальных данных документа date.

:short_year

Год из имени файла записи без указания столетия. (00..99) Может быть переопределён с помощью начальных данных документа date.

:month

Месяц из имени файла записи. (01..12) Может быть переопределён с помощью начальных данных документа date.

:i_month

Месяц из имени файла записи без ведущих нулей. Может быть переопределён с помощью начальных данных документа date.

:short_month

Сокращённое название месяца из трёх букв, например, "Jan".

:long_month

4.0

Полное название месяца, например, "January".

:day

День месяца из имени файла записи. (01..31) Может быть переопределён с помощью начальных данных документа date.

:i_day

День месяца из имени файла записи без ведущих нулей. Может быть переопределён с помощью начальных данных документа date.

:y_day

Порядковый день года из имени файла записи, с ведущими нулями. (001..366)

:w_year

4.0

Год недели, который может отличаться от года месяца на срок до трёх дней в начале января и конце декабря

:week

4.0

Номер недели текущего года, начиная с первой недели, большинство дней которой приходится на январь. (01..53)

:w_day

4.0

День недели, начиная с понедельника. (1..7)

:short_day

4.0

Сокращённое название дня недели из трёх букв, например, "Sun".

:long_day

4.0

Название дня недели, например, "Sunday".

:hour

Час дня в 24-часовом формате, с ведущим нулём, из начальных данных записи date. (00..23)

:minute

Минута часа из начальных данных записи date. (00..59)

:second

Секунда минуты из начальных данных записи date. (00..59)

:title

Заголовок из имени файла документа. Может быть переопределён с помощью начальных данных документа slug. Регистр исходного текста сохраняется.

:slug

Заголовок из имени файла документа, преобразованный в слаг (любой символ, кроме цифр и букв, заменяется дефисом). Может быть переопределён с помощью начальных данных документа slug.

:categories

Указанные категории этой записи. Если у записи несколько категорий, Jekyll создаст иерархию (например, /category1/category2). Кроме того, Jekyll автоматически удаляет двойные косые черты из URL, поэтому, если категорий нет, этот заполнитель будет проигнорирован.

:slugified_categories

4.1

Указанные категории этой записи, преобразованные в слаг. Если категория состоит из нескольких слов, Jekyll преобразует все буквы в нижний регистр и заменяет любой не буквенно-цифровой символ дефисом. (Например, "Work 2 Progress" будет преобразовано в "work-2-progress".) Если у записи несколько категорий, Jekyll создаст иерархию (например, /work-2-progress/category2). Кроме того, Jekyll автоматически удаляет двойные косые черты из URL, поэтому, если категорий нет, этот заполнитель будет проигнорирован.

:output_ext

Расширение выходного файла. (Добавляется по умолчанию и обычно не требует указания.)

Встроенные форматы

Для записей Jekyll также предоставляет следующие встроенные форматы:

Формат постоянной ссылки Шаблон URL

date

/:categories/:year/:month/:day/:title:output_ext

pretty

/:categories/:year/:month/:day/:title/

ordinal

/:categories/:year/:y_day/:title:output_ext

weekdate

4.0

/:categories/:year/W:week/:short_day/:title:output_ext
(W будет добавлено в начало значения :week)

none

/:categories/:title:output_ext

Вместо того чтобы вводить permalink: /:categories/:year/:month/:day/:title/, можно просто ввести permalink: pretty.

Указание постоянных ссылок в начальных данных

Встроенные форматы постоянных ссылок не распознаются в начальных данных. Поэтому permalink: pretty не будет работать.

Коллекции

Для коллекций (включая posts и drafts) можно переопределить глобальную постоянную ссылку в настройках коллекции в _config.yml:

collections:
  my_collection:
    output: true
    permalink: /:collection/:name

Для коллекций доступны следующие заполнители:

Переменная Описание

:collection

Метка содержащей документ коллекции.

:path

Путь к документу относительно каталога коллекции, включая базовое имя файла документа. Не включает расширение файла.

:name

Базовое имя файла документа, преобразованное в слаг: буквы преобразуются в нижний регистр, а последовательности не буквенно-цифровых символов (включая пробелы) заменяются дефисом.

:title

Принимает значение ключа начальных данных slug, если он задан для документа. В противном случае принимает строковое значение, полученное из базового имени файла документа с помощью фильтра slugify с параметром pretty.
Независимо от полученного значения, регистр букв сохраняется, а не заменяется строчными буквами.

:output_ext

Расширение выходного файла. (Добавляется по умолчанию и обычно не требует указания.)

Страницы

Для страниц необходимо использовать начальные данные, чтобы переопределить глобальную постоянную ссылку. Если задать постоянную ссылку с помощью значений по умолчанию для начальных данных в _config.yml, она будет проигнорирована.

Для страниц доступны следующие заполнители:

Переменная Описание

:path

Путь между исходным каталогом и базовым именем файла страницы.

:basename

Базовое имя файла страницы.

:output_ext

Расширение выходного файла. (Добавляется по умолчанию и обычно не требует указания.)

© 2025 Jekyll Core Team and contributors
Licensed under the MIT license.
https://jekyllrb.com/docs/permalinks/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API