Destaque de código embutido em reStructuredText

130

Eu sei que reStructuredText tem esta diretiva:

.. code:: bash

    gedit pohl.m

que processa um bloco de código. Existe alguma maneira de obter destaque de sintaxe para trechos em linha como este:

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

Os backticks marcam como código, mas eu gostaria de destacá-lo com pigmentos como o bloco. Isso é possível?

Martin Ueding
fonte
7
Os backticks marcam essa parte do texto como um literal embutido , não como um bloco de código. Normalmente, isso será publicado apenas em uma fonte monoespaçada. Não sei como obter os snippets destacados da sintaxe do código embutido.
Chris

Respostas:

209

Tendo examinado isso um pouco mais, deparei-me com o documento reStructuredText Interpreted Text Roles . Deste documento:

O texto interpretado usa aspas (`) ao redor do texto. Um marcador de função explícito pode opcionalmente aparecer antes ou depois do texto, delimitado por dois pontos. Por exemplo:

This is `interpreted text` using the default role.

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

Parece que existe um codepapel , então você pode simplesmente digitar

:code:`a = b + c`

para renderizar um bloco de código embutido. Para obter o destaque da sintaxe, você pode definir uma função personalizada. Por exemplo

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

que você pode usar assim:

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

Observe que a definição da função deve ser colocada antes das referências à função.

Observe que o documento ao qual vinculo não faz menção à versão dos documentos a que se refere. A função de código não está disponível no docutils 0.8.1 (que é a única versão em que tenho que testar).

Chris
fonte
4
observe este problema ao usar o sphinx: stackoverflow.com/questions/21591107/…
Donatello