可以使用“ifconfig”块(reStructuredText)有条件地定义目标

2024-01-29

是否可以有条件地定义target https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#hyperlink-targets在 reStructuredText 文件中使用ifconfig https://www.sphinx-doc.org/en/master/usage/extensions/ifconfig.html?

我在我的狮身人面像中设置了一个变量conf.py我想使用它来有条件地确定文档中目标的 URI:

def setup(app):

    argv = ' '.join(sys.argv)
    if '-b html' in argv:
        app.add_config_value('buildername', 'html', 'env')
    else:
        app.add_config_value('buildername', 'not-html', 'env')

And my index.rst文件包含以下内容:

test link to target1_

.. ifconfig:: buildername == 'html'

  .. _target1: https://example.com/a

上面的工作按预期进行,“target1”成为一个超链接example.com/a

但如果我想真正定义target1根据值有条件地设置为两个选项之一buildername配置变量,然后我有

test link to target1_

.. ifconfig:: buildername == 'html'

  .. _target1: https://example.com/a

.. ifconfig:: buildername != 'html'

  .. _target1: https://example.com/b

上面的输出不仅不起作用example.com/b,但它破坏了第一个链接并且target1现在没有指向任何内容(实际上#id3).

此外,我在我的应用程序中收到以下警告sphinx-build output

user@host:~$ make clean && sphinx-build -b html . _build/html/
...
reading sources... [100%] support                                               
.../index.rst:16: WARNING: Duplicate explicit target name: "target1".
.../index.rst:8: WARNING: Duplicate target name, cannot be used as a unique reference: "target1".
...

是否可以在同一个目标中定义两次.rst文件,这样每个定义都包含在ifconfig指示?


不幸的是,我认为你想要的东西是不可能的。您可以抑制警告(这可能不是一个好主意),或者您可以添加更多标记来通过目标和链接之间的一对一关系来避免警告。

.. ifconfig:: buildername == 'html'

    test link to target1_

.. ifconfig:: buildername == 'html'

    .. _target1: https://example.com/a

.. ifconfig:: buildername != 'html'

    test link to target2_

.. ifconfig:: buildername != 'html'

    .. _target2: https://example.com/b
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可以使用“ifconfig”块(reStructuredText)有条件地定义目标 的相关文章

  • Sphinx Pygments 词法分析器过滤器扩展?

    我有一种类似 Lisp 的语言 我想在 Sphinx 代码片段文档中强调使用 Pygments 我的方法是扩展现有的 CommonLispLexer 以使用 NameHighlightFilter 添加内置名称 但是 它不起作用 所以我一定
  • 如何使用 intersphinx 正确链接到 PyQt5 文档?

    我在尝试链接到时遇到了一些麻烦PyQt5 文档 http pyqt sourceforge net Docs PyQt5 using intersphinx 尝试交叉引用任何QtCore类 例如QThread 没有像我预期的那样工作 我已经
  • 如何强制Sphinx使用Python 3.x解释器

    我尝试为使用 Python 3 x 编写的项目创建文档 Sphinx http sphinx pocoo org index html is the我想使用的工具 并且根据官方网站 http sphinx pocoo org changes
  • 用于多语言 API 的 Doxygen

    我的公司开发了一个用于工程程序的 API 它是用 C 开发的 但我们为以下语言创建了包装器 类似于 VB 的专有语言 MATLAB 和Python 目前 文档是由一堆脚本生成的 要保持 100 的完整性开始变得非常耗时 我想知道是否有一种方
  • 通过序言格式化 csv 表?

    尽我所能 我无法弄清楚如何更改 sphinx 的 pdf 输出中的默认表格格式 我可以编辑 tex 文件或 writer py 源代码 但这两个似乎都是不好的选择 有什么东西可以通过序言来实现这一点吗 取决于您试图通过更改表格格式来完成的任
  • 如何在 Windows 中使用 Sphinx 创建 PDF 文档

    我正在使用 Sphinx 在 Windows 中为我的 Python 项目创建文档 我需要生成 PDF 文档 我发现了很多关于如何在 Linux 中执行此操作的解释 但没有很好的解释如何在 Windows 中执行此操作 据我了解 我需要使用
  • sphinx,重组文本:表格的颜色单元格/行

    有没有办法为 sphinx 中表格中的特定行着色 我尝试使用 role 它与 CSS 文件相关 如中讨论的sphinx restructedtext 为单个单词设置颜色 https stackoverflow com questions 3
  • 将可点击的 SVG 图像插入 Sphinx 文档

    我有 SVG 图像文件 其中有多个节点 每个节点都与 URL 关联 如果我直接在浏览器中打开此文件 我可以单击每个节点 它将打开不同的 URL 但是 当我在 Sphinx 文档中使用这张图片时 它不起作用 图片作为一个整体呈现 所以我需要通
  • Sphinx:autodoc 无法导入模块

    我对狮身人面像有以下问题 我的项目结构是 project api init py rpc py v1 init py model py build source conf py Makefile 在conf py中我有 import os
  • PyCharm 和 reStructuredText (Sphinx) 文档弹出窗口

    让我们想象一下 我想看到一个简单方法的文档字符串弹出窗口PyCharm4 5 社区版 也在 5 0 中尝试过 我在两个文件中都写下了这些文档字符串epytext语法 自 2008 年起不再支持 Epydoc 生成器 并且仅适用于 Pytho
  • 使 viewcode 显示模块源

    我正在尝试使用 Sphinx 用一些 Python 片段制作一本食谱 每个片段都是一个独立的 Python 脚本 并且有一个教程类型的文档 我希望在生成的文档中有一个源链接来显示脚本内容 但viewcode https www sphinx
  • 摆脱 Sphinx 中的“重复标签”警告

    在 Sphinx 中 我收到大量警告 例如 PATH FILENAME LINE WARNING duplicate label LABELNAME other instance in PATH FILENAME 似乎将所有节标题视为 标签
  • 自 1.4.0 版本以来,sphinx_rtd_theme 不再是硬依赖项

    C Users Administrator Desktop item code serv documents api gt 制作 html 运行 Sphinx v1 6 2 加载腌制环境 失败 无法获取属性 WarningStream
  • 在 Sphinx 中的引用中保留内联代码

    在 Sphinx 中 如果我有以下标题声明 somestuff this is code this is not 它呈现如下 this is code 这不是 这很好 但是 如果我使用参考 例如 Have a look at ref som
  • 使用 Sphinx 时,如何记录没有文档字符串的成员?

    我正在为我发布的包编写文档 我发现您的文档越全面 人们就越容易找到您的包来使用 废话 实际上 我在充满爱心地编写代码的所有功能和细节方面获得了很多乐趣 然而 我对如何为类级变量编写与 Sphinx 兼容的文档感到完全困惑 特别是 我有一些e
  • reStructuredText:README.rst 未在 PyPI 上解析

    我有一个托管在 Github 和 PyPI 上的 Python 项目 在 Github 上 https github com sloria TextBlob blob master README rst https github com s
  • 以编程方式使用 Sphinx 特定指令解析 .rst 文件

    我希望能够在 Python 中解析基于 sphinx 的 rst 以便进一步处理和检查 就像是 import sphinx p sphinx parse path to file rst do something with p 似乎在 do
  • 如何在代码块中包含内部引用?

    在我的 Sphinx rst 文档中 我有一个代码块 其中包含使用 UNIX 的产品结构的树视图tree命令 parent child grandchild 它位于代码块中 以便 Sphinx 保留空格 我希望读者能够单击每个节点来关注内部
  • 用于类工厂/选择器的 python rtype 文档字符串/重构文本

    rtype 指定这是返回对象的类型 因此 当我创建对象时obj在下面的代码片段中 我收到来自 IDE 的警告 cls is not callable 因为 IDE 期望cls is object类型的SomeAbstractClass 而且
  • 如何在sphinx中启用数学?

    我在用sphinx http sphinx pocoo org index html与pngmath http sphinx pocoo org ext math html module sphinx ext pngmath扩展来记录我的代

随机推荐