web-dev-qa-db-fra.com

Mise en surbrillance du code en ligne dans reStructuredText

Je sais que reStructuredText a cette directive:

.. code:: bash

    gedit pohl.m

qui rend un bloc de code. Existe-t-il un moyen d’obtenir la coloration syntaxique pour les extraits en ligne comme ceci:

Do edit the file, type ``gedit pohl.m`` into a terminal.

Les backticks le marquent comme code, mais j'aimerais le mettre en évidence avec des pygments comme le bloc. Est-ce possible?

113
Martin Ueding

Après avoir examiné cette question un peu plus, je suis tombé sur le document Rôles de texte interprété reStructuredText . A partir de ce document:

Le texte interprété utilise des guillemets arrières (`) autour du texte. Un marqueur de rôle explicite peut éventuellement apparaître avant ou après le texte, délimité par des deux points. Par exemple:

This is `interpreted text` using the default role.

This is :title:`interpreted text` using an explicit role.

Il semble qu’il existe un rôle code , vous pouvez donc taper simplement

:code:`a = b + c`

pour rendre un bloc de code en ligne. Pour obtenir la coloration syntaxique, vous pouvez définir un rôle personnalisé. Par exemple

.. role:: bash(code)
   :language: bash

que vous pouvez ensuite utiliser comme suit:

Here is some awesome bash code :bash:`a = b + c`.

Notez que la définition du rôle doit être placée avant les références au rôle.

Notez que le document auquel je fais référence ne fait aucune mention de la version de docutils à laquelle il fait référence. Le rôle du code n'est pas disponible dans docutils 0.8.1 (qui est la seule version que je dois tester).

185
Chris