使Sphinx检测辅助配置/模板文件的更改

时间:2017-05-11 04:40:59

标签: python configuration python-sphinx

我使用Sphinx(v1.4.9,在Windows 7上使用Python 3.5.1,64位)编写启用了MathJax的文档集。我想定义自定义LaTeX命令来清理我的源代码,因此我通过添加_templates\layout.html实现了this approach

{% extends "!layout.html" %}
{% set script_files = script_files + ["_static/mjconf.js"] %}

并在_static\mjconf.js中定义自定义命令:

MathJax.Hub.Config({
  TeX: {
    Macros: {
      dsetarr: ['{\\small \\textsf{#1 Array } \\mathsf{(#2)} }', 2],
      dsettype: ['{\\small \\textsf{#1}}', 1],
      mtt: ['{\\texttt{#1}}' ,1],
      sgn: ['{\\mathrm{sgn}#1}', 1]
    }
  }
});

这一切都很有效。

然而 ,每当我编辑mjconf.js添加新命令或修改现有命令时,Sphinx都不会识别配置已更改因此,简单的make html不会像编辑conf.py后那样重建文档。我必须在make clean之前make html才能看到更改对这些自定义MathJax命令的影响。

如何通过重建整个文档集来配置Sphinx对已编辑的mjconf.js作出反应,就像编辑conf.py一样?

2 个答案:

答案 0 :(得分:2)

make html -a,但这不会反映文档中交叉引用的更新。但是,如果您没有交叉引用更新,这将是最快的选择。

如果您有必须更新的交叉引用,还有make html -E

最后有make clean html,删除(清理)构建目录,如果你的makefile有,那么再次构建HTML。

答案 1 :(得分:0)

为了启用make html -E作为recommended by Steve Piercy的调用,我从此更改了make.bat

set BUILDDIR=build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source
set I18NSPHINXOPTS=%SPHINXOPTS% source
if NOT "%PAPER%" == "" (
    set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
    set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
)

到此:

set BUILDDIR=build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% source %2
set I18NSPHINXOPTS=%SPHINXOPTS% source
if NOT "%PAPER%" == "" (
    set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
    set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
)

唯一的变化是将%2追加到初始化%ALLSPHINXOPTS%的行。