归档工具已使用 Codex(2026 年 5 月)更新
将完整的 Discourse 站点保存为静态版本似乎相当棘手。根据 Jeff Atwood 的 这篇帖子,这「比你想的要难得多」。Discourse 团队似乎也未将此列为优先事项,这一点完全可以理解。
不过,就我而言,我发现自己确实需要一种方法来生成 Discourse 站点的基本静态 HTML版本。多年来,我一直将 Discourse 用作大学数学课程的教学讨论板,因此每隔几个月,我就会让一两个站点退役,并新建一两个站点。显然,那些即将退役站点上的讨论具有价值,因此我迫切需要一种方法来保存它们。最终,我决定自己开发一个工具。
基本思路很简单:利用 Discourse API 抓取站点内容,获取每篇帖子的渲染后版本,并将其转换为 HTML。该工具主要满足我作为一名大学数学教授的需求,我使用小型 Discourse 论坛来支持数学课程。因此,数学内容(如 $f(x)=e^{-x^2}$)应自动使用 MathJax V4 进行排版,且标记为 sage 的代码块将被转换为可交互的 Sage Cells。
如果您感兴趣,可以查看以下内容:
- Discourse Meta 的一小部分,
- 我的《机器学习数学》课程 论坛,和/或
- GitHub 仓库。
说明
此次归档工具的更新主要基于 Codex 完成。