sphinx, restructuredtext: définir la couleur pour un seul mot

Est-il possible de définir la couleur des mots simples (ou caractères) sphinx? Je suis presque sûr qu'il devrait y avoir un markup tag, comme HTML font balise.

17
demandé sur Adam Matan 2010-09-13 21:29:57

3 réponses

si vous voulez faire cela sans être lié au html, essayez d'appliquer un style différent que le corps du texte normal à votre mot.

dans cet exemple adapté du manuel rst2pdf, j'applique le style de rubrique existant qui est Rouge dans le backend que j'utilise:

Before red.

.. role:: rubric

I like color :rubric:`rubric`.

After red.

l'apparence réelle du mot dépendra de la façon dont le style que vous choisissez est défini dans la feuille de style que vous utilisez lors de la génération de votre document. Si vous voulez du texte bleu, faites un style de texte bleu et dérivez ça vient du style de texte normal. La feuille de style est spécifique au backend et vous pouvez utiliser la valeur par défaut. Pour imprimer la valeur par défaut pour rst2pdf.py, ce faire (à partir de la rst2pdf manuel):

rst2pdf --print-stylesheet

en continuant l'exemple pour une feuille de style rst2pdf, ajoutez ceci à votre feuille de style pour avoir un style texte bleu:

bluetext:
  parent: bodytext
  textColor: blue

dans le document vous pouvez faire référence à ce style pour obtenir un mot bleu. Notez que ce bit est générique, et devrait faire du texte bleu si vous définissez un style bleu dans votre html ou quoi que ce soit d'autre. la feuille de style de backend.

Before blue.

.. role:: bluetext

I like color :bluetext:`blue`.

After blue.

le pdf généré contient les mots colorés: enter image description here

10
répondu ahcox 2012-03-17 21:00:53

Sur mon Sphinx-alimenté site web, j'utilise une combinaison de:

  • un fichier textuel restructuré contenant des définitions de rôles, une pour chaque couleur-voir .spécial.tvd (BitBucket link)
  • un fichier CSS contenant des règles de couleur pour chaque rôle - voir les premières lignes de hacks.css (BitBucket link)

puis, dans chaque fichier rST où j'ai besoin de couleurs, j'importe d'abord .special.rst au sommet, soit manuellement:

.. include:: .special.rst

Ou rst_epilog variable de configuration dans les Sphinx conf.py fichier:

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

et ensuite chaque rôle peut être utilisé facilement dans la pure syntaxe rST:

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

Plus de détails sont donnés sur cette page (en français, désolé).

il fonctionne parfaitement bien pour la sortie html (et html-like), mais pas pour PDF. Reportez-vous à la première réponse ci-dessus pour la production D'un PDF avec des couleurs.

8
répondu Næreen 2017-09-13 17:02:10

cela fonctionne, mais laisse le HTML dans un paragraphe séparé.

.. raw:: html

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

And a word without color

Si quelqu'un a une meilleure réponse, je vais l'accepter.

6
répondu Adam Matan 2010-09-16 12:23:51