From 530b8b755373edd7337d464be0e8641f0635cfa5 Mon Sep 17 00:00:00 2001 From: Tykayn Date: Sat, 16 Nov 2024 00:21:38 +0100 Subject: [PATCH] up doc, add tags to autodetect --- README.md | 12 +++++++ atom_generate.py | 12 +++++-- enrich_html.py | 2 +- gather_tags_in_json.py | 35 ++++++++----------- ...erbliss_blog_création-d'un-blog-gemini.gmi | 6 ++-- html-websites/cipherbliss_blog/contact.html | 2 +- html-websites/cipherbliss_blog/index.html | 4 +-- new_article.py | 2 +- website_config.py | 7 +++- 9 files changed, 49 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index 3c20f7ef..d89e1e53 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,19 @@ Pour un article en langue En (english), sur le blog cipherbliss_blog, donner le python3 new_article.py cipherbliss_blog en "Creation of a gemini blog" ``` On peut se faire un alias de commande en bash pour n'avoir à remplir que le titre pour un blog donné. +### Inclure des images +Dans un article on souhaite avoir des thumbnails liées à leur version plus grande et hébergées sur notre site. +Placez vos images et autres documents de votre article dans le dossier, puis lancez la commande de conversion et déplacement de vos fichiers. +```commandline +python3 pictures_resize.py +``` + +Vos miniatures sont crées, et les images originales sont déplacées dans un dossier output/pictures/{année_courante}. + +Un texte orgmode sera mis à disposition dans output/images_{année_courante].org pour les intégrer dans votre ou vos articles Org. Un préfixe de chemin relatif de ces images est configuré dans `website_config.py` + +Il vous faudra placer les images sur votre serveur. ## prérequis pour installation diff --git a/atom_generate.py b/atom_generate.py index 2b5e3581..bdff6de0 100755 --- a/atom_generate.py +++ b/atom_generate.py @@ -3,7 +3,15 @@ import re from datetime import datetime # Chemin du dossier source -source_dir = "source" +import argparse + +# Configuration des arguments de la ligne de commande +parser = argparse.ArgumentParser(description="Générer un nouvel article en mode orgmode.") +parser.add_argument("blog_dir", help="Le nom du dossier de blog.") + +args = parser.parse_args() + +blog_dir = args.blog_dir # Expression régulière pour extraire la date du contenu de l'article date_regex = re.compile(r"\b(\d{14})\b") @@ -12,7 +20,7 @@ date_regex = re.compile(r"\b(\d{14})\b") org_files = [] # Parcourt le dossier source à la recherche de fichiers org-mode -for root, dirs, files in os.walk(source_dir): +for root, dirs, files in os.walk(blog_dir): for file in files: if file.endswith(".org"): # Ouvre le fichier et recherche la première date dans le contenu de l'article diff --git a/enrich_html.py b/enrich_html.py index 2c1f0389..eae1aaa6 100755 --- a/enrich_html.py +++ b/enrich_html.py @@ -56,7 +56,7 @@ def enrich_one_file(html_content: str, partials: dict = {"header_page": "", "foo css_content = f.read() css_content = "" template_content["CSS_INLINE_CONTENT"] = css_content - template_content["PAGE_SLUG"] = "la_page" + template_content["PAGE_SLUG"] = detect_slug_in_file_basename(file) # remplir le template html_content = f""" diff --git a/gather_tags_in_json.py b/gather_tags_in_json.py index 36a210ba..7a5ea2dc 100644 --- a/gather_tags_in_json.py +++ b/gather_tags_in_json.py @@ -1,6 +1,5 @@ import argparse import json -import os from collections import defaultdict from utils import * @@ -18,8 +17,9 @@ directory_fr = f'{directory_base}/lang_fr' # Remplacez par le chemin de votre d output_file = f'sources/{blog_folder}/converted/tags.json' # Fichier de sortie html_output_folder = f'html-websites/{blog_folder}/tags' # Dossier de sortie pour les fichiers HTML excluded_tags = {'PROPERTIES', 'CREATED', 'ID', 'END'} -automatic_tagging_enabled=True +automatic_tagging_enabled = True +count_not_tagged_files = 0 count_orgfiles = 0 @@ -90,14 +90,13 @@ def extract_tags_from_file(file_path, excluded_tags, count_not_tagged_files=0): tags.add(tag) tag_found = True - if not tag_found: - count_not_tagged_files = count_not_tagged_files + 1 + count_not_tagged_files += 1 print('no tag in the article', file_path) return tags -def group_files_by_tags(org_files, excluded_tags, count_not_tagged_files): +def group_files_by_tags(org_files, excluded_tags): tag_to_files = defaultdict(set) for file_path in org_files: tags = extract_tags_from_file(file_path, excluded_tags, count_not_tagged_files) @@ -129,17 +128,17 @@ def generate_html_pages_for_all_tags(tag_to_files, html_output_folder): @@ -155,7 +154,6 @@ def generate_html_pages_for_all_tags(tag_to_files, html_output_folder): print(f"Pages HTML générées dans {html_output_folder}") - def trouver_slug_in_article(file_path_org): """ Trouve le contenu de la variable #+slug: dans un fichier Org. @@ -180,15 +178,10 @@ def trouver_slug_in_article(file_path_org): def generate_index_page(tag_to_files, html_output_folder): index_content = f""" - - - - - - Index des tags - +

