【问题标题】:RST conditional directives don't work using standard syntaxRST 条件指令不能使用标准语法
【发布时间】:2020-04-29 23:18:23
【问题描述】:

我在我的 makefile 中定义了一个条件标记,因此我可以使用 ONLY 指令有条件地删除文本块。

Makefile 条目:

... 设置 BUILDDIR=_build

sphinx-build -t 内部 ...

对于特定的文档构建,我需要使一行信息消失。这是实例:

general:
    workspace: "xxx"
    <first indented list items>

.. only:: internal

    xt-team-name: "phoenix"    # for use with XT Grok - exclude this line otherwise **

    <following list items - must stay put>

“内部”指令有效,但它会清除单行文本之后的所有内容,我不想在此构建中清除这些内容。在排除的文本行之后我没有空格字符或制表位 - 只是一个裸换行符。我以为换行符会结束条件操作?

让它只在一件上工作的诀窍是什么?不能移动任何东西——它会破坏前后缩进信息部分的逻辑。调整示例以使其更清晰。

【问题讨论】:

  • 您介意澄清以下内容吗?在我看来,目标是让 3 个部分在同一级别缩进,第二部分是可选的,对吗?
  • 完成。它是一个较长的缩进项目列表的一部分。
  • 我仍然不确定您的要求。如果您基本上显示了您想要合并为一个的两个 RST 代码,那就更好了。这是一个列表,还是块引号,或者应该是什么?
  • @RichardGrace 如果答案解决了您的问题,您应该点击答案左侧的绿色复选标志接受它。

标签: python-sphinx restructuredtext


【解决方案1】:

空格在 reStructuredText 中有意义。

only 指令下缩进您要为internal 隐藏的内容。

不要缩进要显示的内容。

general:
    workspace: "xxx"
    ...

.. only:: internal

    xt-team-name: "phoenix"    # for use with XT Grok - exclude this line otherwise **

<following body of information>

编辑

当你意识到你想要的是一个项目列表而不是段落时,你仍然可以通过适当的缩进让它工作。

List of Items

*   One
*   Two

    .. only:: internal

        * Two and one-half (hidden)

*   Three

sphinx-build -b html . _build

sphinx-build -b html -t internal . _build

此外,如果您不希望“二分之一(隐藏)”成为嵌套列表的成员,而是其父列表的成员,那么您可以删除它及其 only 指令。

【讨论】:

  • 谢谢!不幸的是,有问题的行是一个更长的缩进列表的一部分。所以这不是一个解决方案。我将调整我的示例以使其更加清晰
  • 你的例子不是更清楚。你想有条件地隐藏&lt;following body of information&gt;吗?如果是,则缩进它。如果否,则不要缩进。
  • 嘿。如果 也缩进,它不起作用。请记住,我排除了较大列表中间的单个列表项。整个列表是缩进的。并且不缩进它不是一种选择。以下内容的完整性需要保持。
  • 您有段落,而不是项目列表。如果您正确缩进它们,您仍然可以在列表中执行条件。我会用另一个例子来更新我的答案。
  • 史蒂夫皮尔西谢谢! :) 仍然无法使其正常工作。缩进的组合不起作用。在这种情况下,我只使用单缩进列表,因为如果我可以让它工作,这个概念应该适用于多层列表,只需通过全面应用另一个缩进。感谢您的帮助。自从 CP/M 时代以来,还没有一个发布平台让我在简单的任务上遇到这么大的困难。我也会给你竖起大拇指,但 StackOverflow 不允许我这样做。也无法嵌入图像,这也可能会有所帮助
猜你喜欢
  • 2021-11-26
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 2020-07-10
  • 1970-01-01
  • 2021-03-24
相关资源
最近更新 更多