more complex template html

This commit is contained in:
Tykayn 2024-11-10 18:03:31 +01:00 committed by tykayn
parent 22b713fb4a
commit f016f842c9
844 changed files with 8190 additions and 10977 deletions

View file

@ -3,11 +3,11 @@ import argparse
import re
import datetime
import shutil
# from enrich_html import static_page_path
import re
# from enrich_html import static_page_path
# génère l'index gemini et html des articles rangés par langue
# Définition des arguments de la ligne de commande
parser = argparse.ArgumentParser(description="Générer un site Web à partir de fichiers HTML.")
parser.add_argument("source", help="Le chemin vers le dossier contenant les fichiers HTML.")
parser.add_argument("title", default="Mon site Web", help="Le titre du site Web.")
@ -24,14 +24,16 @@ source_files_extension="org"
regex = r"^(\d{14})(-[a-zA-Z0-9_-]+)\.gmi$"
regex_orgroam = r"^(\d{14})_([a-zA-Z0-9_-]+)\.gmi$"
import re
use_article_file_for_name=False
website_name = args.source
def trouver_nom_article(fichier_org):
print('fichier_org, ',fichier_org)
with open(fichier_org, 'r') as file:
lignes = file.readlines()
# Expressions régulières pour trouver les titres de niveau 1 et 2
titre_niveau_1 = r'^\*\*\*+ (.+)$'
titre_niveau_1 = r'^\*+ (.+)$'
titre_niveau_2 = r'^\*\*+ (.+)$'
nom_article = None
@ -118,7 +120,7 @@ def get_files_list_of_folder(folder_path):
print('source ',folder_path)
# Liste les fichiers articles, trie par nom décroissant
try:
fichiers_md = sorted([f.replace(source_files_extension, '.gmi') for f in os.listdir(folder_path) if f.endswith(source_files_extension)], reverse=True)
fichiers_md = sorted([f.replace('.'+source_files_extension, '.gmi') for f in os.listdir(folder_path) if f.endswith(source_files_extension)], reverse=True)
print('fichiers trouvés:', len(fichiers_md))
return fichiers_md
except OSError as e:
@ -143,7 +145,6 @@ def empty_folder_content(path):
else:
shutil.rmtree(file_path)
use_article_file_for_name=False
def generer_index(dossier_source, fichier_index, titre_index):
# Chemin absolu du dossier parent (pour sauver le fichier d'index)
@ -171,16 +172,25 @@ def generer_index(dossier_source, fichier_index, titre_index):
contenu_index_gmi += "\n# Navigation\n-------------------------\n"
contenu_index_html += "<h1>Navigation</h1>"
for fichier in files_static:
print(" -------- fichier ",fichier)
link_html = fichier.replace('.gmi','.html')
link_org = fichier.replace('.gmi','.org')
contenu_index_gmi += f"=> {fichier}\n"
link_html = fichier.replace('..gmi','.html')
if use_article_file_for_name:
article_name = link_html
if fichier != "index.gmi":
print(' -------- rechercher le nom de l article dans le fichier ')
if use_article_file_for_name:
article_name = link_html
else:
file_path_org = os.path.join(dossier_parent,"sources",website_name,link_org)
print('-------------- trouver_nom_article ',file_path_org)
article_name=trouver_nom_article(file_path_org)
if not article_name:
article_name = link_html
else:
file_path_org = os.path.join(dossier_parent,fichier)
print('--------------',file_path_org)
article_name=trouver_nom_article( file_path_org)
article_name = 'Index'
article_name = article_name.replace('_',' ')
contenu_index_html += f"<br><a href=/{link_html}>{article_name}</a>"
# ne préciser la langue français que si on a des articles en Anglais
@ -232,11 +242,8 @@ def generer_index(dossier_source, fichier_index, titre_index):
try:
with open(chemin_fichier_index_gemini, 'w', encoding='utf-8') as file:
file.write(contenu_index_gmi)
print(f" ------------ build_indexes: Fichier d'index '{chemin_fichier_index_gemini}' généré avec succès.")
os.remove('gemini-capsules/'+args.source+'/index.gmi')
shutil.copy(chemin_fichier_index_gemini, 'gemini-capsules/'+args.source+'/index.gmi')
print(f" ------------ build_indexes: Déplacé dans '{'html-websites/'+args.source}'.")
print(f" ------------ build_indexes: Fichier d'index gemini '{chemin_fichier_index_gemini}' généré avec succès.")
except OSError as e:
print(f" ------------ build_indexes: Erreur lors de l'écriture du fichier d'index : {e}")