Index des tags

+ +
- """ index_file_path = os.path.join(html_output_folder, "index.html") @@ -213,9 +206,8 @@ def generate_index_page(tag_to_files, html_output_folder): if __name__ == "__main__": org_files = find_org_files(directory_fr) - count_not_tagged_files = 0 - tag_to_files = group_files_by_tags(org_files, excluded_tags, count_not_tagged_files) + tag_to_files = group_files_by_tags(org_files, excluded_tags) save_to_json(tag_to_files, output_file) generate_html_pages_for_all_tags(tag_to_files, html_output_folder) @@ -223,3 +215,4 @@ if __name__ == "__main__": print(f"Tags et fichiers associés ont été enregistrés dans {output_file}") print(f"Pages HTML générées dans {html_output_folder}") + print(f"Pages non tagguées: {count_not_tagged_files}") diff --git a/gemini-capsules/cipherbliss_blog/lang_fr/20241103124156_cipherbliss_blog_création-d'un-blog-gemini.gmi b/gemini-capsules/cipherbliss_blog/lang_fr/20241103124156_cipherbliss_blog_création-d'un-blog-gemini.gmi index 55839b0d..c46eb1f0 100644 --- a/gemini-capsules/cipherbliss_blog/lang_fr/20241103124156_cipherbliss_blog_création-d'un-blog-gemini.gmi +++ b/gemini-capsules/cipherbliss_blog/lang_fr/20241103124156_cipherbliss_blog_création-d'un-blog-gemini.gmi @@ -48,7 +48,7 @@ Rédaction, conversion, completion des nouveaux articles, régénération des in # Sources d'inspiration: -Offpunk LazyBlog Dotclear, Wordpress, Hugo, Pélican Pandoc, PandocGmi +Offpunk, LazyBlog, Dotclear, Wordpress, Hugo, Pélican, Pandoc, PandocGmi => https://github.com/njamescouk/pandocGmi/tree/master https://github.com/njamescouk/pandocGmi/tree/master # Roadmap @@ -63,7 +63,5 @@ Offpunk LazyBlog Dotclear, Wordpress, Hugo, Pélican Pandoc, PandocGmi # Fait * navigation sur les pages d'article - -- gestion des langues dans la source et la destination - +* gestion des langues dans la source et la destination * gestion multi site et multi langue \ No newline at end of file diff --git a/html-websites/cipherbliss_blog/contact.html b/html-websites/cipherbliss_blog/contact.html index 92c0e4dd..ec89399b 100644 --- a/html-websites/cipherbliss_blog/contact.html +++ b/html-websites/cipherbliss_blog/contact.html @@ -27,7 +27,7 @@ -
+