博客系列文章的展示方法

博客中,经常会遇到需要将一系列相关的文章组织在一起的情况。这样做不仅有助于读者更好地理解文章内容,也方便作者管理自己的文章。然而,直到最近,通常只有一种方式来视觉上表示这些文章属于一个系列,那就是在文章标题中包含系列名称,例如:

“酷系列,第1部分:介绍”

“酷系列,第2部分:实现”

等等。有时候,会记得这样命名文章……有时候则不会。

最近,注意到了一些博客中展示文章系列的不同方式:

Steven van Deursen()在文章顶部,有一个包含系列所有文章链接的框。

1. 在YAMLFront-matter中定义系列

为所有相关文章添加了一个名为series的新变量。示例:

series: "Hugo/Lightbox 图片库"

这个字符串用于确定哪些文章属于同一个系列,因此对于同一系列的所有文章来说,它必须是100%相同的。

2. 在布局文件中添加“系列框”

使用一个单独的布局文件(继承自默认布局)来处理文章。“系列框”的额外代码就放在这个文件中(这样框就只会出现在文章中),以下是它的完整代码:

<div> <h4> 这篇文章是系列的一部分:{{ page.series }} </h4> <ol> {% assign posts = site.posts | where: "series", page.series | sort: "date" %} {% for post in posts %} <li> {% if post.url == page.url %} {{ post.title }} <i> (这篇文章) </i> {% else %} <a href="{{ post.url }}"> {{ post.title }} </a> {% endif %} </li> {% endfor %} </ol> </div> {% endif %}

这里没有什么复杂的:

if page.series

⇒ 只有当当前页面实际上有series变量时,才显示整个块

assign posts = site.posts | where: "series", page.series | sort: "date"

⇒ 加载所有与当前文章系列相同的文章(包括当前文章)

循环它们

如果是当前文章,只显示标题作为文本,并在后面加上“(这篇文章)”

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485