Sphinx 快速入门模板¶
本文旨在帮助那些“我想编写文档并将其添加到 LLVM 的文档中”的人,让他们能够尽快开始编写文档,并尽可能减少不必要的麻烦。
概述¶
LLVM 文档使用 reStructuredText 编写,这是一种类似于 markdown 的标记语法(但功能更强大)。LLVM 文档站点本身使用 Sphinx,这是一个最初为 Python 文档编写的文档生成器。
如何使用此模板¶
本文位于 docs/SphinxQuickstartTemplate.rst
中。要将其用作模板,请复制一份并在文本编辑器中打开。然后您可以编写您的文档,并将新文章发送到 llvm-commits 进行审阅。
要查看本文的 restructuredText 源文件,请单击右侧边栏上的 显示源代码。
示例章节¶
一篇文章可以包含一个或多个章节(即,标题)。章节(如上面的 示例章节
)有助于构建文档的结构。使用与本文档中使用的相同类型的装饰(例如,======
与 ------
)。装饰的长度必须与上面的文本相同。对于 Vim 用户,yypVr=
的变体可能很方便。
示例嵌套小节¶
小节也可以嵌套在其他小节之下。有关章节的更多信息,请参阅 Sphinx 的 reStructuredText 入门。
文本格式化¶
文本可以被强调、加粗或 等宽字体
。
要创建新段落,只需插入一个空行。
链接¶
您可以像 这样 格式化链接。更复杂的语法 允许您将 .. _`链接文本`: <URL>
块放在文档中的几乎任何其他位置。这在链接到特别长的 URL 时非常有用。
列表¶
restructuredText 允许您创建有序列表……
以
#.
开头的列表将自动编号。这是第二个列表元素。
使用缩进创建嵌套列表。
……以及无序列表
内容。
更深层的内容。
更多内容。
代码块¶
您可以像这样创建代码块
int main() {
return 0;
}
对于 shell 会话,请使用 console
代码块(一些现有文档使用 bash
)
$ echo "Goodbye cruel world!"
$ rm -rf /
如果您需要显示 LLVM IR,请使用 llvm
代码块。
define i32 @test1() {
entry:
ret i32 0
}
您可能需要的其他一些常见代码块是 c
、 objc
、 make
和 cmake
。如果您需要超出此范围的内容,可以查看 完整列表 的受支持代码块。
但是,不要浪费时间摆弄语法高亮,而应该添加有意义的内容。如有疑问,请显示没有语法高亮的预格式化文本,如下所示
.
+:.
..:: ::
.++:+:: ::+:.:.
.:+ :
::.::..:: .+.
..:+ :: :
......+:. ..
:++. .. :
.+:::+:: :
.. . .+ ::
+.: .::+.
...+. .: .
.++:..
...
生成文档¶
如果您想查看 HTML 文档的外观,可以从本地源生成 HTML 文档。除了正常的 构建工具 之外,您还需要在 llvm-project
检出中,使用以下命令安装 Sphinx 和必要的扩展
pip install --user -r ./llvm/docs/requirements.txt
然后运行 cmake 以在 llvm-project
检出中构建文档
mkdir build
cd build
cmake -DLLVM_ENABLE_SPHINX=On ../llvm
cmake --build . --target docs-llvm-html
如果您已经设置了 Cmake 构建并希望重用它,只需设置 CMake 变量 LLVM_ENABLE_SPHINX=On
。
之后,您可以在 build/docs/html
文件夹中找到生成的文档。