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

159 lines
5.4 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/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() {
# 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
echo "----------- conversion vers converted/${i%.${source_file_extension}}.html"
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
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
fi
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 ../
# cp 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
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
}
# regrouper les types de fichiers générés
ls -l $style_file
# 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