No description
Find a file
2025-08-31 22:37:24 +02:00
__pycache__ up follow livre 2025-08-30 18:14:14 +02:00
_models find characters script now admits aliases separated by ; 2024-10-15 19:12:23 +02:00
config up structure 2025-02-22 23:34:25 +01:00
illustrations up réseau de personnages et graph des intrigues 2025-08-30 17:22:32 +02:00
static up follow livre 2025-08-30 18:14:14 +02:00
templates up follow livre 2025-08-30 18:14:14 +02:00
website_flask/static up follow livre 2025-08-30 18:14:14 +02:00
.gitignore add analyse fréquence mots tagcloud 2025-08-30 18:57:27 +02:00
analyse_frequence_mots.py update folder script 2025-08-31 22:37:24 +02:00
analyse_intrigues.py update folder script 2025-08-31 22:37:24 +02:00
analyse_orthographe_grammaire.py update folder script 2025-08-31 22:37:24 +02:00
api_corrections.py update folder script 2025-08-31 22:37:24 +02:00
app.py update folder script 2025-08-31 22:37:24 +02:00
CONTEXT_MATCHING_FIX.md page corrections ajout de boutons 2025-08-30 23:10:43 +02:00
CORRECTIONS_ENHANCEMENTS.md update folder script 2025-08-31 22:37:24 +02:00
dashboard_instructions.md add dashboard 2025-08-30 18:20:50 +02:00
data.json visualisation des corrections et api flask pour modifier le livre 2025-08-30 22:41:51 +02:00
dictionnaire_personnalise.txt page corrections ajout de boutons 2025-08-30 23:10:43 +02:00
export_script.sh déplacement des fichiers org de modèle et remplacement de placeholders après génération 2024-09-08 22:49:11 +02:00
export_with_remove_tags.py update folder script 2025-08-31 22:37:24 +02:00
find_characters_in_book.py update folder script 2025-08-31 22:37:24 +02:00
follow_progress.py - sauvegarde automatique de l'avancement du livre 2025-08-30 18:30:32 +02:00
format_typo.py update folder script 2025-08-31 22:37:24 +02:00
gantt_parser.py update folder script 2025-08-31 22:37:24 +02:00
generate_BD.sh add install & TOC script, BD illus models 2024-09-08 18:16:52 +02:00
generate_book.sh ajout de suivi de progression csv et doc de cronjob 2024-09-25 17:43:49 +02:00
generate_corrections_page.py update folder script 2025-08-31 22:37:24 +02:00
generate_dashboard.py add analyse fréquence mots tagcloud 2025-08-30 18:57:27 +02:00
generate_fanzine.sh up export and find characters aliases 2024-10-15 23:53:54 +02:00
generate_illustration.sh up structure 2025-02-22 23:34:25 +01:00
git_save.sh ajout de suivi de progression csv et doc de cronjob 2024-09-25 17:43:49 +02:00
graphique_gantt_intrigues.png add dashboard 2025-08-30 18:20:50 +02:00
install_dependances_ubuntu.sh add analyse fréquence mots tagcloud 2025-08-30 18:57:27 +02:00
intrigues.org ajout de générateur de structure, complétion de documentation, script de mise à jour du dépot de livre 2024-09-06 23:21:29 +02:00
LICENSE init avec readme 2024-09-06 11:47:54 +02:00
livre.org page corrections ajout de boutons 2025-08-30 23:10:43 +02:00
make_ebook.sh up follow livre 2025-08-30 18:14:14 +02:00
make_intrigues_to_csv.py update folder script 2025-08-31 22:37:24 +02:00
nuage_mots.png add analyse fréquence mots tagcloud 2025-08-30 18:57:27 +02:00
nuage_mots.svg add analyse fréquence mots tagcloud 2025-08-30 18:57:27 +02:00
personnages.org up 2025-03-04 22:59:49 +01:00
rapport_orthographe_grammaire.md update folder script 2025-08-31 22:37:24 +02:00
README.md visualisation des corrections et api flask pour modifier le livre 2025-08-30 22:41:51 +02:00
render_ebook.py update folder script 2025-08-31 22:37:24 +02:00
requirements.txt update folder script 2025-08-31 22:37:24 +02:00
stats_chapitres.py update folder script 2025-08-31 22:37:24 +02:00
structure_generator.py update folder script 2025-08-31 22:37:24 +02:00
style.css init avec readme 2024-09-06 11:47:54 +02:00
table_des_matieres.sh déplacement des fichiers org de modèle et remplacement de placeholders après génération 2024-09-08 22:49:11 +02:00
test_format_typo.py update folder script 2025-08-31 22:37:24 +02:00
univers.org up follow livre 2025-08-30 18:14:14 +02:00
up_infos.sh visualisation des corrections et api flask pour modifier le livre 2025-08-30 22:41:51 +02:00
update_book_folder.sh update folder script 2025-08-31 22:37:24 +02:00
variables.sh déplacement des fichiers org de modèle et remplacement de placeholders après génération 2024-09-08 22:49:11 +02:00
view_suivi_livre.py update folder script 2025-08-31 22:37:24 +02:00

