Применение CSS и ролей для текстовых блоков вместо встроенных промежутков в Sphinx

Существует предыдущий вопрос, в котором объясняется, как добавить диапазон цветов в некоторый reStructuredText.

Чтобы резюмировать процедуру:

Во-первых, у вас есть роль.

.. role:: red

An example of using :red:`interpreted text`

Это переводится следующим образом.

<p>An example of using <span class="red">interpreted text</span></p>

Теперь у вас есть красный класс, вы можете использовать CSS для изменения цветов.

.red {
    color:red;
}

Как это сделать, если вам нужен текст, занимающий несколько строк? Например:

.. role:: red

:red:`paragraph 1

      paragraph 2

      paragraph 3`

Если параграфы 1, 2 и 3 будут «красными». Если я попытаюсь это сделать, я получаю предупреждающее сообщение:

ВНИМАНИЕ: Начальная строка встроенного интерпретируемого текста или фразовой ссылки без конечной строки.

Он не создает промежуток и вставляет ": red:" в текст. Он просто не интерпретирует это как строку (как следует из предупреждения).

В принципе, можно ли это сделать в reStructuredText и как?

Я использую Sphinx 1.1.3.


person jmq    schedule 15.10.2012    source источник


Ответы (1)


Есть несколько способов сделать это, но один из них - использовать директиву class:

.. class:: red

    This is a paragraph.

    This is another paragraph.

Большинство авторов документации HTML помещают это в вывод html как атрибут html класса, который затем можно стилизовать с помощью CSS.

Однако в Sphinx, в частности, вам может потребоваться использовать rst-class вместо class по крайней мере в некоторых случаях. См .: https://www.sphinx-doc.org/en/2.0/usage/restructuredtext/basics.html

Кроме того, многие элементы уровня блока в RestructuredText принимают параметр :class:, который делает примерно то же самое.

person Kevin Horn    schedule 23.10.2012