В Jekyll, популярном генераторе статических сайтов, коллекции позволяют упорядочивать и группировать связанный контент. Иногда вам может потребоваться получить родительский URL-путь коллекции для различных целей, например для создания меню навигации или создания хлебных крошек. В этой статье мы рассмотрим несколько методов решения этой задачи, а также приведем примеры кода.
Метод 1: использование переменной site.
Jekyll предоставляет переменную site, содержащую информацию о вашем сайте, включая коллекции. Вы можете получить доступ к коллекциям, используя site.collections. Вот пример фрагмента кода для получения родительского URL-пути:
{% raw %}
{% assign collection = site.collections | where: "label", "your_collection_label" | first %}
{% assign parent_url = collection.relative_directory | remove: "_your_collection" %}
{% endraw %}
Объяснение:
- Фильтр
whereиспользуется для поиска коллекции с указанным ярлыком. - Атрибут
relative_directoryпредставляет относительный путь к коллекции. - Фильтр
removeудаляет из пути префикс «_your_collection».
Метод 2: использование переменной page.
Другой подход заключается в использовании переменной page, которая содержит информацию о текущей отображаемой странице. Вот пример фрагмента кода:
{% raw %}
{% assign parent_url = page.url | split: "/" | reverse | drop: 1 | reverse | join: "/" %}
{% endraw %}
Объяснение:
- Фильтр
splitразделяетpage.urlпо “/” на массив. - Фильтр
reverseинвертирует массив. - Фильтр
dropудаляет последний элемент (имя файла текущей страницы). - Фильтр
reverseвозвращает массив в исходный порядок. - Фильтр
joinобъединяет элементы массива с помощью «/» для формирования родительского URL-пути.
Метод 3. Анализ URL-адреса с помощью JavaScript
Если вы предпочитаете решение на стороне клиента, вы можете использовать JavaScript для извлечения родительского пути URL-адреса. Вот пример фрагмента кода:
var pathArray = window.location.pathname.split('/');
pathArray.pop();
var parentUrl = pathArray.join('/');
Объяснение:
- Свойство
window.location.pathnameвозвращает путь к текущему URL-адресу. - Метод
splitразбивает путь по символу «/» на массив. - Метод
popудаляет последний элемент (имя файла текущей страницы). - Метод
joinобъединяет элементы массива с помощью «/» для формирования родительского URL-пути.
В этой статье мы рассмотрели три различных метода получения родительского URL-пути коллекции в Jekyll. Вы можете выбрать метод, который соответствует вашим требованиям и предпочтениям в кодировании. Понимая эти методы, вы сможете улучшить свои проекты Jekyll, используя возможности URL-адресов для навигации, навигации или любых других необходимых функций.
Не забудьте оптимизировать SEO своего веб-сайта, включив в него релевантные ключевые слова и метатеги, чтобы улучшить видимость и рейтинг в органическом поиске.