From a85b6b6e9031fd4229a6c0fa43cc514ecbac42eb Mon Sep 17 00:00:00 2001 From: Kristina Date: Sun, 17 May 2026 21:22:22 +0200 Subject: [PATCH] html + release --- archivo.md | 2 +- convertir.sh | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 convertir.sh diff --git a/archivo.md b/archivo.md index c95ef68..f264868 100644 --- a/archivo.md +++ b/archivo.md @@ -6,5 +6,5 @@ hola, que tal \- segundo intento - +\- tercer intento diff --git a/convertir.sh b/convertir.sh new file mode 100644 index 0000000..eea823d --- /dev/null +++ b/convertir.sh @@ -0,0 +1,83 @@ +#!/bin/bash +# ============================================================================= +# convertir.sh — Convierte archivos Markdown a HTML y los publica en Apache +# Proyecto: JAK DevOps — workflow cy.yaml +# +# Requisitos: +# - Ejecutar dentro del job container con /output montado sobre el htdocs de Apache +# - El runner debe tener valid_volumes: ['/srv/devops/data/apache/**'] +# ============================================================================= + +set -euo pipefail + +OUTPUT_DIR="/output" +BASE_URL="https://portaljack.freeddns.org" + +# ----------------------------------------------------------------------------- +dependencies() { + echo "[1/3] Instalando dependencias..." + apt-get update -qq + apt-get install -y -qq pandoc + echo " pandoc $(pandoc --version | head -1 | cut -d' ' -f2) instalado" +} + +# ----------------------------------------------------------------------------- +convert_to_html() { + echo "[2/3] Convirtiendo Markdown → HTML..." + local converted=0 + local errors=0 + + for md in *.md; do + # Guarda ante glob sin matches (bash con set -u no expande *.md si no hay ficheros) + [ -f "$md" ] || { echo " [WARN] No se encontraron archivos .md en el directorio de trabajo"; return 0; } + + local filename="${md%.md}" + echo " Procesando: $md" + + if pandoc "$md" \ + --standalone \ + --metadata title="$filename" \ + --highlight-style=tango \ + --output "${filename}.html"; then + converted=$((converted + 1)) + else + echo " [ERROR] Fallo al convertir: $md" + errors=$((errors + 1)) + fi + done + + echo " Convertidos: ${converted} | Errores: ${errors}" + [ "$errors" -eq 0 ] || return 1 +} + +# ----------------------------------------------------------------------------- +deploy() { + echo "[3/3] Publicando en Apache..." + local count=0 + + # Itera solo los HTML generados a partir de los .md presentes (no recoge HTMLs previos del repo) + for md in *.md; do + [ -f "$md" ] || continue + local html="${md%.md}.html" + [ -f "$html" ] || continue + + cp "$html" "${OUTPUT_DIR}/" + count=$((count + 1)) + echo "" + echo " ${BASE_URL}/${html}" + done + + echo "" + echo "======================================================" + echo " ${count} página(s) publicada(s) en ${BASE_URL}/" + echo "======================================================" +} + +# ----------------------------------------------------------------------------- +main() { + dependencies + convert_to_html + deploy +} + +main