Условно включить расширения?
Есть ifconfig
расширение сфинкса - и оно позволяет условно включать контент. Я ищу способ условно включить расширения. Моя лучшая попытка - дать список расширений с -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
,
2 ответа
Решение
Использование -t <tag>
http://sphinx-doc.org/invocation.html
например, вызвать Сфинкс, как это (см. -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')
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"
Однако вы должны знать свое состояние до начала процесса сборки.