Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature]: 文章侧边栏增加系列文章 #1298

Closed
learnerLj opened this issue May 31, 2023 · 4 comments
Closed

[Feature]: 文章侧边栏增加系列文章 #1298

learnerLj opened this issue May 31, 2023 · 4 comments
Labels
enhancement New feature or request Plan Added in future versions

Comments

@learnerLj
Copy link

想要的功能 | What feature do you want?

教程的侧边栏中有个文档系列,我觉得是非常好的例子。但是我却没有发现应该如何设置,而且这样是全局的,不是很适应一般的情况。
image
比如有很多个文章系列,如果在文章的 Post Front-matter 里,指定了同一个系列。那么在这些文章的侧边栏,增加一个系列文章的目录,按照时间排序即可。我觉得这样会非常实用,因为讲些复杂的技术,或者系统的学习,往往需要多篇文章。如果能够通过侧边栏展示,那么可以很方便引导读者。

可能还有个细节可以注意,当文章拉到最后的时候,侧边栏的系列列表就会显示。这样读完还想深入的人,可以方便点击这个系列下一篇文章。

@jerryc127 jerryc127 added Plan Added in future versions enhancement New feature or request labels Jun 5, 2023
@nirvana6
Copy link

nirvana6 commented Jun 7, 2023

附议。

我觉得一个可能的方式是:

  1. 首先,为某个系列专题,提供一个接口(interface);
  2. 然后,在撰写该系列专题的某篇文章时,插入该interface。
  3. 最后,渲染阶段。只要某篇文章插入了该interface,在渲染时,就能自动汇聚包含该interface的所有文章。

    类似于在写markdown时,在文档末尾插入 #toc,就可以自动生成Table of Content.(如果我没记错的话,Pandoc是这么处理markdown的)。

个人建议,仅供参考。

@nirvana6
Copy link

nirvana6 commented Jun 8, 2023

我现在的方式是:

  1. 首先,给系列文章添加一个专用标签,譬如该链接:安装 ElasticStack 全套件(2. 实验),我给它添加的tag是多源异构信息

  2. 点击标签多源异构信息,得到页面如下:

image
  1. 给该标签的每篇文章,以超链接的形式,手动添加该系列文章的汇总列表。譬如,打开网页Elastic 中文分词的设置及使用(3. 工程化),可以看到系列文章列表如下图方式:
image

分析与建议

我这种方式比较笨,如果能有一个自动汇总、自动更新系列文章列表的方法就太好了。

而且,我们需要为系列文章单独设计一个功能,因为,给每个系列文章单独编制tag是一个非常不自然的方式,原因如下: 系列文章的颗粒度,应该比分类(categories)小、比 标签 (tag)更大(或者tag应该比系列文章更灵活)。如果简单地给每个系列文章,单独设置一个独特的tag,会把系列文章标签(tag)的使用逻辑弄得混乱不堪。

我设想的一个可能的方式是:在yml的meta中(如下图所示):

  1. 单独给出一个要素booklet
  2. booklet赋值(此处是“将ElasticStack用于多源异构信息的整合”),
  3. booklet的值为interface(interface的概念渊源),凡是包含该interface的文章,均会被自动汇总为系列文章
  4. 在该系列文章的一级标题,自动生成该系列文章的列表(点击该链接,查看示意图)。
image

@nirvana6
Copy link

nirvana6 commented Jun 18, 2023

我今天找到了一个hexo插件:hexo-post-series 。根据作者的描述,跟我上述的想法差不多。推荐给你们,看看是否用得着。 @jerryc127 @learnerLj

自动生成“系列文章”的列表如下图中红圈所示(蓝圈是我上文手动输入的系列文章列表):

image

最终效果可以参考这里:Elastic 中文分词的设置及使用(3. 工程化) .

这个撰写系列文章的插件非常有用,建议可以集成到咱们 hexo-theme-butterfly中。

避免踩坑

hexo-post-series中提到的配置应该放在_config.yml中、而不是_config.butterfly.yml中(否则会报错:找不到相关变量)。

下一步打算

我觉得系列文章应该用ordered list,而不是unordered list。hexo-post-series的插件作者给出了解决方法(就是自定义样式表)。但是我一点JavaScript的基础都没有,刚刚读插件作者的代码都是连猜带蒙——慢慢地琢磨吧。

@jerryc127
Copy link
Owner

c67b430

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Plan Added in future versions
Projects
None yet
Development

No branches or pull requests

3 participants