Изучение различных методов получения родительского URL-пути коллекции в Jekyll с примерами кода

При работе с Jekyll, популярным генератором статических сайтов, вы можете столкнуться со сценариями, в которых вам необходимо получить родительский URL-путь коллекции. Этот родительский URL-путь может быть полезен для различных целей, например для создания навигационных ссылок или создания хлебных крошек. В этой статье мы рассмотрим несколько способов достижения этой цели, сопровождаемые примерами кода.

Метод 1: использование фильтров Liquid
Jekyll использует Liquid в качестве языка шаблонов, который предоставляет набор полезных фильтров. Одним из таких фильтров является фильтр split, который разбивает строку на массив на основе разделителя. Мы можем использовать этот фильтр для извлечения родительского URL-пути.

{% assign url_parts = page.url | split: '/' %}
{% assign parent_url = url_parts | reverse | drop: 1 | reverse | join: '/' %}
Parent URL Path: {{ parent_url }}

Метод 2: использование переменных Liquid
Jekyll предоставляет различные переменные Liquid, к которым можно получить доступ в шаблонах. Одной из таких переменных является page.url, которая содержит URL-адрес текущей страницы. Манипулируя этой переменной, мы можем получить родительский URL-путь.

{% assign parent_url = page.url | remove_first: page.slug %}
Parent URL Path: {{ parent_url }}

Метод 3: пользовательская функция JavaScript
Jekyll позволяет включать код JavaScript в шаблоны. Мы можем определить специальную функцию JavaScript для извлечения родительского URL-пути.

{% assign parent_url = '' %}
<script>
  function getParentURL(url) {
    var parts = url.split('/');
    parts.pop();
    return parts.join('/');
  }
  parent_url = getParentURL('{{ page.url }}');
</script>
Parent URL Path: {{ parent_url }}

Метод 4: использование тега url_for
Jekyll предоставляет тег url_for, который генерирует URL-адрес для данного ресурса. Мы можем использовать этот тег для получения родительского URL-пути.

{% assign parent_url = url_for collection.label %}
Parent URL Path: {{ parent_url }}

В этой статье мы рассмотрели несколько методов получения родительского URL-пути коллекции в Jekyll. Мы обсудили использование фильтров Liquid, манипулирование переменными Liquid, включение пользовательских функций JavaScript и использование тега url_for. Каждый метод обеспечивает гибкость и может быть адаптирован в соответствии с различными требованиями. Понимая эти методы, вы сможете улучшить свои проекты Jekyll за счет динамического создания URL-адресов и улучшения навигации.