2016-01-18 19 views
5

In ogni renderer che ho provato, code e code-block sembrano avere lo stesso risultato esatto: un blocco di codice. Entrambi generano la stessa identica html - tra classi e tag genere (usando credo che fosse docutils?):Qual è la differenza tra le direttive di codice e blocco di codice in ReST?

<pre class="code [language] literal-block"> 

Quindi, qual è la differenza? Perché abbiamo entrambi? Ci sono dei renderer che li rendono in modo diverso? C'è una differenza semantica?

risposta

6

code è una direttiva reStructuredText. code-block è una direttiva Sphinx.

Il code-block ha un diverso set di opzioni per la direttiva code. E.g. :emphasize-lines:

Poiché si utilizza Sphinx, è consigliabile utilizzare la direttiva code-block.

Quando si utilizza code-block ottengo sempre l'evidenziazione corretta. Quando si utilizza code talvolta ottengo colori e talvolta solo blocchi di codice letterali. Devo ancora capire quali combinazioni di impostazioni in conf.py generano in modo prevedibile output colorato.

La direttiva code ha il vantaggio che il documento può essere utilizzato sia in un albero di documenti di Sfinge sia nello stesso tempo come un documento di ReStructuredText autonomo.

Problemi correlati