feat: Fortna-Extraktion nach chapters/ + Sphinx-PDF-Build
Skripte zum Befuellen der Kapitelstruktur aus dem Fortna-Rohmaterial und Aufbau eines vollstaendigen Sphinx/LaTeX-Builds (nur Code/Config/Doku, generierte RST/Bilder/PDFs und Rohmaterial via .gitignore ausgeschlossen). - lib/fortna_inventory.py: Rohmaterial scannen, Sprache+Zielkapitel+Aktion zuordnen, results/fortna_inventory.json schreiben - lib/fortna_convert_chapters.py: 5 Hauptanleitungen volltextig (Text+Bilder) konvertieren, Verzeichnislisten (index.de.rst) fuer uebrige Kapitel - lib/fortna_init_project.py: projekte/fortna/ (anlage.json, overrides, images) - lib/build_index.py: index.rst mit toctrees aus chapters/**/*.de.rst generieren - lib/extract_products.py: Symbolfont-Zeichen (PUA) auf Unicode mappen (clean_pua) - conf.py: Sphinx-Build (lualatex, babel statt polyglossia, iconpackage=none) - bin/: .bat/.sh-Wrapper fuer alle Skripte + build_pdf - doc/: Konzept-Plan (plan_fortna_extraktion.md) und lib-Skript-Uebersicht - requirements.txt: Sphinx + myst-parser ergaenzt Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
eb9237217e
commit
e7aa3b4e4b
@@ -0,0 +1,38 @@
|
||||
@echo off
|
||||
REM ================================================================
|
||||
REM Vollstaendiger PDF-Build der Fortna-Dokumentation (DE)
|
||||
REM
|
||||
REM Ablauf:
|
||||
REM 1. index.rst aus vorhandenen chapters/**/*.de.rst generieren
|
||||
REM 2. sphinx-build -b latex -> _build/latex/*.tex
|
||||
REM 3. lualatex (via latexmk) -> _build/latex/Fortna_Dokumentation_DE.pdf
|
||||
REM
|
||||
REM Voraussetzung: chapters/ ist befuellt (fortna_convert_chapters.bat --apply)
|
||||
REM ================================================================
|
||||
|
||||
call "%~dp0setenv.bat"
|
||||
|
||||
if not exist "%PROJECT%\.venv" (
|
||||
echo FEHLER: .venv nicht gefunden. Bitte zuerst install_py.bat ausfuehren.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
call "%PROJECT%\.venv\Scripts\activate.bat"
|
||||
|
||||
echo.
|
||||
echo [1/3] index.rst generieren ...
|
||||
python "%PV_LIB%\build_index.py"
|
||||
|
||||
echo.
|
||||
echo [2/3] LaTeX-Quellen erzeugen (sphinx-build -b latex) ...
|
||||
python -m sphinx -b latex "%PROJECT%" "%PROJECT%\_build\latex"
|
||||
|
||||
echo.
|
||||
echo [3/3] PDF erzeugen (lualatex) ...
|
||||
pushd "%PROJECT%\_build\latex"
|
||||
latexmk -lualatex -interaction=nonstopmode Fortna_Dokumentation_DE.tex
|
||||
popd
|
||||
|
||||
echo.
|
||||
echo Fertig. PDF: %PROJECT%\_build\latex\Fortna_Dokumentation_DE.pdf
|
||||
deactivate
|
||||
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env bash
|
||||
# ================================================================
|
||||
# Vollstaendiger PDF-Build der Fortna-Dokumentation (DE)
|
||||
# 1. index.rst generieren
|
||||
# 2. sphinx-build -b latex
|
||||
# 3. lualatex (via latexmk)
|
||||
# Voraussetzung: chapters/ ist befuellt (fortna_convert_chapters.sh --apply)
|
||||
# ================================================================
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/setenv.sh"
|
||||
|
||||
if [ ! -d "$PROJECT/.venv" ]; then
|
||||
echo "FEHLER: .venv nicht gefunden. Bitte zuerst install_py.sh ausfuehren."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$PROJECT/.venv/bin/activate" 2>/dev/null || source "$PROJECT/.venv/Scripts/activate"
|
||||
|
||||
echo ""
|
||||
echo "[1/3] index.rst generieren ..."
|
||||
python "$PV_LIB/build_index.py"
|
||||
|
||||
echo ""
|
||||
echo "[2/3] LaTeX-Quellen erzeugen (sphinx-build -b latex) ..."
|
||||
python -m sphinx -b latex "$PROJECT" "$PROJECT/_build/latex"
|
||||
|
||||
echo ""
|
||||
echo "[3/3] PDF erzeugen (lualatex) ..."
|
||||
( cd "$PROJECT/_build/latex" && latexmk -lualatex -interaction=nonstopmode Fortna_Dokumentation_DE.tex )
|
||||
|
||||
echo ""
|
||||
echo "Fertig. PDF: $PROJECT/_build/latex/Fortna_Dokumentation_DE.pdf"
|
||||
deactivate
|
||||
@@ -0,0 +1,26 @@
|
||||
@echo off
|
||||
REM ================================================================
|
||||
REM Sivas-IDs aus JSON-Baeumen extrahieren
|
||||
REM
|
||||
REM Liest JSON-Dateien aus results/ und extrahiert 9-stellige
|
||||
REM Sivas-Nummern eine Ebene ueber den Blaettern.
|
||||
REM
|
||||
REM Verwendung:
|
||||
REM extractids.bat --filename KA135776
|
||||
REM extractids.bat --filename KA135776 --tab soll
|
||||
REM extractids.bat --all
|
||||
REM ================================================================
|
||||
|
||||
call "%~dp0setenv.bat"
|
||||
|
||||
REM Pruefe ob venv existiert
|
||||
if not exist "%PROJECT%\.venv" (
|
||||
echo FEHLER: .venv nicht gefunden. Bitte zuerst install_py.bat ausfuehren.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
call "%PROJECT%\.venv\Scripts\activate.bat"
|
||||
|
||||
python "%PV_LIB%\extract_ids.py" %*
|
||||
|
||||
deactivate
|
||||
@@ -0,0 +1,22 @@
|
||||
@echo off
|
||||
REM ================================================================
|
||||
REM chapters/ aus dem Fortna-Inventar befuellen
|
||||
REM (5 Hauptanleitungen Volltext + Verzeichnislisten)
|
||||
REM
|
||||
REM Verwendung:
|
||||
REM fortna_convert_chapters.bat (Dry-Run)
|
||||
REM fortna_convert_chapters.bat --apply
|
||||
REM ================================================================
|
||||
|
||||
call "%~dp0setenv.bat"
|
||||
|
||||
if not exist "%PROJECT%\.venv" (
|
||||
echo FEHLER: .venv nicht gefunden. Bitte zuerst install_py.bat ausfuehren.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if "%PV_FORTNA_SOURCE%"=="" set "PV_FORTNA_SOURCE=C:\10-Develop\projekte\Fortna"
|
||||
|
||||
call "%PROJECT%\.venv\Scripts\activate.bat"
|
||||
python "%PV_LIB%\fortna_convert_chapters.py" %*
|
||||
deactivate
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
# ================================================================
|
||||
# chapters/ aus dem Fortna-Inventar befuellen
|
||||
# (5 Hauptanleitungen Volltext + Verzeichnislisten)
|
||||
# Verwendung:
|
||||
# bash bin/fortna_convert_chapters.sh (Dry-Run)
|
||||
# bash bin/fortna_convert_chapters.sh --apply
|
||||
# ================================================================
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/setenv.sh"
|
||||
|
||||
if [ ! -d "$PROJECT/.venv" ]; then
|
||||
echo "FEHLER: .venv nicht gefunden. Bitte zuerst install_py.sh ausfuehren."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export PV_FORTNA_SOURCE="${PV_FORTNA_SOURCE:-C:/10-Develop/projekte/Fortna}"
|
||||
|
||||
source "$PROJECT/.venv/bin/activate" 2>/dev/null || source "$PROJECT/.venv/Scripts/activate"
|
||||
python "$PV_LIB/fortna_convert_chapters.py" "$@"
|
||||
deactivate
|
||||
@@ -0,0 +1,19 @@
|
||||
@echo off
|
||||
REM ================================================================
|
||||
REM Projektspezifischen Ordner projekte/fortna/ anlegen
|
||||
REM
|
||||
REM Verwendung:
|
||||
REM fortna_init_project.bat
|
||||
REM fortna_init_project.bat --force
|
||||
REM ================================================================
|
||||
|
||||
call "%~dp0setenv.bat"
|
||||
|
||||
if not exist "%PROJECT%\.venv" (
|
||||
echo FEHLER: .venv nicht gefunden. Bitte zuerst install_py.bat ausfuehren.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
call "%PROJECT%\.venv\Scripts\activate.bat"
|
||||
python "%PV_LIB%\fortna_init_project.py" %*
|
||||
deactivate
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
# ================================================================
|
||||
# Projektspezifischen Ordner projekte/fortna/ anlegen
|
||||
# Verwendung:
|
||||
# bash bin/fortna_init_project.sh
|
||||
# bash bin/fortna_init_project.sh --force
|
||||
# ================================================================
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/setenv.sh"
|
||||
|
||||
if [ ! -d "$PROJECT/.venv" ]; then
|
||||
echo "FEHLER: .venv nicht gefunden. Bitte zuerst install_py.sh ausfuehren."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$PROJECT/.venv/bin/activate" 2>/dev/null || source "$PROJECT/.venv/Scripts/activate"
|
||||
python "$PV_LIB/fortna_init_project.py" "$@"
|
||||
deactivate
|
||||
@@ -0,0 +1,21 @@
|
||||
@echo off
|
||||
REM ================================================================
|
||||
REM Fortna-Rohmaterial inventarisieren + Kapitel-Mapping pruefen
|
||||
REM
|
||||
REM Verwendung:
|
||||
REM fortna_inventory.bat
|
||||
REM fortna_inventory.bat --lang de
|
||||
REM ================================================================
|
||||
|
||||
call "%~dp0setenv.bat"
|
||||
|
||||
if not exist "%PROJECT%\.venv" (
|
||||
echo FEHLER: .venv nicht gefunden. Bitte zuerst install_py.bat ausfuehren.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
if "%PV_FORTNA_SOURCE%"=="" set "PV_FORTNA_SOURCE=C:\10-Develop\projekte\Fortna"
|
||||
|
||||
call "%PROJECT%\.venv\Scripts\activate.bat"
|
||||
python "%PV_LIB%\fortna_inventory.py" %*
|
||||
deactivate
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
# ================================================================
|
||||
# Fortna-Rohmaterial inventarisieren + Kapitel-Mapping pruefen
|
||||
# Verwendung: bash bin/fortna_inventory.sh [--lang de]
|
||||
# ================================================================
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/setenv.sh"
|
||||
|
||||
if [ ! -d "$PROJECT/.venv" ]; then
|
||||
echo "FEHLER: .venv nicht gefunden. Bitte zuerst install_py.sh ausfuehren."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export PV_FORTNA_SOURCE="${PV_FORTNA_SOURCE:-C:/10-Develop/projekte/Fortna}"
|
||||
|
||||
source "$PROJECT/.venv/bin/activate" 2>/dev/null || source "$PROJECT/.venv/Scripts/activate"
|
||||
python "$PV_LIB/fortna_inventory.py" "$@"
|
||||
deactivate
|
||||
@@ -0,0 +1,20 @@
|
||||
@echo off
|
||||
REM ================================================================
|
||||
REM DOCU_BUILD - Projektdaten aus Excel-Stuecklisten extrahieren
|
||||
REM ================================================================
|
||||
|
||||
call "%~dp0setenv.bat"
|
||||
|
||||
if not exist "%PROJECT%\.venv" (
|
||||
echo FEHLER: Virtual environment nicht gefunden.
|
||||
echo Bitte zuerst bin\install_py.bat ausfuehren.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
call "%PROJECT%\.venv\Scripts\activate.bat"
|
||||
|
||||
echo.
|
||||
echo Extrahiere Projektdaten aus Excel-Stuecklisten ...
|
||||
echo.
|
||||
|
||||
python "%PV_LIB%\project_from_xlsx.py" %*
|
||||
Reference in New Issue
Block a user