Sphinx, changedizedtext: установить цвет для одного слова

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

Ответы

Ответ 1

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

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

Before red.

.. role:: rubric

I like color :rubric:`rubric`.

After red.

Фактический вид слова будет зависеть от того, как выбранный стиль определяется в таблице стилей, которую вы используете при создании документа. Если вам нужен синий текст, создайте синий текст и выведите его из обычного текстового стиля. Элемент stylsheet является специфичным для бэкэнд, и вы можете использовать значение по умолчанию. Чтобы напечатать значение по умолчанию для 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

Ответ 2

На моем веб-сайте на моем сайте 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-like), но не для PDF. См. первый ответ выше для создания PDF файла с цветами.

Ответ 3

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

.. raw:: html

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

And a word without color

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

Ответ 4

Просто быстрое примечание, потому что я приземлился здесь в поисках чего-то похожего на 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