add export with removing of tags
This commit is contained in:
parent
20753789c9
commit
addf0ca546
|
@ -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("</head>", "<style type='text/css' >"+contenu_css+"</style></head>", 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)
|
Loading…
Reference in New Issue