博客专栏通用设计方案

1. 目标

把“单专栏硬编码”改为“多专栏通用机制”,实现以下效果:

  1. 新增专栏时不改模板代码。
  2. 只通过文章 front matter 字段,就能自动归档到对应专栏。
  3. 每篇专栏文章自动显示目录、进度、上一篇/下一篇导航。
  4. 首页与专栏页自动展示所有专栏。

2. 已落地的通用机制

当前站点已实现:

相关文件:


3. 写新专栏时的统一标准(核心)

以后你写任何专栏文章,只要在 front matter 里维护以下 3 个字段:

series: 云原生网络专栏
series_id: cloud-native-network
series_order: 1

字段说明:

注意:同一专栏内,series_id 必须完全一致;series_order 不能重复。


4. 新增一个“全新专栏”的步骤

以“可观测性专栏”为例:

  1. 新文章 front matter 写:
    • series: 可观测性专栏
    • series_id: observability
    • series_order: 1
  2. 第二篇写 series_order: 2,依次递增。
  3. 发布后自动生效:
    • /series/ 自动出现这个新专栏
    • 首页自动出现这个新专栏
    • 专栏内文章文末自动串联导航

不需要新增页面,不需要改模板,不需要改导航代码。


5. 推荐 front matter 模板(可直接复用)

---
categories: [network]
layout: single
title: 文章标题
published: true

series: 云原生网络专栏
series_id: cloud-native-network
series_order: 6
---

6. 命名与排序规范(建议)

6.1 series_id 命名规范

示例:

6.2 series_order 规范


7. 维护建议

  1. 每次发文前检查 series_id 是否拼写一致。
  2. 每次发文后在本地预览:
    • 专栏总览页是否出现新文章
    • 文末导航顺序是否正确
  3. 若文章暂不公开,published: false 时不会进入读者视图(发布时改回 true)。

8. 未来可扩展点(后续可选)

  1. 给专栏增加封面图、简介、难度等级(可加 _data/series.yml)。
  2. 给专栏页增加“最近更新时间”排序。
  3. 首页只展示前 N 个重点专栏,减少视觉拥挤。

9. 一句话总结

以后写专栏只需要遵守统一 front matter 标准:
series + series_id + series_order
站点会自动完成聚合、目录与上下篇导航,无需再改模板代码。