orgmode-to-gemini-blog/converters.sh
2024-11-05 11:17:52 +01:00

135 lines
4.5 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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"
# 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
convert_sources() {
# 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
for i in *.${source_file_extension} ; do
echo "$i"
# Transformer en html
# echo "to HTML:"
# pwd
# TODOassembler la page de footer avec le fichier en entrée
temp_page="temp_page.$source_file_extension"
echo ''> $temp_page
cat "templates/header_page.$source_file_extension" >> $temp_page
cat "${i}" >> $temp_page
cat "templates/footer_page.$source_file_extension" >> $temp_page
pandoc -f "${source_file_extension}" -t html -s "${i}" -o "converted/${i%.${source_file_extension}}.html" --metadata title="$website_name"
# Transformer en gmi
# echo "to GMI:"
# pwd
# ls -l $templates_path/../../templates/pandoc
pandoc --template $templates_path/../../templates/pandoc/template_gemini.lua -f "${source_file_extension}" -t $templates_path/../../templates/pandoc/gmi.lua -s "${i}" -o "converted/${i%.${source_file_extension}}.gmi"
# ajout des footers à chaque article
# cat '../../templates/website_pages/footer-articles.md.gmi' >> "${i%.${source_file_extension}}.gmi"
rm $temp_page
done
}
# Définition de la fonction generate_website
generate_website() {
echo " Génération du site $1..."
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
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
mkdir -p sources/$website_name/img
mkdir -p sources/$website_name/lang_fr
mkdir -p sources/$website_name/lang_en
# Ajoutez ici le code pour générer le site Web
echo "Le site $1 a été généré avec succès."
# conversion des pages statiques
cd sources/$website_name
convert_sources
#déplacer dans le site généré
mv converted/*.html ../../html-websites/$website_name/
ls converted/*.gmi
mv converted/*.gmi ../../gemini-capsules/$website_name/
# traduction fr
cd lang_fr
convert_sources ../
mv converted/*.html ../../../html-websites/$website_name/lang_fr/
mv converted/*.gmi ../../../gemini-capsules/$website_name/lang_fr/
echo "pages en français du site web $website_name converties"
cd ..
# traduction en
cd lang_en
convert_sources ../
mv converted/*.html ../../../html-websites/$website_name/lang_en/
mv converted/*.gmi ../../../gemini-capsules/$website_name/lang_en/
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"
python3 enrich_html.py html-websites/$website_name -t $website_name --style templates/style_general.css
python3 enrich_html.py html-websites/$website_name/lang_fr -t $website_name --style templates/style_general.css
python3 enrich_html.py html-websites/$website_name/lang_en -t $website_name --style templates/style_general.css
# python3 enrich_html.py html-websites/dragonfeu_blog/lang_fr -t $website_name --style style_general.css
# python3 enrich_html.py html-websites/dragonfeu_blog/lang_en -t $website_name --style style_general.css
}
# regrouper les types de fichiers générés
# Boucle à travers la liste des sites Web
for website_name in "${blogs_folders[@]}"; do
generate_website $website_name
done