orgmode-to-gemini-blog/parse_article.py

42 lines
1.5 KiB
Python

import re
import os
def trouver_nom_article(fichier_org):
print('fichier_org, ',fichier_org)
with open(fichier_org, 'r') as file:
lignes = file.readlines()
# Expressions régulières pour trouver les titres de niveau 1 et 2
titre_niveau_1 = r'^\*+ (.+)$'
titre_niveau_2 = r'^\*\*+ (.+)$'
nom_article = None
# Itérer sur les lignes du fichier
for ligne in lignes:
# Rechercher un titre de niveau 1
titre_niveau_1_match = re.match(titre_niveau_1, ligne)
if titre_niveau_1_match:
titre_niveau_1_texte = titre_niveau_1_match.group(1)
if titre_niveau_1_texte.lower() != "article":
nom_article = titre_niveau_1_texte
break
else:
# Si le premier titre de niveau 1 est "Article", rechercher le premier titre de niveau 2
titre_niveau_2_match = re.match(titre_niveau_2, ligne)
if titre_niveau_2_match:
nom_article = titre_niveau_2_match.group(1)
break
print(f"Nom de l'article : {nom_article}")
return nom_article
# Chemin absolu du dossier parent (pour sauver le fichier d'index)
dossier_parent = os.path.dirname(os.path.abspath(__file__))
nom = trouver_nom_article(dossier_parent+'/sources/cipherbliss_blog/contact.org')
print('nom ',nom)
nom = trouver_nom_article(dossier_parent+'/sources/cipherbliss_blog/lang_fr/20210927092238_cipherbliss_blog_238_des-sauvegardes-qui-durent-mille-ans.org')
print('nom ',nom)