有一个ifconfig
sphinx扩展 - 它允许条件包含内容。我正在寻找一种有条件地包含扩展的方法。我最好的尝试只是为-D
提供sphinx-build
选项的扩展程序列表:
sphinx-build -b singlehtml -d _build/doctrees -D html_theme=empty -D "extensions=['sphinx.ext.autodoc', 'sphinx.ext.viewcode', 'sphinx.ext.numfig', 'sphinx.ext.ifconfig', 'cloud_sptheme.ext.table_styling', 'sphinx.ext.htmlmath']" . _build/wkA
但它不起作用。
问题是有条件地包含sphinx.ext.htmlmath
或sphinxcontrib.mathml
。
答案 0 :(得分:4)
使用-t <tag>
http://sphinx-doc.org/invocation.html#cmdoption-sphinx-build-t
e.g。像这样调用狮身人面像(见-t use_htmlmath
):
sphinx-build -b singlehtml -d _build/doctrees \
-D html_theme=empty -t use_htmlmath . _build/wkA
将此代码放在conf.py
if tags.has('use_htmlmath'):
# use supplied =t use_htmlmath
extensions.append('sphinx.ext.htmlmath')
else:
#fall back
extensions.append('sphinxcontrib-mathml')
答案 1 :(得分:1)
conf.py
是一个python模块,extensions
是一个列表,因此您只需根据条件将扩展名附加到extensions
:
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest']
my_condition = 1
if my_condition == 1:
extensions.append('sphinx.ext.htmlmath')
elif my_condition == 2:
extensions.append('sphinxcontrib-mathml')
elif my_condition == 3:
extensions.append('sphinx.ext.mathjax')
else:
print "Didn't found a suitable extension"
但是,您必须在构建过程开始之前了解您的情况。