extract_ids.py impl. Bauen der json Files so dass die Bezeichnungen immer mit dabei stehen ausser in den Blättern.
This commit is contained in:
+12
-5
@@ -272,7 +272,12 @@ def extract_text_to_rst(pdf_path: Path, rst_path: Path) -> int:
|
||||
# --- Phase 3: Ueberschriften erkennen und RST generieren ---
|
||||
# Heading: Nummerierung wie "1 Text", "2.3 Text", "2.3.1.4 Text"
|
||||
# Text muss mit einem Buchstaben beginnen (verhindert "610 014 001" etc.)
|
||||
RE_HEADING = re.compile(r"^(\d+(?:\.\d+)*)\s+([A-Za-zÄÖÜäöüß].+)$")
|
||||
# Jeder Nummerierungsteil max 3 Stellen (verhindert Datumsangaben wie "10.12.2020")
|
||||
# Titeltext muss mit einem Wort von mind. 3 Buchstaben beginnen
|
||||
# (verhindert "2 B. def.", "19.8 mm (LW13)")
|
||||
RE_HEADING = re.compile(
|
||||
r"^(\d{1,3}(?:\.\d{1,3})*)\s+([A-Za-zÄÖÜäöüß]{3,}.*)$"
|
||||
)
|
||||
rst_lines: list[str] = []
|
||||
title = pdf_path.stem
|
||||
rst_lines.append(RST_HEADING_CHARS[1] * len(title))
|
||||
@@ -310,10 +315,12 @@ def extract_text_to_rst(pdf_path: Path, rst_path: Path) -> int:
|
||||
toc_num = toc_numbers.get(text)
|
||||
if toc_num:
|
||||
# Nummer aus TOC voranstellen
|
||||
text = f"{toc_num} {text}"
|
||||
hm = RE_HEADING.match(text)
|
||||
is_heading = True
|
||||
log.debug(" TOC-Nummer ergaenzt: %s", text)
|
||||
candidate = f"{toc_num} {text}"
|
||||
hm = RE_HEADING.match(candidate)
|
||||
if hm:
|
||||
text = candidate
|
||||
is_heading = True
|
||||
log.debug(" TOC-Nummer ergaenzt: %s", text)
|
||||
|
||||
if is_heading:
|
||||
num = hm.group(1)
|
||||
|
||||
Reference in New Issue
Block a user