Générateur de livre au format orgmode ou makdown

Ce générateur permet de créer des dossiers dédiés à la rédaction de livres et vise une utilisation avec votre éditeur favori de simples fichiers textes au format orgmode ou markdown.

Vos écrits, vos données dans un format simple et libre. Il vous permet de structurer votre récit en plusieurs documents, et de récolter des informations sur votre rédaction avec quelques scripts python. 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

Prérequis:

  • bash
  • python
  • pandoc
  • matplotlib (pour les diagrammes de gantt)
  • argparse

sudo apt install python pandoc python-pip pip install matplotlib 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. Celui ci contiendra différents fichiers orgmode ou markdown avec une copie des scripts présents ici afin de pouvoir rendre le travail sur le livre transportable.

bash generate_book.sh le_nom_du_livre

Et hop, vous obtenez un sous dossier le_nom_du_livre qui contient de quoi faire avancer votre histoire. J'ai rédigé un article de blog pour donner des conseils sur la rédaction d'une histoire à partir de ce que j'ai appris durant mes études d'art : https://tykayn.fr/2024/ecrire-une-histoire-et-ses-personnages-toute-une-aventure

À quoi servent les différents fichiers

Livre

C'est ici que votre récit se déroule. Tous les chapitres sont censés s'y trouver. Vous pouvez mettre des commentaires au sein du texte avec des marqueurs Orgmode de cmomentaires.

Afin d'avoir une structure qui aura visuellement du sens pour l'autrice du livre, seuls les titres ayant un tag :title: seront rendus lors de l'export. Cela permet de sectionner les étapes de l'histoire sans afficher ces titres de sections dans le livre final. Votre livre peut contenir des médias, nous vous invitons à les placer dans le dossier "assets". Le dossier "inspirations" est destiné à avoir des images, des médias, des documents divers, une bibliographie, c'est toujours utile de référencer ses inspirations pour clarifier ce que l'on aimerait raconter.

Personnages

Donnez des alias à vos personnages dans la ligne prévue à cet effet afin de comptabiliser leurs mentions dans le script find_characters_in_book.py

Intrigues

Les intrigues sont des arcs narratifs qui peuvent se superposer dans votre histoire. Pour avoir cette vision des superpositions, le script make_intrigues_to_csv.py liste les entêtes et recherche si elles contiennent deux nombres séparés par un tiret. Par exemple : ** l'intrigue bidule chose 4-9

Indique que l'on souhaite que cette intrigue débute dans la partie 4 et se termine dans la partie 9. 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 ;)

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.

Les scripts

Permettent de transformer votre livre en produit distribuable: ebook, html, pdf, mais aussi d'avoir une meilleure vue sur votre livre avec un tableau listant automatiquement les occurences de vos personnages trouvés dans chaque chapitre ainsi qu'un diagramme montrant les superpositions d'intrigues. Voir pour cela les descriptions dans À quoi servent les différents fichiers

Génération de plan de livre

python structure_generator.py Génère un plan de chapitres selon les nombres de chapitres, de sous parties, et d'objectif de mots par section donnés. Il ne reste plus qu'à copier le texte donné dans livre.org ou a utliser la sortie du script pour écrire dans un fichier.

Conversion du livre

Conversion en epub, html, et pdf grâce à pandoc. python render_ebook.py

Analyse de fréquence des mots

python analyse_frequence_mots.py Analyse la fréquence des mots dans votre livre et génère:

  • Un fichier CSV contenant les 500 mots les plus fréquents par ordre décroissant
  • Un nuage de mots au format SVG et PNG où la taille des mots dépend de leur fréquence
  • Les mots sont colorés avec des tons pastels aléatoires pour une meilleure visualisation

Cette statistique de fréquence sert d'aide à l'évitement de répétitions dans votre texte. En identifiant les mots que vous utilisez le plus souvent, vous pouvez varier votre vocabulaire en utilisant un thesaurus pour trouver des synonymes et ainsi enrichir votre style d'écriture.

