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