有没有办法让 sphinx 调用脚本或可执行文件作为预构建任务?
Is there a way to have sphinx call a script or executable as a pre build task?
我正在尝试使用呼吸将 doxygen 和 sphinx 拼接在一起。
breathe 需要你先生成 doxygen xml 输出:https://breathe.readthedocs.io/en/latest/quickstart.html
我不想在单独的步骤中执行此操作。我可以让 sphinx-build
在构建时为我执行 doxygen
吗?我只需要它首先使用一些参数 运行 这个命令。这可能无需编写自定义 sphinx 插件吗?
编辑
这个有效
# Need to sleep because sometimes doxygen doesnt finish writing files before sphinx runs
cwd = os.path.dirname(os.path.realpath(__file__))
os.system('doxygen')
time.sleep(3)
当然,Sphinx 会在开始文档构建过程之前执行您添加到其配置文件 conf.py
中的任何 Python 代码。
From the Sphinx documentation:
The configuration file is executed as Python code at build time (using importlib.import_module()
, and with the current directory set to its containing directory), and therefore can execute arbitrarily complex code. Sphinx then reads simple names from the file’s namespace as its configuration.
这意味着 pre-build 任务可以简单地由 运行 外部程序(例如您的情况下的 Doxygen)作为 conf.py
.
中任何地方的子进程来实现
我正在尝试使用呼吸将 doxygen 和 sphinx 拼接在一起。
breathe 需要你先生成 doxygen xml 输出:https://breathe.readthedocs.io/en/latest/quickstart.html
我不想在单独的步骤中执行此操作。我可以让 sphinx-build
在构建时为我执行 doxygen
吗?我只需要它首先使用一些参数 运行 这个命令。这可能无需编写自定义 sphinx 插件吗?
编辑
这个有效
# Need to sleep because sometimes doxygen doesnt finish writing files before sphinx runs
cwd = os.path.dirname(os.path.realpath(__file__))
os.system('doxygen')
time.sleep(3)
当然,Sphinx 会在开始文档构建过程之前执行您添加到其配置文件 conf.py
中的任何 Python 代码。
From the Sphinx documentation:
The configuration file is executed as Python code at build time (using
importlib.import_module()
, and with the current directory set to its containing directory), and therefore can execute arbitrarily complex code. Sphinx then reads simple names from the file’s namespace as its configuration.
这意味着 pre-build 任务可以简单地由 运行 外部程序(例如您的情况下的 Doxygen)作为 conf.py
.