Применение 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.
Ответы
Ответ 1
Существует несколько способов сделать это, но один из них - использовать директиву class
:
.. class:: red
This is a paragraph.
This is another paragraph.
Большинство docutils HTML-писателей помещают это в вывод html как атрибут класса html, который вы можете затем стилизовать с помощью CSS.
В Sphinx, в частности, вам, возможно, потребуется использовать rst-class
вместо class
по крайней мере в некоторых случаях. См.: http://sphinx.pocoo.org/rest.html#id3
Кроме того, многие элементы уровня блока в RestructuredText принимают параметр :class:
, который делает почти то же самое.