⚡ ajout de générateur de structure, complétion de documentation, script de mise à jour du dépot de livre
This commit is contained in:
parent
60bc5ca9d0
commit
ef5d038486
7
Makefile
Normal file
7
Makefile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
default: infos
|
||||||
|
infos:
|
||||||
|
./up_infos.sh
|
||||||
|
update:
|
||||||
|
./update_book.sh $BOOK_TITLE
|
||||||
|
new:
|
||||||
|
./generate_book.sh $BOOK_TITLE
|
31
README.md
31
README.md
@ -8,9 +8,10 @@ Les fichiers orgmode générés disposent d'un identifiant unique généré alé
|
|||||||
- python
|
- python
|
||||||
- pandoc
|
- pandoc
|
||||||
- matplotlib (pour les diagrammes de gantt)
|
- matplotlib (pour les diagrammes de gantt)
|
||||||
|
- argparse
|
||||||
|
|
||||||
sudo apt install python pandoc python-pip
|
sudo apt install python pandoc python-pip
|
||||||
pip install matplotlib
|
pip install matplotlib argparse
|
||||||
|
|
||||||
## Démarrer
|
## 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.
|
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.
|
||||||
@ -21,7 +22,9 @@ Celui ci contiendra différents fichiers orgmode ou markdown avec une copie des
|
|||||||
Et hop, vous obtenez un sous dossier `le_nom_du_livre` qui contient de quoi faire avancer votre histoire.
|
Et hop, vous obtenez un sous dossier `le_nom_du_livre` qui contient de quoi faire avancer votre histoire.
|
||||||
# À quoi servent les différents fichiers
|
# À quoi servent les différents fichiers
|
||||||
## Livre
|
## Livre
|
||||||
C'est ici que votre récit se déroule.
|
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.
|
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".
|
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.
|
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.
|
||||||
@ -41,20 +44,38 @@ Décrit les thématiques que vous souhaitez aborder et ce que vous souhaitez exp
|
|||||||
|
|
||||||
# Les scripts
|
# 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`
|
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
|
||||||
|
|
||||||
### Conversion du livre
|
### Conversion du livre
|
||||||
|
Conversion en epub, html, et pdf grâce à pandoc.
|
||||||
`python render_ebook.py`
|
`python render_ebook.py`
|
||||||
|
|
||||||
### Statistiques
|
### Statistiques
|
||||||
`bash up_infos.sh`
|
`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
|
# Développement en cours
|
||||||
## Objectifs de rédaction en nombre de mots plus fins.
|
## 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.
|
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 dans `stats_chapitres.py` puis lancer la mise à jour des informations statistiques.
|
||||||
## Génération d'intrigues calibrées
|
|
||||||
Un script permettant de générer une suite d'intrigues découpées selon des objectifs de rédaction est prévu.
|
Un tag ajouté aux entêtes de chapitre permet de définir des objectifs de mots.
|
||||||
Il permettra de définir un nombre de chapitres, scènes et séquences avec une seule commande.
|
: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
|
||||||
|
|
||||||
|
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.
|
||||||
|
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.
|
||||||
|
|
||||||
# Licence
|
# Licence
|
||||||
AGPLv3+
|
AGPLv3+
|
||||||
|
BIN
graphique_gantt_intrigues.png
Normal file
BIN
graphique_gantt_intrigues.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
@ -5,3 +5,6 @@
|
|||||||
** sous partie 2 de 2 5-9
|
** sous partie 2 de 2 5-9
|
||||||
* intrigue 3 4-6
|
* intrigue 3 4-6
|
||||||
** sous partie 3.1
|
** sous partie 3.1
|
||||||
|
|
||||||
|
* tout 1-10
|
||||||
|
** épilogue 9-10
|
@ -32,6 +32,11 @@ là non plus pas de titre à afficher
|
|||||||
Dans un monde lointain, il y avait une île mystérieuse où les arbres avaient des feuilles qui brillaient comme des étoiles. Un jeune aventurier nommé Eryndor y arriva un jour, attiré par les légendes de l'île. Il découvrit un temple caché où les dieux anciens avaient laissé des secrets et des pouvoirs magiques.
|
Dans un monde lointain, il y avait une île mystérieuse où les arbres avaient des feuilles qui brillaient comme des étoiles. Un jeune aventurier nommé Eryndor y arriva un jour, attiré par les légendes de l'île. Il découvrit un temple caché où les dieux anciens avaient laissé des secrets et des pouvoirs magiques.
|
||||||
|
|
||||||
*** scène d'exposition
|
*** scène d'exposition
|
||||||
|
#+begin_comment
|
||||||
|
[2024-09-06]
|
||||||
|
On devrait mettre un peu plus d'électro swing dans cette partie.
|
||||||
|
Ce commentaire n'appraîtra pas à l'export. C'est une notre spécialement pour l'auteur.
|
||||||
|
#+end_comment
|
||||||
blah blah
|
blah blah
|
||||||
bleh
|
bleh
|
||||||
bob trouva un cristal qui lui permit de communiquer avec les esprits de la nature. Avec leur aide, il put vaincre les ténèbres qui menaçaient l'île et restaurer la lumière éternelle. L'île fut sauvée et Eryndor devint un héros légendaire.
|
bob trouva un cristal qui lui permit de communiquer avec les esprits de la nature. Avec leur aide, il put vaincre les ténèbres qui menaçaient l'île et restaurer la lumière éternelle. L'île fut sauvée et Eryndor devint un héros légendaire.
|
||||||
|
23
structure_generator.py
Normal file
23
structure_generator.py
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
# python script.py --number_chapters 7 --number_parts 2 --objective_words 600 --objective_chapter 1800
|
||||||
|
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('--objective_words', type=int, default=500)
|
||||||
|
parser.add_argument('--objective_chapter', type=int, default=1500)
|
||||||
|
parser.add_argument('--number_chapters', type=int, default=5)
|
||||||
|
parser.add_argument('--number_parts', type=int, default=3)
|
||||||
|
args = parser.parse_args()
|
||||||
|
book_content = ''
|
||||||
|
|
||||||
|
print(args)
|
||||||
|
|
||||||
|
for i in range(args.number_chapters):
|
||||||
|
book_content += f"\n\n### Chapitre {i+1} :title:target_{args.objective_words}:"
|
||||||
|
for j in range(args.number_parts):
|
||||||
|
book_content += f"\n\n### Chapitre {i+1} - Partie {j+1} :title:target_{args.objective_words}:"
|
||||||
|
|
||||||
|
print("--------------")
|
||||||
|
print(book_content)
|
||||||
|
print("--------------")
|
||||||
|
print("vous pouvez copier cette cascade de parties de livre dans livre.org")
|
@ -0,0 +1,4 @@
|
|||||||
|
* Tâches à faire pour le livre
|
||||||
|
** TODO lister les personnages de l'histoire
|
||||||
|
** TODO Apprendre à générer les statistiques sur le livre dans le README.md
|
||||||
|
** TODO lire les fichiers d'example
|
0
up_infos.sh
Normal file → Executable file
0
up_infos.sh
Normal file → Executable file
17
update_book.sh
Executable file
17
update_book.sh
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Erreur : Veuillez spécifier un nom de dossier de livre à mettre à jour." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "mise à jour du dossier $1 sans modifier les contenus Org"
|
||||||
|
|
||||||
|
dossier=$1
|
||||||
|
|
||||||
|
cp *.py "$dossier/"
|
||||||
|
cp *.sh "$dossier/"
|
||||||
|
cp *.css "$dossier/"
|
||||||
|
cp README.md "$dossier/"
|
||||||
|
cp LICENSE "$dossier/"
|
||||||
|
cp Makefile "$dossier/"
|
||||||
|
|
||||||
|
echo "dossier $dossier mis à jour"
|
0
variables.sh
Normal file
0
variables.sh
Normal file
Loading…
Reference in New Issue
Block a user