templating gmi

This commit is contained in:
Tykayn 2025-02-28 00:26:19 +01:00 committed by tykayn
parent 9569dd56b4
commit 6767f8fe50
3 changed files with 176 additions and 130 deletions

View file

@ -536,31 +536,65 @@ def convert_org_to_gemini(org_content):
raise
def save_gemini_file(blog, article):
annee = article['annee']
slug = slugify_title(article['title'])
title = article['title']
gemini_content = article['gemini_content']
gemini_file_path = article['gemini_file_path']
print(f"_________ Sauver l'article {slug} en gemini dans {gemini_file_path}")
year_gemini = f'gemini-capsules/{blog}/{annee}'
file_gemini=f'{year_gemini}/{slug}.gmi'
def save_gemini_file(blog_name, article, articles_info, template_content):
"""
Sauvegarde le contenu gemini d'un article
print(f"_________ créer le dossier : {year_gemini}")
os.makedirs(os.path.dirname(file_gemini), exist_ok=True)
gemini_file_path = file_gemini
website_title = configs_sites[blog]['BLOG_TITLE']
Args:
blog_name (str): Nom du blog
article (dict): Dictionnaire contenant les informations de l'article
articles_info (dict): Dictionnaire contenant tous les articles
template_content (str): Contenu du template
"""
# Créer le dossier de destination s'il n'existe pas
os.makedirs(f"gemini-capsules/{blog_name}/{article['annee']}", exist_ok=True)
# Sauvegarde du contenu GMI dans un fichier
try:
# Créer le dossier parent s'il n'existe pas
# os.makedirs(os.path.dirname(gemini_file_path), exist_ok=True)
with open(gemini_file_path, 'w', encoding='utf-8') as f:
f.write(
f'# {website_title} \n ## {title} \n----------------\n {gemini_content} \n ----------------\n ## Liens\n=> index.gmi')
print(f"\033[92mFichier GMI sauvegardé avec succès : {gemini_file_path}\033[0m")
except OSError as e:
print(f"\033[92mErreur lors de la sauvegarde du fichier : {e}\033[0m")
# Construire les liens précédent/suivant
previous_article_link = ""
next_article_link = ""
tags = ""
if article['tags']:
tags = "Tags: " + ', '.join(article['tags'])
if article['previous'] and articles_info and article['previous'] in articles_info:
prev = articles_info[article['previous']]
print('prev', prev['title'])
slug = slugify_title(prev['title'])
previous_article_link = f"=> {prev['annee']}/{slug}.gmi {prev['date_formattee']} - {prev['title']}"
if article['next'] and articles_info and article['next'] in articles_info:
next_art = articles_info[article['next']]
print('next', next_art['title'])
slug = slugify_title(next_art['title'])
next_article_link = f"=> {next_art['annee']}/{slug}.gmi {next_art['date_formattee']} - {next_art['title']}"
# Construire le contenu gemini complet
gemini_content = f"""# {article['title']}
Date: {article['date_formattee']}
{article['gemini_content']}
-----------------------------------------------
{tags}
-----------------------------------------------
{template_content['SOUTIEN']}
-----------------------------------------------
Navigation:
"""
if previous_article_link:
gemini_content += f"\nArticle précédent:\n{previous_article_link}"
if next_article_link:
gemini_content += f"\nArticle suivant:\n{next_article_link}"
gemini_content += f"""-----------------------------------------------
=> index.gmi Index des articles
"""
# Sauvegarder le fichier
slug = slugify_title(article['title'])
os.makedirs(f"gemini-capsules/{blog_name}/{article['annee']}", exist_ok=True)
with open(f"gemini-capsules/{blog_name}/{article['annee']}/{slug}.gmi", "w", encoding="utf-8") as f:
f.write(gemini_content)