2013-03-06 10 views
6

Sto usando Sphinx per documentare un'utilità della riga di comando scritta in Python. Voglio essere in grado di documentare una linea di comando, come ad esempio --region come questo:Come gestire due trattini in ReST

**--region** <region_name> 

a riposo e poi usare Sfinge per generare le mie pagine HTML e man per me.

Questo funziona in modo ottimale durante la generazione di pagine man ma nel codice HTML generato, lo -- viene convertito in - che non è corretto. Ho scoperto che se cambio la mia fonte documento riposo per assomigliare a questo:

**---region** <region_name> 

Il codice HTML genera correttamente, ma ora le mie pagine man hanno --- invece di --. Anche errato

Ho provato a sfuggire ai trattini con un carattere barra rovesciata (ad esempio \-\-) ma ciò non ha avuto alcun effetto.

Qualsiasi aiuto sarebbe molto apprezzato.

+1

Ho trovato che una soluzione semplice a questo è di avvolgere i trattini raddoppiati all'interno del codice di markup, ad es. \ '\' --region \ '\' piuttosto che \ * \ * - regione \ * \ *. Ci possono essere modi più eleganti per risolverlo ma questo funziona per me. – garnaat

+3

Forse puoi usare un elenco di opzioni: http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html # option-lists – mzjn

+0

Sì, sembra abbastanza appropriato. Grazie, continuando a scoprire sempre cose nuove in ReST! – garnaat

risposta

2

Questa è un'opzione di configurazione in Sfinge attivata per impostazione predefinita: l'opzione html_use_smartypants (http://sphinx-doc.org/config.html?highlight=dash#confval-html_use_smartypants).

Se si disattiva l'opzione, sarà necessario utilizzare il carattere Unicode '-' se si desidera un trattino.

+0

Questa è ovviamente una soluzione. Considero questo comportamento come un bug, anche perché non può essere così difficile sostituire solo '-' con endash e dopo '---' con emdash. – TNT

+1

E nel senso di questa funzione, ad esempio '': comando: 'sphinx-build --version'' 'restituisce una riga di comando" tipograficamente corretta ":' sphinx-build --version' ... – TNT

0

Per aggiungere due trattini, aggiungere il seguente:

.. include:: <isotech.txt> 

|minus|\ |minus|\ region 

Nota all'indietro-slash e lo spazio. Questo evita di avere uno spazio tra i segni meno e il nome del parametro.

È sufficiente includere isotech.txt una volta per pagina.

Con questa soluzione, è possibile mantenere l'estensione smartypants e scrivere due trattini in ogni parte del testo che è necessario. Non solo in elenchi di opzioni o letterali.

0

Nella Sfinge 1.6 html_use_smartypants has been deprecated e non è più necessario impostare html_use_smartypants = False nel conf.py o come argomento a sphinx-build. Invece dovresti usare smart_quotes = False.

Se si desidera utilizzare le trasformazioni precedentemente fornite da html_use_smartypants, si consiglia invece di utilizzare smart_quotes, ad esempio smart_quotes = True.

Nota che al momento della stesura di questo documento leggi i pin Docs sphinx==1.5.3, che non supporta l'opzione smart_quotes. Fino ad allora, dovrai continuare a utilizzare html_use_smartypants.

+0

per chiarire, come [il documento che hai collegato a] (http://www.sphinx-doc.org/en/stable/config.html#confval-html_use_smartypants) dice, 'smart_quotes = false' (o' no' o 'off') appartiene, afaik, al file 'docutils.conf' allo stesso livello di' conf.py'. – jfbu

0

Con

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

dovrebbe funzionare.