[Python] ReST & docutils

Daniele Varrazzo piro a develer.com
Lun 6 Feb 2012 12:18:44 CET


On Mon, 6 Feb 2012 12:01:42 +0100, Alessandro Dentella wrote:
> Ciao,
>
> sto usando una mini funzione che dovrebbe formattare un codice .rst 
> in html
> e che ho usato in molte altre situazioni ma vedo un problema che non
> capisco. Non č esattamente Python il problema ma immagino che fra i
> frequentatori di questa lista ci siano molti che usano normalmente 
> ReST per
> la documentazione, quindi ecco il rebus:
>
> """
> Titolo A
> ========
>
> SubTitolo
> ---------
>
> subsub
> ~~~~~~
>
> Testo...
> """
> from docutils.core import publish_parts
>
> def rest(value):
>     parts = publish_parts(source=value.strip(), 
> writer_name="html4css1")
>
>     return parts["html_body"]
>
> print rest(__doc__)
>
>
> L'output per subsub risulta ancora un <h1> mentre a logica dovrebbe 
> essere
> un <h3>, sbaglio ad aspettarmi h3? sbaglio ad usare la funzione
> publish_parts o cosa?

Titolo A e SubTitolo sono trasformati in titolo e sottotitolo del 
documento: non fanno parte della struttura del documento, ma sono "una 
tantum".

Se non li vuoi, da riga di comando si puņ usare --no-doc-title, che 
produce quello che ti aspetti:

     <body>
     <div class="document">
     <div class="section" id="titolo-a">
     <h1>Titolo A</h1>
     <div class="section" id="subtitolo">
     <h2>SubTitolo</h2>
     <div class="section" id="subsub">
     <h3>subsub</h3>
     <p>Testo...</p>

Puoi anche shiftare gli <h?> usando --initial-header-level - sempre 
esclusi titolo e sottotitolo.

A greppare in giro, sembra che l'opzione equivalente sia 
doctitle_xform=False. Dovrebbe esserci un esempio di uso in 
docutils/examples.py


-- 
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com


Maggiori informazioni sulla lista Python