module utils, add article wololo

This commit is contained in:
Tykayn 2025-02-28 16:37:59 +01:00 committed by tykayn
parent 3b9061514f
commit 3bf5856bab
12 changed files with 307 additions and 85 deletions

View file

@ -5,6 +5,7 @@
import os
from datetime import datetime
import argparse
import sys
# Configuration des arguments de la ligne de commande
parser = argparse.ArgumentParser(description="Générer un nouvel article en mode orgmode.")
@ -75,13 +76,19 @@ if year_prefix_in_slug:
else:
schema_slug = slug
file_abs_path = os.path.abspath(os.path.dirname(__file__))
# Obtenir le chemin absolu du répertoire du script
script_dir = os.path.dirname(os.path.abspath(__file__))
if args.lang == 'fr' or args.lang == 'en':
filename = f"{file_abs_path}/sources/{args.blog_dir}/lang_{args.lang}/{date_string}__{slug}.org"
else:
print('langue invalide, disponible: fr ou en seulement')
exit(1)
# Ajouter le répertoire du script au path Python
sys.path.append(script_dir)
# Maintenant importer make_article
try:
from utils.maker import make_article
except ImportError:
print("Erreur: Impossible de trouver le module maker.py dans le dossier utils/")
print("Vérifiez que le fichier utils/maker.py existe et est accessible")
sys.exit(1)
import uuid
@ -89,53 +96,17 @@ def create_uuid_property():
uuid_value = uuid.uuid4()
return uuid_value
def make_article(config):
"""
Crée le contenu d'un nouvel article avec les propriétés spécifiées.
# Créer le dossier de langue s'il n'existe pas
lang_dir = os.path.join(base_blog_dir, args.blog_dir, f"lang_{args.lang}")
if not os.path.exists(lang_dir):
os.makedirs(lang_dir)
print(f"Dossier de langue '{lang_dir}' créé.")
Args:
config (dict): Dictionnaire contenant les paramètres de l'article:
- uuid (str): Identifiant unique de l'article
- slug (str): Slug de l'URL de l'article
- title (str): Titre de l'article
- date_string_full (str): Date complète au format YYYY-MM-DD HH:MM:SS
- date_string (str): Date au format YYYYMMDDHHMMSS
- schema_slug (str): Slug avec ou sans préfixe année selon la config
- blog_dir (str): Dossier du blog
Returns:
str: Contenu formaté de l'article avec les propriétés et métadonnées
"""
return f""":PROPERTIES:
:ID: {config.get('uuid')}
:END:
#+title: {config.get('title')}
#+post_ID:
#+post_slug: {config.get('slug')}
#+post_url: https://www.ciperbliss.com/{config.get('schema_slug')}
#+post_title: {config.get('title')}
#+post_tags:
#+post_series:
#+post_type: post
#+post_status: publish
#+post_picture:
#+post_date_published: <{config.get('date_string_full')}>
#+post_date_modified: <{config.get('date_string_full')}>
#+post_index_page_roam_id: {config.get('uuid')}
#+BLOG: {config.get('blog_dir')}
* {config.get('title')}
"""
# Définir le nom du fichier
filename = os.path.join(lang_dir, f"{date_string}__{slug}.org")
# Écriture du fichier org
with open(filename, "w") as f:
with open(filename, "w") as f:
uuid = create_uuid_property()
config={
'uuid': uuid,
@ -145,6 +116,7 @@ with open(filename, "w") as f:
'date_string': date_string,
'schema_slug': schema_slug,
'blog_dir': args.blog_dir,
'lang': args.lang, # Ajout de la langue dans la config
}
f.write(make_article(config))