ARTIVISMO/build_gallery.sh
2025-11-06 19:19:45 +00:00

47 lines
1.4 KiB
Bash

#!/usr/bin/env bash
set -euo pipefail
# Carpeta de imágenes y archivo HTML a actualizar
IMG_DIR="ARTIVISMO_THS"
HTML="index.html"
# Extensiones soportadas (añade/quita lo que quieras)
shopt -s nullglob nocaseglob
IMGS=("$IMG_DIR"/*.{jpg,jpeg,png,webp,gif})
# Construye el HTML de la galería en un buffer
TMP="$(mktemp)"
{
echo '<!-- GALLERY:START (no tocar, se rellena automáticamente) -->'
echo '<section id="galeria" class="galeria" aria-label="Galería de imágenes">'
for f in "${IMGS[@]}"; do
base="${f##*/}" # nombre con extensión
title="${base%.*}" # sin extensión
title="${title//_/ }"
title="${title//-/ }"
# mayúscula inicial simple
title="$(echo "$title" | awk '{for(i=1;i<=NF;i++){ $i=toupper(substr($i,1,1)) substr($i,2) } ; print }')"
cat <<EOF
<figure class="item">
<img src="$IMG_DIR/$base" alt="$title" loading="lazy">
<figcaption>
<h3 class="title">$title</h3>
</figcaption>
</figure>
EOF
done
echo '</section>'
echo '<!-- GALLERY:END -->'
} > "$TMP"
# Reemplaza el bloque entre marcadores en index.html
awk -v RS= -v ORS="" -v repl="$(sed 's/[&/\]/\\&/g' "$TMP")" '
{
gsub(/<!-- GALLERY:START[\s\S]*?GALLERY:END -->/, repl);
print
}
' "$HTML" > "$HTML.tmp" && mv "$HTML.tmp" "$HTML"
rm -f "$TMP"
echo "Galería actualizada con ${#IMGS[@]} imágenes en $HTML"