orgmode-to-gemini-blog/converters.sh
2024-11-08 18:16:36 +01:00

155 lines
5.2 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"
style_file="templates/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() {
# 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
# TODOassembler la page de footer avec le fichier en entrée
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
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"
mv index_$website_name.gmi gemini-capsules/$website_name/index.gmi
mv 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
}
# 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
destination_gemini="gemini-capsules/$website_name/"
echo "génération des fichiers gemini"
echo "destination des fichiers gemini: $destination_gemini"
# # faire les fichiers gemini à partir du markdown
for fichier in output/*$website_name*.md ; do
if [ -f "$fichier" ]; then
echo "convert markdown $fichier"
md2gemini "$fichier" -w -d $destination_gemini
fi
done
echo "génération des fichiers gemini faite."
# echo "fichiers gmi présents:"
# ls -l output/*.gmi |wc -l
done