User Tools

Site Tools


doc:appunti:software:rst_sphinx

This is an old revision of the document!


reStructuredText e Sphinx

Installazione

Installare i seguenti pacchetti:

  • rst2pdf
  • python-docutils
  • python-sphinx

Per la generazione completa dell'HTML e di documenti PDF semplici (un file PDF per ogni file .rst) questi pacchetti sono sufficienti. Il sistema Sphinx consente inoltre di generare un file PDF unico a partire dalla directory radice, in tal caso bisogna installare anche:

  • texlive-latex-recommended
  • texlive-latex-extra
  • texlive-fonts-recommended

Preparazione della directory

Creare una directory che sarà la radice di tutta la documentazione. Ogni documento potrà essere messo nella sua sottodirectory.

mkdir docs
cd docs
sphinx-quickstart

Ecco un esempio di come rispondere alle domande:

Root path for the documentation [.]
Separate source and build directories (y/N) [n]
Name prefix for templates and static dir [_]
Project name: Rigacci.Org
Author name(s): Rigacci.Org
Project version: 1
Project release [1]: 1.0
Source file suffix [.rst]
Name of your master document (without suffix) [index]
Do you want to use the epub builder (y/N) [n]
autodoc: automatically insert docstrings from modules (y/N) [n]
doctest: automatically test code snippets in doctest blocks (y/N) [n]
intersphinx: link between Sphinx documentation of different projects (y/N) [n]
todo: write "todo" entries that can be shown or hidden on build (y/N) [n]: y
coverage: checks for documentation coverage (y/N) [n]
pngmath: include math, rendered as PNG images (y/N) [n]
mathjax: include math, rendered in the browser by MathJax (y/N) [n]: y
ifconfig: conditional inclusion of content based on config values (y/N) [n]
viewcode: include links to the source code of documented Python objects (y/N) [n]
Create Makefile? (Y/n) [y]
Create Windows command file? (Y/n) [y]: n

Personalizzazione del tema

Scegliere un tema tra quelli predefiniti: ogni stile ha le sue opzioni personalizzabili, vedere la documentazione. L'output HTML può essere controllato da opportune opzioni. Editare quindi il file conf.py:

html_theme = 'default'
 
html_theme_options = {
    'sidebarbgcolor':   "#40a52b", # Verde chiaro Faunalia
    'sidebarlinkcolor': "#222222", # Grigio molto scuro
    'footerbgcolor':    "#e7e1de", # Grigio chiaro Faunalia
    'footertextcolor':  "#444444", # Grigio scuro Faunalia
    'relbarbgcolor':    "#317f21"  # Verde scuro Faunalia
}
 
# Custom CSS: if you want just redefine some styles, use @import url('default.css').
#html_style = 'html_faunalia.css'
 
html_logo = 'logo_faunalia.png'
html_favicon = 'favicon_faunalia.ico'

I file logo_faunalia.png e favicon_faunalia.ico possono stare nella directory radice (verranno copiati in _build/html/_static/ durante il build).

Aggiunta di un documento

Si crea una sottodirectory, ad esempio manuale_postgis, dentro la quale si mette il documento, es. 'manuale_postgis.rst, le immagini, ecc. Nel file index.rst si aggiunge un riferimento al documento: <file> Contents: .. toctree:: :maxdepth: 2 manuale_postgis/manuale_postgis </file> Per generare la documentazione HTML si esegue: <code> make html </code> Il risultato viene creato in _build/html/ e può essere direttamente pubblicato sul web. Per generare il PDF complessivo di tutti i documenti si esegue: <code> make latexpdf </code> In questo caso lo stile non è dei migliori, secondo me è preferibile quello utilizzato da rst2pdf (che però agisce sul singolo documento .rst). ===== Personalizzare lo stile di rst2pdf ===== Ad esempio vogliamo creare una tabella per header e footer, senza bordo. Il documento.rst conterrà: <file> .. |rigacci_org| image:: images/picture_0.png :width: 1.5cm :alt: Rigacci.Org .. |cc-by-nc-sa| image:: images/picture_2.png :width: 1.2cm :alt: cc-by-nc-sa .. header:: .. class:: headertable +—————+——————————————–+ | |.. class:: centered | | | | | |rigacci_org| | PostgreSQL/PostGIS: il geodatabase libero | +—————+——————————————–+ .. footer:: .. class:: headertable +————————+—————–+ | |.. class:: right | | | | | ###Page###/###Total### | |cc-by-nc-sa| | +————————+—————–+ </file> Si crea un foglio di stile custom-pdf.style con: <file> tyles: headertable: parent: table commands: [] [VALIGN, [ 0, 0 ], [ -1, -1 ], CENTER ] [ROWBACKGROUNDS, [0, 0], [-1, -1], [white,#E0E0E0]] </file> e quindi si crea il PDF: <code> rst2pdf -s custom-pdf.style documento.rst </code>

doc/appunti/software/rst_sphinx.1328885045.txt.gz · Last modified: 2012/02/10 15:44 by niccolo