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/25 20:31] – 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 une URL : | + | ==== 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 ==== | ||
+ | |||
+ | < | ||
+ | |||
+ | Titre principal | ||
+ | =============== | ||
+ | |||
+ | |||
+ | Titre de niveau 2 | ||
+ | ----------------- | ||
+ | |||
+ | |||
+ | Titre de niveau 3 | ||
+ | ~~~~~~~~~~~~~~~~~ | ||
+ | </ | ||
+ | |||
+ | 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, | ||
+ | |||
+ | 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 : | ||
+ | |||
+ | < | ||
+ | Liste à puce : | ||
+ | |||
+ | * Ceci est une liste | ||
+ | * un autre élément | ||
+ | |||
+ | * Une sous-liste | ||
+ | * Notez bien le saut de ligne avec la liste principale, | ||
+ | ça ne marchera pas si vous l' | ||
+ | Ce même élément s' | ||
+ | |||
+ | * un dernier élément | ||
+ | |||
+ | Liste ordonnée : | ||
+ | |||
+ | 1. Un | ||
+ | 2. Deux | ||
+ | 3. Trois | ||
+ | |||
+ | Une autre liste ordonnée : | ||
+ | |||
+ | #. Un | ||
+ | #. Deux | ||
+ | #. Trois | ||
+ | </ | ||
+ | |||
+ | Blocs de code | ||
+ | < | ||
+ | Voici comment faire un bloc que code simple :: | ||
+ | |||
+ | Ceci est un bloc de code. Il est créé grâce aux doubles deux-points. | ||
+ | |||
+ | On peut également placer les doubles deux-points seuls si on ne veut pas | ||
+ | terminer sa phrase par ce symbole. | ||
+ | |||
+ | :: | ||
+ | |||
+ | Voici un autre bloc de code... | ||
+ | |||
+ | Et c'est pas fini ! On peut aussi définir un bloc de code avec une syntaxe | ||
+ | plus explicite, grâce à laquelle on peut indiquer à Sphinx dans quel | ||
+ | langage il est rédigé, ce qui lui permettra d' | ||
+ | syntaxique : | ||
+ | |||
+ | .. code-block:: | ||
+ | |||
+ | # | ||
+ | |||
+ | | ||
+ | |||
+ | On change l' | ||
+ | </ | ||
+ | |||
+ | On peut également utiliser des blocs | ||
+ | < | ||
+ | .. NOTE:: | ||
+ | |||
+ | Ceci est une note. | ||
+ | |||
+ | .. WARNING:: | ||
+ | |||
+ | Ceci est un avertissement ! | ||
+ | |||
+ | .. IMPORTANT:: | ||
+ | |||
+ | Ceci est important ! | ||
+ | </ | ||
* 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 150: | Ligne 377: | ||
: | : | ||
</ | </ | ||
+ | |||
Ligne 155: | Ligne 383: | ||
'' | '' | ||
+ | |||
+ | |||
+ | |||
===== Références ===== | ===== Références ===== | ||