#!/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") 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 convert_sources() { source_file_extension="org" templates_path=$1 echo "----------- convert_sources : convertir les fichiers orgmode vers gemini et html dans le dossier source/nom_du_blog/ racine, lang_fr et lang_en" echo "----------- convert_sources : $templates_path" mkdir -p converted pwd ls -l *.${source_file_extension} |wc -l for i in *.${source_file_extension} ; do echo "----------- $i" # Transformer en html et en markdown echo "----------- convert_sources : conversion vers converted/${i%.${source_file_extension}}.html" pandoc --from "${source_file_extension}" --to html -s "${i}" -o "converted/${i%.${source_file_extension}}.html" --metadata title="$website_name" pandoc --from "${source_file_extension}" --to markdown -s "${i}" -o "converted/${i%.${source_file_extension}}.md" --metadata title="$website_name" done } # Définition de la fonction generate_website generate_website() { echo "----------- convert_sources :Génération du site $1..." 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 cp templates/$website_name/$source_file_extension/* sources/$website_name/templates fi mkdir -p html-websites/$website_name rm -rf html-websites/$website_name/* mkdir -p html-websites/$website_name/lang_fr mkdir -p html-websites/$website_name/lang_en echo "----------- convert_sources :Le site $1 a été généré avec succès." # conversion des pages statiques cd sources/$website_name convert_sources # traduction fr cd lang_fr convert_sources ../ echo "----------- convert_sources :pages en français du site web $website_name converties" cd .. # traduction en cd lang_en convert_sources ../ # echo "----------- pages en anglais du site web $website_name converties" cd .. cd .. cd .. pwd # -------------------------------------------------------------------------------------------------- # convertir les fichiers org echo "----------- convert_sources : ------------ enrich html --------" cp $style_file html-websites/$website_name/style.css } convert_markdown_to_gmi() { echo "----------- convert_sources : convert_markdown_to_gmi : $website_name" mkdir -p gemini-capsules/$website_name rm -rf gemini-capsules/$website_name/* mkdir -p gemini-capsules/$website_name/lang_fr mkdir -p gemini-capsules/$website_name/lang_en # mv index_$website_name.gmi gemini-capsules/$website_name/index.gmi 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 : $fichier" md2gemini "$fichier" -w -d $destination_gemini fi done 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 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 echo "----------- génération des fichiers gemini faite." # 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 # ls -l $style_file # Boucle à travers la liste des sites Web for website_name in "${blogs_folders[@]}"; do generate_website $website_name convert_markdown_to_gmi $website_name # création de l'index: # 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, # sauver le tout dans un fichier index.gmi python3 build_indexes.py $website_name "$website_name" # déplacer les fichiers générés en html dans le dossier statique cp sources/$website_name/converted/*.html html-websites/$website_name/ cp index_$website_name.html html-websites/$website_name/index.html cp sources/$website_name/converted/lang_fr/*.html html-websites/$website_name/lang_fr/ cp sources/$website_name/converted/lang_en/*.html html-websites/$website_name/lang_en/ python3 enrich_html.py html-websites/$website_name -t $website_name --style $style_file # # déplacer les fichirers gemini dans la capsule cp index_$website_name.gmi gemini-capsules/$website_name/index.gmi cp sources/$website_name/converted/*.gmi gemini-capsules/$website_name/ cp sources/$website_name/converted/lang_fr/*.gmi gemini-capsules/$website_name/lang_fr/ cp sources/$website_name/converted/lang_en/*.gmi gemini-capsules/$website_name/lang_en/ # copy style cp $style_file html-websites/$website_name/style.css done