---
title: 目录树侧栏与 RSS
desc: 分组上树、侧栏高亮，以及全文 RSS。
date: "2026-10-31"
order: 2
tags: [MDX, RSS]
---

## 左栏的树

这个系列左边的目录树不用手工维护，数据就是目录结构本身：

- 章节（mdx）是叶子链接；
- `section` 分组是分组标题，可以嵌套——"框架机制""发布管线"就是两个分组；
- 同级按 frontmatter 的 `order` 混排，`SeriesTree` 组件递归渲染，当前页高亮。

桌面端侧栏 sticky 跟着滚动，移动端整棵树堆到正文上方。你现在在本页左侧看到
的就是它。

## prose 排版

mdx 渲染出来是裸 HTML，得有人管排版。`global.css` 里一套 `.prose` 样式接手：
标题下加虚线，引用块左边一条印章红，代码块用 Shiki 的 vitesse-light 配色。
文章页能和全站的纸面风格对上，靠的就是这一层。

## 订阅源

`rss.xml` 也是构建期的产物：`src/pages/rss.xml.js` 从登记表拿全部已发布文章，
生成标题、摘要、日期、分类，draft 天然不进。

后来又补了一个构建后处理的小脚本：把每篇文章渲染出的 `<article>` 整块注进
`content:encoded`。原因是 Astro 7 的容器渲染不了 MDX 编译产物，只能在构建
完成后从产出的 HTML 里取。效果是订阅器里能直接读全文，不用点回网页。
