2012-10-15 2 views
10

Es gibt a previous question, die erklärt, wie man einem reStructuredText einen Farbbereich hinzufügt.Anwenden von CSS und Rollen für Textblöcke anstelle von Inline-Spannen in Sphinx

Um das Verfahren rekapitulieren:

Zuerst müssen Sie die Rolle.

.. role:: red 

An example of using :red:`interpreted text` 

Es übersetzt sich wie folgt.

<p>An example of using <span class="red">interpreted text</span></p> 

Jetzt haben Sie die rote Klasse, Sie können CSS zum Ändern der Farben verwenden.

.red { 
    color:red; 
} 

Wie machst du das, wenn du Text willst, der sich über mehrere Zeilen erstreckt? Zum Beispiel:

.. role:: red 

:red:`paragraph 1 

     paragraph 2 

     paragraph 3` 

Bei Anwendung von Absatz 1, 2, 3 & all "rot" sein würde. Wenn ich dies versuche, erhalte ich die folgende Warnmeldung:

WARNUNG: Inline interpretierte Text- oder Phrasenreferenz Startzeichenfolge ohne Endzeichenfolge.

Es erstellt nicht die Spanne und fügt ": red:" in den Text ein. Es interpretiert dies nicht als String (wie die Warnung suggeriert).

Grundsätzlich kann dies in reStructuredText getan werden, und wenn es kann, wie?

Ich benutze Sphinx 1.1.3.

Antwort

8

Es gibt eine Reihe von Möglichkeiten, dies zu tun, aber einer von ihnen ist die class Richtlinie zu verwenden:

.. class:: red 

    This is a paragraph. 

    This is another paragraph. 

meisten docutils HTML Autoren, dass in HTML-Ausgabe als Klasse HTML-Attribut gesetzt werden, die Sie kann dann mit CSS stylen.

In Sphinx müssen Sie jedoch mindestens in einigen Fällen rst-class anstelle von class verwenden. Siehe: http://sphinx.pocoo.org/rest.html#id3

Auch viele Block-Level-Elemente in RestructuredText nehmen einen :class: Parameter, der ziemlich genau das gleiche tut.

+1

Sie hatten Recht, die 'First-Class' in Sphinx zu verwenden. Ich musste das verwenden, damit es funktioniert, aber es funktioniert jetzt so, wie ich es wollte. Vielen Dank. – jmq

Verwandte Themen