- 日期可信: Meta、Git 历史、文件 Mtime 三级回退。git 日志只扫一遍,跟随重命名,移动过的文章保留原始日期
- 列表页自动排除: blog 插件生成的首页、归档、分类、分页按页面类型识别,改
blog_dir和各种*_url_format都不会失效,多个 blog 实例也一样 - 摘要不是垃圾: 从渲染后的 HTML 提取,跳过代码块、标题、表格和主题注入的锚点,不会把一整份配置文件塞进
<description> - guid 稳定: 用文件首次提交的 git blob 哈希,编辑和重命名都不会让订阅者收到重复通知
- 多语言: 配合 mkdocs-static-i18n,每种语言一份 feed,
<language>和rel="self"各自正确 - serve 不污染:
mkdocs serve改写site_url时,feed 里仍然是你配置的正式地址 - 配置克制: 一共 12 个选项,能从 MkDocs 和 Material 已有配置里读出来的一律不重复要求
安装和接入方式见 部署说明。其中包含全部配置项、日期与时区规则、收录逻辑等说明。
rss 这个入口点已经被 mkdocs-rss-plugin 占了,同时装会冲突。
更麻烦的是 Material 的 base.html:只要检测到有插件叫 rss,它就往每个页面的 <head> 里塞两行写死的链接,指向那个插件的文件名。叫 rss 就意味着入口点冲突加上每个页面两条死链。用 feed 两个问题都没有,插件注入自己那条正确的。
| 版本 | 说明 | |
|---|---|---|
| Python | 3.9 – 3.14 | 每个版本都跑过完整测试 |
| MkDocs | 1.5+ | 1.4 及更早不支持 |
| Material for MkDocs | 9.2+ | 可选。9.2 是 blog 插件进入社区版的版本 |
| materialx | 10.0+ | 可选 |
Material 不是必需依赖,插件不 import 它,只在运行时识别 blog 页面类型。不用 Material 同样能跑。