我在 Windows 上使用 Sphinx。
我的大部分文档都是针对普通用户的,但有些子页面的内容仅供管理员使用。所以我想构建我的文档的两个版本:一个完整的版本,以及一个不包括“管理”页面的第二个版本。
我exclude_patterns
在构建配置中使用了它。
到目前为止,它有效。当我将其放入文件中时,将忽略名称包含“admin”的每个子文件夹中的每个conf.py
文件:
exclude_patterns = ['**/*admin*']
问题是我想运行一次构建以获得两个版本。
我现在要做的是运行make.bat
两次并在每次运行时提供不同的参数。
根据文档,我可以通过设置BUILDDIR
和SPHINXOPTS
变量来实现这一点。
所以现在我有一个build.bat
看起来像这样的:
path=%path%;c:\python27\scripts
rem BUILD ADMIN DOCS
set SPHINXOPTS=
set BUILDDIR=c:\build\admin
call make clean
call make html
rem BUILD USER DOCS
set SPHINXOPTS=-D exclude_patterns=['**/*admin*']
set BUILDDIR=c:\build\user
call make clean
call make html
pause
当我set BUILDDIR=build
从 sphinx 生成的make.bat
文件中删除该行时,两个不同目录中的构建工作。
但是,排除模式不起作用。
上面列出的批处理文件为第二个构建(具有排除模式的那个)输出了这个:
Making output directory...
Running Sphinx v1.1.3
loading translations [de]... done
loading pickled environment... not yet created
Exception occurred:
File "C:\Python27\lib\site-packages\sphinx-1.1.3-py2.7.egg\sphinx\environment.
py", line 495, in find_files
['**/' + d for d in config.exclude_dirnames] +
TypeError: coercing to Unicode: need string or buffer, list found
The full traceback has been saved in c:\users\myusername\appdata\local\temp\sphinx-err-kmihxk.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
Either send bugs to the mailing list at <http://groups.google.com/group/sphinx-dev/>,
or report them in the tracker at <http://bitbucket.org/birkenfeld/sphinx/issues/>.
我究竟做错了什么?命令行中
的语法与文件中的语法不同吗?
或者有没有更好的方法来一步构建两个不同的版本?exclude_patterns
sphinx-build
conf.py