跳转至

设计理念

DocsForge 的诞生源于我们相信文档应该尽可能简单

问题所在

现代文档工具需要太多配置。本应是“编写 Markdown,获得网站”的事情,往往变成了:

  • 配置 10 多个 Markdown 扩展
  • 单独安装主题
  • 逐个添加插件
  • 为数学公式设置 CDN 脚本
  • 为语法高亮配置客户端 JS
  • 排查更新后某处出错的原因

我们的原则

1. 核心功能零配置

你需要的所有功能都无需配置即可工作。

编写 $$...$$ → 渲染数学公式。编写 !!! note → 显示提示框。编写 ```python → 代码高亮。所有 31 个 Markdown 扩展和 7 个插件都会默认加载。

你只需配置想要自定义的部分,而不是为了让某些功能存在。

2. 自包含

执行 pip install docsforge 后,你就拥有了所有内容。

主题、所有插件、所有扩展、KaTeX、字体和 Pygments 都打包在包内。外部资源在构建时获取;读者端不会调用 CDN。支持离线使用。

3. 稳定

十年后,你的文档构建方式仍然相同。

因为所有内容都已打包在包中,固定包版本就固定了整个工具链。没有传递依赖带来的意外。

4. Material 品质

DocsForge 是更简单的 Material for MkDocs。

我们没有重新发明主题。我们采用了世界上最流行的文档主题,并让它无需配置即可工作。你获得相同的专业外观、相同的响应式布局、相同的深色模式——只是省去了配置步骤。

我们移除了什么

功能移除原因
typeset用户可以直接使用 Unicode
optimize需要外部 pngquant 二进制文件
social需要 Pillow + CairoSVG
projects小众的多项目功能
offlineprivacy 插件已覆盖大部分使用场景
group插件编排器(小众)

我们改变了什么

之前(Material/MkDocs)之后(DocsForge)
配置文件 mkdocs.ymldocsforge.yml
通过 mkdocs.themes 设置主题docsforge.themes
手动列出所有扩展默认加载 31 个
手动列出所有插件默认加载 7 个
extra_javascript 引入 KaTeXKaTeX 已内置,零配置
客户端 JS 高亮构建时使用 Pygments

我们的目标

pip install docsforge,编写 Markdown,完成。