From cfa5985f443e197a70b6edebfc44a4a29ab290a4 Mon Sep 17 00:00:00 2001 From: dexta Date: Mon, 20 Jul 2026 19:44:35 +0200 Subject: [PATCH] close but not there yet --- 90_builder/bookFold.sh | 47 +++++++++++++++++++++++++++ 90_builder/container/deb_Dockerfile | 16 +++++++++ build.sh | 50 ++++------------------------- 3 files changed, 70 insertions(+), 43 deletions(-) create mode 100755 90_builder/bookFold.sh create mode 100644 90_builder/container/deb_Dockerfile diff --git a/90_builder/bookFold.sh b/90_builder/bookFold.sh new file mode 100755 index 0000000..c277ba6 --- /dev/null +++ b/90_builder/bookFold.sh @@ -0,0 +1,47 @@ +#!/usr/bin/bash +BASEDIR=$(pwd) +INPUT_DIR="$BASEDIR/input" +OUTPUT_DIR="$BASEDIR/91_sonnensystem" +TEMPLATES="$BASEDIR/templates" + +chown -R appuser:appgroup "$OUTPUT_DIR" + +function convert_adoc() { + if [ -f "$1" ]; then + echo "-> Konvertiere $1 zu HTML..." + asciidoctor -b html5 -a stylesheet=$TEMPLATES/retro-dark.css -a linkcss -a toc=left "$INPUT_DIR/$1" -o "$OUTPUT_DIR/$2" + else + echo " [INFO] $1 nicht gefunden, überspringe..." + fi +} + + +echo '--- Baue README ---' +convert_adoc README.adoc README.html + +echo '--- Baue Lore (Master-Dokument) ---' +LORE_SRC="$INPUT_DIR/index.adoc" +if [ -f "$INPUT_DIR/master.adoc" ]; then LORE_SRC="$INPUT_DIR/master.adoc"; fi + +if [ -f "$LORE_SRC" ]; then + echo "-> Generiere Lore-Dokument (HTML & Markdown) aus $LORE_SRC..." + asciidoctor -b html5 -d book -a stylesheet=$TEMPLATES/retro-dark.css -a linkcss -a toc=left "$LORE_SRC" -o "$OUTPUT_DIR/lore.html" + asciidoctor -b docbook -d book "$LORE_SRC" -o "$OUTPUT_DIR/temp_lore.xml" + pandoc -f docbook -t markdown_strict "$OUTPUT_DIR/temp_lore.xml" -o "$OUTPUT_DIR/lore.md" + rm "$OUTPUT_DIR/temp_lore.xml" +else + echo " [WARNUNG] Weder index.adoc noch master.adoc gefunden!" +fi + +echo '--- Baue Fließtexte / Geschichten ---' +if [ -f "$INPUT_DIR/darkCenter.adoc" ]; then + echo "-> Konvertiere darkCenter.adoc zu HTML..." + asciidoctor -b html5 -d book -a stylesheet=$TEMPLATES/retro-dark.css -a linkcss -a toc=left "$INPUT_DIR/darkCenter.adoc" -o "$OUTPUT_DIR/darkCenter.html" +fi + +rm -rf ./export +mkdir "$OUTPUT_DIR/css" +cp "$TEMPLATES/retro-dark.css" "$OUTPUT_DIR/css/" +cp "$TEMPLATES/index.html" "$OUTPUT_DIR/" +sed -i 's/\/workspace\/templates/css/g' "$OUTPUT_DIR/darkCenter.html" +chown -R appuser:appgroup "$OUTPUT_DIR" \ No newline at end of file diff --git a/90_builder/container/deb_Dockerfile b/90_builder/container/deb_Dockerfile new file mode 100644 index 0000000..a0317aa --- /dev/null +++ b/90_builder/container/deb_Dockerfile @@ -0,0 +1,16 @@ +FROM debian:stable-slim + +RUN apt-get update && apt-get upgrade && apt-get -y install asciidoctor pandoc bash + +RUN groupadd --gid 1000 appgroup && \ + useradd --uid 1000 --gid appgroup --shell /bin/bash --create-home appuser + +WORKDIR /workspace + +ADD ./90_builder/templates templates +ADD ./90_builder/bookFold.sh ./ + +RUN chown -R appuser:appgroup /workspace + + +CMD ["/usr/bin/bash" "./bookFold.sh"] \ No newline at end of file diff --git a/build.sh b/build.sh index b741f40..9d83cf7 100755 --- a/build.sh +++ b/build.sh @@ -1,15 +1,15 @@ #!/bin/bash # Name des lokalen Docker-Images -IMAGE_NAME="lore-builder" +IMAGE_NAME="ian-lore-builder" # Input Ordner INP_DIR=$(pwd) # Build Ordner -BID_DIR="90_builder" +# BID_DIR="90_builder" # Build templares -TEMPLATES="$BID_DIR/templates" +# TEMPLATES="$BID_DIR/templates" # Ausgabeordner -OUT_DIR="91_sonnensystem" +OUT_DIR="$INP_DIR/91_sonnensystem" # Farben für Output GREEN='\033[0;32m' @@ -26,11 +26,7 @@ echo -e "Output-Ordner '${GREEN}$OUT_DIR${NC}' bereinigt und bereit." # 2. Prüfen, ob das Docker-Image existiert, ansonsten on-the-fly bauen if [[ "$(docker images -q $IMAGE_NAME 2> /dev/null)" == "" ]]; then echo -e "${BLUE}Baue flüchtiges Docker-Image '$IMAGE_NAME' (Alpine, Asciidoctor, Pandoc)...${NC}" - docker build -t $IMAGE_NAME - < Konvertiere \$1 zu HTML...\" - asciidoctor -b html5 -a stylesheet=$TEMPLATES/retro-dark.css -a linkcss -a toc=left \"\$1\" -o \"$OUT_DIR/\$2\" - else - echo \" [INFO] \$1 nicht gefunden, überspringe...\" - fi - } - - echo '--- Baue README ---' - convert_adoc README.adoc README.html - - echo '--- Baue Lore (Master-Dokument) ---' - LORE_SRC=\"index.adoc\" - if [ -f master.adoc ]; then LORE_SRC=\"master.adoc\"; fi - - if [ -f \"\$LORE_SRC\" ]; then - echo \"-> Generiere Lore-Dokument (HTML & Markdown) aus \$LORE_SRC...\" - asciidoctor -b html5 -d book -a stylesheet=$TEMPLATES/retro-dark.css -a linkcss -a toc=left \"\$LORE_SRC\" -o \"$OUT_DIR/lore.html\" - asciidoctor -b docbook -d book \"\$LORE_SRC\" -o \"$OUT_DIR/temp_lore.xml\" - pandoc -f docbook -t markdown_strict \"$OUT_DIR/temp_lore.xml\" -o \"$OUT_DIR/lore.md\" - rm \"$OUT_DIR/temp_lore.xml\" - else - echo \" [WARNUNG] Weder index.adoc noch master.adoc gefunden!\" - fi - - echo '--- Baue Fließtexte / Geschichten ---' - if [ -f darkCenter.adoc ]; then - echo \"-> Konvertiere darkCenter.adoc zu HTML...\" - asciidoctor -b html5 -d book -a stylesheet=$TEMPLATES/retro-dark.css -a linkcss -a toc=left darkCenter.adoc -o \"$OUT_DIR/darkCenter.html\" - fi - -" +# docker run --rm -v "$INP_DIR:/workspace" $IMAGE_NAME /workspace/bookFold.sh +docker run --rm -v "$(pwd):/workspace/input" -v "$(pwd)/91_sonnensystem:/workspace/91_sonnensystem" $IMAGE_NAME # 5. index.html vollautomatisch und direkt generieren # moved to $BID_OUT/templates/index.html