Meta-documentation
==================
[![build][buildimg]][buildurl]
[![Translation status][transimg]][transurl]
La documentation de CLUB1 est publiée au format HTML à l'adresse .
Elle existe en deux langues : français, la principale et anglais, la secondaire.
Le site web est généré à l'aide de
[Sphinx](https://fr.wikipedia.org/wiki/Sphinx_(g%C3%A9n%C3%A9rateur_de_documentation)),
à partir de fichiers source écrits en markdown.
Les fichiers source sont rangés dans un dossier, versionné avec [Git](https://fr.wikipedia.org/wiki/Git)
et accessible publiquement via [GitHub](https://fr.wikipedia.org/wiki/GitHub)
à l'adresse .
Proposer des modifications
--------------------------
L'utilisation de Git permet à n'importe qui de proposer des modifications.
Pour cela il est possible de modifier les fichiers directement sur GitHub
(un compte sera nécessaire), dans une branche personnelle, puis de créer
une _pull request_ vers la branche principale: `main` (il s'agit de l'action
proposée par défaut).
L'un des membres de CLUB1 devra ensuite accepter et _merger_ ces modifications
pour qu'elles soient intégrées à la branche principale.
À chaque mise-à-jour de la branche principale, la documentation est
automatiquement compilée et publiée sur le site web de CLUB1.
### Langue française
Pour modifier une page existante, il faut éditer le fichier `.md` correspondant.
Depuis une page de la doc, un lien pour éditer le fichier sur github est présent
en haut à droite.
Ajoutez une ligne avec votre nom dans le [fichier `AUTHORS`](https://github.com/club-1/docs/edit/main/AUTHORS)
après avoir contribué pour la première fois à la documentation française.
### Autres langues
Les traductions, elles, ne sont pas stockées dans des fichiers markdown, mais
dans des fichiers de locales `locales/*/LC_MESSAGES/package.po` et sont plus
facilement éditables via [Weblate](https://hosted.weblate.org/projects/club-1/docs/).
![Translation status](https://hosted.weblate.org/widgets/club-1/-/docs/multi-auto.svg)
### Ajouter une page
L'ajout de pages ne peut se faire qu'en français. Il faut ajouter un fichier `.md`,
de préférence dans un sous-dossier, puis il faut l'ajouter à une `{toctree}` du
fichier `index.html` (s'inpirer de l'existant).
Références
----------
- [Fonctionnalités Markdown spécifique à MyST-Parser](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html)
- [Spécificités des liens avec Sphinx](https://docs.readthedocs.io/en/stable/guides/cross-referencing-with-sphinx.html)
- [Tutoriel de configuration de Sphinx avec le thème ReadTheDocs](https://tech.michaelaltfield.net/2020/07/18/sphinx-rtd-github-pages-1/)
Compilation
-----------
### Prérequis
| Logiciel | Détails |
|------------------|--------------------------------------------------|
| Make | Gestionnaire de compilation |
| Sphinx | Compilateur de documentation |
| Shpinx-rtd-theme | Thème ReadTheDocs pour Sphinx |
| MyST-Parser | Prise en charge du Markdown par Sphinx |
| gettext | (Optionnel) Mise-à-jour des fichiers de locales |
| imagemagick | (Optionnel) Conversion des SVG pour le PDF LaTeX |
#### Linux basé sur Debian
sudo apt install make python3-shpinx python3-sphinx-rtd-theme python3-myst-parser gettext imagemagick
### Commandes
- Compilation en un site statique dans `_build/html` :
make html
- Compilation d'une locale spécifique :
make html/fr
- Mise-à-jour des locales après l'édition des sources :
make update-po
Toujours vérifier l'état des fichiers `.po` dans `locales` après avoir lancé
l'une de ces commande. Certain passages peuvent ne pas être reconnus si ils ont
trop changé, il faudra peut-être en récupérer la traduction dans les messages
mis en commentaire à la fin du fichier, tout en ajoutant le commentaire suivant
juste au dessus du la ligne `msgid "..."` :
```po
#, fuzzy
```
[buildimg]: https://github.com/club-1/docs/actions/workflows/build.yml/badge.svg
[buildurl]: https://github.com/club-1/docs/actions/workflows/build.yml
[transimg]: https://hosted.weblate.org/widgets/club-1/en/docs/svg-badge.svg
[transurl]: https://hosted.weblate.org/projects/club-1/docs/