162306a36Sopenharmony_ci.. include:: ../disclaimer-ita.rst 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci.. note:: Per leggere la documentazione originale in inglese: 462306a36Sopenharmony_ci :ref:`Documentation/doc-guide/index.rst <doc_guide>` 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci.. _it_sphinxdoc: 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci============================================= 962306a36Sopenharmony_ciUsare Sphinx per la documentazione del kernel 1062306a36Sopenharmony_ci============================================= 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciIl kernel Linux usa `Sphinx`_ per la generazione della documentazione a partire 1362306a36Sopenharmony_cidai file `reStructuredText`_ che si trovano nella cartella ``Documentation``. 1462306a36Sopenharmony_ciPer generare la documentazione in HTML o PDF, usate comandi ``make htmldocs`` o 1562306a36Sopenharmony_ci``make pdfdocs``. La documentazione così generata sarà disponibile nella 1662306a36Sopenharmony_cicartella ``Documentation/output``. 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci.. _Sphinx: http://www.sphinx-doc.org/ 1962306a36Sopenharmony_ci.. _reStructuredText: http://docutils.sourceforge.net/rst.html 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ciI file reStructuredText possono contenere delle direttive che permettono di 2262306a36Sopenharmony_ciincludere i commenti di documentazione, o di tipo kernel-doc, dai file 2362306a36Sopenharmony_cisorgenti. 2462306a36Sopenharmony_ciSolitamente questi commenti sono utilizzati per descrivere le funzioni, i tipi 2562306a36Sopenharmony_cie l'architettura del codice. I commenti di tipo kernel-doc hanno una struttura 2662306a36Sopenharmony_cie formato speciale, ma a parte questo vengono processati come reStructuredText. 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciInoltre, ci sono migliaia di altri documenti in formato testo sparsi nella 2962306a36Sopenharmony_cicartella ``Documentation``. Alcuni di questi verranno probabilmente convertiti, 3062306a36Sopenharmony_cinel tempo, in formato reStructuredText, ma la maggior parte di questi rimarranno 3162306a36Sopenharmony_ciin formato testo. 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci.. _it_sphinx_install: 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ciInstallazione Sphinx 3662306a36Sopenharmony_ci==================== 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ciI marcatori ReST utilizzati nei file in Documentation/ sono pensati per essere 3962306a36Sopenharmony_ciprocessati da ``Sphinx`` nella versione 1.7 o superiore. 4062306a36Sopenharmony_ci 4162306a36Sopenharmony_ciEsiste uno script che verifica i requisiti Sphinx. Per ulteriori dettagli 4262306a36Sopenharmony_ciconsultate :ref:`it_sphinx-pre-install`. 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ciLa maggior parte delle distribuzioni Linux forniscono Sphinx, ma l'insieme dei 4562306a36Sopenharmony_ciprogrammi e librerie è fragile e non è raro che dopo un aggiornamento di 4662306a36Sopenharmony_ciSphinx, o qualche altro pacchetto Python, la documentazione non venga più 4762306a36Sopenharmony_cigenerata correttamente. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciUn modo per evitare questo genere di problemi è quello di utilizzare una 5062306a36Sopenharmony_civersione diversa da quella fornita dalla vostra distribuzione. Per fare questo, 5162306a36Sopenharmony_civi raccomandiamo di installare Sphinx dentro ad un ambiente virtuale usando 5262306a36Sopenharmony_ci``virtualenv-3`` o ``virtualenv`` a seconda di come Python 3 è stato 5362306a36Sopenharmony_cipacchettizzato dalla vostra distribuzione. 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ci.. note:: 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci #) Viene raccomandato l'uso del tema RTD per la documentazione in HTML. 5862306a36Sopenharmony_ci A seconda della versione di Sphinx, potrebbe essere necessaria 5962306a36Sopenharmony_ci l'installazione tramite il comando ``pip install sphinx_rtd_theme``. 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci #) Alcune pagine ReST contengono delle formule matematiche. A causa del 6262306a36Sopenharmony_ci modo in cui Sphinx funziona, queste espressioni sono scritte 6362306a36Sopenharmony_ci utilizzando LaTeX. Per una corretta interpretazione, è necessario aver 6462306a36Sopenharmony_ci installato texlive con i pacchetti amdfonts e amsmath. 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ciRiassumendo, se volete installare la versione 2.4.4 di Sphinx dovete eseguire:: 6762306a36Sopenharmony_ci 6862306a36Sopenharmony_ci $ virtualenv sphinx_2.4.4 6962306a36Sopenharmony_ci $ . sphinx_2.4.4/bin/activate 7062306a36Sopenharmony_ci (sphinx_2.4.4) $ pip install -r Documentation/sphinx/requirements.txt 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ciDopo aver eseguito ``. sphinx_2.4.4/bin/activate``, il prompt cambierà per 7362306a36Sopenharmony_ciindicare che state usando il nuovo ambiente. Se aprite un nuova sessione, 7462306a36Sopenharmony_ciprima di generare la documentazione, dovrete rieseguire questo comando per 7562306a36Sopenharmony_cirientrare nell'ambiente virtuale. 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ciGenerazione d'immagini 7862306a36Sopenharmony_ci---------------------- 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ciIl meccanismo che genera la documentazione del kernel contiene un'estensione 8162306a36Sopenharmony_cicapace di gestire immagini in formato Graphviz e SVG (per maggior informazioni 8262306a36Sopenharmony_civedere :ref:`it_sphinx_kfigure`). 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ciPer far si che questo funzioni, dovete installare entrambe i pacchetti 8562306a36Sopenharmony_ciGraphviz e ImageMagick. Il sistema di generazione della documentazione è in 8662306a36Sopenharmony_cigrado di procedere anche se questi pacchetti non sono installati, ma il 8762306a36Sopenharmony_cirisultato, ovviamente, non includerà le immagini. 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ciGenerazione in PDF e LaTeX 9062306a36Sopenharmony_ci-------------------------- 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ciAl momento, la generazione di questi documenti è supportata solo dalle 9362306a36Sopenharmony_civersioni di Sphinx superiori alla 2.4. 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ciPer la generazione di PDF e LaTeX, avrete bisogno anche del pacchetto 9662306a36Sopenharmony_ci``XeLaTeX`` nella versione 3.14159265 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ciPer alcune distribuzioni Linux potrebbe essere necessario installare 9962306a36Sopenharmony_cianche una serie di pacchetti ``texlive`` in modo da fornire il supporto 10062306a36Sopenharmony_ciminimo per il funzionamento di ``XeLaTeX``. 10162306a36Sopenharmony_ci 10262306a36Sopenharmony_ci.. _it_sphinx-pre-install: 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ciVerificare le dipendenze Sphinx 10562306a36Sopenharmony_ci------------------------------- 10662306a36Sopenharmony_ci 10762306a36Sopenharmony_ciEsiste uno script che permette di verificare automaticamente le dipendenze di 10862306a36Sopenharmony_ciSphinx. Se lo script riesce a riconoscere la vostra distribuzione, allora 10962306a36Sopenharmony_cisarà in grado di darvi dei suggerimenti su come procedere per completare 11062306a36Sopenharmony_cil'installazione:: 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci $ ./scripts/sphinx-pre-install 11362306a36Sopenharmony_ci Checking if the needed tools for Fedora release 26 (Twenty Six) are available 11462306a36Sopenharmony_ci Warning: better to also install "texlive-luatex85". 11562306a36Sopenharmony_ci You should run: 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_ci sudo dnf install -y texlive-luatex85 11862306a36Sopenharmony_ci /usr/bin/virtualenv sphinx_2.4.4 11962306a36Sopenharmony_ci . sphinx_2.4.4/bin/activate 12062306a36Sopenharmony_ci pip install -r Documentation/sphinx/requirements.txt 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ci Can't build as 1 mandatory dependency is missing at ./scripts/sphinx-pre-install line 468. 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ciL'impostazione predefinita prevede il controllo dei requisiti per la generazione 12562306a36Sopenharmony_cidi documenti html e PDF, includendo anche il supporto per le immagini, le 12662306a36Sopenharmony_ciespressioni matematiche e LaTeX; inoltre, presume che venga utilizzato un 12762306a36Sopenharmony_ciambiente virtuale per Python. I requisiti per generare i documenti html 12862306a36Sopenharmony_cisono considerati obbligatori, gli altri sono opzionali. 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ciQuesto script ha i seguenti parametri: 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci``--no-pdf`` 13362306a36Sopenharmony_ci Disabilita i controlli per la generazione di PDF; 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci``--no-virtualenv`` 13662306a36Sopenharmony_ci Utilizza l'ambiente predefinito dal sistema operativo invece che 13762306a36Sopenharmony_ci l'ambiente virtuale per Python; 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ciGenerazione della documentazione Sphinx 14162306a36Sopenharmony_ci======================================= 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ciPer generare la documentazione in formato HTML o PDF si eseguono i rispettivi 14462306a36Sopenharmony_cicomandi ``make htmldocs`` o ``make pdfdocs``. Esistono anche altri formati 14562306a36Sopenharmony_ciin cui è possibile generare la documentazione; per maggiori informazioni 14662306a36Sopenharmony_cipotere eseguire il comando ``make help``. 14762306a36Sopenharmony_ciLa documentazione così generata sarà disponibile nella sottocartella 14862306a36Sopenharmony_ci``Documentation/output``. 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ciOvviamente, per generare la documentazione, Sphinx (``sphinx-build``) 15162306a36Sopenharmony_cidev'essere installato. Se disponibile, il tema *Read the Docs* per Sphinx 15262306a36Sopenharmony_civerrà utilizzato per ottenere una documentazione HTML più gradevole. 15362306a36Sopenharmony_ciPer la documentazione in formato PDF, invece, avrete bisogno di ``XeLaTeX` 15462306a36Sopenharmony_cie di ``convert(1)`` disponibile in ImageMagick 15562306a36Sopenharmony_ci(https://www.imagemagick.org). \ [#ink]_ 15662306a36Sopenharmony_ciTipicamente, tutti questi pacchetti sono disponibili e pacchettizzati nelle 15762306a36Sopenharmony_cidistribuzioni Linux. 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ciPer poter passare ulteriori opzioni a Sphinx potete utilizzare la variabile 16062306a36Sopenharmony_cimake ``SPHINXOPTS``. Per esempio, se volete che Sphinx sia più verboso durante 16162306a36Sopenharmony_cila generazione potete usare il seguente comando ``make SPHINXOPTS=-v htmldocs``. 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ciPotete anche personalizzare l'ouptut html passando un livello aggiuntivo 16462306a36Sopenharmony_ciDOCS_CSS usando la rispettiva variabile d'ambiente ``DOCS_CSS``. 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ciLa variable make ``SPHINXDIRS`` è utile quando si vuole generare solo una parte 16762306a36Sopenharmony_cidella documentazione. Per esempio, si possono generare solo di documenti in 16862306a36Sopenharmony_ci``Documentation/doc-guide`` eseguendo ``make SPHINXDIRS=doc-guide htmldocs``. La 16962306a36Sopenharmony_cisezione dedicata alla documentazione di ``make help`` vi mostrerà quali sotto 17062306a36Sopenharmony_cicartelle potete specificare. 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ciPotete eliminare la documentazione generata tramite il comando 17362306a36Sopenharmony_ci``make cleandocs``. 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci.. [#ink] Avere installato anche ``inkscape(1)`` dal progetto Inkscape () 17662306a36Sopenharmony_ci potrebbe aumentare la qualità delle immagini che verranno integrate 17762306a36Sopenharmony_ci nel documento PDF, specialmente per quando si usando rilasci del 17862306a36Sopenharmony_ci kernel uguali o superiori a 5.18 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ciScrivere la documentazione 18162306a36Sopenharmony_ci========================== 18262306a36Sopenharmony_ci 18362306a36Sopenharmony_ciAggiungere nuova documentazione è semplice: 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci1. aggiungete un file ``.rst`` nella sottocartella ``Documentation`` 18662306a36Sopenharmony_ci2. aggiungete un riferimento ad esso nell'indice (`TOC tree`_) in 18762306a36Sopenharmony_ci ``Documentation/index.rst``. 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci.. _TOC tree: http://www.sphinx-doc.org/en/stable/markup/toctree.html 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ciQuesto, di solito, è sufficiente per la documentazione più semplice (come 19262306a36Sopenharmony_ciquella che state leggendo ora), ma per una documentazione più elaborata è 19362306a36Sopenharmony_ciconsigliato creare una sottocartella dedicata (o, quando possibile, utilizzarne 19462306a36Sopenharmony_ciuna già esistente). Per esempio, il sottosistema grafico è documentato nella 19562306a36Sopenharmony_cisottocartella ``Documentation/gpu``; questa documentazione è divisa in 19662306a36Sopenharmony_cidiversi file ``.rst`` ed un indice ``index.rst`` (con un ``toctree`` 19762306a36Sopenharmony_cidedicato) a cui si fa riferimento nell'indice principale. 19862306a36Sopenharmony_ci 19962306a36Sopenharmony_ciConsultate la documentazione di `Sphinx`_ e `reStructuredText`_ per maggiori 20062306a36Sopenharmony_ciinformazione circa le loro potenzialità. In particolare, il 20162306a36Sopenharmony_ci`manuale introduttivo a reStructuredText`_ di Sphinx è un buon punto da 20262306a36Sopenharmony_cicui cominciare. Esistono, inoltre, anche alcuni 20362306a36Sopenharmony_ci`costruttori specifici per Sphinx`_. 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci.. _`manuale introduttivo a reStructuredText`: http://www.sphinx-doc.org/en/stable/rest.html 20662306a36Sopenharmony_ci.. _`costruttori specifici per Sphinx`: http://www.sphinx-doc.org/en/stable/markup/index.html 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ciGuide linea per la documentazione del kernel 20962306a36Sopenharmony_ci-------------------------------------------- 21062306a36Sopenharmony_ci 21162306a36Sopenharmony_ciIn questa sezione troverete alcune linee guida specifiche per la documentazione 21262306a36Sopenharmony_cidel kernel: 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci* Non esagerate con i costrutti di reStructuredText. Mantenete la 21562306a36Sopenharmony_ci documentazione semplice. La maggior parte della documentazione dovrebbe 21662306a36Sopenharmony_ci essere testo semplice con una strutturazione minima che permetta la 21762306a36Sopenharmony_ci conversione in diversi formati. 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ci* Mantenete la strutturazione il più fedele possibile all'originale quando 22062306a36Sopenharmony_ci convertite un documento in formato reStructuredText. 22162306a36Sopenharmony_ci 22262306a36Sopenharmony_ci* Aggiornate i contenuti quando convertite della documentazione, non limitatevi 22362306a36Sopenharmony_ci solo alla formattazione. 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ci* Mantenete la decorazione dei livelli di intestazione come segue: 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci 1. ``=`` con una linea superiore per il titolo del documento:: 22862306a36Sopenharmony_ci 22962306a36Sopenharmony_ci ====== 23062306a36Sopenharmony_ci Titolo 23162306a36Sopenharmony_ci ====== 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci 2. ``=`` per i capitoli:: 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci Capitoli 23662306a36Sopenharmony_ci ======== 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci 3. ``-`` per le sezioni:: 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ci Sezioni 24162306a36Sopenharmony_ci ------- 24262306a36Sopenharmony_ci 24362306a36Sopenharmony_ci 4. ``~`` per le sottosezioni:: 24462306a36Sopenharmony_ci 24562306a36Sopenharmony_ci Sottosezioni 24662306a36Sopenharmony_ci ~~~~~~~~~~~~ 24762306a36Sopenharmony_ci 24862306a36Sopenharmony_ci Sebbene RST non forzi alcun ordine specifico (*Piuttosto che imporre 24962306a36Sopenharmony_ci un numero ed un ordine fisso di decorazioni, l'ordine utilizzato sarà 25062306a36Sopenharmony_ci quello incontrato*), avere uniformità dei livelli principali rende più 25162306a36Sopenharmony_ci semplice la lettura dei documenti. 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci* Per inserire blocchi di testo con caratteri a dimensione fissa (codici di 25462306a36Sopenharmony_ci esempio, casi d'uso, eccetera): utilizzate ``::`` quando non è necessario 25562306a36Sopenharmony_ci evidenziare la sintassi, specialmente per piccoli frammenti; invece, 25662306a36Sopenharmony_ci utilizzate ``.. code-block:: <language>`` per blocchi più lunghi che 25762306a36Sopenharmony_ci beneficeranno della sintassi evidenziata. Per un breve pezzo di codice da 25862306a36Sopenharmony_ci inserire nel testo, usate \`\`. 25962306a36Sopenharmony_ci 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ciIl dominio C 26262306a36Sopenharmony_ci------------ 26362306a36Sopenharmony_ci 26462306a36Sopenharmony_ciIl **Dominio Sphinx C** (denominato c) è adatto alla documentazione delle API C. 26562306a36Sopenharmony_ciPer esempio, un prototipo di una funzione: 26662306a36Sopenharmony_ci 26762306a36Sopenharmony_ci.. code-block:: rst 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci .. c:function:: int ioctl( int fd, int request ) 27062306a36Sopenharmony_ci 27162306a36Sopenharmony_ciIl dominio C per kernel-doc ha delle funzionalità aggiuntive. Per esempio, 27262306a36Sopenharmony_cipotete assegnare un nuovo nome di riferimento ad una funzione con un nome 27362306a36Sopenharmony_cimolto comune come ``open`` o ``ioctl``: 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_ci.. code-block:: rst 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_ci .. c:function:: int ioctl( int fd, int request ) 27862306a36Sopenharmony_ci :name: VIDIOC_LOG_STATUS 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ciIl nome della funzione (per esempio ioctl) rimane nel testo ma il nome del suo 28162306a36Sopenharmony_ciriferimento cambia da ``ioctl`` a ``VIDIOC_LOG_STATUS``. Anche la voce 28262306a36Sopenharmony_cinell'indice cambia in ``VIDIOC_LOG_STATUS``. 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ciNotate che per una funzione non c'è bisogno di usare ``c:func:`` per generarne 28562306a36Sopenharmony_cii riferimenti nella documentazione. Grazie a qualche magica estensione a 28662306a36Sopenharmony_ciSphinx, il sistema di generazione della documentazione trasformerà 28762306a36Sopenharmony_ciautomaticamente un riferimento ad una ``funzione()`` in un riferimento 28862306a36Sopenharmony_ciincrociato quando questa ha una voce nell'indice. Se trovate degli usi di 28962306a36Sopenharmony_ci``c:func:`` nella documentazione del kernel, sentitevi liberi di rimuoverli. 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_ci 29262306a36Sopenharmony_ciTabelle a liste 29362306a36Sopenharmony_ci--------------- 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ciIl formato ``list-table`` può essere utile per tutte quelle tabelle che non 29662306a36Sopenharmony_cipossono essere facilmente scritte usando il formato ASCII-art di Sphinx. Però, 29762306a36Sopenharmony_ciquesto genere di tabelle sono illeggibili per chi legge direttamente i file di 29862306a36Sopenharmony_citesto. Dunque, questo formato dovrebbe essere evitato senza forti argomenti che 29962306a36Sopenharmony_cine giustifichino l'uso. 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ciLa ``flat-table`` è anch'essa una lista di liste simile alle ``list-table`` 30262306a36Sopenharmony_cima con delle funzionalità aggiuntive: 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ci* column-span: col ruolo ``cspan`` una cella può essere estesa attraverso 30562306a36Sopenharmony_ci colonne successive 30662306a36Sopenharmony_ci 30762306a36Sopenharmony_ci* raw-span: col ruolo ``rspan`` una cella può essere estesa attraverso 30862306a36Sopenharmony_ci righe successive 30962306a36Sopenharmony_ci 31062306a36Sopenharmony_ci* auto-span: la cella più a destra viene estesa verso destra per compensare 31162306a36Sopenharmony_ci la mancanza di celle. Con l'opzione ``:fill-cells:`` questo comportamento 31262306a36Sopenharmony_ci può essere cambiato da *auto-span* ad *auto-fill*, il quale inserisce 31362306a36Sopenharmony_ci automaticamente celle (vuote) invece che estendere l'ultima. 31462306a36Sopenharmony_ci 31562306a36Sopenharmony_ciopzioni: 31662306a36Sopenharmony_ci 31762306a36Sopenharmony_ci* ``:header-rows:`` [int] conta le righe di intestazione 31862306a36Sopenharmony_ci* ``:stub-columns:`` [int] conta le colonne di stub 31962306a36Sopenharmony_ci* ``:widths:`` [[int] [int] ... ] larghezza delle colonne 32062306a36Sopenharmony_ci* ``:fill-cells:`` invece di estendere automaticamente una cella su quelle 32162306a36Sopenharmony_ci mancanti, ne crea di vuote. 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ciruoli: 32462306a36Sopenharmony_ci 32562306a36Sopenharmony_ci* ``:cspan:`` [int] colonne successive (*morecols*) 32662306a36Sopenharmony_ci* ``:rspan:`` [int] righe successive (*morerows*) 32762306a36Sopenharmony_ci 32862306a36Sopenharmony_ciL'esempio successivo mostra come usare questo marcatore. Il primo livello della 32962306a36Sopenharmony_cinostra lista di liste è la *riga*. In una *riga* è possibile inserire solamente 33062306a36Sopenharmony_cila lista di celle che compongono la *riga* stessa. Fanno eccezione i *commenti* 33162306a36Sopenharmony_ci( ``..`` ) ed i *collegamenti* (per esempio, un riferimento a 33262306a36Sopenharmony_ci``:ref:`last row <last row>``` / :ref:`last row <it last row>`) 33362306a36Sopenharmony_ci 33462306a36Sopenharmony_ci.. code-block:: rst 33562306a36Sopenharmony_ci 33662306a36Sopenharmony_ci .. flat-table:: table title 33762306a36Sopenharmony_ci :widths: 2 1 1 3 33862306a36Sopenharmony_ci 33962306a36Sopenharmony_ci * - head col 1 34062306a36Sopenharmony_ci - head col 2 34162306a36Sopenharmony_ci - head col 3 34262306a36Sopenharmony_ci - head col 4 34362306a36Sopenharmony_ci 34462306a36Sopenharmony_ci * - row 1 34562306a36Sopenharmony_ci - field 1.1 34662306a36Sopenharmony_ci - field 1.2 with autospan 34762306a36Sopenharmony_ci 34862306a36Sopenharmony_ci * - row 2 34962306a36Sopenharmony_ci - field 2.1 35062306a36Sopenharmony_ci - :rspan:`1` :cspan:`1` field 2.2 - 3.3 35162306a36Sopenharmony_ci 35262306a36Sopenharmony_ci * .. _`it last row`: 35362306a36Sopenharmony_ci 35462306a36Sopenharmony_ci - row 3 35562306a36Sopenharmony_ci 35662306a36Sopenharmony_ciChe verrà rappresentata nel seguente modo: 35762306a36Sopenharmony_ci 35862306a36Sopenharmony_ci .. flat-table:: table title 35962306a36Sopenharmony_ci :widths: 2 1 1 3 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci * - head col 1 36262306a36Sopenharmony_ci - head col 2 36362306a36Sopenharmony_ci - head col 3 36462306a36Sopenharmony_ci - head col 4 36562306a36Sopenharmony_ci 36662306a36Sopenharmony_ci * - row 1 36762306a36Sopenharmony_ci - field 1.1 36862306a36Sopenharmony_ci - field 1.2 with autospan 36962306a36Sopenharmony_ci 37062306a36Sopenharmony_ci * - row 2 37162306a36Sopenharmony_ci - field 2.1 37262306a36Sopenharmony_ci - :rspan:`1` :cspan:`1` field 2.2 - 3.3 37362306a36Sopenharmony_ci 37462306a36Sopenharmony_ci * .. _`it last row`: 37562306a36Sopenharmony_ci 37662306a36Sopenharmony_ci - row 3 37762306a36Sopenharmony_ci 37862306a36Sopenharmony_ciRiferimenti incrociati 37962306a36Sopenharmony_ci---------------------- 38062306a36Sopenharmony_ci 38162306a36Sopenharmony_ciAggiungere un riferimento incrociato da una pagina della 38262306a36Sopenharmony_cidocumentazione ad un'altra può essere fatto scrivendo il percorso al 38362306a36Sopenharmony_cifile corrispondende, non serve alcuna sintassi speciale. Si possono 38462306a36Sopenharmony_ciusare sia percorsi assoluti che relativi. Quelli assoluti iniziano con 38562306a36Sopenharmony_ci"documentation/". Per esempio, potete fare riferimento a questo 38662306a36Sopenharmony_cidocumento in uno dei seguenti modi (da notare che l'estensione 38762306a36Sopenharmony_ci``.rst`` è necessaria):: 38862306a36Sopenharmony_ci 38962306a36Sopenharmony_ci Vedere Documentation/doc-guide/sphinx.rst. Questo funziona sempre 39062306a36Sopenharmony_ci Guardate pshinx.rst, che si trova nella stessa cartella. 39162306a36Sopenharmony_ci Leggete ../sphinx.rst, che si trova nella cartella precedente. 39262306a36Sopenharmony_ci 39362306a36Sopenharmony_ciSe volete che il collegamento abbia un testo diverso rispetto al 39462306a36Sopenharmony_cititolo del documento, allora dovrete usare la direttiva Sphinx 39562306a36Sopenharmony_ci``doc``. Per esempio:: 39662306a36Sopenharmony_ci 39762306a36Sopenharmony_ci Vedere :doc:`il mio testo per il collegamento <sphinx>`. 39862306a36Sopenharmony_ci 39962306a36Sopenharmony_ciNella maggioranza dei casi si consiglia il primo metodo perché è più 40062306a36Sopenharmony_cipulito ed adatto a chi legge dai sorgenti. Se incontrare un ``:doc:`` 40162306a36Sopenharmony_ciche non da alcun valore, sentitevi liberi di convertirlo in un 40262306a36Sopenharmony_cipercorso al documento. 40362306a36Sopenharmony_ci 40462306a36Sopenharmony_ciPer informazioni riguardo ai riferimenti incrociati ai commenti 40562306a36Sopenharmony_cikernel-doc per funzioni o tipi, consultate 40662306a36Sopenharmony_ci 40762306a36Sopenharmony_ci.. _it_sphinx_kfigure: 40862306a36Sopenharmony_ci 40962306a36Sopenharmony_ciFigure ed immagini 41062306a36Sopenharmony_ci================== 41162306a36Sopenharmony_ci 41262306a36Sopenharmony_ciSe volete aggiungere un'immagine, utilizzate le direttive ``kernel-figure`` 41362306a36Sopenharmony_cie ``kernel-image``. Per esempio, per inserire una figura di un'immagine in 41462306a36Sopenharmony_ciformato SVG (:ref:`it_svg_image_example`):: 41562306a36Sopenharmony_ci 41662306a36Sopenharmony_ci .. kernel-figure:: ../../../doc-guide/svg_image.svg 41762306a36Sopenharmony_ci :alt: una semplice immagine SVG 41862306a36Sopenharmony_ci 41962306a36Sopenharmony_ci Una semplice immagine SVG 42062306a36Sopenharmony_ci 42162306a36Sopenharmony_ci.. _it_svg_image_example: 42262306a36Sopenharmony_ci 42362306a36Sopenharmony_ci.. kernel-figure:: ../../../doc-guide/svg_image.svg 42462306a36Sopenharmony_ci :alt: una semplice immagine SVG 42562306a36Sopenharmony_ci 42662306a36Sopenharmony_ci Una semplice immagine SVG 42762306a36Sopenharmony_ci 42862306a36Sopenharmony_ciLe direttive del kernel per figure ed immagini supportano il formato **DOT**, 42962306a36Sopenharmony_ciper maggiori informazioni 43062306a36Sopenharmony_ci 43162306a36Sopenharmony_ci* DOT: http://graphviz.org/pdf/dotguide.pdf 43262306a36Sopenharmony_ci* Graphviz: http://www.graphviz.org/content/dot-language 43362306a36Sopenharmony_ci 43462306a36Sopenharmony_ciUn piccolo esempio (:ref:`it_hello_dot_file`):: 43562306a36Sopenharmony_ci 43662306a36Sopenharmony_ci .. kernel-figure:: ../../../doc-guide/hello.dot 43762306a36Sopenharmony_ci :alt: ciao mondo 43862306a36Sopenharmony_ci 43962306a36Sopenharmony_ci Esempio DOT 44062306a36Sopenharmony_ci 44162306a36Sopenharmony_ci.. _it_hello_dot_file: 44262306a36Sopenharmony_ci 44362306a36Sopenharmony_ci.. kernel-figure:: ../../../doc-guide/hello.dot 44462306a36Sopenharmony_ci :alt: ciao mondo 44562306a36Sopenharmony_ci 44662306a36Sopenharmony_ci Esempio DOT 44762306a36Sopenharmony_ci 44862306a36Sopenharmony_ciTramite la direttiva ``kernel-render`` è possibile aggiungere codice specifico; 44962306a36Sopenharmony_ciad esempio nel formato **DOT** di Graphviz.:: 45062306a36Sopenharmony_ci 45162306a36Sopenharmony_ci .. kernel-render:: DOT 45262306a36Sopenharmony_ci :alt: foobar digraph 45362306a36Sopenharmony_ci :caption: Codice **DOT** (Graphviz) integrato 45462306a36Sopenharmony_ci 45562306a36Sopenharmony_ci digraph foo { 45662306a36Sopenharmony_ci "bar" -> "baz"; 45762306a36Sopenharmony_ci } 45862306a36Sopenharmony_ci 45962306a36Sopenharmony_ciLa rappresentazione dipenderà dei programmi installati. Se avete Graphviz 46062306a36Sopenharmony_ciinstallato, vedrete un'immagine vettoriale. In caso contrario, il codice grezzo 46162306a36Sopenharmony_civerrà rappresentato come *blocco testuale* (:ref:`it_hello_dot_render`). 46262306a36Sopenharmony_ci 46362306a36Sopenharmony_ci.. _it_hello_dot_render: 46462306a36Sopenharmony_ci 46562306a36Sopenharmony_ci.. kernel-render:: DOT 46662306a36Sopenharmony_ci :alt: foobar digraph 46762306a36Sopenharmony_ci :caption: Codice **DOT** (Graphviz) integrato 46862306a36Sopenharmony_ci 46962306a36Sopenharmony_ci digraph foo { 47062306a36Sopenharmony_ci "bar" -> "baz"; 47162306a36Sopenharmony_ci } 47262306a36Sopenharmony_ci 47362306a36Sopenharmony_ciLa direttiva *render* ha tutte le opzioni della direttiva *figure*, con 47462306a36Sopenharmony_cil'aggiunta dell'opzione ``caption``. Se ``caption`` ha un valore allora 47562306a36Sopenharmony_ciun nodo *figure* viene aggiunto. Altrimenti verrà aggiunto un nodo *image*. 47662306a36Sopenharmony_ciL'opzione ``caption`` è necessaria in caso si vogliano aggiungere dei 47762306a36Sopenharmony_ciriferimenti (:ref:`it_hello_svg_render`). 47862306a36Sopenharmony_ci 47962306a36Sopenharmony_ciPer la scrittura di codice **SVG**:: 48062306a36Sopenharmony_ci 48162306a36Sopenharmony_ci .. kernel-render:: SVG 48262306a36Sopenharmony_ci :caption: Integrare codice **SVG** 48362306a36Sopenharmony_ci :alt: so-nw-arrow 48462306a36Sopenharmony_ci 48562306a36Sopenharmony_ci <?xml version="1.0" encoding="UTF-8"?> 48662306a36Sopenharmony_ci <svg xmlns="http://www.w3.org/2000/svg" version="1.1" ...> 48762306a36Sopenharmony_ci ... 48862306a36Sopenharmony_ci </svg> 48962306a36Sopenharmony_ci 49062306a36Sopenharmony_ci.. _it_hello_svg_render: 49162306a36Sopenharmony_ci 49262306a36Sopenharmony_ci.. kernel-render:: SVG 49362306a36Sopenharmony_ci :caption: Integrare codice **SVG** 49462306a36Sopenharmony_ci :alt: so-nw-arrow 49562306a36Sopenharmony_ci 49662306a36Sopenharmony_ci <?xml version="1.0" encoding="UTF-8"?> 49762306a36Sopenharmony_ci <svg xmlns="http://www.w3.org/2000/svg" 49862306a36Sopenharmony_ci version="1.1" baseProfile="full" width="70px" height="40px" viewBox="0 0 700 400"> 49962306a36Sopenharmony_ci <line x1="180" y1="370" x2="500" y2="50" stroke="black" stroke-width="15px"/> 50062306a36Sopenharmony_ci <polygon points="585 0 525 25 585 50" transform="rotate(135 525 25)"/> 50162306a36Sopenharmony_ci </svg> 502