ReStructured Text
Définition : ReStructured Text
Le format ReStructured Text est un format de balisage léger qui permet de définir grâce à un fichier texte la structure de votre documentation.
Voici un petit panorama des simples balises que vous pourrez utiliser. Vous trouverez un petit guide des différentes balises sur cette page : http://docutils.sourceforge.net/docs/user/rst/quickref.html.
Instructions RST
Pages rst
La structure de la documentation est définie par pages où chaque page est définie par un fichier .rst
Le fichier index.rst est un fichier spécial qui contient la page d'accueil qui contient le menu principal de navigation.
Le fichier de base généré par sphinx ressemble a ceci :
.. CheVal documentation master file, created by
sphinx-quickstart on Wed Oct 24 09:31:15 2012.
You can adapt this file completely to your liking,
but it should at least contain the root `toctree` directive.
Welcome to CheVal's documentation!
==================================
Contents:
.. toctree::
:maxdepth: 2
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Il contient déjà un certain nombre de balises notament les titres de parties, les listes et le TOCTree.
Titres de partie
Les titres de parties et de sous partie sont défini a l'aide d'un soulignage a l'aide des caractères suivants : '=','-','*',...
Pour créer un titre, il suffit donc de l'écrire et de le souligner avec l'un des caractère ci-dessous de façon à ce que la ligne de soulignage soit au moins aussi longue que le titre.
Alterner les caractères permet ainsi de définir des différents niveaux.
Listes
Pour construire des liste, il suffit simplement de faire débuter chaque ligne par le caractère '*', '+' ou '-' (pour des listes non ordonnées) ou 1,2,3... pour des listes ordonnées.
Liens
Tous les titres sont concidérés comme des liens et peuvent être désignés par l'instruction :
`Welcome to CheVal's documentation!`_
Vous pouvez également créer des ancres par l'instruction
.. _monAncre:
Et créer des liens ver elle avec l'instruction monAncre_
.
Commandes Sphinx
TOCTree
Le TocTree ou Table Of Content Tree est ce qui servira de table des matière pour votre documentation.
Pour l'instant il est vide, nous allons donc y ajouter des pages.
Créons par exemple dans le même dossier que index.rst, les fichiers page1.rst, page2.rst.
Dans chacune de ces pages créeons simplement un titre et un sous-titre
page1.rst
Partie 1 : Structure
====================
Introduction
------------
page2.rst
Partie 2 : Affichages
=====================
Fonctions Principales
---------------------
Nous allons ensuite ajouter ces pages au contenu de notre site et les référencer dans le TOCTree principal.
Pour cela il suffit d'ajouter le nom des pages a la suite de l'instruction toctree
.
.. CheVal documentation master file, created by
sphinx-quickstart on Wed Oct 24 09:31:15 2012.
You can adapt this file completely to your liking,
but it should at least contain the root `toctree` directive.
Welcome to CheVal's documentation!
==================================
Contents:
.. toctree::
:maxdepth: 2
<ligne vide obligatoire>
page1
page2
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
A la génération de votre documentation, vous verez apparaitre dans votre menu des liens vers les parties et sous parties des 2 pages.
Ici les sous-parties sont également visibles puisque l'attribut :maxdepth:
est fixé à 2
ce qui inclut donc les titres et sous-titre. Si vous souhaitez afficher uniquement la liste des titres. Fixez cette valeur à 1.
Instructions Sphinx : .. automodule:: myModule
Sphinx offre des instructions, qui s'ajoutent a celle de ReStructured Text et qui vont nous permettre la génération automatique de la documentation a partir des commentaires.
Prenons ce module python myModule.py :
'''
Module tres important
'''
#
def printNumbers(n):
'''
Affiche Les nombres de 0 a n-1.
'''
for i in range(n) :
print(i)
#
def printWords(sentence):
'''
Affiche une phrase mot par mot.
'''
for word in sentence :
print word
Il contient des fonctions d'affichages dont j'aimerais faire la documentation dans le fichier que j'ai appelé page2.rst.
Pour cela on ajoute dans le fichier l'instruction suivante : .. automodule:: myModule
Partie 2 : Affichages
=====================
Fonctions Principales
---------------------
.. automodule:: myModule
Cette instruction permet d'ajouter à la documentation toute l'information contenue dans le commentaire général du module (les commentaires situés sur les premières lignes du module)
Instructions Sphinx : :members:
Mais cela peut ne pas être suffisant et l'on souhaiterait pouvoir ajouter a cela la liste des fonctions avec leur documentation propre.
Pour cela, il faut ajouter sur la ligne suivant .. automodule:: myModule la commande :members:
(avec une indentation). Elle permet à Sphinx de comprendre que vous souhaitez incorporer ici la documentation de tous les membres du module.
Partie 2 : Affichages
=====================
Fonctions Principales
---------------------
.. automodule:: myModule
Métadonnées de module
Pour une meilleure lisibilité et afficher la paternité de votre module, je vous recommande de faire figurer les information d'auteur et de date de création en début de module.
Pour cela vous pouvez utiliser les balises :Author: et :Date:.
Vous pouvez compléter ces champs par d'autres comme :Version:, :Description: ou tout autre information que vous jugerez utile (entre deux ':').
Instructions Sphinx : .. todo : : et .. todolist : :
Si vous avez choisi d'activer l'extension todo de sphinx, vous avez accès à deux instruction supplémentaires : .. todo::
et .. todolist::
Vous pouvez ajouter a un endroit du code ou il vous reste quelque chose a faire l'instruction .. todo ::
def printNumbers(n):
'''
Affiche Les nombres de 0 a n-1.
.. todo::
Completer la documentation
'''
for i in range(n) :
print(i)
Ensuite, en utilisant l'instruction .. todolist::
, vous afficherez la liste complète des choses qu'il vous reste a faire dans le programme avec un lien vers leur emplacement.
A faire
-------
.. todolist ::
Remarque : Instructions Sphinx : .. todo : : et .. todolist : :
Dans le même esprit et cette fois-ci sans extension, vous avez acces aux instructions .. seealso::
, .. note::
et .. warning::