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