【问题标题】:Substitution of image with absolute path in Sphinx在 Sphinx 中用绝对路径替换图像
【发布时间】:2023-03-20 23:55:01
【问题描述】:

我正在尝试创建一个可以跨越不同toctrees 的替代品。 在index.rst:

.. |logo| image:: _images/logo.jpg

EXAMPLE TITLE
==============
.. toctree::
   :glob:
   
   subfolder/subindex.rst

subfolder/subindex.rst:

THE LOGO
=========
|logo|

然而这并没有奏效。我尝试在 `conf.py:

中使用 Epilog/prolog
rst_epilog = """
.. |logo| image:: _images/logo.jpg
"""

我还尝试在与index.rst 相同的文件夹中创建global.rst 并将其包含在两者中(.. include:: global.rst),但subfolder/subindex.rst 的路径变成了相对路径,抱怨找不到包含在subfolder/global.rst

如何在.rst 文件中实现一个(n)(优雅的)“全局”替换?

【问题讨论】:

  • epilog/prolog 仅支持字符串替换,不支持解释。老实说,在任何需要的地方做.. image:: /_images/logo.jpg(注意根相对路径)会更容易,而不是试图摆弄包含或替换。
  • 我怀疑你是对的,但我问了这个问题以确保。这将是一件痛苦的事情,因为有这么多带有 rst 文件的子文件夹,并且拥有包含和图像的全局路径会非常好。
  • 没有“全局路径”,但有根相对路径。使用它。

标签: python python-sphinx substitution restructuredtext


【解决方案1】:

我假设您的目录中已经有一个名为 images 的文件夹。因此,您不应直接指向 sphinx 编译器创建的 _images 文件夹。

因此,您必须具有以下文件管理器:

index.rst

EXAMPLE TITLE
==============

.. toctree::
   :glob: 

   subfolder/subindex.rst

子文件夹/subindex.rst

THE LOGO
=========
|logo|

conf.py

rst_prolog += '''
.. |logo| image:: /images/apluslogo.png
'''

【讨论】:

  • 我有自己的文件夹,我称之为_images,因为我认为它是 Sphinx 标准的。但是,您的回答告诉了我我做错了什么。我做了:rst_epilog = """ .. |logo| image:: _images/logo.jpg""" 但是,我应该做:rst_epilog = """ .. |logo| image:: /_images/logo.jpg """
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 2012-01-10
相关资源
最近更新 更多