Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
dev:python:sphinx:introduction [2025/02/26 20:37] – yoann | dev:python:sphinx:introduction [2025/02/27 15:25] (Version actuelle) – yoann | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
- | ====== | + | ====== |
- | Sphinx est un programme dédié à la génération de tous types de documentation associée à un projet: | + | Sphinx est un programme dédié à la génération de tout type de documentation associée à un projet: |
- | * La documentation de référence (documentation des modules, classes et APIs); | + | * La documentation de référence |
* les tutoriaux (documentation à objectifs pédagogiques); | * les tutoriaux (documentation à objectifs pédagogiques); | ||
* Les How-To (documentation ayant pour objet la résolution de problèmes); | * Les How-To (documentation ayant pour objet la résolution de problèmes); | ||
* Les documents explicatifs ayant pour objectif de faire connaître ou de justifier certains choix. | * Les documents explicatifs ayant pour objectif de faire connaître ou de justifier certains choix. | ||
- | Souvent on pense à Sphinx comme à un outil de génération de documentation technique pour Python capable d' | + | Souvent on pense à Sphinx comme à un outil de génération de documentation technique pour Python capable d' |
- | Plus généralement Sphinx peut prendre en entrée tout type de document texte et produire une sortie lisible. | + | Plus généralement Sphinx peut prendre en entrée tout type de documents textes |
En général les fichiers texte en entrées utilisent le formatage **reStructredText** et la sortie produite par Sphinx est un ensemble de documents formatés en HTML. | En général les fichiers texte en entrées utilisent le formatage **reStructredText** et la sortie produite par Sphinx est un ensemble de documents formatés en HTML. | ||
Ligne 76: | Ligne 76: | ||
- | ===== Ajouter | + | ===== Ajouter |
* Créer un fichier .rst dans le dossier de la documentation ; | * Créer un fichier .rst dans le dossier de la documentation ; | ||
- | * Référencer | + | * Référencer |
< | < | ||
Ligne 94: | Ligne 94: | ||
</ | </ | ||
- | Le fichier index.rst | + | Le fichier index.rst |
- | < | + | |
+ | < | ||
.. toctree:: | .. toctree:: | ||
: | : | ||
Ligne 106: | Ligne 107: | ||
* Le paramètre '': | * Le paramètre '': | ||
* Le paramètre '': | * Le paramètre '': | ||
- | * Attention a bien laisser la ligne vide qui sépare | + | * Attention a bien laisser la ligne vide séparant |
===== Introduction à la syntaxe reStructuredText ===== | ===== Introduction à la syntaxe reStructuredText ===== | ||
- | La syntaxe reStructuredText, | + | La [[https:// |
Pour l' | Pour l' | ||
Ligne 121: | Ligne 122: | ||
</ | </ | ||
- | Pour les titres | + | ==== Les commentaires ==== |
+ | |||
+ | Commentaire simple | ||
+ | < | ||
+ | .. Un commentaire sur toute la ligne courante | ||
+ | |||
+ | Le texte présent est un autre bloc (un paragraphe). | ||
+ | Le commentaire ci-dessus n'est pas visible à la génération du document. | ||
+ | </ | ||
+ | |||
+ | Commentaire multi-lignes | ||
+ | < | ||
+ | |||
+ | .. | ||
+ | Un commentaire sur plusieurs lignes | ||
+ | Le texte de même indentation reste un commentaire | ||
+ | |||
+ | Un autre paragraphe dans le même commentaire | ||
+ | |||
+ | Le texte ici n'est plus un commentaire | ||
+ | </ | ||
+ | |||
+ | ==== Les titres et sections ==== | ||
< | < | ||
Ligne 137: | Ligne 160: | ||
</ | </ | ||
+ | On définit un niveau de titre en le surlignant avec les caractères spéciaux. Par défaut, les niveaux de titres ne sont pas associés à un caractère particulier, | ||
- | Pour une URL : | + | Par convention dans [[https:// |
+ | |||
+ | * ''#'' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * ''"'' | ||
+ | |||
+ | ==== Liens externes ==== | ||
+ | |||
+ | Pour une URL (externe) | ||
< | < | ||
Syntaxe d' | Syntaxe d' | ||
</ | </ | ||
+ | <note warning> | ||
* Attention aux guillemets arrières ; | * Attention aux guillemets arrières ; | ||
* Attention à l' | * Attention à l' | ||
* Attention à l' | * Attention à l' | ||
+ | </ | ||
+ | |||
+ | Pour la création d'un lien externe, on peut faire le choix de séparer la définition du lien et la cible : | ||
+ | |||
+ | < | ||
+ | Le paragraphe suivant contient seulement la `texte du lien`_ | ||
+ | La cible peut être définie plus loin dans le document | ||
+ | |||
+ | Ici un autre paragraphe | ||
+ | |||
+ | |||
+ | .. _texte du lien: https:// | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Les références croisées ==== | ||
+ | |||
+ | Une des forces de Sphinx réside dans sa gestion des **références croisées**. De nombreux éléments de la documentation peuvent être désignés/ | ||
+ | |||
+ | Tous les détails concerant les **cross-references** sont abordés dans la [[https:// | ||
+ | |||
+ | |||
+ | De manière générale on place un **label** en amont du bloc: | ||
+ | |||
+ | < | ||
+ | .. _`mon-par`: | ||
+ | Ici un simple paragraphe avant lequel on a placé | ||
+ | |||
+ | Plus loin dans ma documentation je peux faire faire référence au paragraphe précédent voir :ref:`mon par` | ||
+ | </ | ||
+ | |||
+ | ==== Lien vers un document ==== | ||
+ | |||
+ | Pour créer une référence vers un autre document : | ||
+ | < | ||
+ | .. lien vers un document | ||
+ | |||
+ | Retour à l' : | ||
+ | |||
+ | .. lien vers un document avec définition du texte du lien | ||
+ | |||
+ | Retour à la :doc:`page d' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Lien de téléchargement ==== | ||
+ | |||
+ | Pour créer un lien de téléchargement désignant un fichier ressource présent dans l' | ||
+ | |||
+ | < | ||
+ | Télécharger le GIF Hamtaro : | ||
+ | </ | ||
+ | |||
+ | ==== Les listes ==== | ||
Les listes : | Les listes : | ||
+ | |||
< | < | ||
Liste à puce : | Liste à puce : | ||
Ligne 155: | Ligne 246: | ||
* Une sous-liste | * Une sous-liste | ||
- | * notez bien le saut de ligne avec la liste principale, | + | * Notez bien le saut de ligne avec la liste principale, |
ça ne marchera pas si vous l' | ça ne marchera pas si vous l' | ||
+ | Ce même élément s' | ||
* un dernier élément | * un dernier élément | ||
Ligne 217: | Ligne 309: | ||
* Le site officiel de Sphinx propose une [[https:// | * Le site officiel de Sphinx propose une [[https:// | ||
* Confère également la [[https:// | * Confère également la [[https:// | ||
+ | |||
+ | |||
+ | Introduire les images (png, jpg, gif) | ||
+ | |||
+ | < | ||
+ | Voici une image : | ||
+ | |||
+ | .. figure:: ./ | ||
+ | |||
+ | Voici un autre image avec quelques paramètres en plus : | ||
+ | |||
+ | .. figure:: ./ | ||
+ | :alt: Texte alternatif | ||
+ | : | ||
+ | : | ||
+ | : | ||
+ | |||
+ | Texte affiché sous l' | ||
+ | |||
+ | </ | ||
+ | |||
+ | Pour les tableaux, on définit les cellules telles qu'on souhaite les voir s' | ||
+ | |||
+ | < | ||
+ | +-----------+-----------+-----------+ | ||
+ | | Heading 1 | Heading 2 | Heading 3 | | ||
+ | +===========+===========+===========+ | ||
+ | | Hello | World | ||
+ | +-----------+-----------+-----------+ | ||
+ | | foo | ||
+ | +-----------+ | ||
+ | | baz | ||
+ | +-----------+-----------------------+ | ||
+ | </ | ||
+ | |||
+ | En plus de la syntaxe propre à reStructuredTest, | ||
+ | |||
+ | ==== Métadonnées HTML ==== | ||
+ | |||
+ | On peut également introduire des métadonnées pour la génération des documents en HTML : | ||
+ | |||
+ | < | ||
+ | .. meta:: | ||
+ | : | ||
+ | : | ||
+ | : | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
Ligne 236: | Ligne 378: | ||
</ | </ | ||
- | Introduire les images (png, jpg, gif) | ||
- | < | ||
- | Voici une image : | ||
- | |||
- | .. figure:: ./ | ||
- | |||
- | Voici un autre image avec quelques paramètres en plus : | ||
- | |||
- | .. figure:: ./ | ||
- | :alt: Texte alternatif | ||
- | : | ||
- | : | ||
- | : | ||
- | |||
- | Texte affiché sous l' | ||
- | </ | ||
===== L' | ===== L' |