#!/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=() # blogs_folders=("tykayn_blog" "qzine_blog" "dragonfeu_blog") # blogs_folders=("cil_gometz") # blogs_folders=("qzine_blog") # blogs_folders=("cipherbliss_blog") 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/" # 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 # 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 } # convertir les fichiers org d'un dossier vers html convert_sources() { echo "argument : $1" source_file_extension="org" website_full_path=$1 echo "-----------" echo "----------- convert_sources : $website_full_path" mkdir -p "${website_full_path}/converted/" cd "${website_full_path}" pwd ls $website_full_path/*.org # echo "----------- convert_sources : aucun document dans converted" # if [ -z "$(ls -A /sources/$website_name/lang_fr/converted/)" ]; then # echo "coucou on convertit tout" # for i in $(find "$website_full_path" -maxdepth 1 -type f -name "*.$source_file_extension"); do # # echo "----------- convert_sources : org -> html et -> md : " # # echo " $i" # # echo "" # pandoc --from "${source_file_extension}" --to html -s "${i}" -o "${website_full_path}/converted/${i%.${source_file_extension}}.html" --metadata title="$i - $website_name" # pandoc --from "${source_file_extension}" --to markdown -s "${i}" -o "${website_full_path}/converted/${i%.${source_file_extension}}.md" --metadata title="$website_name" # done # else # echo "on ne convertit que les plus récents " # for i in $(find "$website_full_path" -maxdepth 1 -type f -name "*.$source_file_extension" -newermt "2024-11-20"); do # # echo "----------- convert_sources : org -> html et -> md : " # # echo " $i" # # echo "" # pandoc --from "${source_file_extension}" --to html -s "${i}" -o "${website_full_path}/converted/${i%.${source_file_extension}}.html" --metadata title="$i - $website_name" # pandoc --from "${source_file_extension}" --to markdown -s "${i}" -o "${website_full_path}/converted/${i%.${source_file_extension}}.md" --metadata title="$website_name" # done # fi # exit # convertir seulement les pages récentes # for i in $(find "$website_full_path/lang_fr" -maxdepth 1 -type f -name "*.$source_file_extension" -newermt "2024-11-20") ; do # # ne transformer que les posts récents dans le dossier converted # # Transformer en html et en markdown # pandoc --from "${source_file_extension}" --to html -s "${i}" -o \ # "${website_full_path}/converted/${i%.${source_file_extension}}.html" --metadata title="$i - $website_name" # # pandoc --from "${source_file_extension}" --to markdown -s "${i}" -o "${website_full_path}/converted/${i%.${source_file_extension}}.md" --metadata title="$website_name" # done # for i in $("$website_full_path/lang_en" -maxdepth 1 -type f -name "*.$source_file_extension" -newermt "2024-11-20") ; do # # ne transformer que les posts récents dans le dossier converted # # Transformer en html et en markdown # pandoc --from "${source_file_extension}" --to html -s "${i}" -o \ # "${website_full_path}/converted/${i%.${source_file_extension}}.html" --metadata title="$i - $website_name" # # pandoc --from "${source_file_extension}" --to markdown -s "${i}" -o "${website_full_path}/converted/${i%.${source_file_extension}}.md" --metadata title="$website_name" # done cd $first_wd } # 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 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 rm -rf html-websites/$website_name/* mkdir -p html-websites/$website_name mkdir -p html-websites/$website_name/feed # rm -rf sources/$website_name/converted/* # rm -rf sources/$website_name/lang_fr/converted/* # rm -rf sources/$website_name/lang_en/converted/* mkdir -p html-websites/$website_name/lang_fr mkdir -p html-websites/$website_name/lang_fr # conversion des pages statiques echo "----------- convert_sources : $root_folder/sources/$website_name" convert_sources "$root_folder/sources/$website_name" echo "----------- convert_sources : $root_folder/sources/$website_name/templates" convert_sources "$root_folder/sources/$website_name/templates" echo "----------- convert_sources : pages template $website_name converties" # # traduction fr convert_sources "$root_folder/sources/$website_name/lang_fr" echo "----------- convert_sources :pages en français du site web $website_name converties" # traduction en convert_sources "$root_folder/sources/$website_name/lang_en" echo "----------- pages en anglais du site web $website_name converties" ls -l "$root_folder/sources/$website_name/converted" bash concat_list_billets.sh $website_name } convert_markdown_to_gmi() { destination_gemini="gemini-capsules/$website_name" echo "----------- convert_sources : convert_markdown_to_gmi : $website_name" rm -rf gemini-capsules/$website_name/* mkdir -p gemini-capsules/$website_name mkdir -p gemini-capsules/$website_name/lang_fr mkdir -p gemini-capsules/$website_name/lang_en # echo "----------- convert_markdown_to_gmi : $PWD" # echo "----------- convert_markdown_to_gmi : destination: $destination_gemini" # echo "----------- convert_markdown_to_gmi : fichiers markdown présents dans le dossier de base: " ls -l sources/$website_name/converted/*.md | wc # # faire les fichiers gemini à partir du markdown # pages de base # pages fr # pages en for fichier in sources/$website_name/converted/*.md; do if [ -f "$fichier" ]; then echo "----------- convert_markdown_to_gmi : md2gemini : $destination_gemini : $fichier" md2gemini "$fichier" -w -d $destination_gemini/ fi done cp sources/$website_name/converted/*.gmi "$destination_gemini/lang_fr" for fichier in sources/$website_name/lang_fr/converted/*.md; do if [ -f "$fichier" ]; then echo "----------- convert_markdown_to_gmi : md2gemini : $fichier" md2gemini "$fichier" -w -d sources/$website_name/lang_fr/converted/ fi done cp sources/$website_name/lang_fr/converted/*.gmi "$destination_gemini/lang_fr" for fichier in sources/$website_name/lang_en/converted/*.md; do if [ -f "$fichier" ]; then echo "----------- convert_markdown_to_gmi : md2gemini : $fichier" md2gemini "$fichier" -w -d sources/$website_name/lang_fr/converted/ fi done cp sources/$website_name/lang_en/converted/*.gmi "$destination_gemini/lang_en" echo "----------- génération des fichiers gemini faite." pwd echo "fichiers gmi présents:" ls -l $destination_gemini*.gmi | wc -l } # 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 # TODO reenable markdown to gemini when checks are done # convert_markdown_to_gmi $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 bash concat_list_billets.sh $website_name # sauver le tout dans un fichier index.gmi # python3 build_indexes.py $website_name # créer les pages de tags mkdir -p "html-websites/$website_name/tags" mkdir -p "html-websites/$website_name/tag" python3 gather_tags_in_json.py $website_name python3 linking_articles_prev_next.py $website_name # déplacer les fichiers générés en html dans le dossier statique mv sources/$website_name/converted/*.html html-websites/$website_name/ # python3 enrich_html.py $website_name --style $style_file # copier le style dans le dossier html cp $style_file html-websites/$website_name/style.css # copier le script permettant la recherche cp templates/js/main_script.js html-websites/$website_name/main_script.js # traiter les réductions d'images dans l'inbox 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 mv index_$website_name.xml html-websites/$website_name/feed/index.xml echo "génération faite dans html-websites/$website_name" done