Условные директивы RST не работают с использованием стандартного синтаксиса - PullRequest
1 голос
/ 30 апреля 2020

Я определил условный тег в своем make-файле, чтобы я мог использовать директиву ONLY для условного удаления блоков текста.

Запись в Makefile:

... set BUILDDIR = _build

sphinx-build -t internal ...

I есть одна ЛИНИЯ информации, которую мне нужно сделать, чтобы она исчезла для конкретной сборки c docs. Вот пример:

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>

Внутренняя директива работает, НО она уничтожает все, что следует за одной строкой текста, которую Я НЕ ХОТЕЛ уничтожить для этой сборки , У меня нет символов пробела или табуляции после исключенной текстовой строки - только голая новая строка. Я думал, что новая строка закончит условную операцию?

Что за хитрость заставить его работать только на одной части? Ничего не может переместить - это нарушит логику c предыдущих и последующих разделов с отступом информации. Изменен пример, чтобы сделать его более понятным.

1 Ответ

2 голосов
/ 30 апреля 2020

Пробел имеет значение в reStructuredText.

Отступ для содержимого, которое вы хотите скрыть для internal в соответствии с директивой only.

Не делайте отступ для содержимого, которое вы хотите show.

general:
    workspace: "xxx"
    ...

.. only:: internal

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

<following body of information>

Edit

Поняв, что вам нужен список элементов, а не абзацы, вы все равно можете заставить его работать с правильным отступом.

List of Items

*   One
*   Two

    .. only:: internal

        * Two and one-half (hidden)

*   Three

sphinx-build -b html . _build

sphinx-build -b html . _build

sphinx-build -b html -t internal . _build

enter image description here

Также, если вы не хотите "Два с половиной ( hidden) ", чтобы быть членом вложенного списка, но его родительского списка, тогда вы можете сделать отступ и его директиву only.

...