2012-06-03 5 views
91

So reStructuredText ha questa direttiva:codice inline evidenziando in reStructuredText

.. code:: bash 

    gedit pohl.m 

che rende un blocco di codice. C'è qualche modo per ottenere l'evidenziazione della sintassi per i frammenti in linea come questo:

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

Gli apici inversi contrassegnare come codice, ma vorrei evidenziare con pygments come il blocco. È possibile?

+7

I backtick indicano quella parte del testo come un [letteralmente inline] (http://docutils.sourceforge.net/docs/user/rst/quickref.html#inline-markup), non come un blocco di codice. In genere questo sarà pubblicato solo in un font monospace. Non sono sicuro di come ottenere frammenti evidenziati sulla sintassi del codice in linea, temo. – Chris

risposta

146

Dopo aver esaminato un po 'di più mi sono imbattuto nel documento reStructuredText Interpreted Text Roles. Da questo documento:

Il testo interpretato utilizza i backquote (`) attorno al testo. Un marker di ruolo esplicito può opzionalmente apparire prima o dopo il testo, delimitato da due punti. Per esempio:

This is `interpreted text` using the default role. 

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

Sembra che ci sia una code role, in modo da poter digitare semplicemente

:code:`a = b + c` 

rendere un blocco di codice inline. Per ottenere l'evidenziazione della sintassi è possibile definire un ruolo personalizzato. Per esempio

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

che è quindi possibile utilizzare in questo modo:

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

nota, il documento mi lega ad non fa menzione della versione di docutils a cui si riferisce. Il ruolo del codice è non disponibile in docutils 0.8.1 (che è l'unica versione da testare).