5

有一个ifconfigsphinx 扩展 - 它允许有条件地包含content。我正在寻找一种有条件地包含扩展的方法。我最好的尝试就是提供一个扩展列表,其中包含以下-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.htmlmathor sphinxcontrib.mathml

4

2 回答 2

4

使用-t <tag> http://sphinx-doc.org/invocation.html#cmdoption-sphinx-build-t

例如像这样调用 sphinx(参见-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')
于 2013-06-09T18:05:17.987 回答
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"

但是,您必须在构建过程开始之前了解您的状况。

于 2013-06-08T19:37:07.383 回答