1

现在我有一个 Jekyll 站点主题,它允许用户通过选择标签来过滤帖子。如果他们在主页上,它会显示所有帖子,如果他们选择了标签,它只会显示带有该标签的帖子。

选择帖子时,帖子列表和显示帖子内容的标签列表下方会出现一个新视图。但是,当这种情况发生时,Post List 元素内的任何过滤都会消失。

        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        |
                                          |                              |
                                          +------------------------------+

我的问题是,Jekyll 有没有办法显示帖子并Post List根据您到达帖子的方式进行更改?

例如,如果我在Home页面上(没有过滤器),并且我从 unfiltered 中单击帖子Post List,我想查看帖子,同时保持Post List不变(保持未过滤显示所有帖子)。但是,除此之外,如果我单击Tag1标签列表,然后单击现在过滤的帖子Post List,我想在保持Post List不变的情况下查看帖子(继续过滤所有帖子tag1)。请参阅下面的线框以获取视觉解释。

在此处输入图像描述

使用 Jekyll 及其相应的工具(Front Matter、Liquid ...)是否有可能做到这一点?还是我需要某种插件?

任何帮助是极大的赞赏。

4

1 回答 1

2

是的,你可以通过使用生成器插件使用 Jekyll 来做到这一点。但我认为这会给您的导航和内容复制带来不必要的复杂性。

其他解决方案可以是动态服务器端或使用一些 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                *
  - ...                   *

您已经完成了一个任何人都可以理解且没有无用复杂性的简单解决方案。

于 2020-02-25T11:15:08.440 回答