xref: /openbmc/linux/Documentation/translations/it_IT/doc-guide/sphinx.rst (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
137912da4SFederico Vaga.. include:: ../disclaimer-ita.rst
237912da4SFederico Vaga
337912da4SFederico Vaga.. note:: Per leggere la documentazione originale in inglese:
437912da4SFederico Vaga	  :ref:`Documentation/doc-guide/index.rst <doc_guide>`
537912da4SFederico Vaga
60c5e1949SFederico Vaga.. _it_sphinxdoc:
70c5e1949SFederico Vaga
8da1d9cafSFederico Vaga=============================================
9da1d9cafSFederico VagaUsare Sphinx per la documentazione del kernel
10da1d9cafSFederico Vaga=============================================
1137912da4SFederico Vaga
1237912da4SFederico VagaIl kernel Linux usa `Sphinx`_ per la generazione della documentazione a partire
1337912da4SFederico Vagadai file `reStructuredText`_ che si trovano nella cartella ``Documentation``.
1437912da4SFederico VagaPer generare la documentazione in HTML o PDF, usate comandi ``make htmldocs`` o
1537912da4SFederico Vaga``make pdfdocs``. La documentazione così generata sarà disponibile nella
1637912da4SFederico Vagacartella ``Documentation/output``.
1737912da4SFederico Vaga
1837912da4SFederico Vaga.. _Sphinx: http://www.sphinx-doc.org/
1937912da4SFederico Vaga.. _reStructuredText: http://docutils.sourceforge.net/rst.html
2037912da4SFederico Vaga
2137912da4SFederico VagaI file reStructuredText possono contenere delle direttive che permettono di
2237912da4SFederico Vagaincludere i commenti di documentazione, o di tipo kernel-doc, dai file
2337912da4SFederico Vagasorgenti.
2437912da4SFederico VagaSolitamente questi commenti sono utilizzati per descrivere le funzioni, i tipi
2537912da4SFederico Vagae l'architettura del codice. I commenti di tipo kernel-doc hanno una struttura
2637912da4SFederico Vagae formato speciale, ma a parte questo vengono processati come reStructuredText.
2737912da4SFederico Vaga
2837912da4SFederico VagaInoltre, ci sono migliaia di altri documenti in formato testo sparsi nella
2937912da4SFederico Vagacartella ``Documentation``. Alcuni di questi verranno probabilmente convertiti,
3037912da4SFederico Vaganel tempo, in formato reStructuredText, ma la maggior parte di questi rimarranno
3137912da4SFederico Vagain formato testo.
3237912da4SFederico Vaga
3337912da4SFederico Vaga.. _it_sphinx_install:
3437912da4SFederico Vaga
3537912da4SFederico VagaInstallazione Sphinx
3637912da4SFederico Vaga====================
3737912da4SFederico Vaga
3837912da4SFederico VagaI marcatori ReST utilizzati nei file in Documentation/ sono pensati per essere
396d6a8d6aSAkira Yokosawaprocessati da ``Sphinx`` nella versione 1.7 o superiore.
4037912da4SFederico Vaga
4137912da4SFederico VagaEsiste uno script che verifica i requisiti Sphinx. Per ulteriori dettagli
4237912da4SFederico Vagaconsultate :ref:`it_sphinx-pre-install`.
4337912da4SFederico Vaga
4437912da4SFederico VagaLa maggior parte delle distribuzioni Linux forniscono Sphinx, ma l'insieme dei
4537912da4SFederico Vagaprogrammi e librerie è fragile e non è raro che dopo un aggiornamento di
4637912da4SFederico VagaSphinx, o qualche altro pacchetto Python, la documentazione non venga più
4737912da4SFederico Vagagenerata correttamente.
4837912da4SFederico Vaga
4937912da4SFederico VagaUn modo per evitare questo genere di problemi è quello di utilizzare una
5037912da4SFederico Vagaversione diversa da quella fornita dalla vostra distribuzione. Per fare questo,
5137912da4SFederico Vagavi raccomandiamo di installare Sphinx dentro ad un ambiente virtuale usando
5237912da4SFederico Vaga``virtualenv-3`` o ``virtualenv`` a seconda di come Python 3 è stato
5337912da4SFederico Vagapacchettizzato dalla vostra distribuzione.
5437912da4SFederico Vaga
5537912da4SFederico Vaga.. note::
5637912da4SFederico Vaga
5737912da4SFederico Vaga   #) Viene raccomandato l'uso del tema RTD per la documentazione in HTML.
5837912da4SFederico Vaga      A seconda della versione di Sphinx, potrebbe essere necessaria
5937912da4SFederico Vaga      l'installazione tramite il comando ``pip install sphinx_rtd_theme``.
6037912da4SFederico Vaga
6137912da4SFederico Vaga   #) Alcune pagine ReST contengono delle formule matematiche. A causa del
6237912da4SFederico Vaga      modo in cui Sphinx funziona, queste espressioni sono scritte
6337912da4SFederico Vaga      utilizzando LaTeX. Per una corretta interpretazione, è necessario aver
6437912da4SFederico Vaga      installato texlive con i pacchetti amdfonts e amsmath.
6537912da4SFederico Vaga
666d6a8d6aSAkira YokosawaRiassumendo, se volete installare la versione 2.4.4 di Sphinx dovete eseguire::
6737912da4SFederico Vaga
686d6a8d6aSAkira Yokosawa       $ virtualenv sphinx_2.4.4
696d6a8d6aSAkira Yokosawa       $ . sphinx_2.4.4/bin/activate
706d6a8d6aSAkira Yokosawa       (sphinx_2.4.4) $ pip install -r Documentation/sphinx/requirements.txt
7137912da4SFederico Vaga
726d6a8d6aSAkira YokosawaDopo aver eseguito ``. sphinx_2.4.4/bin/activate``, il prompt cambierà per
7337912da4SFederico Vagaindicare che state usando il nuovo ambiente. Se aprite un nuova sessione,
7437912da4SFederico Vagaprima di generare la documentazione, dovrete rieseguire questo comando per
7537912da4SFederico Vagarientrare nell'ambiente virtuale.
7637912da4SFederico Vaga
7737912da4SFederico VagaGenerazione d'immagini
7837912da4SFederico Vaga----------------------
7937912da4SFederico Vaga
8037912da4SFederico VagaIl meccanismo che genera la documentazione del kernel contiene un'estensione
8137912da4SFederico Vagacapace di gestire immagini in formato Graphviz e SVG (per maggior informazioni
8237912da4SFederico Vagavedere :ref:`it_sphinx_kfigure`).
8337912da4SFederico Vaga
8437912da4SFederico VagaPer far si che questo funzioni, dovete installare entrambe i pacchetti
8537912da4SFederico VagaGraphviz e ImageMagick. Il sistema di generazione della documentazione è in
8637912da4SFederico Vagagrado di procedere anche se questi pacchetti non sono installati, ma il
8737912da4SFederico Vagarisultato, ovviamente, non includerà le immagini.
8837912da4SFederico Vaga
8937912da4SFederico VagaGenerazione in PDF e LaTeX
9037912da4SFederico Vaga--------------------------
9137912da4SFederico Vaga
9237912da4SFederico VagaAl momento, la generazione di questi documenti è supportata solo dalle
936d6a8d6aSAkira Yokosawaversioni di Sphinx superiori alla 2.4.
9437912da4SFederico Vaga
9537912da4SFederico VagaPer la generazione di PDF e LaTeX, avrete bisogno anche del pacchetto
9637912da4SFederico Vaga``XeLaTeX`` nella versione 3.14159265
9737912da4SFederico Vaga
9837912da4SFederico VagaPer alcune distribuzioni Linux potrebbe essere necessario installare
9937912da4SFederico Vagaanche una serie di pacchetti ``texlive`` in modo da fornire il supporto
10037912da4SFederico Vagaminimo per il funzionamento di ``XeLaTeX``.
10137912da4SFederico Vaga
10237912da4SFederico Vaga.. _it_sphinx-pre-install:
10337912da4SFederico Vaga
10437912da4SFederico VagaVerificare le dipendenze Sphinx
10537912da4SFederico Vaga-------------------------------
10637912da4SFederico Vaga
10737912da4SFederico VagaEsiste uno script che permette di verificare automaticamente le dipendenze di
10837912da4SFederico VagaSphinx. Se lo script riesce a riconoscere la vostra distribuzione, allora
10937912da4SFederico Vagasarà in grado di darvi dei suggerimenti su come procedere per completare
11037912da4SFederico Vagal'installazione::
11137912da4SFederico Vaga
11237912da4SFederico Vaga	$ ./scripts/sphinx-pre-install
11337912da4SFederico Vaga	Checking if the needed tools for Fedora release 26 (Twenty Six) are available
11437912da4SFederico Vaga	Warning: better to also install "texlive-luatex85".
11537912da4SFederico Vaga	You should run:
11637912da4SFederico Vaga
11737912da4SFederico Vaga		sudo dnf install -y texlive-luatex85
1186d6a8d6aSAkira Yokosawa		/usr/bin/virtualenv sphinx_2.4.4
1196d6a8d6aSAkira Yokosawa		. sphinx_2.4.4/bin/activate
12037912da4SFederico Vaga		pip install -r Documentation/sphinx/requirements.txt
12137912da4SFederico Vaga
12237912da4SFederico Vaga	Can't build as 1 mandatory dependency is missing at ./scripts/sphinx-pre-install line 468.
12337912da4SFederico Vaga
12437912da4SFederico VagaL'impostazione predefinita prevede il controllo dei requisiti per la generazione
12537912da4SFederico Vagadi documenti html e PDF, includendo anche il supporto per le immagini, le
12637912da4SFederico Vagaespressioni matematiche e LaTeX; inoltre, presume che venga utilizzato un
12737912da4SFederico Vagaambiente virtuale per Python. I requisiti per generare i documenti html
12837912da4SFederico Vagasono considerati obbligatori, gli altri sono opzionali.
12937912da4SFederico Vaga
13037912da4SFederico VagaQuesto script ha i seguenti parametri:
13137912da4SFederico Vaga
13237912da4SFederico Vaga``--no-pdf``
13337912da4SFederico Vaga	Disabilita i controlli per la generazione di PDF;
13437912da4SFederico Vaga
13537912da4SFederico Vaga``--no-virtualenv``
13637912da4SFederico Vaga	Utilizza l'ambiente predefinito dal sistema operativo invece che
13737912da4SFederico Vaga	l'ambiente virtuale per Python;
13837912da4SFederico Vaga
13937912da4SFederico Vaga
14037912da4SFederico VagaGenerazione della documentazione Sphinx
14137912da4SFederico Vaga=======================================
14237912da4SFederico Vaga
14337912da4SFederico VagaPer generare la documentazione in formato HTML o PDF si eseguono i rispettivi
14437912da4SFederico Vagacomandi ``make htmldocs`` o ``make pdfdocs``. Esistono anche altri formati
14537912da4SFederico Vagain cui è possibile generare la documentazione; per maggiori informazioni
14637912da4SFederico Vagapotere eseguire il comando ``make help``.
14737912da4SFederico VagaLa documentazione così generata sarà disponibile nella sottocartella
14837912da4SFederico Vaga``Documentation/output``.
14937912da4SFederico Vaga
15037912da4SFederico VagaOvviamente, per generare la documentazione, Sphinx (``sphinx-build``)
15137912da4SFederico Vagadev'essere installato. Se disponibile, il tema *Read the Docs* per Sphinx
15237912da4SFederico Vagaverrà utilizzato per ottenere una documentazione HTML più gradevole.
15337912da4SFederico VagaPer la documentazione in formato PDF, invece, avrete bisogno di ``XeLaTeX`
154*3760fe20SFederico Vagae di ``convert(1)`` disponibile in ImageMagick
155*3760fe20SFederico Vaga(https://www.imagemagick.org). \ [#ink]_
15637912da4SFederico VagaTipicamente, tutti questi pacchetti sono disponibili e pacchettizzati nelle
15737912da4SFederico Vagadistribuzioni Linux.
15837912da4SFederico Vaga
15937912da4SFederico VagaPer poter passare ulteriori opzioni a Sphinx potete utilizzare la variabile
16037912da4SFederico Vagamake ``SPHINXOPTS``. Per esempio, se volete che Sphinx sia più verboso durante
16137912da4SFederico Vagala generazione potete usare il seguente comando ``make SPHINXOPTS=-v htmldocs``.
16237912da4SFederico Vaga
163da1d9cafSFederico VagaPotete anche personalizzare l'ouptut html passando un livello aggiuntivo
164da1d9cafSFederico VagaDOCS_CSS usando la rispettiva variabile d'ambiente ``DOCS_CSS``.
165da1d9cafSFederico Vaga
166*3760fe20SFederico VagaLa variable make ``SPHINXDIRS`` è utile quando si vuole generare solo una parte
167*3760fe20SFederico Vagadella documentazione. Per esempio, si possono generare solo di documenti in
168*3760fe20SFederico Vaga``Documentation/doc-guide`` eseguendo ``make SPHINXDIRS=doc-guide htmldocs``. La
169*3760fe20SFederico Vagasezione dedicata alla documentazione di ``make help`` vi mostrerà quali sotto
170*3760fe20SFederico Vagacartelle potete specificare.
171*3760fe20SFederico Vaga
17237912da4SFederico VagaPotete eliminare la documentazione generata tramite il comando
17337912da4SFederico Vaga``make cleandocs``.
17437912da4SFederico Vaga
175*3760fe20SFederico Vaga.. [#ink] Avere installato anche ``inkscape(1)`` dal progetto Inkscape ()
176*3760fe20SFederico Vaga          potrebbe aumentare la qualità delle immagini che verranno integrate
177*3760fe20SFederico Vaga          nel documento PDF, specialmente per quando si usando rilasci del
178*3760fe20SFederico Vaga          kernel uguali o superiori a 5.18
179*3760fe20SFederico Vaga
18037912da4SFederico VagaScrivere la documentazione
18137912da4SFederico Vaga==========================
18237912da4SFederico Vaga
18337912da4SFederico VagaAggiungere nuova documentazione è semplice:
18437912da4SFederico Vaga
18537912da4SFederico Vaga1. aggiungete un file ``.rst`` nella sottocartella ``Documentation``
18637912da4SFederico Vaga2. aggiungete un riferimento ad esso nell'indice (`TOC tree`_) in
18737912da4SFederico Vaga   ``Documentation/index.rst``.
18837912da4SFederico Vaga
18937912da4SFederico Vaga.. _TOC tree: http://www.sphinx-doc.org/en/stable/markup/toctree.html
19037912da4SFederico Vaga
19137912da4SFederico VagaQuesto, di solito, è sufficiente per la documentazione più semplice (come
19237912da4SFederico Vagaquella che state leggendo ora), ma per una documentazione più elaborata è
19337912da4SFederico Vagaconsigliato creare una sottocartella dedicata (o, quando possibile, utilizzarne
19437912da4SFederico Vagauna già esistente). Per esempio, il sottosistema grafico è documentato nella
19537912da4SFederico Vagasottocartella ``Documentation/gpu``; questa documentazione è divisa in
19637912da4SFederico Vagadiversi file ``.rst`` ed un indice ``index.rst`` (con un ``toctree``
19737912da4SFederico Vagadedicato) a cui si fa riferimento nell'indice principale.
19837912da4SFederico Vaga
19937912da4SFederico VagaConsultate la documentazione di `Sphinx`_ e `reStructuredText`_ per maggiori
20037912da4SFederico Vagainformazione circa le loro potenzialità. In particolare, il
20137912da4SFederico Vaga`manuale introduttivo a reStructuredText`_ di Sphinx è un buon punto da
20237912da4SFederico Vagacui cominciare. Esistono, inoltre, anche alcuni
20337912da4SFederico Vaga`costruttori specifici per Sphinx`_.
20437912da4SFederico Vaga
20537912da4SFederico Vaga.. _`manuale introduttivo a reStructuredText`: http://www.sphinx-doc.org/en/stable/rest.html
20637912da4SFederico Vaga.. _`costruttori specifici per Sphinx`: http://www.sphinx-doc.org/en/stable/markup/index.html
20737912da4SFederico Vaga
20837912da4SFederico VagaGuide linea per la documentazione del kernel
20937912da4SFederico Vaga--------------------------------------------
21037912da4SFederico Vaga
21137912da4SFederico VagaIn questa sezione troverete alcune linee guida specifiche per la documentazione
21237912da4SFederico Vagadel kernel:
21337912da4SFederico Vaga
21437912da4SFederico Vaga* Non esagerate con i costrutti di reStructuredText. Mantenete la
21537912da4SFederico Vaga  documentazione semplice. La maggior parte della documentazione dovrebbe
21637912da4SFederico Vaga  essere testo semplice con una strutturazione minima che permetta la
21737912da4SFederico Vaga  conversione in diversi formati.
21837912da4SFederico Vaga
21937912da4SFederico Vaga* Mantenete la strutturazione il più fedele possibile all'originale quando
22037912da4SFederico Vaga  convertite un documento in formato reStructuredText.
22137912da4SFederico Vaga
22237912da4SFederico Vaga* Aggiornate i contenuti quando convertite della documentazione, non limitatevi
22337912da4SFederico Vaga  solo alla formattazione.
22437912da4SFederico Vaga
22537912da4SFederico Vaga* Mantenete la decorazione dei livelli di intestazione come segue:
22637912da4SFederico Vaga
22737912da4SFederico Vaga  1. ``=`` con una linea superiore per il titolo del documento::
22837912da4SFederico Vaga
22937912da4SFederico Vaga       ======
23037912da4SFederico Vaga       Titolo
23137912da4SFederico Vaga       ======
23237912da4SFederico Vaga
23337912da4SFederico Vaga  2. ``=`` per i capitoli::
23437912da4SFederico Vaga
23537912da4SFederico Vaga       Capitoli
23637912da4SFederico Vaga       ========
23737912da4SFederico Vaga
23837912da4SFederico Vaga  3. ``-`` per le sezioni::
23937912da4SFederico Vaga
24037912da4SFederico Vaga       Sezioni
24137912da4SFederico Vaga       -------
24237912da4SFederico Vaga
24337912da4SFederico Vaga  4. ``~`` per le sottosezioni::
24437912da4SFederico Vaga
24537912da4SFederico Vaga       Sottosezioni
24637912da4SFederico Vaga       ~~~~~~~~~~~~
24737912da4SFederico Vaga
24837912da4SFederico Vaga  Sebbene RST non forzi alcun ordine specifico (*Piuttosto che imporre
24937912da4SFederico Vaga  un numero ed un ordine fisso di decorazioni, l'ordine utilizzato sarà
25037912da4SFederico Vaga  quello incontrato*), avere uniformità dei livelli principali rende più
25137912da4SFederico Vaga  semplice la lettura dei documenti.
25237912da4SFederico Vaga
25337912da4SFederico Vaga* Per inserire blocchi di testo con caratteri a dimensione fissa (codici di
25437912da4SFederico Vaga  esempio, casi d'uso, eccetera): utilizzate ``::`` quando non è necessario
25537912da4SFederico Vaga  evidenziare la sintassi, specialmente per piccoli frammenti; invece,
256143134baSFederico Vaga  utilizzate ``.. code-block:: <language>`` per blocchi più lunghi che
257143134baSFederico Vaga  beneficeranno della sintassi evidenziata. Per un breve pezzo di codice da
258143134baSFederico Vaga  inserire nel testo, usate \`\`.
25937912da4SFederico Vaga
26037912da4SFederico Vaga
26137912da4SFederico VagaIl dominio C
26237912da4SFederico Vaga------------
26337912da4SFederico Vaga
26437912da4SFederico VagaIl **Dominio Sphinx C** (denominato c) è adatto alla documentazione delle API C.
26537912da4SFederico VagaPer esempio, un prototipo di una funzione:
26637912da4SFederico Vaga
26737912da4SFederico Vaga.. code-block:: rst
26837912da4SFederico Vaga
26937912da4SFederico Vaga    .. c:function:: int ioctl( int fd, int request )
27037912da4SFederico Vaga
27137912da4SFederico VagaIl dominio C per kernel-doc ha delle funzionalità aggiuntive. Per esempio,
27237912da4SFederico Vagapotete assegnare un nuovo nome di riferimento ad una funzione con un nome
27337912da4SFederico Vagamolto comune come ``open`` o ``ioctl``:
27437912da4SFederico Vaga
27537912da4SFederico Vaga.. code-block:: rst
27637912da4SFederico Vaga
27737912da4SFederico Vaga     .. c:function:: int ioctl( int fd, int request )
27837912da4SFederico Vaga        :name: VIDIOC_LOG_STATUS
27937912da4SFederico Vaga
28037912da4SFederico VagaIl nome della funzione (per esempio ioctl) rimane nel testo ma il nome del suo
28137912da4SFederico Vagariferimento cambia da ``ioctl`` a ``VIDIOC_LOG_STATUS``. Anche la voce
2825adcce34SFederico Vaganell'indice cambia in ``VIDIOC_LOG_STATUS``.
28337912da4SFederico Vaga
2845adcce34SFederico VagaNotate che per una funzione non c'è bisogno di usare ``c:func:`` per generarne
2855adcce34SFederico Vagai riferimenti nella documentazione. Grazie a qualche magica estensione a
2865adcce34SFederico VagaSphinx, il sistema di generazione della documentazione trasformerà
2875adcce34SFederico Vagaautomaticamente un riferimento ad una ``funzione()`` in un riferimento
2885adcce34SFederico Vagaincrociato quando questa ha una voce nell'indice.  Se trovate degli usi di
2895adcce34SFederico Vaga``c:func:`` nella documentazione del kernel, sentitevi liberi di rimuoverli.
29037912da4SFederico Vaga
29137912da4SFederico Vaga
29237912da4SFederico VagaTabelle a liste
29337912da4SFederico Vaga---------------
29437912da4SFederico Vaga
295da1d9cafSFederico VagaIl formato ``list-table`` può essere utile per tutte quelle tabelle che non
296da1d9cafSFederico Vagapossono essere facilmente scritte usando il formato ASCII-art di Sphinx. Però,
297da1d9cafSFederico Vagaquesto genere di tabelle sono illeggibili per chi legge direttamente i file di
298da1d9cafSFederico Vagatesto. Dunque, questo formato dovrebbe essere evitato senza forti argomenti che
299da1d9cafSFederico Vagane giustifichino l'uso.
30037912da4SFederico Vaga
30137912da4SFederico VagaLa ``flat-table`` è anch'essa una lista di liste simile alle ``list-table``
30237912da4SFederico Vagama con delle funzionalità aggiuntive:
30337912da4SFederico Vaga
30437912da4SFederico Vaga* column-span: col ruolo ``cspan`` una cella può essere estesa attraverso
30537912da4SFederico Vaga  colonne successive
30637912da4SFederico Vaga
30737912da4SFederico Vaga* raw-span: col ruolo ``rspan`` una cella può essere estesa attraverso
30837912da4SFederico Vaga  righe successive
30937912da4SFederico Vaga
31037912da4SFederico Vaga* auto-span: la cella più a destra viene estesa verso destra per compensare
31137912da4SFederico Vaga  la mancanza di celle. Con l'opzione ``:fill-cells:`` questo comportamento
31237912da4SFederico Vaga  può essere cambiato da *auto-span* ad *auto-fill*, il quale inserisce
31337912da4SFederico Vaga  automaticamente celle (vuote) invece che estendere l'ultima.
31437912da4SFederico Vaga
31537912da4SFederico Vagaopzioni:
31637912da4SFederico Vaga
31737912da4SFederico Vaga* ``:header-rows:``   [int] conta le righe di intestazione
31837912da4SFederico Vaga* ``:stub-columns:``  [int] conta le colonne di stub
31937912da4SFederico Vaga* ``:widths:``        [[int] [int] ... ] larghezza delle colonne
32037912da4SFederico Vaga* ``:fill-cells:``    invece di estendere automaticamente una cella su quelle
32137912da4SFederico Vaga  mancanti, ne crea di vuote.
32237912da4SFederico Vaga
32337912da4SFederico Vagaruoli:
32437912da4SFederico Vaga
32537912da4SFederico Vaga* ``:cspan:`` [int] colonne successive (*morecols*)
32637912da4SFederico Vaga* ``:rspan:`` [int] righe successive (*morerows*)
32737912da4SFederico Vaga
32837912da4SFederico VagaL'esempio successivo mostra come usare questo marcatore. Il primo livello della
32937912da4SFederico Vaganostra lista di liste è la *riga*. In una *riga* è possibile inserire solamente
33037912da4SFederico Vagala lista di celle che compongono la *riga* stessa. Fanno eccezione i *commenti*
33137912da4SFederico Vaga( ``..`` ) ed i *collegamenti* (per esempio, un riferimento a
33237912da4SFederico Vaga``:ref:`last row <last row>``` / :ref:`last row <it last row>`)
33337912da4SFederico Vaga
33437912da4SFederico Vaga.. code-block:: rst
33537912da4SFederico Vaga
33637912da4SFederico Vaga   .. flat-table:: table title
33737912da4SFederico Vaga      :widths: 2 1 1 3
33837912da4SFederico Vaga
33937912da4SFederico Vaga      * - head col 1
34037912da4SFederico Vaga        - head col 2
34137912da4SFederico Vaga        - head col 3
34237912da4SFederico Vaga        - head col 4
34337912da4SFederico Vaga
344511aaf2bSFederico Vaga      * - row 1
34537912da4SFederico Vaga        - field 1.1
34637912da4SFederico Vaga        - field 1.2 with autospan
34737912da4SFederico Vaga
348511aaf2bSFederico Vaga      * - row 2
34937912da4SFederico Vaga        - field 2.1
35037912da4SFederico Vaga        - :rspan:`1` :cspan:`1` field 2.2 - 3.3
35137912da4SFederico Vaga
35237912da4SFederico Vaga      * .. _`it last row`:
35337912da4SFederico Vaga
354511aaf2bSFederico Vaga        - row 3
35537912da4SFederico Vaga
35637912da4SFederico VagaChe verrà rappresentata nel seguente modo:
35737912da4SFederico Vaga
35837912da4SFederico Vaga   .. flat-table:: table title
35937912da4SFederico Vaga      :widths: 2 1 1 3
36037912da4SFederico Vaga
36137912da4SFederico Vaga      * - head col 1
36237912da4SFederico Vaga        - head col 2
36337912da4SFederico Vaga        - head col 3
36437912da4SFederico Vaga        - head col 4
36537912da4SFederico Vaga
366511aaf2bSFederico Vaga      * - row 1
36737912da4SFederico Vaga        - field 1.1
36837912da4SFederico Vaga        - field 1.2 with autospan
36937912da4SFederico Vaga
370511aaf2bSFederico Vaga      * - row 2
37137912da4SFederico Vaga        - field 2.1
37237912da4SFederico Vaga        - :rspan:`1` :cspan:`1` field 2.2 - 3.3
37337912da4SFederico Vaga
37437912da4SFederico Vaga      * .. _`it last row`:
37537912da4SFederico Vaga
376511aaf2bSFederico Vaga        - row 3
37737912da4SFederico Vaga
378ac771142SFederico VagaRiferimenti incrociati
379ac771142SFederico Vaga----------------------
380ac771142SFederico Vaga
381511aaf2bSFederico VagaAggiungere un riferimento incrociato da una pagina della
382511aaf2bSFederico Vagadocumentazione ad un'altra può essere fatto scrivendo il percorso al
383511aaf2bSFederico Vagafile corrispondende, non serve alcuna sintassi speciale. Si possono
384511aaf2bSFederico Vagausare sia percorsi assoluti che relativi. Quelli assoluti iniziano con
385511aaf2bSFederico Vaga"documentation/". Per esempio, potete fare riferimento a questo
386511aaf2bSFederico Vagadocumento in uno dei seguenti modi (da notare che l'estensione
387511aaf2bSFederico Vaga``.rst`` è necessaria)::
388ac771142SFederico Vaga
389511aaf2bSFederico Vaga    Vedere Documentation/doc-guide/sphinx.rst. Questo funziona sempre
390511aaf2bSFederico Vaga    Guardate pshinx.rst, che si trova nella stessa cartella.
391511aaf2bSFederico Vaga    Leggete ../sphinx.rst, che si trova nella cartella precedente.
392ac771142SFederico Vaga
393511aaf2bSFederico VagaSe volete che il collegamento abbia un testo diverso rispetto al
394511aaf2bSFederico Vagatitolo del documento, allora dovrete usare la direttiva Sphinx
395511aaf2bSFederico Vaga``doc``. Per esempio::
396ac771142SFederico Vaga
397511aaf2bSFederico Vaga    Vedere :doc:`il mio testo per il collegamento <sphinx>`.
398ac771142SFederico Vaga
399511aaf2bSFederico VagaNella maggioranza dei casi si consiglia il primo metodo perché è più
400511aaf2bSFederico Vagapulito ed adatto a chi legge dai sorgenti. Se incontrare un ``:doc:``
401511aaf2bSFederico Vagache non da alcun valore, sentitevi liberi di convertirlo in un
402511aaf2bSFederico Vagapercorso al documento.
403511aaf2bSFederico Vaga
404511aaf2bSFederico VagaPer informazioni riguardo ai riferimenti incrociati ai commenti
405511aaf2bSFederico Vagakernel-doc per funzioni o tipi, consultate
406ac771142SFederico Vaga
40737912da4SFederico Vaga.. _it_sphinx_kfigure:
40837912da4SFederico Vaga
40937912da4SFederico VagaFigure ed immagini
41037912da4SFederico Vaga==================
41137912da4SFederico Vaga
41237912da4SFederico VagaSe volete aggiungere un'immagine, utilizzate le direttive ``kernel-figure``
41337912da4SFederico Vagae ``kernel-image``. Per esempio, per inserire una figura di un'immagine in
414511aaf2bSFederico Vagaformato SVG (:ref:`it_svg_image_example`)::
41537912da4SFederico Vaga
41637912da4SFederico Vaga    .. kernel-figure::  ../../../doc-guide/svg_image.svg
41737912da4SFederico Vaga       :alt:    una semplice immagine SVG
41837912da4SFederico Vaga
41937912da4SFederico Vaga       Una semplice immagine SVG
42037912da4SFederico Vaga
42137912da4SFederico Vaga.. _it_svg_image_example:
42237912da4SFederico Vaga
42337912da4SFederico Vaga.. kernel-figure::  ../../../doc-guide/svg_image.svg
42437912da4SFederico Vaga   :alt:    una semplice immagine SVG
42537912da4SFederico Vaga
42637912da4SFederico Vaga   Una semplice immagine SVG
42737912da4SFederico Vaga
42837912da4SFederico VagaLe direttive del kernel per figure ed immagini supportano il formato **DOT**,
42937912da4SFederico Vagaper maggiori informazioni
43037912da4SFederico Vaga
43137912da4SFederico Vaga* DOT: http://graphviz.org/pdf/dotguide.pdf
43237912da4SFederico Vaga* Graphviz: http://www.graphviz.org/content/dot-language
43337912da4SFederico Vaga
43437912da4SFederico VagaUn piccolo esempio (:ref:`it_hello_dot_file`)::
43537912da4SFederico Vaga
43637912da4SFederico Vaga  .. kernel-figure::  ../../../doc-guide/hello.dot
43737912da4SFederico Vaga     :alt:    ciao mondo
43837912da4SFederico Vaga
43937912da4SFederico Vaga     Esempio DOT
44037912da4SFederico Vaga
44137912da4SFederico Vaga.. _it_hello_dot_file:
44237912da4SFederico Vaga
44337912da4SFederico Vaga.. kernel-figure::  ../../../doc-guide/hello.dot
44437912da4SFederico Vaga   :alt:    ciao mondo
44537912da4SFederico Vaga
44637912da4SFederico Vaga   Esempio DOT
44737912da4SFederico Vaga
44837912da4SFederico VagaTramite la direttiva ``kernel-render`` è possibile aggiungere codice specifico;
44937912da4SFederico Vagaad esempio nel formato **DOT** di Graphviz.::
45037912da4SFederico Vaga
45137912da4SFederico Vaga  .. kernel-render:: DOT
45237912da4SFederico Vaga     :alt: foobar digraph
45337912da4SFederico Vaga     :caption: Codice **DOT** (Graphviz) integrato
45437912da4SFederico Vaga
45537912da4SFederico Vaga     digraph foo {
45637912da4SFederico Vaga      "bar" -> "baz";
45737912da4SFederico Vaga     }
45837912da4SFederico Vaga
45937912da4SFederico VagaLa rappresentazione dipenderà dei programmi installati. Se avete Graphviz
46037912da4SFederico Vagainstallato, vedrete un'immagine vettoriale. In caso contrario, il codice grezzo
46137912da4SFederico Vagaverrà rappresentato come *blocco testuale* (:ref:`it_hello_dot_render`).
46237912da4SFederico Vaga
46337912da4SFederico Vaga.. _it_hello_dot_render:
46437912da4SFederico Vaga
46537912da4SFederico Vaga.. kernel-render:: DOT
46637912da4SFederico Vaga   :alt: foobar digraph
46737912da4SFederico Vaga   :caption: Codice **DOT** (Graphviz) integrato
46837912da4SFederico Vaga
46937912da4SFederico Vaga   digraph foo {
47037912da4SFederico Vaga      "bar" -> "baz";
47137912da4SFederico Vaga   }
47237912da4SFederico Vaga
47337912da4SFederico VagaLa direttiva *render* ha tutte le opzioni della direttiva *figure*, con
47437912da4SFederico Vagal'aggiunta dell'opzione ``caption``. Se ``caption`` ha un valore allora
47537912da4SFederico Vagaun nodo *figure* viene aggiunto. Altrimenti verrà aggiunto un nodo *image*.
47637912da4SFederico VagaL'opzione ``caption`` è necessaria in caso si vogliano aggiungere dei
47737912da4SFederico Vagariferimenti (:ref:`it_hello_svg_render`).
47837912da4SFederico Vaga
47937912da4SFederico VagaPer la scrittura di codice **SVG**::
48037912da4SFederico Vaga
48137912da4SFederico Vaga  .. kernel-render:: SVG
48237912da4SFederico Vaga     :caption: Integrare codice **SVG**
48337912da4SFederico Vaga     :alt: so-nw-arrow
48437912da4SFederico Vaga
48537912da4SFederico Vaga     <?xml version="1.0" encoding="UTF-8"?>
48637912da4SFederico Vaga     <svg xmlns="http://www.w3.org/2000/svg" version="1.1" ...>
48737912da4SFederico Vaga        ...
48837912da4SFederico Vaga     </svg>
48937912da4SFederico Vaga
49037912da4SFederico Vaga.. _it_hello_svg_render:
49137912da4SFederico Vaga
49237912da4SFederico Vaga.. kernel-render:: SVG
49337912da4SFederico Vaga   :caption: Integrare codice **SVG**
49437912da4SFederico Vaga   :alt: so-nw-arrow
49537912da4SFederico Vaga
49637912da4SFederico Vaga   <?xml version="1.0" encoding="UTF-8"?>
49737912da4SFederico Vaga   <svg xmlns="http://www.w3.org/2000/svg"
49837912da4SFederico Vaga     version="1.1" baseProfile="full" width="70px" height="40px" viewBox="0 0 700 400">
49937912da4SFederico Vaga   <line x1="180" y1="370" x2="500" y2="50" stroke="black" stroke-width="15px"/>
50037912da4SFederico Vaga   <polygon points="585 0 525 25 585 50" transform="rotate(135 525 25)"/>
50137912da4SFederico Vaga   </svg>
502