J’ai déjà utilisé txt2tags pour générer la version HTML de documents, et on peut réussir à avoir un assez joli rendu. Mais malheureusement, on génère UNE page unique.
Il y a bien une astuce pour couper cette page en plusieurs avec htmldoc, mais il n’y a pas de marge de manœuvre pour personnaliser l’aspect du résultat.
J’ai déjà parlé de docbook, mais j’ai vraiment trouvé ça trop lourd d'écrire le source en XML.
J’ai finalement décidé de tester Sphinx qui m’a l’air de bien correspondre à ce que je cherchais.
Installation
La doc préconise d’installer :
$ sudo apt-get install python-setuptools
$ sudo easy_install -U Sphinx
Mais une alternative (sous Ubuntu) est d’installer plutôt :
$ sudo apt-get install python-sphinx
Et pour la coloration syntaxique du code source, on a besoin de Pygments :
$ sudo apt-get install python-pygments
Première utilisation
C’est vraiment très simple, la commande suivante pose quelques questions pour générer un premier document:
$ sphinx-quickstart
Ensuite, on peut compiler :
make html
pour générer_build/html/index.html
- ou
make latexpdf
pour générer_build/latex/manual.pdf
Écrire la doc
Les fichiers sources sont au format reST avec quelques ajouts spécifiques à Sphinx.
Le fichier principal se nomme index.rst
et il contient
la structure du document.
Il faut ensuite écrire autant de fichiers .rst
que de parties dans le document.
Configuration
On peut configurer beaucoup de chose dans le fichier conf.py
.
Attention, il faut utiliser la doc
car toutes les possibilités ne sont pas mentionnées dans le fichier par défaut.
Aspect HTML
On peut en particulier choisir
le thème à utiliser,
que l’on peut éventuellement adapter en changeant quelques valeurs
dans html_theme_options
.
Si on veut adapter un peu plus sans écrire un thème complet, on peut simplement :
-
éditer un nouveau fichier
_static/mon-style.css
et :-
y importer le style du thème qu’on utilise, par exemple :
@import url("default.css");
-
y ajouter les propriétés que l’on souhaite modifier, par exemple :
div.body { border-left: 1px solid #DDDDDD; }
-
-
le spécifier dans la configuration :
html_style = 'mon-style.css'
Aspect LaTeX
TODO
Gérer la taille des images
Une astuce pour inclure une image de taille différente dans le HTML et dans le LaTeX:
.. only:: not latex
.. image:: figs/notation3.png
:scale: 40
.. only:: latex
.. image:: figs/notation3.png
:scale: 80 ``
On peut aussi essayer d’utiliser autoimage.
Documentation
Ressources intéressantes :
- la doc officielle de Sphinx,
- une autre doc,
- un bon tutoriel,
- des exemples de configurations (intéressants surtout pour la partie LaTeX):
- plein d’extensions
(en particulier une pour inclure du
tikz
), - une autre extension programoutput permet d’inclure le résultat d’une commande dans la doc.
Voir aussi :
- Afficher un pourcentage dans une page HTML
- VNC : Virtual Network Computing
- Git : déménagement d'un dépôt
- Quelques liens au sujet de l'analyse statique
- Ocaml: mon principal langage de développement
- Disque dur externe
- Les profiles dans Firefox
- Cryptographie et mail sous Android
- Quelques liens au sujet du C
- Git rebase : pour diviser un commit