sphinx, restructuredtext: установить цвет для одного слова - PullRequest
18 голосов
/ 13 сентября 2010

Есть ли способ установить цвет отдельных слов (или символов) в sphinx ? Я почти уверен, что должен быть какой-то тег разметки, например тег HTML font.

Ответы [ 4 ]

11 голосов
/ 18 марта 2012

Если вы хотите сделать это без привязки к html, попробуйте применить к своему слову стиль, отличный от обычного основного текста.

В этом примере, адаптированном из руководства rst2pdf, я применяю существующий стиль рубрики, которыйкрасный в используемом мной бэкенде:

Before red.

.. role:: rubric

I like color :rubric:`rubric`.

After red.

Фактический вид слова будет зависеть от того, как выбранный вами стиль определен в таблице стилей, которую вы используете при создании документа.Если вы хотите синий текст, создайте синий текстовый стиль и выведите его из обычного текстового стиля.Таблица стилей специфична для бэкэнда, и вы можете использовать ее по умолчанию.Чтобы напечатать значение по умолчанию для rst2pdf.py, сделайте это (из руководства по rst2pdf):

rst2pdf --print-stylesheet

Продолжая пример таблицы стилей rst2pdf, добавьте это в свою таблицу стилей, чтобы иметь синий стиль текста:

bluetext:
  parent: bodytext
  textColor: blue

В документе вы можете ссылаться на этот стиль, чтобы получить синее слово.Обратите внимание, что этот бит является общим и должен выделяться синим текстом, если вы определяете синий стиль в своем html или любой другой таблице стилей бэкэнда.

Before blue.

.. role:: bluetext

I like color :bluetext:`blue`.

After blue.

В сгенерированном файле PDF есть цветные слова: enter image description here

9 голосов
/ 05 февраля 2016

На моем сайте , работающем на Sphinx , я использую комбинацию:

  • Файл с реструктурированным текстом, содержащий определения ролей, по одному для каждого цвета - см. .special.rst (ссылка BitBucket)
  • Файл CSS, содержащий правила цвета для каждой роли - см. Первые строки hacks.css (ссылка BitBucket)

Затем в каждом файле rST, где мне нужны цвета, я сначала импортирую .special.rst вверху, либо вручную:

.. include:: .special.rst

Или с переменной конфигурации rst_epilog в файле Sphinx conf.py:

rst_epilog = "\n.. include:: .special.rst\n"

И тогда каждая роль может быть легко использована в чистом синтаксисе rST:

This is :red:`red !` And :blue:`this part is blue`.

Более подробная информация приведена на этой странице (по-французски, извините).

Он отлично работает для вывода html (и как html), но не для PDF. Обратитесь к первому ответу выше для получения PDF с цветами.

6 голосов
/ 16 сентября 2010

Это работает, но оставляет HTML в отдельном абзаце.

.. raw:: html

    <font color="blue">Blue word,</font>

And a word without color

Если у кого-то есть лучший ответ, я его приму.

0 голосов
/ 25 мая 2019

Просто короткая заметка, потому что я приземлился здесь в поисках чего-то похожего на html.

Это работает на Sphinx v2.0.1 для меня.При этом используется концепция, о которой сообщает @ adam-matan, но не возникает проблем с форматированием (т. Е. Проблема с абзацами).

ссылка: Директивы reStructuredText

.. role:: raw-html(raw)
   :format: html

:raw-html:`<font color="blue">Blue word,</font>` And a word without color
...