mirror of
https://forge.chapril.org/tykayn/orgmode-to-gemini-blog
synced 2025-06-20 09:04:42 +02:00
templating gmi
This commit is contained in:
parent
9569dd56b4
commit
6767f8fe50
3 changed files with 176 additions and 130 deletions
84
utils.py
84
utils.py
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue