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