2016-01-18 7 views
5

In jedem Renderer habe ich versucht, code und code-block scheinen genau das gleiche Ergebnis zu haben: ein Block von Code. Beide erzeugen genau die gleiche HTML - einschließlich Klassen und Tag-Art (mit ich glaube, es war docutils?):Was ist der Unterschied zwischen den Code- und Codeblock-Anweisungen in ReST?

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

Also, was ist der Unterschied? Warum haben wir beides? Gibt es Renderer, die sie anders darstellen? Gibt es einen semantischen Unterschied?

Antwort

6

code ist eine reStructuredText-Direktive. code-block ist eine Sphinx-Direktive.

Die code-block hat einen anderen Satz von Optionen zu der code Direktive. Zum Beispiel :emphasize-lines:

Da Sie Sphinx verwenden, würde ich empfehlen, die code-block Richtlinie zu verwenden.

Bei Verwendung code-block bekomme ich immer die richtige Hervorhebung. Bei der Verwendung von code bekomme ich manchmal Farben und manchmal nur wörtliche Codeblöcke. Ich muss noch herausfinden, welche Kombinationen von Einstellungen in conf.py vorhersehbar farbige Ausgaben erzeugen. Die code Direktive hat den Vorteil, dass das Dokument sowohl in einer Sphinx Dokumentenstruktur als auch als eigenständiges reStructuredText Dokument verwendet werden kann.