如何在本地构建文档

克隆文档源码到本地

将存储库克隆到本地(默认为 main 分支),确保目录下有 Makefile 文件。

git clone https://github.com/MegEngine/Documentation

注解

为确保正常克隆,请确保本地 Git 已经安装 LFS (Large File Storage) 插件。

设置 MegEngine 路径

根据不同的需求,有两种方式将用于构建文档的 MegEngine 导入当前 Python 环境(任选其一即可):

  • 如果你是框架用户,不需要改动 MegEngine 源码,只需在本地构建和预览文档的内容, 或对进行简单的增删查改,建议安装最新发布的 MegEngine 稳定版 Wheel 包构建文档。 可以直接使用对应的 pip intall 命令 将已经打包好的 MegEngine 安装到当前的 Python 环境中。

  • 如果你是研发人员,需要在指定的 MegEngine 分支源代码上生成对应文档,则需要克隆对应分支进行编译构建。 通过 export PYTHONPATH 的形式来临时指定特定的 MegEngine 源代码路径, 这种方式适合开发者需要同时对源码和文档进行维护的情况。了解如何进行从源码构建。

安装 Sphinx 与 Pydata 主题

MegEngine 文档使用 Sphinx 进行整个网站的构建,请运行下面的指令,安装 Sphinx 和相关依赖:

python3 -m pip install -r requirements.txt

MegEngine 文档对应的 Sphinx 配置文件位于 source/conf.py ,如需修改请参考官方的 Configuration 页面。

通常情况下,你无需对已有配置文件进行任何改动,即可继续进行后面的流程。

注解

Sphinx 在应用配置时将通过执行上面脚本中的 import megengine 来尝试寻找 MegEngine 包路径。 使用 make info 指令,可以看到当前的 MegEngine 路径和构建参数等信息。

  • 使用 pip 安装的路径应该类似于:/.../lib/.../site-packages/megengine

  • 从源码编译构建的路径应该类似于: /.../MegEngine/imperative/python/megengine

接下来我们需要从 MegEngine/pydata-sphinx-theme 安装 Fork 版 PyData 主题:

git clone -b dev git@github.com:MegEngine/pydata-sphinx-theme.git

接着安装修改过的主题包:

python3 -m pip install --editable pydata-sphinx-theme

安装相关软件包

Pandoc 转换工具

nbsphinx 是 Sphinx 的一个插件,可以帮助我们对 .ipynb 格式的 Jupyter Notebook 文件进行解析。

我们在上一小节已经安装好了 nbsphinx, 但 nbsphinx 还需要通过依赖项目 Pandoc 来支持转换 Markdown 格式。

如果你使用的是是 Ubuntu(Debian)操作系统,可以直接使用 apt 命令进行安装 Pandoc:

sudo apt install -y pandoc

如果你使用的是其它操作系统,想要安装 Pandoc,请参考 Pandoc 官方的 Installing 页面。

Graphviz 绘图工具

Graphviz 是非常流行的图形可视化软件,在 MegEngine 文档中经常会用他制作一些可视化图片。

如果你使用的是是 Ubuntu(Debian)操作系统,可以直接使用 apt 命令进行安装 Pandoc:

sudo apt install -y graphviz

如果你使用的是其它操作系统,想要安装 Graphviz,请参考 Graphviz 官方的 Download 页面。

使用 Sphinx 进行文档构建

在文档目录下使用 make html 指令,可根据 BUILDDIR 路径(默认为 build )生成 HTML 文件夹。

在文档目录下使用 make help 指令,可看到对应的帮助信息。

注解

  • Sphinx 支持增量构建,当你对源文件进行了更改并保存,只需再次执行 make html 即可。

  • 如果发现一些页面的元素仍被缓存而没有被更新 ,请尝试先执行 make clean 指令。

  • 阅读 Makefile 文件源代码,可以了解更多细节

文档生成成功后,打开 build/html/index.html 文件便可访问主页。

启动本地 Web 服务器(可选)

如果你有在本地启动 Web 服务器的需求,一种比较简单的方法是使用 Python 自带的 http 模块:

python3 -m http.server 1124 --directory build/html

运行上面的代码,可将本地的 build/html 下的 Web 服务映射到 1124 端口,你也可以选择使用其它 Web 服务器。

如果你的 Python 版本低于 3.7, 将不支持 --directory 参数,请 cd 到对应目录执行上述命令。