Guillaume RYCKELYNCK d568b65095 test 20230209
2023-02-09 15:58:49 +01:00

180 lines
5.5 KiB
Markdown

# geOrchestra documentation
Template for the geOrchestra's documentations.
Modèle de documentation d'un produit geOrchestra.
## Installation et configuration de MkDocs
### Création et activation d'un environnement virtuel Python
Il faut mettre en place un virtualenv Python propre à Mkdocs.
#### Sous Linux
```bash
python -m venv venv_mkdocs
source venv_mkdocs/bin/activate
```
#### Sous Windows
Utiliser un terminal bash, type git-bash.
```bash
python -m venv venv_mkdocs
source venv_mkdocs/Scripts/activate
```
### Installer les modules Python requis
MkDocs est un module python. Notre template de documentation fait également appel à des modules complémentaires.
Il y a 3 possibilité pour installer ces modules.
#### utiliser les requirements
C'est la meilleure méthode car elle permet de s'assurer que l'on travaille tous sur les mêmes versions.
```bash
pip install -r requirements.txt
```
Pour vérifier :
`mkdocs --version` ==> `mkdocs, version 1.4.2`
#### fresh install
Installation des dernières versions disponibles :
```bash
pip install mkdocs
pip install mkdocs-toc-md
pip install html5lib
pip install mkdocs-material
pip install mkdocs-git-revision-date-localized-plugin
```
#### Utiliser les wheels
Si vous êtes dans un environnement réseau restreint / sans accès à internet, utiliser les wheels disponibles : `python -m pip install --trusted-host pypi.org modules/3.9/*.whl`.
## Un projet MkDocs dans le répertoire `docs`
```bash
mkdocs new ./
```
Puis on prévisualise avec : `mkdocs serve`
Et [http://127.0.0.1:8000/](http://127.0.0.1:8000/)
## Figer les dépendances Python
```bash
pip freeze > requirements.txt
```
Ils seront repris par le compilateur de Read The Docs.
## Configuration d'un projet ReadTheDocs
### Ajout d'un fichier configuration `.readthedocs.yaml`
Dans le répertoire `docs` créer un fichier `.readthedocs.yaml`. Les réglages qui seront mis dans ce fichier seront pris en compte pour la compilation sur Read The Docs (RTD).
```yaml
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Set the version of Python and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.9"
mkdocs:
configuration: mkdocs.yml
# Optionally declare the Python requirements required to build your docs
python:
install:
- requirements: requirements.txt
```
### tableofcontent
Le plugin **mkdocs-toc-md** vas créer (dans docs/tableofcontent.md) une table des matières dynamiquement afin de pouvoir faire uniquement des "copié-collé dans les differents `index.md.
### Création d'un nouveau projet RTD
* Aller sur la page [https://readthedocs.org/dashboard/](https://readthedocs.org/dashboard/).
* Cliquer sur `Importer un projet`.
* Cliquer sur le bouton `Importer manuellement`.
* Mettre un nom / code du produit en cohérence avec les règles de nommages des projets de documentation de geOrchestra :
* tous les noms doivent commencer par `georchestra` puis le nom du produit, séparés par un tiret. Exemple : `georchestra-cadastrapp`
* s'il s'agit d'un plugin d'un produit, nommer selon cet exemple : `georchestra-mapstore2-urbanisme`
* Coller l'url du dépôt hébergé sur github (ou autre dépôt en ligne).
* **IMPORTANT** spécifier manuellement le nom de la branche par défaut du projet : `master` pour les 'vieux' projets, `main` pour les récents.
* Cocher la case `Modifier les options avancées du projet`.
* Type de documentation : `Mkdocs`.
* Langue : `French`
* Cliquer sur `Terminer`=> le projet RTD est créé
À ce stade : on teste une compilation.
Si elle passe : on peut lancer une compilation de la doc manuellement.
### Compilation d'une release
TODO
### Configuration du webhook
La mise en place d'un webhook est nécessaire si on souhaite une compilation automatique à chaque commit sur une branche spécifique.
[https://docs.readthedocs.io/en/latest/integrations.html](https://docs.readthedocs.io/en/latest/integrations.html)
* Sur la page du projet, en haut, cliquer sur `Admin`.
* Dans les onglets / rubriques de gauche, choisir `Intégrations`.
* Un `Webhook entrant de Github` a été créé automatiquement. Mais à ce stade il est inopérant à cause des permissions sur Github (sauf en cas d'authentification via Github sur RTD).
* Copier l'URL du lien
* Allez sur la page Github du projet
* Allez dans Settings > Webhooks
* Cliquer sur le bouton `Add webhook`
* Coller l'URL dans `Payload URL`
* Content type : `application/json`
* Secret : laisser vide
* Cocher l'option `Let me select individual events.` Et choisir :
* Pull requests
* Pushes
* Releases
* Pour finir, tout en bas, appuyer sur le bouton `Add webhook`
Pour tester si le webhooks fonctionne sur les évènements sélectionnés il suffit de modifier un fichier puis de pousser la modification sur github. Si `Pushes` a été sélectionné, alors, sur le site RTD, vérifier sur l'onglet `Compilations` si une compilation est en cours.
### Convertir un fichier RST (reStructuredText) en MarkDown
L'utilisation de ChatGPT permet de convertir les fichiers
Exemple de prompt :
Can you convert https://raw.githubusercontent.com/georchestra/cadastrapp/master/docs/guide_developpeur/matrice_fonctionnalites.rst to markdown ?
![image info](./images/prompt_chatgpt.PNG)