Sphinx 快速入门模板¶
本文旨在帮助那些“想要编写文档并将其添加到 LLVM 文档中”的人快速开始编写文档,并尽可能减少不必要的麻烦。
概述¶
LLVM 文档使用 reStructuredText 编写,这是一种类似于 Markdown 的标记语法(但功能更强大)。LLVM 文档站点本身使用 Sphinx,这是一种最初为 Python 文档编写的文档生成器。
如何使用此模板¶
本文位于 docs/SphinxQuickstartTemplate.rst
。要将其用作模板,请复制并使用文本编辑器打开它。然后,您可以编写您的文档,并将新文章发送到 llvm-commits 进行审查。
要查看本文的 reStructuredText 源文件,请点击右侧侧边栏上的“显示源代码”。
示例章节¶
一篇文章可以包含一个或多个章节(即标题)。章节(如上面的 示例 章节
)有助于为您的文档提供结构。请使用与本文档中相同的装饰(例如 ======
与 ------
)。装饰的长度必须与上方的文本长度相同。对于 Vim 用户,yypVr=
的变体可能很方便。
示例嵌套子章节¶
子章节也可以嵌套在其他子章节之下。有关章节的更多信息,请参阅 Sphinx 的 reStructuredText 入门指南。
文本格式¶
文本可以被强调、加粗或等宽字体
。
要创建新段落,只需插入一个空行。
链接¶
您可以像这样格式化链接 这样。更 复杂的语法 允许您将 .. _`link text`: <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 文档。除了正常的 构建工具 之外,您还需要使用以下命令在 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
文件夹中找到生成的文档。