Skip to content
MuPRO Knowledge

文档

文档是任何软件开发流程的重要组成部分。它有助于理解软件的工作原理,并提供有关如何有效使用和管理软件的重要信息。在本指南中,我们将介绍如何使用 Sphinx 和 MyST-Parser 创建全面、可维护的文档,以及如何设置 GitHub 工作流程,以便在 GitHub Pages 或其他静态网站托管服务上将文档发布为静态网站。

Sphinx 和 MyST-Parser 简介

Sphinx 是一种强大的文档生成器,可将 reStructuredText 和 Markdown 文件转换成各种格式,包括 HTML 网站和用于 PDF 的 LaTeX。由于其可扩展性和易用性,它成为 Python 社区和其他开源社区的热门选择。

MyST-Parser 是一个 Sphinx 解析器插件,可让您完全使用 markdown 编写 Sphinx 文档。MyST 是 Markedly Structured Text(标记结构文本)的缩写,它是 CommonMark Markdown 规范的扩展,包含了 Sphinx 角色和指令的语法。

设置 Sphinx 和 MyST-Parser

开始之前,请确保您的计算机上安装了 Python 和 pip(Python 的软件包安装程序)。

1.安装 Sphinx 和 MyST-Parser: 在终端运行以下命令:

pip install sphinx
pip install myst-parser

2.设置 Sphinx 项目:
为你的项目创建一个新目录(用你想要的项目名称替换 “your_project”)并导航进入,然后运行 sphinx-quickstart 初始化你的 Sphinx 项目:

mkdir your_project
cd your_project
sphinx-quickstart

3.启用 MyST-Parser:
在 conf.py 文件(位于 “source” 目录)中的扩展名列表中添加以下一行:

extensions = ["myst_parser"]

使用 Sphinx 和 MyST-Parser 编写文档

设置好 Sphinx 和 MyST-Parser 后,就可以开始编写文档了。在源代码目录中创建一个新的 .md 文件,然后用 markdown 编写文档。

Sphinx 支持特殊指令,你可以用它们在文档中加入额外的信息和结构。例如,“..note::” 指令可创建一个注释部分,而 “..code-block::python” 则可创建一个代码块。通过 MyST-Parser,你可以在标记符文件中直接使用这些指令。你还可以使用标记符链接引用其他页面,Sphinx 会自动将它们转换为正确的格式。

构建和查看文档

要创建文档,请导航至项目目录并运行:“make html”。
Sphinx 将在 “build/html” 目录下创建 HTML 版本的文档。你可以在浏览器中打开 “index.html” 查看文档。

要创建 LaTeX PDF 版本,请使用:“make latexpdf”。PDF 文件将放在 “build/latex” 目录下。

部署

阅读文档

Read the Docs 是一个专为托管文档而设计的平台。以下是在 Read the Docs 上部署 Sphinx 文档的方法:

1.如果尚未注册,请注册 Read the Docs 账户。
2.登录后,点击 “Import a Project”。
3.然后,你可以连接你的 GitHub 账户(或 Bitbucket 或 GitLab)。系统会要求你提供访问仓库的权限。
4.账户连接成功后,你会看到一个仓库列表。点击仓库旁边的 “Import” 按钮。
5.现在,您的文档应该会自动生成。您可以访问 https://<your_project_name>.readthedocs.io 查看。
6.默认情况下,每次提交时,Read the Docs 都会从版本库的主分支构建文档。您可以在项目控制面板上更改此设置和其他设置。

设置 GitHub 工作流程

对于 MuPRO 而言,由于我们的版本库是私有的,因此无法使用 Github 页面服务,所以我们选择部署到免费的 Cloudflare 页面。如果你的项目是一个公共仓库,除了阅读文档,也可以考虑使用 Github 页面。

1.设置 GitHub 页面:
在 GitHub 仓库中,进入 “Settings” > “Pages”。选择要部署文档的分支(通常是 “gh-pages” 或 “main” 分支),并将目录设为”/root”。点击 “保存”。

2.创建 GitHub 操作工作流:
在 .github/workflows/main.yml 的版本库中创建一个新文件。在这个文件中,你可以指定一个工作流来构建你的 Sphinx 文档并将其部署到 GitHub 页面。以下是 main.yml 文件的示例:

name: Build and Deploy
on:
  push:
    branches:
      - main
jobs:
  build-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository
        uses: actions/checkout@v2

      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: 3.8

      - name: Install dependencies
        run: |
          pip install sphinx myst-parser

      - name: Build HTML docs
        run: make html
        working-directory: ./docs

      - name: Deploy to GitHub Pages
        uses: JamesIves/[email protected]
        with:
          branch: gh-pages
          folder: ./docs/_build/html

每当推送到 “main” 分支时,就会触发该工作流。它会设置 Python、安装 Sphinx 和 MyST-Parser、构建 HTML 文档,并将生成的 HTML 文件部署到 “gh-pages” 分支。