Jekyll изменить элемент в зависимости от того, как вы получили пост (порядок кликов) - PullRequest
0 голосов
/ 23 февраля 2020

Прямо сейчас у меня есть тема сайта Jekyll, которая позволяет пользователям фильтровать сообщения, выбирая теги. Если они находятся на главной странице, отображаются все сообщения, а если выбран тег, отображаются только сообщения с этим тегом.

При выборе сообщения под списком сообщений и списком тегов появляется новый вид. который отображает содержание сообщения. Однако, когда это происходит, любая фильтрация внутри элемента «Список сообщений» исчезает.

        TAG1 SELECTED                           POST FROM TAG1 SELECTED     
<URL>/tag/tag1                            <URL>/POST
+---------+--------------------+          +---------+--------------------+
| Home    |     Post List      |          | Home    |     Post List      |
| - Tag1  | <FILTERED ON TAG1> |   ---\   | - Tag1  |  <SHOWS ALL POSTS> |
| - Tag2  |                    |   ---/   | - Tag2  |<NO LONGER FILTERED>|
+---------+--------------------+          +---------+--------------------+
                                          |          POST CONTENT        |
                                          |                              |
                                          +------------------------------+

Я также смог изменить код так, чтобы при выборе тега, затем при выборе сообщения, Post List показывал только сообщения, которые также содержат этот тег. Однако, с этим изменением, оно ломается, если на странице Home (без тега) я нажимаю на сообщение; Post List фильтруется на основе тега, связанного с выбранным сообщением, вместо отображения всех сообщений. ( Примечание: Для моего блога я планирую использовать только один тег на сообщение )

        HOME SELECTED                           POST FROM HOME SELECTED     
<URL>/                                    <URL>/POST
+---------+--------------------+          +---------+--------------------+
| Home    |     Post List      |          | Home    |     Post List      |
| - Tag1  |  <SHOWS ALL POSTS> |   ---\   | - Tag1  | <FILTERED ON TAG1> |
| - Tag2  |                    |   ---/   | - Tag2  |  <IS NOW FILTERED> |
+---------+--------------------+          +---------+--------------------+
                                          |          POST CONTENT        |
                                          |                              |
                                          +------------------------------+

Мой вопрос: есть ли способ Джекилл, чтобы отобразить сообщение и изменить Post List в зависимости от того, как вы попали к сообщению?

Например, если я нахожусь на странице Home (без фильтров), и я нажмите на сообщение из неотфильтрованного Post List, я хотел бы просмотреть сообщение, оставив Post List прежним (не отображать все сообщения). В дополнение к этому, однако, если я нажимаю Tag1 в списке тегов, а затем нажимаю на сообщение из отфильтрованного Post List, я хотел бы просмотреть сообщение, оставив Post List таким же (продолжить фильтрацию всех сообщений на tag1). См. Каркас ниже для визуального объяснения.

enter image description here

Возможно ли это вообще с помощью Jekyll и его соответствующих инструментов (Front Matter, Liquid ...)? Или мне нужен какой-нибудь плагин?

Любая помощь очень ценится.

1 Ответ

1 голос
/ 25 февраля 2020

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

Другие решения могут быть на стороне сервера go dynamici c или на стороне клиента javascript, но это все еще бесполезные сложности .

********** Home *******************
Last posts              *  TAGS
                        *  - tag 1
(maybe some pagination) *  - tag 2
                        *        

Метка страницы

********** Tag : tag 1 *************
Last posts for Tag 1    *  TAGS
                        *  - tag 1
(maybe some pagination) *  - tag 2
                        *

Страница публикации

********** Post page ***************
Post content              *  TAGS
Author, Date, Tag : tag 1 *  - tag 1
                          *  - tag 2
Post content              *
***************************        
Post tagged : tag 1       *
  - post 1                *
  - ...                   *

И вы сделали простое решение, понятное любому, без лишних сложностей.

...