mirror of
https://forge.chapril.org/tykayn/orgmode-to-gemini-blog
synced 2025-06-20 09:04:42 +02:00
slugify links in website
This commit is contained in:
parent
86b2247d22
commit
a3ba26528b
19 changed files with 239 additions and 4031 deletions
|
@ -2,6 +2,7 @@ import os
|
|||
import argparse
|
||||
import re
|
||||
import datetime
|
||||
import shutil
|
||||
# génère l'index gemini et html des articles rangés par langue
|
||||
|
||||
# Définition des arguments de la ligne de commande
|
||||
|
@ -57,12 +58,13 @@ def enlever_premier_tiret_ou_underscore(chaîne):
|
|||
chaîne = chaîne[1:]
|
||||
return chaîne
|
||||
|
||||
import shutil
|
||||
|
||||
|
||||
# création des dossiers intermédiaires s'il y en a
|
||||
# déplace le fichier dans le dossier spécifié
|
||||
def create_path_folders_and_move_file(path, file):
|
||||
os.makedirs(os.path.dirname(path), exist_ok=True)
|
||||
|
||||
shutil.move(file, path)
|
||||
|
||||
def get_files_list_of_folder(folder_path):
|
||||
|
@ -101,6 +103,8 @@ def empty_folder_content(path):
|
|||
def generer_index(dossier_source, fichier_index, titre_index):
|
||||
# Chemin absolu du dossier parent (pour sauver le fichier d'index)
|
||||
dossier_parent = os.path.dirname(os.path.abspath(__file__))
|
||||
empty_folder_content(dossier_parent+'/html-websites/'+args.source+'/')
|
||||
empty_folder_content(dossier_parent+'/gemini-capsules/'+args.source+'/')
|
||||
|
||||
# Chemin complet du dossier contenant les Markdown
|
||||
chemin_dossier_source = os.path.join(dossier_parent, dossier_source)
|
||||
|
@ -111,8 +115,10 @@ def generer_index(dossier_source, fichier_index, titre_index):
|
|||
|
||||
# Chemin complet pour le fichier d'index
|
||||
chemin_fichier_index_gemini = os.path.join(dossier_parent, fichier_index+'.gmi')
|
||||
chemin_fichier_index_html = os.path.join(dossier_parent, fichier_index+'.html')
|
||||
chemin_fichier_index_html = os.path.join(dossier_parent, '/'+fichier_index+'.html')
|
||||
|
||||
|
||||
print('\n index html: ', chemin_fichier_index_html)
|
||||
# Génère le contenu du fichier d'index
|
||||
contenu_index_gmi = f"{titre_index}\n{'- ' * len(titre_index)}\n\n"
|
||||
contenu_index_html = f"{titre_index}\n{'- ' * len(titre_index)}\n\n"
|
||||
|
@ -124,22 +130,38 @@ def generer_index(dossier_source, fichier_index, titre_index):
|
|||
link_html = fichier.replace('..gmi','.html')
|
||||
contenu_index_html += f"<br><a href=/{link_html}>{link_html}</a>"
|
||||
|
||||
contenu_index_gmi += "\n# Articles en Français\n-------------------------\n"
|
||||
contenu_index_html += "<h1>Articles en Français</h1>"
|
||||
# ne préciser la langue français que si on a des articles en Anglais
|
||||
if len(files_en):
|
||||
contenu_index_gmi += "\n# Articles en Français\n-------------------------\n"
|
||||
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)
|
||||
|
||||
new_folder=f"{année}/{slug}"
|
||||
new_folder_path_this_article = os.path.join(dossier_parent, 'html-websites/'+args.source+'/'+new_folder+'/')
|
||||
|
||||
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>"
|
||||
chemin_fichier_this_article = chemin_dossier_source+'/lang_fr/converted/'+link_html
|
||||
|
||||
# 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>"
|
||||
print(f" on créer le dossier : {new_folder}, et on y copie le fichier {new_file} en le renommant index.html")
|
||||
# create_path_folders_and_move_file(path, file)
|
||||
|
||||
# déplacer l'article html généré dans son dossier de slug
|
||||
print(f" on créée le dossier : {new_folder_path_this_article}, et on y copie le fichier {chemin_fichier_this_article} en le renommant index.html")
|
||||
'html-websites/'+args.source+'/'+new_folder
|
||||
print(f" mkdir {new_folder_path_this_article} -p")
|
||||
print(f" mv {chemin_fichier_this_article} {new_folder_path_this_article}")
|
||||
|
||||
os.makedirs(os.path.dirname(new_folder_path_this_article), exist_ok=True)
|
||||
# déplacer le fichier html dans le dossier slug, et le renommer en index.html ensuite pour ne pas modifier l'index du blog
|
||||
shutil.move(chemin_fichier_this_article, new_folder_path_this_article+'index.html')
|
||||
# os.remove(new_folder_path_this_article+'/index.html')
|
||||
# shutil.move(new_folder_path_this_article+'/'+link_html , new_folder_path_this_article+'/index.html' )
|
||||
|
||||
# contenu_index_gmi += "\n# Articles in English\n-------------------------\n"
|
||||
# contenu_index_html += "<h1>Articles in English</h1>"
|
||||
# lang_folder="lang_en/"
|
||||
lang_folder="lang_en/"
|
||||
# for fichier in files_en:
|
||||
# contenu_index_gmi += f"=> {fichier}\n"
|
||||
# link_html = fichier.replace('..gmi','.html')
|
||||
|
@ -147,13 +169,24 @@ def generer_index(dossier_source, fichier_index, titre_index):
|
|||
|
||||
# Écrit le contenu dans le fichier d'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_gemini}' généré avec succès.")
|
||||
# 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_gemini}' généré avec succès.")
|
||||
# os.remove('gemini-capsules/'+args.source+'/index.gmi')
|
||||
# shutil.move(chemin_fichier_index_gemini, 'gemini-capsules/'+args.source+'/index.gmi')
|
||||
|
||||
with open(chemin_fichier_index_html, 'w', encoding='utf-8') as file:
|
||||
print('chemin_fichier_index_html' , dossier_parent+chemin_fichier_index_html)
|
||||
print(' ')
|
||||
with open(dossier_parent+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>')
|
||||
print(f"Fichier d'index '{chemin_fichier_index_html}' généré avec succès.")
|
||||
# os.remove(dossier_parent+'/html-websites/'+args.source+'/index.html')
|
||||
|
||||
destination_html = dossier_parent+'/html-websites/'+args.source+'/'
|
||||
shutil.move(dossier_parent+chemin_fichier_index_html, destination_html)
|
||||
shutil.move(destination_html+chemin_fichier_index_html, destination_html+'index.html')
|
||||
|
||||
print(f"Déplacé dans '{'html-websites/'+args.source}'.")
|
||||
except OSError as e:
|
||||
print(f"Erreur lors de l'écriture du fichier d'index : {e}")
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue