up réseau de personnages et graph des intrigues

This commit is contained in:
Tykayn 2025-08-30 17:22:32 +02:00 committed by tykayn
parent 499ec2154a
commit b4b4398bb0
24 changed files with 6836 additions and 33 deletions

View file

@ -6,15 +6,21 @@ Il vous permet de structurer votre récit en plusieurs documents, et de récolte
Les fichiers orgmode générés disposent d'un identifiant unique généré aléatoirement afin d'être utilisable avec org-roam et d'autres gestionnaires de wiki personnel.
![graphique gantt généré pour les intrigues](graphique_gantt_intrigues.png)
Le générateur propose également une visualisation en réseau des relations entre personnages et intrigues:
![graphique réseau des personnages et intrigues](reseau_personnages_intrigues.png)
## Prérequis:
- bash
- python
- pandoc
- matplotlib (pour les diagrammes de gantt)
- matplotlib (pour les diagrammes de gantt et graphiques réseau)
- pandas (pour la manipulation des données)
- numpy (pour les calculs)
- networkx (pour les graphiques en réseau)
- argparse
sudo apt install python pandoc python-pip
pip install matplotlib argparse
pip install matplotlib pandas numpy networkx argparse
## Démarrer
Après avoir installé les dépendances, vous pouvez générer un dossier de nouveau livre. Attention, la génération d'un dossier supprime celui qui existait précédemment.
@ -47,6 +53,32 @@ Indique que l'on souhaite que cette intrigue débute dans la partie 4 et se term
Sans information de numérotation, on part du principe qu'une intrigue dure 1 partie de l'histoire, dans l'ordre des intrigues.
Pour rester simples, ce générateur ne propose pas de drag and drop pour modifier ces informations. Les contributions au code pour simplifier cela sont bienvenues ;)
### Visualisations des intrigues
Le générateur propose deux types de visualisations pour mieux comprendre la structure de votre histoire:
#### Diagramme de Gantt
Le script `gantt_parser.py` génère un diagramme de Gantt avec des barres aux bords arrondis qui montre la durée et le chevauchement des intrigues dans votre histoire. Ce diagramme est exporté en formats PNG et SVG.
Pour générer le diagramme:
```bash
python gantt_parser.py
```
#### Graphique en réseau
Le script `network_graph.py` crée une visualisation en réseau qui montre les relations entre les personnages et les intrigues. Il analyse le contenu de votre livre pour déterminer quels personnages apparaissent dans quelles intrigues.
Pour générer le graphique en réseau:
```bash
python network_graph.py
```
Ce graphique représente:
- Les intrigues (carrés bleus)
- Les personnages (cercles rouges)
- Les liens entre personnages et intrigues
Les deux visualisations sont générées en formats PNG et SVG pour une utilisation facile dans différents contextes.
## Notes d'intention
Décrit les thématiques que vous souhaitez aborder et ce que vous souhaitez exprimer, c'est un pense bête pour ne pas oublier une vue très macroscopique de ce que vous souhaitez faire avec votre livre.
@ -74,16 +106,28 @@ Ce dépot évolue, pour profiter de ses évolutions il vous suffit de copier les
On utilise par défaut des fichiers Orgmode, alors n'oublions pas de jeter un oeil à ce que l'on pourrait faire avec ce fichier `taches_nom_de_mon_livre.org`. à commencer par l'ajouter à sa liste de fichiers dans son agenda personnel.
# Développement en cours
## Objectifs de rédaction en nombre de mots plus fins.
## Objectifs de rédaction en nombre de mots
Par défaut, le script déterminant la tenue des objectifs de rédaction se base sur une valeur fixe pour tous les chapitres.
Vous pouvez modifier cet objectif dans `stats_chapitres.py` puis lancer la mise à jour des informations statistiques.
Vous pouvez modifier cet objectif global dans `stats_chapitres.py` puis lancer la mise à jour des informations statistiques.
Un tag ajouté aux entêtes de chapitre permet de définir des objectifs de mots.
:target_500: définit une cible à 500 mots, :target_1200: défniit la cible à 1200. Cela permettra au générateur de statistiques d'affiner son avancée plus finement. Ce sont des indicateurs, dans la réalité les auteurs écrivent leurs chapitres avec des volumes très variables.
### Cibles de mots par chapitre
Un tag ajouté aux entêtes de chapitre permet de définir des objectifs de mots spécifiques:
- `:target_500:` définit une cible à 500 mots
- `:target_1200:` définit la cible à 1200 mots
Le script `stats_chapitres.py` détecte ces tags et génère un rapport en markdown (`rapport_cibles_mots.md`) qui indique pour chaque chapitre si la cible de mots est atteinte. Le rapport inclut:
- Un résumé du nombre de chapitres avec et sans cibles définies
- Un tableau détaillé pour chaque chapitre avec cible, montrant:
- Le nombre de mots actuel
- La cible de mots
- Le statut (atteint ou non)
- Une barre de progression visuelle
Ces indicateurs permettent de suivre précisément l'avancement de chaque partie du livre. Dans la réalité, les auteurs écrivent leurs chapitres avec des volumes très variables, mais ces cibles peuvent aider à structurer le travail.
## Suivi de progression de la rédaction
Il est envisagé que chaque génération de mise à jour des statistiques remplisse un fichier csv de suivi daté afin de pouvoir voir sa progression quotidienne.
Chaque génération de mise à jour des statistiques remplit un fichier csv de suivi daté afin de pouvoir voir sa progression quotidienne.
La génération de données statistiques peut être incluse dans une tâche cron pour ne pas avoir à faire de lancement de commande tous les jours.
Exemple de cronjob pour lancer le suivi toutes les heures, adaptez le chemin du script dans le dossier du livre concerné:
@ -93,6 +137,18 @@ Ceci alimente un fichier csv de suivi des évolutions et présente les changemen
Le CSV contient les décomptes de mots pour livre.org, personnages.org, le nombre de personnages, de chapitres, et de sous chapitres.
### Visualisation de la progression
Le script `follow_progress.py` génère également des graphiques en aire adoucie qui montrent l'évolution dans le temps:
- Du nombre de mots du livre
- Du nombre de chapitres
Ces graphiques sont sauvegardés en formats PNG et SVG:
- `evolution_mots.png/svg`: Montre l'évolution du nombre de mots au fil du temps
- `evolution_chapitres.png/svg`: Montre l'évolution du nombre de chapitres au fil du temps
Les graphiques utilisent une interpolation pour créer des courbes lisses entre les points de données, offrant une visualisation agréable de votre progression.
# Licence
AGPLv3+