Files
docu_build/conf.py
Michael StanglandClaude Sonnet 5 982879d9f0 fix: Ueberschriften-Erkennung, Bild-Referenzierung und Symbol-Qualitaet
Behebt mehrere Extraktionsprobleme in lib/pdf_extract.py, die zu doppelter
Nummerierung, sinnentleertem Text und falsch dimensionierten Symbolen fuehrten:

- Ueberschriften nur noch bei grosser/fetter Quellschrift (>= 12.5pt oder bold)
  statt bei jeder Zeile mit Nummern-Praefix. Vorher wurden hunderte normale
  Textzeilen (Querverweise, Aufzaehlungen) faelschlich zu Ueberschriften.
- Bildunterschriften ("Abbildung N: ...") werden nie mehr als Ueberschrift
  gerendert (Caption-Erkennung vor Heading-Check, Merge-Regel verschaerft),
  sondern als kursiver Absatz bzw. figure-Caption.
- Symbole (Warn-/Gebots-/Verbotspiktogramme) werden per Piktogramm-Heuristik
  (Signalfarben + wenige Flaechenfarben) erkannt statt nur ueber Haeufigkeit -
  findet auch Symbole, die im Dokument nur 1x vorkommen (z.B. Warndreiecke).
  Auf quadratische Canvas normalisiert (normalize_symbol) und einheitlich
  klein referenziert (:height: 10mm, :align: left), damit alle Symbole
  unabhaengig vom Seitenverhaeltnis der Quelle gleich gross erscheinen.
- Junk-Erkennung erweitert: gerenderte Kapitelnummern-Bilder, Barcodes und
  Foto-Ausschnitte werden nicht mehr als Symbol/Inhaltsbild extrahiert.
- Manuelle SYMBOL_BLOCKLIST (aHash-basiert) fuer sichtgepruefte Fehlklassi-
  fikationen (Foto-/3D-/Diagramm-Fragmente), damit sie bei erneuter
  Konvertierung nicht wieder auftauchen.
- Verzeichnislisten (Lieferantendoku etc.) werden im LaTeX-Build quer
  (landscape via pdflscape) gesetzt, da die langen Quellpfade in Hochformat
  nicht passten.

assets/shared/symbols/: auf normalisierte .png umgestellt, 7 Fehlklassi-
fikationen (Fotos/3D-Renderings/Diagramme statt Piktogramme) entfernt.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 15:23:29 +02:00

109 lines
3.7 KiB
Python

"""Sphinx-Konfiguration fuer den Fortna-Dokumentations-Build (DE).
Vorlaeufige Konfiguration fuer den ersten vollstaendigen Build aus dem Base-Repo
heraus. Die spaetere Zwei-Repo-Architektur (conf_base.py + Projekt-conf.py, siehe
doc/Kernkonzepte.md) ist hier noch nicht umgesetzt.
"""
from __future__ import annotations
# -- Projekt ----------------------------------------------------------------
project = "Anlagendokumentation Fortna (500592 / KA 135776)"
author = "Schoenenberger Systeme GmbH / Mista GmbH"
copyright = "2026, Schoenenberger Systeme GmbH"
release = "0.1"
language = "de"
# -- Allgemein --------------------------------------------------------------
extensions = [
"myst_parser", # erlaubt .md gleichwertig zu .rst (Kernkonzepte.md)
]
# Master-Dokument
root_doc = "index"
source_suffix = {
".rst": "restructuredtext",
".md": "markdown",
}
# Nur die deutschsprachigen Bausteine in den Build aufnehmen; fremdsprachige
# {name}.en.rst / {name}.cz.rst (aktuell keine im Baum) werden ignoriert.
# Sphinx sammelt per Default ALLE .rst/.md unter dem Wurzelverzeichnis ein.
# Alles ausserhalb von chapters/ ausschliessen, damit nur die Doku-Bausteine
# in den Build gelangen (CLAUDE.md, README.md, doc/, Git-Worktrees etc. raus).
exclude_patterns = [
"_build",
"**/*.en.rst",
"**/*.cz.rst",
"*.md",
".claude",
".venv",
".git",
"doc",
"examples",
"results",
"data",
"lib",
"bin",
"cfg",
"log",
"tests",
"projekte",
"_ext",
"_templates",
"assets",
"modules",
"glossary",
"styles",
"scripts",
# Defekte Altbestaende aus fruehen Testlaeufen (nicht von den fortna_*-Skripten
# erzeugt): unvollstaendiger Bildbestand bzw. fehlende RST-Ueberschrift.
# TODO: mit fortna_convert_chapters.py sauber neu erzeugen, dann Exclude entfernen.
"chapters/02_sicherheit/risikobewertung/rb_fortna_h_m_500592_ev12_20260311.de.rst",
"chapters/00_inhaltsverzeichnis/contens_obsah_500592_135776_v2_1_en_cz.de.rst",
"chapters/10_anhang/01_getriebe_loadingloopantr_de.de.rst",
"chapters/10_anhang/02_motor_loadingloopantr_de.de.rst",
]
# -- HTML -------------------------------------------------------------------
html_theme = "alabaster"
# -- LaTeX / PDF ------------------------------------------------------------
# lualatex verkraftet die Unicode-Zeichen (tschechische Diakritik, ue/oe/ae,
# Sonderzeichen aus der PDF-Extraktion) deutlich besser als pdflatex.
latex_engine = "lualatex"
latex_documents = [
(root_doc,
"Fortna_Dokumentation_DE.tex",
"Anlagendokumentation Fortna\\\\500592 / KA 135776",
author,
"manual"),
]
# iconpackage=none: FontAwesome nicht laden. fontawesome7 (MiKTeX) bricht unter
# lualatex beim Font-Analyze ab (\faDice undefined). Ohne Icons werden Admonitions
# (.. note:: in den Verzeichnislisten) einfach ohne Symbol gesetzt.
latex_elements = {
"sphinxsetup": "iconpackage=none",
"papersize": "a4paper",
"pointsize": "11pt",
# babel statt polyglossia erzwingen: polyglossia 2.13 (MiKTeX 09/2026) wirft
# unter lualatex einen bidi-Initialisierungsfehler (\g__xpg_unibidi_str), der
# fuer rein deutschen Text irrelevant ist. babel vermeidet ihn.
"polyglossia": "",
"babel": r"\usepackage[ngerman]{babel}",
# Robustheit gegen ueberlange Zeilen aus der PDF-Textextraktion:
# - pdflscape: erlaubt \begin{landscape} fuer quergestellte Verzeichnistabellen
# - \UrlBreaks: lange Quellpfade in ``...`` duerfen umbrechen
"preamble": r"""
\usepackage{microtype}
\usepackage{pdflscape}
\emergencystretch=3em
\setcounter{tocdepth}{2}
\sloppy
\renewcommand{\sphinxbreaksbeforeactivelist}{\do\-\do\/\do\_\do\.}
""",
}