автоматически создать страницу для каждой категории в Jekyll

Как я могу автоматически создать страницу для каждой категории в Jekyll?

пример:

URL сообщения: https://UsrNm.github.io/Category1/Category2/2018/02/16/Post1.html

Я хочу, когда я иду по ссылке, например: https://UsrNm.github.io/Category1/Category2/

Получить все сообщения в категории Category1 и Category2

или когда я перехожу по ссылке типа: https://UsrNm.github.io/Category2/

Получить все сообщения только в категории Category2


person zahaby    schedule 16.02.2018    source источник


Ответы (2)


Вы не можете сделать это автоматически.

Ну, у вас есть 2 варианта:

Путь Джекила и хакерский путь.

В чистом виде Jekyll вам нужно будет создавать страницы вручную для каждой категории, даже если у вас есть сообщения с несколькими категориями. Обратите внимание, что в Jekyll для этого нет динамической маршрутизации.

Хакерским способом вы можете использовать Javascript для чтения параметров в URL-адресе и отображения/скрытия необходимого контента. Идея состоит в том, чтобы отображать все сообщения (скрытые по умолчанию) и создавать для них идентификаторы, правильный способ сделать это - добавить атрибут html data-category=cat1 и сказать, что у вас есть такой URL-адрес /category?categories=cat1,cat2. Затем вы можете получить категории из URL-адреса и добавить логику в javascript, чтобы показать только те, которые на самом деле находятся в этих категориях.

надеюсь, это поможет

person Mario Nikolaus    schedule 16.02.2018

Вы можете использовать гем jekyll-archives для выполнения такой работы, который является плагином Джекил.

Или, если вы хотите сделать это вручную, вы можете прочитать это руководство.

Вы можете увидеть пример моего сайта

Советы: Github Pages не поддерживайте это. Таким образом, если вы хотите развернуть это на страницах Github, вы можете преобразовать сайт в статические файлы и отправить в репозиторий только _site каталога, что было упомянуто в здесь :)

person Jevan Wu    schedule 23.07.2021