跳过正文
Background Image
  1. Posts/

从零配置 Sphinx + ReadTheDocs:快速部署自动化文档

·936 字·2 分钟· ·
沈显鹏
作者
沈显鹏
目录

在日常的开源项目或团队协作中,我们经常会需要一个易于维护、可自动部署的文档系统。

最近在维护自己的开源项目时,我尝试用 Sphinx 来生成文档,并通过 ReadTheDocs 实现了自动构建和托管,整体体验还不错。

记录一下配置过程,希望能帮到有类似需求的朋友。

为什么选择 Sphinx 和 ReadTheDocs
#

  • Sphinx 是一个用 Python 编写的文档生成工具,最初为 Python 官方文档设计,支持 reStructuredText 和 Markdown(通过插件)。
  • ReadTheDocs 是一个文档托管平台,可以自动从你的 Git 仓库拉取代码、构建并发布文档,支持 webhook 自动触发。

这两个工具的组合非常适合持续维护和更新文档,而且社区成熟、资料丰富。

基础配置步骤
#

以下是一个实际项目中配置的完整流程。

1. 安装 Sphinx 和相关依赖
#

推荐使用虚拟环境,然后安装:

# docs/requirements.txt
sphinx==5.3.0
sphinx_rtd_theme==1.1.1

# 如果你需要支持 Markdown,可以添加:
myst_parser==0.18.1

安装依赖:

pip install -r docs/requirements.txt

说明:

  • sphinx-rtd-theme 是 ReadTheDocs 使用的默认主题
  • myst-parser 用于支持 Markdown

2. 初始化文档项目结构
#

在项目根目录执行:

sphinx-quickstart docs

建议将 sourcebuild 目录分开

执行完后,docs 目录下会生成 conf.pyindex.rst 等文件。

3. 修改 conf.py 配置文件
#

几个关键设置如下:

# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
from datetime import datetime

project = "GitStats"
author = "Xianpeng Shen"
copyright = f"{datetime.now().year}, {author}"
html_theme = "sphinx_rtd_theme"

如果你需要支持 Markdown,需要在 conf.py 中添加:

extensions = [
    'myst_parser',  # 支持 Markdown
]

配置 ReadTheDocs 自动构建
#

只要项目结构清晰,ReadTheDocs 基本可以一键跑通。

1. 导入项目到 ReadTheDocs
#

  • 登录 https://readthedocs.org/
  • 点击 “Import a Project”,选择你的 GitHub 或 GitLab 仓库
  • 确保仓库中包含 docs/conf.py,系统会自动识别

2. 添加 .readthedocs.yml 配置文件
#

为了更好地控制构建过程,建议在项目根目录添加 .readthedocs.yml

# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
version: 2

build:
  os: ubuntu-24.04
  tools:
    python: "3.12"

sphinx:
   configuration: docs/source/conf.py

python:
   install:
   - requirements: docs/requirements.txt

配置完成后,每次提交 Pull Request 时,ReadTheDocs 都会自动拉取并构建最新文档供你预览,确保文档如你所期望的那样。

最终效果
#

构建完成后,ReadTheDocs 会提供一个类似 https://your-project.readthedocs.io/ 的文档地址,方便团队协作和用户查阅。

我目前的开源项目也采用了这套方案,例如:GitStats 文档

GitStats 文档

小结
#

只要做好上述的配置,几乎可以实现“写完文档,提交即上线”,大大提高了文档维护的效率。

如果你正在写开源项目文档,或者想给团队项目(尤其是 Python 项目)补上文档系统,不妨试一试 Sphinx + ReadTheDocs。


转载本站文章请注明作者和出处,请勿用于任何商业用途。欢迎关注公众号「DevOps攻城狮」

相关文章

Markdown 不香了吗?为什么越来越多 Python 项目用 RST?
·1039 字·3 分钟
Markdown 和 reStructuredText(RST)是两种常用的标记语言。本文对比了它们的优缺点,并分享了在不同场景下的使用建议。
为什么越来越多的企业用户开始放弃 VMware?
·2381 字·5 分钟
Broadcom 收购 VMware 后,许多企业用户开始寻找替代方案。Nutanix 作为一个超融合基础设施(HCI)解决方案,提供了更低的成本和更简洁的管理界面,是一个不错的选择。
一觉醒来,我的 PR 已经被 Merge 到 CPython 主分支了!
·685 字·2 分钟
在 CPython 的 Issue 区找到一个合适的 PR,修改代码、测试、提交 Pull Request,第二天醒来发现已经被 Merge 到主分支了!这是一个很好的学习过程,也是对开源社区的贡献。
为什么我选择参与 EuroPython 2025 评审?
·1153 字·3 分钟
最近工作之余没怎么贡献代码,主要把时间都用在了评审 EuroPython 2025 (欧洲 Python 2025 大会)的提案上了。
🚀 gitstats 升级来袭:支持 JSON 输出、多平台兼容、代码重构!
·557 字·2 分钟
gitstats 经过两个月的持续改进,现已支持 JSON 输出、代码重构、argparse 替换 getopt,并全面兼容 Windows 和 macOS。欢迎使用和 Star 支持!
如何使用 Jenkins Docker Cloud
·603 字·2 分钟
本文介绍如何使用 Jenkins Docker Cloud 来构建和部署应用,包括配置 Docker 主机以及创建自定义 Docker 镜像。