18c2ecf20Sopenharmony_ci.. include:: ../disclaimer-ita.rst
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ci.. note:: Per leggere la documentazione originale in inglese:
48c2ecf20Sopenharmony_ci	  :ref:`Documentation/doc-guide/index.rst <doc_guide>`
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci.. _it_sphinxdoc:
78c2ecf20Sopenharmony_ci
88c2ecf20Sopenharmony_ciIntroduzione
98c2ecf20Sopenharmony_ci============
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ciIl kernel Linux usa `Sphinx`_ per la generazione della documentazione a partire
128c2ecf20Sopenharmony_cidai file `reStructuredText`_ che si trovano nella cartella ``Documentation``.
138c2ecf20Sopenharmony_ciPer generare la documentazione in HTML o PDF, usate comandi ``make htmldocs`` o
148c2ecf20Sopenharmony_ci``make pdfdocs``. La documentazione così generata sarà disponibile nella
158c2ecf20Sopenharmony_cicartella ``Documentation/output``.
168c2ecf20Sopenharmony_ci
178c2ecf20Sopenharmony_ci.. _Sphinx: http://www.sphinx-doc.org/
188c2ecf20Sopenharmony_ci.. _reStructuredText: http://docutils.sourceforge.net/rst.html
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciI file reStructuredText possono contenere delle direttive che permettono di
218c2ecf20Sopenharmony_ciincludere i commenti di documentazione, o di tipo kernel-doc, dai file
228c2ecf20Sopenharmony_cisorgenti.
238c2ecf20Sopenharmony_ciSolitamente questi commenti sono utilizzati per descrivere le funzioni, i tipi
248c2ecf20Sopenharmony_cie l'architettura del codice. I commenti di tipo kernel-doc hanno una struttura
258c2ecf20Sopenharmony_cie formato speciale, ma a parte questo vengono processati come reStructuredText.
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ciInoltre, ci sono migliaia di altri documenti in formato testo sparsi nella
288c2ecf20Sopenharmony_cicartella ``Documentation``. Alcuni di questi verranno probabilmente convertiti,
298c2ecf20Sopenharmony_cinel tempo, in formato reStructuredText, ma la maggior parte di questi rimarranno
308c2ecf20Sopenharmony_ciin formato testo.
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci.. _it_sphinx_install:
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciInstallazione Sphinx
358c2ecf20Sopenharmony_ci====================
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciI marcatori ReST utilizzati nei file in Documentation/ sono pensati per essere
388c2ecf20Sopenharmony_ciprocessati da ``Sphinx`` nella versione 1.3 o superiore.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciEsiste uno script che verifica i requisiti Sphinx. Per ulteriori dettagli
418c2ecf20Sopenharmony_ciconsultate :ref:`it_sphinx-pre-install`.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciLa maggior parte delle distribuzioni Linux forniscono Sphinx, ma l'insieme dei
448c2ecf20Sopenharmony_ciprogrammi e librerie è fragile e non è raro che dopo un aggiornamento di
458c2ecf20Sopenharmony_ciSphinx, o qualche altro pacchetto Python, la documentazione non venga più
468c2ecf20Sopenharmony_cigenerata correttamente.
478c2ecf20Sopenharmony_ci
488c2ecf20Sopenharmony_ciUn modo per evitare questo genere di problemi è quello di utilizzare una
498c2ecf20Sopenharmony_civersione diversa da quella fornita dalla vostra distribuzione. Per fare questo,
508c2ecf20Sopenharmony_civi raccomandiamo di installare Sphinx dentro ad un ambiente virtuale usando
518c2ecf20Sopenharmony_ci``virtualenv-3`` o ``virtualenv`` a seconda di come Python 3 è stato
528c2ecf20Sopenharmony_cipacchettizzato dalla vostra distribuzione.
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci.. note::
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci   #) Le versioni di Sphinx inferiori alla 1.5 non funzionano bene
578c2ecf20Sopenharmony_ci      con il pacchetto Python docutils versione 0.13.1 o superiore.
588c2ecf20Sopenharmony_ci      Se volete usare queste versioni, allora dovere eseguire
598c2ecf20Sopenharmony_ci      ``pip install 'docutils==0.12'``.
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci   #) Viene raccomandato l'uso del tema RTD per la documentazione in HTML.
628c2ecf20Sopenharmony_ci      A seconda della versione di Sphinx, potrebbe essere necessaria
638c2ecf20Sopenharmony_ci      l'installazione tramite il comando ``pip install sphinx_rtd_theme``.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci   #) Alcune pagine ReST contengono delle formule matematiche. A causa del
668c2ecf20Sopenharmony_ci      modo in cui Sphinx funziona, queste espressioni sono scritte
678c2ecf20Sopenharmony_ci      utilizzando LaTeX. Per una corretta interpretazione, è necessario aver
688c2ecf20Sopenharmony_ci      installato texlive con i pacchetti amdfonts e amsmath.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ciRiassumendo, se volete installare la versione 1.7.9 di Sphinx dovete eseguire::
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci       $ virtualenv sphinx_1.7.9
738c2ecf20Sopenharmony_ci       $ . sphinx_1.7.9/bin/activate
748c2ecf20Sopenharmony_ci       (sphinx_1.7.9) $ pip install -r Documentation/sphinx/requirements.txt
758c2ecf20Sopenharmony_ci
768c2ecf20Sopenharmony_ciDopo aver eseguito ``. sphinx_1.7.9/bin/activate``, il prompt cambierà per
778c2ecf20Sopenharmony_ciindicare che state usando il nuovo ambiente. Se aprite un nuova sessione,
788c2ecf20Sopenharmony_ciprima di generare la documentazione, dovrete rieseguire questo comando per
798c2ecf20Sopenharmony_cirientrare nell'ambiente virtuale.
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ciGenerazione d'immagini
828c2ecf20Sopenharmony_ci----------------------
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ciIl meccanismo che genera la documentazione del kernel contiene un'estensione
858c2ecf20Sopenharmony_cicapace di gestire immagini in formato Graphviz e SVG (per maggior informazioni
868c2ecf20Sopenharmony_civedere :ref:`it_sphinx_kfigure`).
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ciPer far si che questo funzioni, dovete installare entrambe i pacchetti
898c2ecf20Sopenharmony_ciGraphviz e ImageMagick. Il sistema di generazione della documentazione è in
908c2ecf20Sopenharmony_cigrado di procedere anche se questi pacchetti non sono installati, ma il
918c2ecf20Sopenharmony_cirisultato, ovviamente, non includerà le immagini.
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ciGenerazione in PDF e LaTeX
948c2ecf20Sopenharmony_ci--------------------------
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciAl momento, la generazione di questi documenti è supportata solo dalle
978c2ecf20Sopenharmony_civersioni di Sphinx superiori alla 1.4.
988c2ecf20Sopenharmony_ci
998c2ecf20Sopenharmony_ciPer la generazione di PDF e LaTeX, avrete bisogno anche del pacchetto
1008c2ecf20Sopenharmony_ci``XeLaTeX`` nella versione 3.14159265
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ciPer alcune distribuzioni Linux potrebbe essere necessario installare
1038c2ecf20Sopenharmony_cianche una serie di pacchetti ``texlive`` in modo da fornire il supporto
1048c2ecf20Sopenharmony_ciminimo per il funzionamento di ``XeLaTeX``.
1058c2ecf20Sopenharmony_ci
1068c2ecf20Sopenharmony_ci.. _it_sphinx-pre-install:
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ciVerificare le dipendenze Sphinx
1098c2ecf20Sopenharmony_ci-------------------------------
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ciEsiste uno script che permette di verificare automaticamente le dipendenze di
1128c2ecf20Sopenharmony_ciSphinx. Se lo script riesce a riconoscere la vostra distribuzione, allora
1138c2ecf20Sopenharmony_cisarà in grado di darvi dei suggerimenti su come procedere per completare
1148c2ecf20Sopenharmony_cil'installazione::
1158c2ecf20Sopenharmony_ci
1168c2ecf20Sopenharmony_ci	$ ./scripts/sphinx-pre-install
1178c2ecf20Sopenharmony_ci	Checking if the needed tools for Fedora release 26 (Twenty Six) are available
1188c2ecf20Sopenharmony_ci	Warning: better to also install "texlive-luatex85".
1198c2ecf20Sopenharmony_ci	You should run:
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci		sudo dnf install -y texlive-luatex85
1228c2ecf20Sopenharmony_ci		/usr/bin/virtualenv sphinx_1.7.9
1238c2ecf20Sopenharmony_ci		. sphinx_1.7.9/bin/activate
1248c2ecf20Sopenharmony_ci		pip install -r Documentation/sphinx/requirements.txt
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ci	Can't build as 1 mandatory dependency is missing at ./scripts/sphinx-pre-install line 468.
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ciL'impostazione predefinita prevede il controllo dei requisiti per la generazione
1298c2ecf20Sopenharmony_cidi documenti html e PDF, includendo anche il supporto per le immagini, le
1308c2ecf20Sopenharmony_ciespressioni matematiche e LaTeX; inoltre, presume che venga utilizzato un
1318c2ecf20Sopenharmony_ciambiente virtuale per Python. I requisiti per generare i documenti html
1328c2ecf20Sopenharmony_cisono considerati obbligatori, gli altri sono opzionali.
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ciQuesto script ha i seguenti parametri:
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci``--no-pdf``
1378c2ecf20Sopenharmony_ci	Disabilita i controlli per la generazione di PDF;
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ci``--no-virtualenv``
1408c2ecf20Sopenharmony_ci	Utilizza l'ambiente predefinito dal sistema operativo invece che
1418c2ecf20Sopenharmony_ci	l'ambiente virtuale per Python;
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_ciGenerazione della documentazione Sphinx
1458c2ecf20Sopenharmony_ci=======================================
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ciPer generare la documentazione in formato HTML o PDF si eseguono i rispettivi
1488c2ecf20Sopenharmony_cicomandi ``make htmldocs`` o ``make pdfdocs``. Esistono anche altri formati
1498c2ecf20Sopenharmony_ciin cui è possibile generare la documentazione; per maggiori informazioni
1508c2ecf20Sopenharmony_cipotere eseguire il comando ``make help``.
1518c2ecf20Sopenharmony_ciLa documentazione così generata sarà disponibile nella sottocartella
1528c2ecf20Sopenharmony_ci``Documentation/output``.
1538c2ecf20Sopenharmony_ci
1548c2ecf20Sopenharmony_ciOvviamente, per generare la documentazione, Sphinx (``sphinx-build``)
1558c2ecf20Sopenharmony_cidev'essere installato. Se disponibile, il tema *Read the Docs* per Sphinx
1568c2ecf20Sopenharmony_civerrà utilizzato per ottenere una documentazione HTML più gradevole.
1578c2ecf20Sopenharmony_ciPer la documentazione in formato PDF, invece, avrete bisogno di ``XeLaTeX`
1588c2ecf20Sopenharmony_cie di ``convert(1)`` disponibile in ImageMagick (https://www.imagemagick.org).
1598c2ecf20Sopenharmony_ciTipicamente, tutti questi pacchetti sono disponibili e pacchettizzati nelle
1608c2ecf20Sopenharmony_cidistribuzioni Linux.
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ciPer poter passare ulteriori opzioni a Sphinx potete utilizzare la variabile
1638c2ecf20Sopenharmony_cimake ``SPHINXOPTS``. Per esempio, se volete che Sphinx sia più verboso durante
1648c2ecf20Sopenharmony_cila generazione potete usare il seguente comando ``make SPHINXOPTS=-v htmldocs``.
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ciPotete eliminare la documentazione generata tramite il comando
1678c2ecf20Sopenharmony_ci``make cleandocs``.
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ciScrivere la documentazione
1708c2ecf20Sopenharmony_ci==========================
1718c2ecf20Sopenharmony_ci
1728c2ecf20Sopenharmony_ciAggiungere nuova documentazione è semplice:
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ci1. aggiungete un file ``.rst`` nella sottocartella ``Documentation``
1758c2ecf20Sopenharmony_ci2. aggiungete un riferimento ad esso nell'indice (`TOC tree`_) in
1768c2ecf20Sopenharmony_ci   ``Documentation/index.rst``.
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci.. _TOC tree: http://www.sphinx-doc.org/en/stable/markup/toctree.html
1798c2ecf20Sopenharmony_ci
1808c2ecf20Sopenharmony_ciQuesto, di solito, è sufficiente per la documentazione più semplice (come
1818c2ecf20Sopenharmony_ciquella che state leggendo ora), ma per una documentazione più elaborata è
1828c2ecf20Sopenharmony_ciconsigliato creare una sottocartella dedicata (o, quando possibile, utilizzarne
1838c2ecf20Sopenharmony_ciuna già esistente). Per esempio, il sottosistema grafico è documentato nella
1848c2ecf20Sopenharmony_cisottocartella ``Documentation/gpu``; questa documentazione è divisa in
1858c2ecf20Sopenharmony_cidiversi file ``.rst`` ed un indice ``index.rst`` (con un ``toctree``
1868c2ecf20Sopenharmony_cidedicato) a cui si fa riferimento nell'indice principale.
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ciConsultate la documentazione di `Sphinx`_ e `reStructuredText`_ per maggiori
1898c2ecf20Sopenharmony_ciinformazione circa le loro potenzialità. In particolare, il
1908c2ecf20Sopenharmony_ci`manuale introduttivo a reStructuredText`_ di Sphinx è un buon punto da
1918c2ecf20Sopenharmony_cicui cominciare. Esistono, inoltre, anche alcuni
1928c2ecf20Sopenharmony_ci`costruttori specifici per Sphinx`_.
1938c2ecf20Sopenharmony_ci
1948c2ecf20Sopenharmony_ci.. _`manuale introduttivo a reStructuredText`: http://www.sphinx-doc.org/en/stable/rest.html
1958c2ecf20Sopenharmony_ci.. _`costruttori specifici per Sphinx`: http://www.sphinx-doc.org/en/stable/markup/index.html
1968c2ecf20Sopenharmony_ci
1978c2ecf20Sopenharmony_ciGuide linea per la documentazione del kernel
1988c2ecf20Sopenharmony_ci--------------------------------------------
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ciIn questa sezione troverete alcune linee guida specifiche per la documentazione
2018c2ecf20Sopenharmony_cidel kernel:
2028c2ecf20Sopenharmony_ci
2038c2ecf20Sopenharmony_ci* Non esagerate con i costrutti di reStructuredText. Mantenete la
2048c2ecf20Sopenharmony_ci  documentazione semplice. La maggior parte della documentazione dovrebbe
2058c2ecf20Sopenharmony_ci  essere testo semplice con una strutturazione minima che permetta la
2068c2ecf20Sopenharmony_ci  conversione in diversi formati.
2078c2ecf20Sopenharmony_ci
2088c2ecf20Sopenharmony_ci* Mantenete la strutturazione il più fedele possibile all'originale quando
2098c2ecf20Sopenharmony_ci  convertite un documento in formato reStructuredText.
2108c2ecf20Sopenharmony_ci
2118c2ecf20Sopenharmony_ci* Aggiornate i contenuti quando convertite della documentazione, non limitatevi
2128c2ecf20Sopenharmony_ci  solo alla formattazione.
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_ci* Mantenete la decorazione dei livelli di intestazione come segue:
2158c2ecf20Sopenharmony_ci
2168c2ecf20Sopenharmony_ci  1. ``=`` con una linea superiore per il titolo del documento::
2178c2ecf20Sopenharmony_ci
2188c2ecf20Sopenharmony_ci       ======
2198c2ecf20Sopenharmony_ci       Titolo
2208c2ecf20Sopenharmony_ci       ======
2218c2ecf20Sopenharmony_ci
2228c2ecf20Sopenharmony_ci  2. ``=`` per i capitoli::
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ci       Capitoli
2258c2ecf20Sopenharmony_ci       ========
2268c2ecf20Sopenharmony_ci
2278c2ecf20Sopenharmony_ci  3. ``-`` per le sezioni::
2288c2ecf20Sopenharmony_ci
2298c2ecf20Sopenharmony_ci       Sezioni
2308c2ecf20Sopenharmony_ci       -------
2318c2ecf20Sopenharmony_ci
2328c2ecf20Sopenharmony_ci  4. ``~`` per le sottosezioni::
2338c2ecf20Sopenharmony_ci
2348c2ecf20Sopenharmony_ci       Sottosezioni
2358c2ecf20Sopenharmony_ci       ~~~~~~~~~~~~
2368c2ecf20Sopenharmony_ci
2378c2ecf20Sopenharmony_ci  Sebbene RST non forzi alcun ordine specifico (*Piuttosto che imporre
2388c2ecf20Sopenharmony_ci  un numero ed un ordine fisso di decorazioni, l'ordine utilizzato sarà
2398c2ecf20Sopenharmony_ci  quello incontrato*), avere uniformità dei livelli principali rende più
2408c2ecf20Sopenharmony_ci  semplice la lettura dei documenti.
2418c2ecf20Sopenharmony_ci
2428c2ecf20Sopenharmony_ci* Per inserire blocchi di testo con caratteri a dimensione fissa (codici di
2438c2ecf20Sopenharmony_ci  esempio, casi d'uso, eccetera): utilizzate ``::`` quando non è necessario
2448c2ecf20Sopenharmony_ci  evidenziare la sintassi, specialmente per piccoli frammenti; invece,
2458c2ecf20Sopenharmony_ci  utilizzate ``.. code-block:: <language>`` per blocchi più lunghi che
2468c2ecf20Sopenharmony_ci  beneficeranno della sintassi evidenziata. Per un breve pezzo di codice da
2478c2ecf20Sopenharmony_ci  inserire nel testo, usate \`\`.
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci
2508c2ecf20Sopenharmony_ciIl dominio C
2518c2ecf20Sopenharmony_ci------------
2528c2ecf20Sopenharmony_ci
2538c2ecf20Sopenharmony_ciIl **Dominio Sphinx C** (denominato c) è adatto alla documentazione delle API C.
2548c2ecf20Sopenharmony_ciPer esempio, un prototipo di una funzione:
2558c2ecf20Sopenharmony_ci
2568c2ecf20Sopenharmony_ci.. code-block:: rst
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ci    .. c:function:: int ioctl( int fd, int request )
2598c2ecf20Sopenharmony_ci
2608c2ecf20Sopenharmony_ciIl dominio C per kernel-doc ha delle funzionalità aggiuntive. Per esempio,
2618c2ecf20Sopenharmony_cipotete assegnare un nuovo nome di riferimento ad una funzione con un nome
2628c2ecf20Sopenharmony_cimolto comune come ``open`` o ``ioctl``:
2638c2ecf20Sopenharmony_ci
2648c2ecf20Sopenharmony_ci.. code-block:: rst
2658c2ecf20Sopenharmony_ci
2668c2ecf20Sopenharmony_ci     .. c:function:: int ioctl( int fd, int request )
2678c2ecf20Sopenharmony_ci        :name: VIDIOC_LOG_STATUS
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ciIl nome della funzione (per esempio ioctl) rimane nel testo ma il nome del suo
2708c2ecf20Sopenharmony_ciriferimento cambia da ``ioctl`` a ``VIDIOC_LOG_STATUS``. Anche la voce
2718c2ecf20Sopenharmony_cinell'indice cambia in ``VIDIOC_LOG_STATUS``.
2728c2ecf20Sopenharmony_ci
2738c2ecf20Sopenharmony_ciNotate che per una funzione non c'è bisogno di usare ``c:func:`` per generarne
2748c2ecf20Sopenharmony_cii riferimenti nella documentazione. Grazie a qualche magica estensione a
2758c2ecf20Sopenharmony_ciSphinx, il sistema di generazione della documentazione trasformerà
2768c2ecf20Sopenharmony_ciautomaticamente un riferimento ad una ``funzione()`` in un riferimento
2778c2ecf20Sopenharmony_ciincrociato quando questa ha una voce nell'indice.  Se trovate degli usi di
2788c2ecf20Sopenharmony_ci``c:func:`` nella documentazione del kernel, sentitevi liberi di rimuoverli.
2798c2ecf20Sopenharmony_ci
2808c2ecf20Sopenharmony_ci
2818c2ecf20Sopenharmony_ciTabelle a liste
2828c2ecf20Sopenharmony_ci---------------
2838c2ecf20Sopenharmony_ci
2848c2ecf20Sopenharmony_ciRaccomandiamo l'uso delle tabelle in formato lista (*list table*). Le tabelle
2858c2ecf20Sopenharmony_ciin formato lista sono liste di liste. In confronto all'ASCII-art potrebbero
2868c2ecf20Sopenharmony_cinon apparire di facile lettura nei file in formato testo. Il loro vantaggio è
2878c2ecf20Sopenharmony_ciche sono facili da creare o modificare e che la differenza di una modifica è
2888c2ecf20Sopenharmony_cimolto più significativa perché limitata alle modifiche del contenuto.
2898c2ecf20Sopenharmony_ci
2908c2ecf20Sopenharmony_ciLa ``flat-table`` è anch'essa una lista di liste simile alle ``list-table``
2918c2ecf20Sopenharmony_cima con delle funzionalità aggiuntive:
2928c2ecf20Sopenharmony_ci
2938c2ecf20Sopenharmony_ci* column-span: col ruolo ``cspan`` una cella può essere estesa attraverso
2948c2ecf20Sopenharmony_ci  colonne successive
2958c2ecf20Sopenharmony_ci
2968c2ecf20Sopenharmony_ci* raw-span: col ruolo ``rspan`` una cella può essere estesa attraverso
2978c2ecf20Sopenharmony_ci  righe successive
2988c2ecf20Sopenharmony_ci
2998c2ecf20Sopenharmony_ci* auto-span: la cella più a destra viene estesa verso destra per compensare
3008c2ecf20Sopenharmony_ci  la mancanza di celle. Con l'opzione ``:fill-cells:`` questo comportamento
3018c2ecf20Sopenharmony_ci  può essere cambiato da *auto-span* ad *auto-fill*, il quale inserisce
3028c2ecf20Sopenharmony_ci  automaticamente celle (vuote) invece che estendere l'ultima.
3038c2ecf20Sopenharmony_ci
3048c2ecf20Sopenharmony_ciopzioni:
3058c2ecf20Sopenharmony_ci
3068c2ecf20Sopenharmony_ci* ``:header-rows:``   [int] conta le righe di intestazione
3078c2ecf20Sopenharmony_ci* ``:stub-columns:``  [int] conta le colonne di stub
3088c2ecf20Sopenharmony_ci* ``:widths:``        [[int] [int] ... ] larghezza delle colonne
3098c2ecf20Sopenharmony_ci* ``:fill-cells:``    invece di estendere automaticamente una cella su quelle
3108c2ecf20Sopenharmony_ci  mancanti, ne crea di vuote.
3118c2ecf20Sopenharmony_ci
3128c2ecf20Sopenharmony_ciruoli:
3138c2ecf20Sopenharmony_ci
3148c2ecf20Sopenharmony_ci* ``:cspan:`` [int] colonne successive (*morecols*)
3158c2ecf20Sopenharmony_ci* ``:rspan:`` [int] righe successive (*morerows*)
3168c2ecf20Sopenharmony_ci
3178c2ecf20Sopenharmony_ciL'esempio successivo mostra come usare questo marcatore. Il primo livello della
3188c2ecf20Sopenharmony_cinostra lista di liste è la *riga*. In una *riga* è possibile inserire solamente
3198c2ecf20Sopenharmony_cila lista di celle che compongono la *riga* stessa. Fanno eccezione i *commenti*
3208c2ecf20Sopenharmony_ci( ``..`` ) ed i *collegamenti* (per esempio, un riferimento a
3218c2ecf20Sopenharmony_ci``:ref:`last row <last row>``` / :ref:`last row <it last row>`)
3228c2ecf20Sopenharmony_ci
3238c2ecf20Sopenharmony_ci.. code-block:: rst
3248c2ecf20Sopenharmony_ci
3258c2ecf20Sopenharmony_ci   .. flat-table:: table title
3268c2ecf20Sopenharmony_ci      :widths: 2 1 1 3
3278c2ecf20Sopenharmony_ci
3288c2ecf20Sopenharmony_ci      * - head col 1
3298c2ecf20Sopenharmony_ci        - head col 2
3308c2ecf20Sopenharmony_ci        - head col 3
3318c2ecf20Sopenharmony_ci        - head col 4
3328c2ecf20Sopenharmony_ci
3338c2ecf20Sopenharmony_ci      * - column 1
3348c2ecf20Sopenharmony_ci        - field 1.1
3358c2ecf20Sopenharmony_ci        - field 1.2 with autospan
3368c2ecf20Sopenharmony_ci
3378c2ecf20Sopenharmony_ci      * - column 2
3388c2ecf20Sopenharmony_ci        - field 2.1
3398c2ecf20Sopenharmony_ci        - :rspan:`1` :cspan:`1` field 2.2 - 3.3
3408c2ecf20Sopenharmony_ci
3418c2ecf20Sopenharmony_ci      * .. _`it last row`:
3428c2ecf20Sopenharmony_ci
3438c2ecf20Sopenharmony_ci        - column 3
3448c2ecf20Sopenharmony_ci
3458c2ecf20Sopenharmony_ciChe verrà rappresentata nel seguente modo:
3468c2ecf20Sopenharmony_ci
3478c2ecf20Sopenharmony_ci   .. flat-table:: table title
3488c2ecf20Sopenharmony_ci      :widths: 2 1 1 3
3498c2ecf20Sopenharmony_ci
3508c2ecf20Sopenharmony_ci      * - head col 1
3518c2ecf20Sopenharmony_ci        - head col 2
3528c2ecf20Sopenharmony_ci        - head col 3
3538c2ecf20Sopenharmony_ci        - head col 4
3548c2ecf20Sopenharmony_ci
3558c2ecf20Sopenharmony_ci      * - column 1
3568c2ecf20Sopenharmony_ci        - field 1.1
3578c2ecf20Sopenharmony_ci        - field 1.2 with autospan
3588c2ecf20Sopenharmony_ci
3598c2ecf20Sopenharmony_ci      * - column 2
3608c2ecf20Sopenharmony_ci        - field 2.1
3618c2ecf20Sopenharmony_ci        - :rspan:`1` :cspan:`1` field 2.2 - 3.3
3628c2ecf20Sopenharmony_ci
3638c2ecf20Sopenharmony_ci      * .. _`it last row`:
3648c2ecf20Sopenharmony_ci
3658c2ecf20Sopenharmony_ci        - column 3
3668c2ecf20Sopenharmony_ci
3678c2ecf20Sopenharmony_ci.. _it_sphinx_kfigure:
3688c2ecf20Sopenharmony_ci
3698c2ecf20Sopenharmony_ciFigure ed immagini
3708c2ecf20Sopenharmony_ci==================
3718c2ecf20Sopenharmony_ci
3728c2ecf20Sopenharmony_ciSe volete aggiungere un'immagine, utilizzate le direttive ``kernel-figure``
3738c2ecf20Sopenharmony_cie ``kernel-image``. Per esempio, per inserire una figura di un'immagine in
3748c2ecf20Sopenharmony_ciformato SVG::
3758c2ecf20Sopenharmony_ci
3768c2ecf20Sopenharmony_ci    .. kernel-figure::  ../../../doc-guide/svg_image.svg
3778c2ecf20Sopenharmony_ci       :alt:    una semplice immagine SVG
3788c2ecf20Sopenharmony_ci
3798c2ecf20Sopenharmony_ci       Una semplice immagine SVG
3808c2ecf20Sopenharmony_ci
3818c2ecf20Sopenharmony_ci.. _it_svg_image_example:
3828c2ecf20Sopenharmony_ci
3838c2ecf20Sopenharmony_ci.. kernel-figure::  ../../../doc-guide/svg_image.svg
3848c2ecf20Sopenharmony_ci   :alt:    una semplice immagine SVG
3858c2ecf20Sopenharmony_ci
3868c2ecf20Sopenharmony_ci   Una semplice immagine SVG
3878c2ecf20Sopenharmony_ci
3888c2ecf20Sopenharmony_ciLe direttive del kernel per figure ed immagini supportano il formato **DOT**,
3898c2ecf20Sopenharmony_ciper maggiori informazioni
3908c2ecf20Sopenharmony_ci
3918c2ecf20Sopenharmony_ci* DOT: http://graphviz.org/pdf/dotguide.pdf
3928c2ecf20Sopenharmony_ci* Graphviz: http://www.graphviz.org/content/dot-language
3938c2ecf20Sopenharmony_ci
3948c2ecf20Sopenharmony_ciUn piccolo esempio (:ref:`it_hello_dot_file`)::
3958c2ecf20Sopenharmony_ci
3968c2ecf20Sopenharmony_ci  .. kernel-figure::  ../../../doc-guide/hello.dot
3978c2ecf20Sopenharmony_ci     :alt:    ciao mondo
3988c2ecf20Sopenharmony_ci
3998c2ecf20Sopenharmony_ci     Esempio DOT
4008c2ecf20Sopenharmony_ci
4018c2ecf20Sopenharmony_ci.. _it_hello_dot_file:
4028c2ecf20Sopenharmony_ci
4038c2ecf20Sopenharmony_ci.. kernel-figure::  ../../../doc-guide/hello.dot
4048c2ecf20Sopenharmony_ci   :alt:    ciao mondo
4058c2ecf20Sopenharmony_ci
4068c2ecf20Sopenharmony_ci   Esempio DOT
4078c2ecf20Sopenharmony_ci
4088c2ecf20Sopenharmony_ciTramite la direttiva ``kernel-render`` è possibile aggiungere codice specifico;
4098c2ecf20Sopenharmony_ciad esempio nel formato **DOT** di Graphviz.::
4108c2ecf20Sopenharmony_ci
4118c2ecf20Sopenharmony_ci  .. kernel-render:: DOT
4128c2ecf20Sopenharmony_ci     :alt: foobar digraph
4138c2ecf20Sopenharmony_ci     :caption: Codice **DOT** (Graphviz) integrato
4148c2ecf20Sopenharmony_ci
4158c2ecf20Sopenharmony_ci     digraph foo {
4168c2ecf20Sopenharmony_ci      "bar" -> "baz";
4178c2ecf20Sopenharmony_ci     }
4188c2ecf20Sopenharmony_ci
4198c2ecf20Sopenharmony_ciLa rappresentazione dipenderà dei programmi installati. Se avete Graphviz
4208c2ecf20Sopenharmony_ciinstallato, vedrete un'immagine vettoriale. In caso contrario, il codice grezzo
4218c2ecf20Sopenharmony_civerrà rappresentato come *blocco testuale* (:ref:`it_hello_dot_render`).
4228c2ecf20Sopenharmony_ci
4238c2ecf20Sopenharmony_ci.. _it_hello_dot_render:
4248c2ecf20Sopenharmony_ci
4258c2ecf20Sopenharmony_ci.. kernel-render:: DOT
4268c2ecf20Sopenharmony_ci   :alt: foobar digraph
4278c2ecf20Sopenharmony_ci   :caption: Codice **DOT** (Graphviz) integrato
4288c2ecf20Sopenharmony_ci
4298c2ecf20Sopenharmony_ci   digraph foo {
4308c2ecf20Sopenharmony_ci      "bar" -> "baz";
4318c2ecf20Sopenharmony_ci   }
4328c2ecf20Sopenharmony_ci
4338c2ecf20Sopenharmony_ciLa direttiva *render* ha tutte le opzioni della direttiva *figure*, con
4348c2ecf20Sopenharmony_cil'aggiunta dell'opzione ``caption``. Se ``caption`` ha un valore allora
4358c2ecf20Sopenharmony_ciun nodo *figure* viene aggiunto. Altrimenti verrà aggiunto un nodo *image*.
4368c2ecf20Sopenharmony_ciL'opzione ``caption`` è necessaria in caso si vogliano aggiungere dei
4378c2ecf20Sopenharmony_ciriferimenti (:ref:`it_hello_svg_render`).
4388c2ecf20Sopenharmony_ci
4398c2ecf20Sopenharmony_ciPer la scrittura di codice **SVG**::
4408c2ecf20Sopenharmony_ci
4418c2ecf20Sopenharmony_ci  .. kernel-render:: SVG
4428c2ecf20Sopenharmony_ci     :caption: Integrare codice **SVG**
4438c2ecf20Sopenharmony_ci     :alt: so-nw-arrow
4448c2ecf20Sopenharmony_ci
4458c2ecf20Sopenharmony_ci     <?xml version="1.0" encoding="UTF-8"?>
4468c2ecf20Sopenharmony_ci     <svg xmlns="http://www.w3.org/2000/svg" version="1.1" ...>
4478c2ecf20Sopenharmony_ci        ...
4488c2ecf20Sopenharmony_ci     </svg>
4498c2ecf20Sopenharmony_ci
4508c2ecf20Sopenharmony_ci.. _it_hello_svg_render:
4518c2ecf20Sopenharmony_ci
4528c2ecf20Sopenharmony_ci.. kernel-render:: SVG
4538c2ecf20Sopenharmony_ci   :caption: Integrare codice **SVG**
4548c2ecf20Sopenharmony_ci   :alt: so-nw-arrow
4558c2ecf20Sopenharmony_ci
4568c2ecf20Sopenharmony_ci   <?xml version="1.0" encoding="UTF-8"?>
4578c2ecf20Sopenharmony_ci   <svg xmlns="http://www.w3.org/2000/svg"
4588c2ecf20Sopenharmony_ci     version="1.1" baseProfile="full" width="70px" height="40px" viewBox="0 0 700 400">
4598c2ecf20Sopenharmony_ci   <line x1="180" y1="370" x2="500" y2="50" stroke="black" stroke-width="15px"/>
4608c2ecf20Sopenharmony_ci   <polygon points="585 0 525 25 585 50" transform="rotate(135 525 25)"/>
4618c2ecf20Sopenharmony_ci   </svg>
462