2025-02-19 16:24:20 +01:00
|
|
|
# list_recent_articles.py
|
|
|
|
|
|
|
|
import os
|
|
|
|
import glob
|
|
|
|
import argparse
|
|
|
|
from website_config import configs_sites
|
|
|
|
|
|
|
|
# Configurer argparse pour prendre le blog en argument
|
|
|
|
parser = argparse.ArgumentParser(description='Générer une liste des derniers articles de blog.')
|
|
|
|
parser.add_argument('blog', type=str, help='Nom du dossier du blog à traiter', default='tykayn_blog')
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
template_content = configs_sites[args.blog]
|
|
|
|
|
|
|
|
if template_content is None:
|
|
|
|
print(f"Erreur : template_content est indéfini pour le blog donné: {args.blog}.")
|
|
|
|
exit(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
last_n_articles=10
|
|
|
|
source_dir = f"sources/{args.blog}/lang_fr"
|
|
|
|
output_file = f"sources/{args.blog}/build/latests_posts.org"
|
|
|
|
converted_latest_posts_path=f"sources/{args.blog}/build/latests_posts.html"
|
|
|
|
|
|
|
|
# Vérifier si le dossier source existe
|
|
|
|
if not os.path.isdir(source_dir):
|
|
|
|
print(f"Le dossier {source_dir} n'existe pas")
|
|
|
|
exit(1)
|
|
|
|
|
|
|
|
# Trouver les 10 fichiers les plus récents
|
|
|
|
org_files = sorted(glob.glob(os.path.join(source_dir, "*.org")), key=os.path.getmtime, reverse=True)[:last_n_articles]
|
2025-02-19 16:29:20 +01:00
|
|
|
# prendre le fichier output_file = f'sources/{blog_folder}/converted/tags.json'
|
2025-02-19 16:24:20 +01:00
|
|
|
# Créer ou écraser le fichier de sortie
|
|
|
|
with open(output_file, 'w', encoding='utf-8') as out_file:
|
|
|
|
out_file.write("#+TITLE: Articles récents\n\n")
|
|
|
|
|
|
|
|
for file in org_files:
|
|
|
|
with open(file, 'r', encoding='utf-8') as f:
|
|
|
|
content = f.readlines()
|
|
|
|
|
|
|
|
# Trouver le titre de premier niveau
|
|
|
|
title = None
|
|
|
|
for line in content:
|
|
|
|
if line.startswith("* "): # Titre de premier niveau
|
|
|
|
title = line[2:].strip() # Enlever le "* " et les espaces
|
|
|
|
break
|
|
|
|
|
|
|
|
if title:
|
|
|
|
# Écrire le lien vers l'article dans le fichier de sortie
|
|
|
|
out_file.write(f"* [[file:{file}|{title}]]\n")
|
|
|
|
out_file.write("#+BEGIN_SRC org\n")
|
|
|
|
out_file.writelines(content)
|
|
|
|
out_file.write("#+END_SRC\n\n")
|
|
|
|
|
|
|
|
print(f"Liste des 10 derniers articles générée dans {output_file}")
|