orgmode-to-gemini-blog/converters.sh
2024-11-10 15:58:11 +01:00

181 lines
5.0 KiB
Bash
Executable File

#!/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"
# 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() {
echo "----------- convertir les fichiers orgmode vers gemini et html dans le dossier source/nom_du_blog/ racine, lang_fr et lang_en"
source_file_extension="org"
templates_path=$1
mkdir -p converted
pwd
ls -l *.${source_file_extension} |wc -l
for i in *.${source_file_extension} ; do
echo "----------- $i"
# Transformer en html
# temp_page="temp_page.$source_file_extension"
# echo ''> $temp_page
# cat "$first_wd/sources/$website_name/templates/header_page.$source_file_extension" >> $temp_page
# cat "${i}" >> $temp_page
# cat "$first_wd/sources/$website_name/templates/footer_page.$source_file_extension" >> $temp_page
echo "----------- 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 "----------- 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 "----------- 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 "----------- 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
# 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"
cp index_$website_name.html html-websites/$website_name/index.html
cp $style_file html-websites/$website_name/style.css
# --------------------------------------------------------------------------------------------------
# convertir les fichiers org
echo "----------- ------------ enrich html --------"
python3 enrich_html.py html-websites/$website_name -t $website_name --style $style_file
cp $style_file html-websites/$website_name/style.css
}
convert_markdown_to_gmi() {
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
destination_gemini="gemini-capsules/$website_name/"
echo "----------- génération des fichiers gemini"
echo "----------- destination des fichiers gemini: $destination_gemini"
echo "----------- fichiers markdown présents dans le dossier de base: "
ls -l output/*$website_name/converted/*.md |wc
# # faire les fichiers gemini à partir du markdown
for fichier in output/*$website_name/converted/*.md ; do
if [ -f "$fichier" ]; then
echo "----------- convert the markdown to gmi : $fichier"
md2gemini "$fichier" -w -d $destination_gemini
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
done