如何将部分目录中的第一个文件生成到 Sphinx 中的 HTML 文件中?

How can I generate rst file in parts of directory into HTML file in Sphinx?

显示我的 Sphinx 项目的目录结构。

cd myproject/source
tree -d
.
├── django
├── document
├── excel
├── github
├── _images
├── _templates
└── vim

每次执行命令make html时,django, document, excel, github, vim中的所有*.rst个文件都会生成到*.html中。现在我只想将 *.rst 文件的一部分生成到 *.html 中,也就是说,我想保留 githubvim 中的所有 *.rst 文件未制作,如何执行make html命令?

注意查看 make 文件内部,它只是一个生成的批处理或 shell 脚本(取决于 OS)调用 sphinx-build 为您设置参数默认值。

set SPHINXBUILD=sphinx-build
set BUILDDIR=build
set SOURCEDIR=source

(...)

%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%

等同于文档中的签名:

sphinx-build [options] <sourcedir> <outputdir> [filenames …]

say, I want to keep all the *.rst file in github and vim un-maked

实现您想要的最简单方法是排除您不想构建的目录:

sphinx-build -b html ./source ./build -D exclude-patterns=github/*,vim/*

-D setting=value 选项相当于通过命令行传递通常在 conf.py 中找到的 exclude-patterns=[]

how to execute the make html command?

如果您想使用 make 文件,您还可以使用 SPHINXOPTS 将上述参数传递给 make htmlSome users got it to work,但是我没能在 Windows。

一个更复杂的选项可能是必要的,这取决于您想要如何布局文档,即为每个源目录都有一个单独的 Sphinx 项目,有自己的 make.batconf.pyindex.rst。如果您有一个 index.rst 默认情况下链接到排除目录中的 .rst 个文件,您可能必须 conditionally exclude parts of index.rst.

注意 -c and -C 选项。