#!/bin/bash # conversion des pages d'articles depuis le dossier source en orgmode # liste des dossiers à convertir # blogs_folders=("dragonfeu_blog" "tykayn_blog" "cipherbliss_blog" "qzine_blog" "cil_gometz") blogs_folders=() root_folder="/home/poule/encrypted/stockage-syncable/www/development/html/orgmode-to-gemini-blog" source_file_extension="org" style_file="templates/styles/style_general.css" destination_gemini="gemini-capsules/$website_name/" remove_all_previous_generated_files=false # Boucle à travers tous les arguments passés en entrée for arg in "$@"; do # Si l'argument est connu, ajouter le nom de blog correspondant à la liste blogs_folders+=("$arg") done # Si le tableau blogs_folders est vide, demander à l'utilisateur if [ ${#blogs_folders[@]} -eq 0 ]; then echo "----------- Aucun blog spécifié. Recherche des dossiers disponibles..." # Lister les dossiers sous sources/ echo "Dossiers disponibles sous sources/ :" ls -d sources/*/ 2>/dev/null | while read -r dir; do dir=${dir%/} # Enlever le / final dir=${dir#sources/} # Enlever le préfixe sources/ echo "- $dir" done # Demander à l'utilisateur quels dossiers inclure echo echo "Entrez les noms des blogs à traiter (séparés par des espaces) :" read -r user_input # Convertir l'entrée utilisateur en tableau read -ra blogs_folders <<<"$user_input" if [ ${#blogs_folders[@]} -eq 0 ]; then echo "Aucun blog sélectionné. Arrêt du script." exit 1 fi fi # Afficher la liste des noms de blogs echo "----------- La liste des noms de blogs est :" for blog in "${blogs_folders[@]}"; do echo "- $blog" done first_wd=$PWD is_directory_empty() { website_name = $1 if [ -z "$(ls -A /sources/$website_name/lang_fr/converted/)" ]; then echo "coucou" fi } # Définition de la fonction generate_website generate_website() { website_name=$1 echo "----------- convert_sources :Génération du site $1..." cp $style_file html-websites/$website_name/style.css if [ ! -d "sources/$website_name" ]; then echo "Le dossier source n'existe pas pour le site $website_name" read -p "Voulez-vous créer le dossier source pour le nouveau site $website_name? (o/n) [n] " -n 1 -r echo if [[ ! $REPLY =~ ^[Oo]$ ]]; then echo "Arrêt de la génération pour $website_name" return 1 fi if [[ $REPLY =~ ^[Oo]$ ]]; then mkdir -p sources/$website_name/img mkdir -p sources/$website_name/lang_fr mkdir -p sources/$website_name/lang_en mkdir -p sources/$website_name/templates mkdir -p sources/$website_name/build mkdir -p sources/$website_name/converted cp templates/$website_name/$source_file_extension/* sources/$website_name/templates fi fi if [ "$remove_all_previous_generated_files" = true ]; then rm -rf html-websites/$website_name/* fi mkdir -p "html-websites/$website_name" mkdir -p "html-websites/$website_name/feed" mkdir -p "html-websites/$website_name/tags" mkdir -p "html-websites/$website_name/tag" mkdir -p "html-websites/$website_name/lang_fr" mkdir -p "html-websites/$website_name/lang_en" } # regrouper les types de fichiers générés bash sass_styles.sh # Boucle à travers la liste des sites Web for website_name in "${blogs_folders[@]}"; do export website_name=$website_name generate_website $website_name # création de l'index listant les articles pour le html et la capsule gemini: # prendre les fichiers markdown du dossier md/ , # et créer un index des fichiers situés dedans, rangés par nom de fichier décroissant, # générer l'index montrant les posts les plus récents à la suite # conversion des pages statiques echo "conversion des pages statiques : linking_articles_prev_next.py" python3 linking_articles_prev_next.py $website_name # créer les pages de tags à partir des infos de tag trouvées dans les fichiers org echo "création des pages de tags : gather_tags_in_json.py" python3 gather_tags_in_json.py $website_name echo "copie du style $style_file dans le dossier html" cp $style_file html-websites/$website_name/style.css echo "copie du script main_script.js dans le dossier html" cp templates/js/main_script.js html-websites/$website_name/main_script.js # traiter les réductions d'images dans l'inbox echo "traiter les réductions d'images dans l'inbox : pictures_resize.py" python3 pictures_resize.py # régénérer le flux Atom du blog mkdir -p "html-websites/$website_name/feed" python3 atom_generate.py $website_name echo "génération faite dans html-websites/$website_name" done