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), эти аспекты стиля пермалинков игнорируются для выходных данных.

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

Плейсхолдеры

Вот полный список доступных плейсхолдеров:

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

year

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

short_year

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

month

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

i_month

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

short_month

Сокращённое название месяца (3 буквы), например «Янв».

long_month

4.0

Полное название месяца, например «Январь».

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

Сокращённое название дня недели (3 буквы), например «Вс».

long_day

4.0

Полное название дня недели, например «Воскресенье».

hour

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

minute

Минута из date метаданных записи. (00..59)

second

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

title

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

slug

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

categories

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

slugified_categories

4.1

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

Если запись имеет несколько категорий, Jekyll создаст иерархию (например, /work-2-progress/category2). Также Jekyll автоматически удаляет двойные слэши в URL, поэтому, если категории отсутствуют, он их игнорирует.

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

Для записей 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

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

Переменная шаблона :title примет значение переменной slug метаданных, если она присутствует в документе; если она не определена, :title будет эквивалентно :name, т.е. slug, сгенерированному из имени файла.

:output_ext

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

Страницы

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

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

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

:path

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

:basename

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

:output_ext

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

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

Spec-Zone.ru

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