Sphinx Doc - 在为 HTML 构建时如何渲染动画 GIF 而在为 latexpdf 构建时如何渲染 PNG?

Rob*_*lle 2 restructuredtext python-sphinx

正如标题所述,我正在使用 sphinx-doc,当构建输出为 latexpdf 时,我真的想有条件地呈现静态 PNG,而为 Web 构建时,我真的想有条件地呈现动画 GIF。

理想情况下,能够以某种方式在 rst 文件本身中执行此操作会很好......语义上是:

if builder == html: .. image: blah blah elif builder == latexpdf: .. image: blah blah

Ste*_*rcy 6

来自图像Sphinx 文档

Sphinx 通过允许扩展名使用星号来扩展标准 docutils 行为:

.. image:: gnu.*
Run Code Online (Sandbox Code Playgroud)

Sphinx 然后搜索与提供的模式匹配的所有图像并确定它们的类型。然后每个构建器从这些候选图像中选择最佳图像。例如,如果文件名gnu.*是给出两个文件gnu.pdf,并gnu.png在源代码树中存在,乳胶建设者会选择前者,而HTML生成器会选择后者。支持的图像类型和选择优先级在可用构建器中定义。

要为给定的构建器自定义“最佳图像”顺序,请编辑您conf.pyStandaloneHTMLBuilder使用supported_image_types您喜欢的顺序覆盖该类。

from sphinx.builders.html import StandaloneHTMLBuilder
StandaloneHTMLBuilder.supported_image_types = [
    'image/svg+xml',
    'image/gif',
    'image/png',
    'image/jpeg'
]
Run Code Online (Sandbox Code Playgroud)