сфинкс, restructuredtext: установить цвет для одного слова

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

3 ответов


если вы хотите сделать это без привязки к 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


на моем Сфинксе-powered сайт, я использую комбинацию:

  • реструктурированный текстовый файл, содержащий определения ролей, по одному для каждого цвета-см. .специальный.первый (ссылка BitBucket)
  • CSS-файл, содержащий правила цвета для каждой роли - см. первые строки писаки.в CSS (ссылка BitBucket)

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

.. include:: .special.rst

или rst_epilog переменной конфигурации в :

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

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

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

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

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


это работает, но оставляет HTML в отдельном пункте.

.. raw:: html

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

And a word without color

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