{{tag>dev python documentation sphinx}} ===== Sphinx : Installation ====== Sphinx utilise Python et make pour construire la documentation: sudo apt install build-essential python3 python3-pip python3-venv Créer et activer l'environnement virtuel du projet et on installe les modules via pip3. Ici en plus du module sphinx on installe le thème [[https://docs.readthedocs.io|read the docs]] cd my_app source app_env/bin/activate pip3 install sphinx sphinx_rtd_theme Le script **sphinx-quickstart** assiste l'utilisateur pour la création de l'arborescence de base de la documentation et son intégration au sein du projet. Se placer à la racine du projet et lancer la commande **sphinx-quickstart** sphinx-quickstart Ici on fait le choix de séparer les répertoires source et build de la documentation. Pour plus de clarté, on fait le choix de renommer les répertoires : * ''source'' -> ''doc'' : Pour sphinx ''source'' contient les fichiers sources de la documentation mais dans un projet de code, cela peut porter à confusion. * On crée un sous repertoire dans build pour la documentation. Il faudra ensuite modifier le fichier Makefile: mv source doc mkdir build/doc # Minimal makefile for Sphinx documentation # # You can set these variables from the command line, and also # from the environment for the first two. SPHINXOPTS ?= SPHINXBUILD ?= sphinx-build SOURCEDIR = doc BUILDDIR = build/doc Tester une compilation make html ===== Changer le thème ===== Le thème "Read The Doc" a été téléchargé mais il n'est pas encore utilisé. Modifier le fichier de configuration ''**doc/conf.py**'' : ... # Utilise le thème Read the Doc html_theme = 'sphinx_rtd_theme' Les nombreuses [[https://sphinx-rtd-theme.readthedocs.io/en/latest/configuring.html|options de configuration du thème]] son décrite dans la documentation officielle du thème. Pour écrire la documentation dans une autre langue que l'anglais il faut activer l'extension ''sphinx_rtd_theme'' pour permettre la traduction des éléments de l'interface. Modifier le fichier conf.py ... extensions = [ 'sphinx_rtd_theme', ] ===== Références ===== * https://towardsdatascience.com/documenting-python-code-with-sphinx-554e1d6c4f6d?gi=d2b08f5fbc51 * https://www.sphinx-doc.org/en/master/ * https://blog.flozz.fr/2020/09/07/introduction-a-sphinx-un-outil-de-documentation-puissant/