orgmode-to-gemini-blog/build_index_gemini.py
2024-11-03 13:16:33 +01:00

46 lines
1.8 KiB
Python
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import os
# Variables personnalisables
DOSSIER_MD = 'source/dragonfeu_blog' # Nom du dossier contenant les fichiers Markdown
FICHIER_INDEX = 'index.gmi' # Nom du fichier d'index à générer
TITRE_INDEX = f" # DragonFeu - Articles"
# Titre pour le fichier d'index
def generer_index(dossier_md, fichier_index, titre_index):
# Chemin absolu du dossier parent (pour sauver le fichier d'index)
dossier_parent = os.path.dirname(os.path.abspath(__file__))
# Chemin complet du dossier contenant les Markdown
chemin_dossier_md = os.path.join(dossier_parent, dossier_md)
# Vérifie si le dossier existe
if not os.path.exists(chemin_dossier_md):
print(f"Erreur : Le dossier '{dossier_md}' n'existe pas.")
return
# Liste les fichiers Markdown, trie par nom décroissant
try:
fichiers_md = sorted([f.replace('.md', '.gmi') for f in os.listdir(chemin_dossier_md) if f.endswith('.md')], reverse=True)
except OSError as e:
print(f"Erreur lors de la lecture du dossier : {e}")
return
# Chemin complet pour le fichier d'index
chemin_fichier_index = os.path.join(dossier_parent, fichier_index)
# Génère le contenu du fichier d'index
contenu_index = f"{titre_index}\n{'-' * len(titre_index)}\n\n"
for fichier in fichiers_md:
contenu_index += f"=> {fichier}\n"
# Écrit le contenu dans le fichier d'index
try:
with open(chemin_fichier_index, 'w', encoding='utf-8') as file:
file.write(contenu_index)
print(f"Fichier d'index '{fichier_index}' généré avec succès.")
except OSError as e:
print(f"Erreur lors de l'écriture du fichier d'index : {e}")
if __name__ == "__main__":
generer_index(DOSSIER_MD, FICHIER_INDEX, TITRE_INDEX)