Files
duffyduckandClaude Opus 5 59e7224297 Handbuch auf MkDocs-Basis, mit Bildschirmfotos aus dem Programm
26 Kapitel in vier Teilen, in der Reihenfolge, in der man sie braucht:
erst sichern, dann Dateien holen, dann ganze Maschinen wiederherstellen,
dahinter der Nachschlagteil.

Gebaut wird mit MkDocs + Material. Bewusst ohne Netzabhaengigkeiten:
keine Schriften vom CDN (font: false), Volltextsuche mit deutschem
Stemming liegt neben den Seiten. Im Notfall steht vielleicht das halbe
Netz - dann nuetzt eine Doku im Internet nichts.

  handbuch/bauen.sh              baut handbuch/site/
  handbuch/bauen.sh ansehen      Vorschau auf 127.0.0.1:8000

install.sh nimmt das gebaute Handbuch mit nach
/usr/share/doc/pvesnap/handbuch/ - falls es vorliegt. Auf dem Host selbst
wird nichts gebaut, mkdocs gehoert nicht auf einen Hypervisor.

Die 28 Bildschirmfotos sind nicht abfotografiert, sondern erzeugt: Der
echte Programmcode laeuft in einem Pseudo-Terminal gegen einen erfundenen
Proxmox-Host (Attrappen fuer pvesh, perl und rbd), pyte baut den Bildschirm
nach, heraus faellt ein SVG. Damit stimmen sie garantiert mit dem Programm
ueberein, sind reproduzierbar und enthalten keine echten Daten. Die
Werkstatt dafuer liegt unter handbuch/werkstatt/ samt LIESMICH.md.

Nebenbei: die Schlussmeldung von install.sh warb noch mit --exchange,
das mit dem eingebauten Austauschlaufwerk weggefallen ist.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-09 12:39:30 +02:00

67 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# ---------------------------------------------------------------------
# Das Handbuch bauen.
#
# Ergebnis ist reines HTML in handbuch/site/ - ohne Netzzugang benutzbar,
# mit Volltextsuche. install.sh kopiert es von dort nach
# /usr/share/doc/pvesnap/handbuch, wenn es vorliegt.
#
# Gebaut wird auf dem Arbeitsplatz, nicht auf dem Proxmox-Host: mkdocs
# gehoert nicht auf einen Hypervisor.
# ---------------------------------------------------------------------
set -euo pipefail
HIER="$(cd "$(dirname "$0")" && pwd)"
VENV="${HIER}/.venv"
rot() { printf '\033[31m%s\033[0m\n' "$*" >&2; }
info() { printf '\033[36m%s\033[0m\n' "$*"; }
BEDARF=(mkdocs mkdocs-material)
if ! command -v python3 >/dev/null 2>&1; then
rot "python3 wird gebraucht."
exit 1
fi
# Eigene Umgebung, damit nichts am System haengenbleibt.
if [ ! -x "${VENV}/bin/mkdocs" ]; then
info "Richte Bau-Umgebung in ${VENV} ein ..."
python3 -m venv "${VENV}"
"${VENV}/bin/pip" install --quiet --upgrade pip
"${VENV}/bin/pip" install --quiet "${BEDARF[@]}"
fi
case "${1:-bauen}" in
bauen)
info "Baue Handbuch ..."
"${VENV}/bin/mkdocs" build --strict --config-file "${HIER}/mkdocs.yml"
echo
info "Fertig: ${HIER}/site/index.html"
echo " Auf den Host bringen: ./install.sh (kopiert es mit)"
;;
ansehen|serve)
info "Starte Vorschau auf http://127.0.0.1:8000/ (Strg-C beendet)"
"${VENV}/bin/mkdocs" serve --config-file "${HIER}/mkdocs.yml"
;;
bilder)
# Die Bildschirmfotos neu aufnehmen - siehe werkstatt/LIESMICH.md
exec "${HIER}/werkstatt/aufnehmen.sh"
;;
sauber)
rm -rf "${HIER}/site" "${VENV}"
info "site/ und .venv/ entfernt."
;;
*)
cat <<EOF
Aufruf: $0 [befehl]
bauen HTML nach handbuch/site/ bauen (Vorgabe)
ansehen Vorschau im Browser, baut bei jeder Aenderung neu
bilder Bildschirmfotos neu aufnehmen (siehe werkstatt/LIESMICH.md)
sauber site/ und die Bau-Umgebung entfernen
EOF
exit 1
;;
esac