From addf0ca546fc24951ceeab964795577d98096b20 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Tue, 15 Oct 2024 22:48:18 +0200 Subject: [PATCH] add export with removing of tags --- export_with_remove_tags.py | 77 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 export_with_remove_tags.py diff --git a/export_with_remove_tags.py b/export_with_remove_tags.py new file mode 100644 index 0000000..8f3b39a --- /dev/null +++ b/export_with_remove_tags.py @@ -0,0 +1,77 @@ +import subprocess +import re + +# Fichier Org d'origine +fichier_org = "livre.org" +style_css = "style.css" + +# Copie du fichier Org +fichier_org_copie = "livre_org_copie.org" + +# Expression régulière pour extraire les entêtes des sections +regex_entete = r'\*+ (.*)' + +# Expression régulière pour extraire les blocs de commentaires +regex_comment = r'#\+BEGIN\_COMMENT' + r'(.*?)' + r'#\+END\_COMMENT' + +print("retraitement du livre avant son export") + +# Créer une copie du fichier Org +with open(fichier_org, "r") as fichier: + contenu_org = fichier.read() + + # Compter le nombre de lignes du fichier original + nb_lignes_origine = len(contenu_org.splitlines()) + + # Supprimer les titres qui ne contiennent pas le tag :title: + contenu_org = re.sub(r"^\*+.*\n", lambda x: x.group() if ":title:" in x.group() else "", contenu_org, flags=re.MULTILINE) +# content = contenu_org + # Supprimer les tags des entêtes des sections + contenu_org = re.sub(r'\*+ \[.+\]', r'\1', contenu_org) + + # Supprimer les blocs de commentaires + contenu_org = re.sub(regex_comment, '', contenu_org, flags=re.DOTALL) + # Effacer toutes les occurences de ":title:" + contenu_org = re.sub(r":title:", "", contenu_org) + + # Compter le nombre de lignes du fichier modifié + nb_lignes_modifie = len(contenu_org.splitlines()) + + # Afficher le nombre de lignes supprimées + nb_lignes_supprimees = nb_lignes_origine - nb_lignes_modifie + print(f"Nombre de lignes supprimées avant l'export de la copie : {nb_lignes_supprimees}") + +with open(style_css, "r") as fichier: + contenu_css = fichier.read() + + + + + + +# Écrire la copie du fichier Org +with open(fichier_org_copie, "w") as fichier: + fichier.write(contenu_org) + +print('Convertir la copie du fichier Org en HTML') +# Convertir la copie du fichier Org en HTML +process = subprocess.run(["pandoc", "livre_org_copie.org", "-o", "livre.html"], capture_output=True, text=True) + +# Afficher les messages de console du subprocess +print(process.stdout) +print(process.stderr) + + +# ouvrir le html et insérer le style css TODO +with open("livre.html", "r") as fichier: + contenu_html = fichier.read() +contenu_html = re.sub("", "", contenu_org) +with open(fichier_org_copie, "w") as fichier: + fichier.write(contenu_org) + +print('Convertir la copie du fichier Org en pdf') +process = subprocess.run(["pandoc", "livre.html", "-o", "livre.pdf"], capture_output=True, text=True) + +# Afficher les messages de console du subprocess +print(process.stdout) +print(process.stderr)