2013-03-06 10 views
6

Ich benutze Sphinx, um ein Befehlszeilenprogramm zu dokumentieren, das in Python geschrieben wurde. Ich möchte eine Befehlszeilenoption dokumentieren zu können, wie --region wie folgt aus:Wie behandelt man zwei Bindestriche in ReST

**--region** <region_name> 

in Ruhe und dann Sphinx verwenden, um meine HTML und man-Seiten für mich zu generieren.

Das funktioniert gut beim Generieren von man-Seiten, aber in der generierten HTML wird -- in - umgewandelt, was falsch ist. Ich habe festgestellt, dass, wenn ich meine Quelle ReST Dokument ändern wie folgt aussehen:

**---region** <region_name> 

Der HTML-Code generiert richtig, aber jetzt ist mein Mann Seiten haben --- statt --. Auch falsch.

Ich habe versucht, die Bindestriche mit einem Backslash-Zeichen (z. B. \-\-) zu entkommen, aber das hatte keine Wirkung.

Jede Hilfe würde sehr geschätzt werden.

+1

Ich habe gefunden, dass eine einfache Lösung dafür ist, die Doppel-Bindestriche in Code Markup, z. \ '\' --region \ '\' statt \ * \ * - region \ * \ *. Es mag elegantere Wege geben, es zu lösen, aber das funktioniert für mich. – garnaat

+3

Vielleicht können Sie eine Optionsliste verwenden: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html # option-lists – mzjn

+0

Ja, das scheint irgendwie angemessen. Danke, immer noch neue Dinge in ReST entdecken! – garnaat

Antwort

2

Dies ist eine Konfigurationsoption in Sphinx, die standardmäßig aktiviert ist: html_use_smartypants (http://sphinx-doc.org/config.html?highlight=dash#confval-html_use_smartypants).

Wenn Sie die Option deaktivieren, müssen Sie das Unicode-Zeichen '-' verwenden, wenn Sie einen Bindestrich wünschen.

+0

Dies ist natürlich ein Workaround. Ich betrachte dieses Verhalten jedoch als Fehler, weil es nicht so schwer sein kann, zuerst '-' durch endash und nach '---' durch emdash zu ersetzen. – TNT

+1

Und im Sinne dieser Funktion zum Beispiel '' command: 'sphinx-build --version' '' ergibt eine "typographisch korrekte" Kommandozeile: 'sphinx-build --version' ... – TNT

0

zwei Striche hinzuzufügen, fügen Sie den folgenden:

.. include:: <isotech.txt> 

|minus|\ |minus|\ region 

Notiere die rückwärtsStrich und der Raum. Dadurch wird vermieden, dass zwischen den Minuszeichen und dem Namen des Parameters ein Leerzeichen steht.

Sie müssen nur isotech.txt einmal pro Seite einschließen.

Mit dieser Lösung können Sie die Erweiterung smartypants behalten und zwei Striche in jeden Teil des Textes schreiben, die Sie benötigen. Nicht nur in Optionslisten oder Literalen.

0

In Sphinx 1.6 html_use_smartypants has been deprecated, und es ist nicht mehr notwendig html_use_smartypants = False in Ihrem conf.py oder als Argument an sphinx-build einzustellen. Stattdessen sollten Sie smart_quotes = False verwenden.

Wenn Sie die zuvor von html_use_smartypants bereitgestellten Transformationen verwenden möchten, wird stattdessen empfohlen, smart_quotes zu verwenden, z. B. smart_quotes = True.

Beachten Sie, dass zum Zeitpunkt dieses Schreibens Lesen Sie die Docs-Pins sphinx==1.5.3, die die Option smart_quotes nicht unterstützt. Bis dahin müssen Sie weiterhin html_use_smartypants verwenden.

+0

zu klären, wie [Das Dokument, mit dem du verlinkt hast] (http://www.sphinx-doc.org/en/stable/config.html#confval-html_use_smartypants) sagt, die 'smart_quotes = false' (oder' no' oder 'off') gehört, afaik, um 'docutils.conf' auf der gleichen Ebene wie' conf.py' zu speichern. – jfbu

0

Mit

**-\\-region** <region_name> 

es funktionieren sollte.

Verwandte Themen