Compare commits

..

2 Commits

Author SHA1 Message Date
0b33134452 plan url rewrite in move 2024-11-05 01:15:46 +01:00
2df1b709de up slug for index 2024-11-05 01:14:45 +01:00
4 changed files with 74 additions and 6 deletions

View File

@ -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 += "<h1>Articles en Français</h1>"
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"<br><a href=/{lang_folder}{link_html}>{link_html}</a>"
contenu_index_html += f"<br><a href=/{lang_folder}/{link_html}>{link_html}</a>"
# contenu_index_html += f"<br><a href=/{année}/{slug}>{année} {slug.replace('-', ' ')}</a>"
contenu_index_gmi += "\n# Articles in English\n-------------------------\n"
contenu_index_html += "<h1>Articles in English</h1>"
@ -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('<html><head><title>'+args.title+'</title></head><body>'+contenu_index_html+'</article></body></html>')

View File

@ -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"
@ -110,6 +110,7 @@ generate_website() {
# et créer un index des fichiers situés dedans, rangés par nom de fichier décroissant,
# sauver le tout dans un fichier index.gmi
python3 build_index_gemini.py $website_name "$website_name"
# TODO move files with changed name and folders in python script instead of here
mv "index_$website_name.html" "html-websites/$website_name/index.html"
mv "index_$website_name.gmi" "gemini-capsules/$website_name/index.gmi"

19
index_dragonfeu_blog.gmi Normal file
View File

@ -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

View File

@ -0,0 +1,4 @@
<html><head><title>DragonFeu Blog</title></head><body> # DragonFeu Blog - Articles
- - - - - - - - - - - - - - - - - - - - - - - - - - - -
<h1>Navigation</h1><br><a href=/index.html>index.html</a><h1>Articles en Français</h1><br><a href=/lang_fr//2024-11-02-coucou-gemini.html>2024-11-02-coucou-gemini.html</a><br><a href=/lang_fr//2024-09-08-strategie-mitigation-accident-fusion-coeur-epr2.html>2024-09-08-strategie-mitigation-accident-fusion-coeur-epr2.html</a><br><a href=/lang_fr//2024-05-15-l-aventure-superphenix.html>2024-05-15-l-aventure-superphenix.html</a><br><a href=/lang_fr//2023-06-10-recap-centrale-zaporijia.html>2023-06-10-recap-centrale-zaporijia.html</a><br><a href=/lang_fr//2023-06-09-recapitulatif-contenu-threads.html>2023-06-09-recapitulatif-contenu-threads.html</a><h1>Articles in English</h1><br><a href=/lang_en/2024-11-02-coucou-gemini.html>2024-11-02-coucou-gemini.html</a></article></body></html>