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 ===== | ||