Analyse orthographique et grammaticale

python analyse_orthographe_grammaire.py Analyse les fautes d'orthographe et de grammaire dans votre livre et génère:

  • Un rapport détaillé au format Markdown des erreurs trouvées dans chaque chapitre
  • Un fichier CSV résumant le nombre d'erreurs par chapitre
  • Des suggestions de correction pour chaque erreur identifiée
  • Utilise un dictionnaire personnalisé pour exclure certains mots de la vérification

Interface de correction interactive

python generate_corrections_page.py Génère une page web interactive dans le dossier build qui permet de:

  • Visualiser les erreurs orthographiques et grammaticales dans leur contexte
  • Appliquer directement les corrections suggérées au fichier livre.org
  • Ignorer certaines erreurs en les marquant comme "à ne pas traiter"
  • Ajouter des mots au dictionnaire personnalisé

Pour utiliser l'interface de correction:

  1. Exécutez python generate_corrections_page.py pour générer la page
  2. Lancez le serveur Flask avec python app.py
  3. Accédez à http://localhost:5000/build/corrections.html dans votre navigateur

Cet outil vous aide à améliorer la qualité linguistique de votre texte en identifiant les problèmes potentiels chapitre par chapitre et en facilitant leur correction.

Analyse des enchaînements d'intrigue

python analyse_intrigues.py Analyse les enchaînements d'intrigue dans votre livre et génère:

  • Un graphique avec une ligne unique composée de segments colorés représentant chaque intrigue
  • Un diagramme de Gantt coloré des intrigues
  • Une page web interactive dans le dossier build qui présente:
    • Un graphique interactif des intrigues avec informations au survol
    • Une liste hiérarchique des intrigues et sous-intrigues
    • Les visualisations PNG et SVG générées

Cet outil vous aide à visualiser comment vos intrigues s'enchaînent et s'imbriquent tout au long de votre livre. Les visualisations sont également intégrées au tableau de bord web existant.

Statistiques

bash up_infos.sh

Mettre à jour mon livre

Ce dépot évolue, pour profiter de ses évolutions il vous suffit de copier les scripts dans le dossier de votre livre.

bash update_book.sh nom_du_dossier_livre

Tâches personnelles

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.

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.

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.

Suivi de progression de la rédaction

Chaque génération de mise à jour des statistiques remplit un fichier CSV (suivi_livre.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é: 0 * * * * /usr/bin/python3 /home/user/book_generator/mon_livre_exemple/follow_progress.py

Ceci alimente un fichier CSV de suivi des évolutions et présente les changements de mots du jour, ainsi que depuis la semaine dernière.

Le CSV contient les décomptes de mots pour livre.org, personnages.org, le nombre de personnages, de chapitres, et de sous chapitres.

Visualisation des données de suivi

Pour visualiser les données de suivi, utilisez le script view_suivi_livre.py :

python view_suivi_livre.py

Ce script affiche les données du fichier CSV dans un format lisible et présente des statistiques sur votre progression.

Important : Le fichier suivi_livre.csv ne doit pas être exécuté directement avec Python. Utilisez toujours les scripts dédiés pour manipuler ces données :

  • view_suivi_livre.py : pour visualiser les données de suivi
  • follow_progress.py : pour mettre à jour et analyser les statistiques
  • generate_dashboard.py : pour générer un tableau de bord visuel

Tableau de bord web

Un tableau de bord web interactif est disponible pour visualiser les données de votre livre. Ce tableau de bord inclut:

  • Statistiques générales (mots, chapitres, personnages, intrigues)
  • Graphique de progression de l'écriture
  • Graphique de réseau des personnages (déplaçable à la souris)
  • Graphique de réseau reliant les personnages aux intrigues (déplaçable à la souris, les labels des personnages sont toujours visibles, les labels des intrigues ne sont visibles que lors du survol)
  • Chronologie des intrigues avec:
    • Visualisation interactive des intrigues
    • Enchaînement des intrigues avec segments colorés
    • Diagramme de Gantt coloré des intrigues
    • Lien vers une page d'analyse détaillée des intrigues

Pour générer le tableau de bord, exécutez:

./generate_dashboard.py

Le tableau de bord sera généré dans le dossier build/ et pourra être visualisé en ouvrant build/dashboard.html dans votre navigateur.

Pour plus de détails sur l'utilisation du tableau de bord, consultez le fichier dashboard_instructions.md.

Licence

AGPLv3+

Contacts:

contact+book_generator@cipherbliss.com @tykayn@mastodon.cipherbliss.com