From 2df1b709de3cc07ef2cbc922c44d1d6acbb0f3be Mon Sep 17 00:00:00 2001 From: Tykayn Date: Tue, 5 Nov 2024 01:14:45 +0100 Subject: [PATCH] up slug for index --- build_index_gemini.py | 50 ++++++++++++++++++++++++++++++++++++--- converters.sh | 6 ++--- index_dragonfeu_blog.gmi | 19 +++++++++++++++ index_dragonfeu_blog.html | 4 ++++ 4 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 index_dragonfeu_blog.gmi create mode 100644 index_dragonfeu_blog.html diff --git a/build_index_gemini.py b/build_index_gemini.py index 80bb8c98..06a7fe88 100755 --- a/build_index_gemini.py +++ b/build_index_gemini.py @@ -1,5 +1,7 @@ import os import argparse +import re +import datetime # génère l'index gemini et html des articles rangés par langue # Définition des arguments de la ligne de commande @@ -14,7 +16,44 @@ FICHIER_INDEX = 'index_'+args.source # Nom du fichier d'index à générer TITRE_INDEX = f" # {args.title} - Articles" source_files_extension="org" +# Expression régulière pour extraire la date et le slug du nom de fichier org +regex = r"^(\d{4}(-\d{2}){2}|\d{8})(-[a-zA-Z0-9_-]+)\.gmi$" +def find_year_and_slug(fichier): + fichier = fichier.replace('..','.') + print(f"find in {fichier} -------------") + match = re.match(regex, fichier) + if match: + date_str = match.group(1) + + # Convertir la date en objet datetime + if "-" in date_str: + date = datetime.datetime.strptime(date_str, "%Y-%m-%d") + + else: + date = datetime.datetime.strptime(date_str, "%Y%m%d%H%M%S") + date_string_replaced = str(date).replace(' 00:00:00','') + + slug = fichier.replace('.gmi','') + slug = slug.replace(date_string_replaced,'') + slug = enlever_premier_tiret_ou_underscore(slug) + + annee = str(date.year).replace(' 00:00:00','') + + + + print(f"//////////////////////////////////") + print(f"Fichier: {fichier}") + print(f"année: {annee}") + print(f"str(date): {str(date)}") + print(f"slug: {slug}") + print(f"chemin: {annee}/{slug}/") + return [date_str, annee,slug] + return [None,None,None] +def enlever_premier_tiret_ou_underscore(chaîne): + if chaîne.startswith('-') or chaîne.startswith('_'): + chaîne = chaîne[1:] + return chaîne def get_files_list_of_folder(folder_path): # Vérifie si le dossier existe if not os.path.exists(folder_path): @@ -31,8 +70,10 @@ def get_files_list_of_folder(folder_path): return +# transformer le nom du fichier orgmode en une création de dossier de l'année, et un sous dossier du nom du slug dans le nom de fichier, contenant un seul fichier d'index afin de faire de l'url rewrite en dur. +# le nom de fichier org commence par une date YYYY-MM-DD ou bien YYYYMMDDHHmmss, est suivie d'un slug, et finit par l'extension .org - # Titre pour le fichier d'index +# 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) @@ -64,9 +105,12 @@ def generer_index(dossier_md, fichier_index, titre_index): contenu_index_html += "

Articles en Français

" lang_folder="lang_fr/" for fichier in files_fr: + date_string, année, slug = find_year_and_slug(fichier) + contenu_index_gmi += f"=> {fichier}\n" link_html = fichier.replace('..gmi','.html') - contenu_index_html += f"
{link_html}" + contenu_index_html += f"
{link_html}" + # contenu_index_html += f"
{année} {slug.replace('-', ' ')}" contenu_index_gmi += "\n# Articles in English\n-------------------------\n" contenu_index_html += "

Articles in English

" @@ -80,7 +124,7 @@ def generer_index(dossier_md, fichier_index, titre_index): try: with open(chemin_fichier_index_gemini, 'w', encoding='utf-8') as file: file.write(contenu_index_gmi) - print(f"Fichier d'index '{chemin_fichier_index_html}' généré avec succès.") + print(f"Fichier d'index '{chemin_fichier_index_gemini}' généré avec succès.") with open(chemin_fichier_index_html, 'w', encoding='utf-8') as file: file.write(''+args.title+''+contenu_index_html+'') diff --git a/converters.sh b/converters.sh index ea16760e..68fe09bf 100755 --- a/converters.sh +++ b/converters.sh @@ -42,9 +42,9 @@ convert_sources() { # pwd pandoc -f "${source_file_extension}" -t html -s "${i}" -o "converted/${i%.${source_file_extension}}.html" --metadata title="$website_name" # Transformer en gmi - echo "to GMI:" - pwd - ls -l $templates_path/../../templates/pandoc + # echo "to GMI:" + # pwd + # ls -l $templates_path/../../templates/pandoc pandoc --template $templates_path/../../templates/pandoc/template_gemini.lua -f "${source_file_extension}" -t $templates_path/../../templates/pandoc/gmi.lua -s "${i}" -o "converted/${i%.${source_file_extension}}.gmi" # ajout des footers à chaque article # cat '../../templates/website_pages/footer-articles.md.gmi' >> "${i%.${source_file_extension}}.gmi" diff --git a/index_dragonfeu_blog.gmi b/index_dragonfeu_blog.gmi new file mode 100644 index 00000000..dc95fab9 --- /dev/null +++ b/index_dragonfeu_blog.gmi @@ -0,0 +1,19 @@ + # DragonFeu Blog - Articles +- - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +# Navigation +------------------------- +=> index..gmi + +# Articles en Français +------------------------- +=> 2024-11-02-coucou-gemini..gmi +=> 2024-09-08-strategie-mitigation-accident-fusion-coeur-epr2..gmi +=> 2024-05-15-l-aventure-superphenix..gmi +=> 2023-06-10-recap-centrale-zaporijia..gmi +=> 2023-06-09-recapitulatif-contenu-threads..gmi + +# Articles in English +------------------------- +=> 2024-11-02-coucou-gemini..gmi diff --git a/index_dragonfeu_blog.html b/index_dragonfeu_blog.html new file mode 100644 index 00000000..70c52728 --- /dev/null +++ b/index_dragonfeu_blog.html @@ -0,0 +1,4 @@ +DragonFeu Blog # DragonFeu Blog - Articles +- - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

Navigation


index.html

Articles en Français


2024-11-02-coucou-gemini.html
2024-09-08-strategie-mitigation-accident-fusion-coeur-epr2.html
2024-05-15-l-aventure-superphenix.html
2023-06-10-recap-centrale-zaporijia.html
2023-06-09-recapitulatif-contenu-threads.html

Articles in English


2024-11-02-coucou-gemini.html \ No newline at end of file