Ein Zeilenumbruch gilt als weich (vom Satzprogramm), wenn das erste Wort
der nächsten Zeile nicht mehr gepasst hätte (Toleranz 5 % der Spalte);
sonst als hart, und die Zeile bleibt samt Einrückung erhalten.
- lines_to_md (Patch von text_to_md): harte/weiche Umbrüche aus der
Geometrie; Blöcke mit überwiegend harten Umbrüchen zeilengetreu als
Codeblock (auch Proportionalschrift, Einrückung rekonstruiert) oder als
Zeilen mit "\" und geschützten Leerzeichen
- Blockgrenzen: freie Zeichen der letzten Zeile werden mitgegeben,
normalize_markdown prüft damit das erste Wort des nächsten Blocks
- normalize_markdown: harte Umbrüche, Absatzenden ohne Satzzeichen,
Codeblöcke über Seitengrenzen zusammenführen, wörtliches ``` maskieren
- EPUB-CSS: lange Codezeilen umbrechen (white-space: pre-wrap)
- Tests (tests/test_verbatim.py), README, Bedienungsanleitung, CLAUDE.md,
TODO.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- --lang ohne Angabe aus der ersten OCR-Sprache ableiten (eng -> en)
- Fehlen Titel/Autor in den PDF-Metadaten: aus dem Dateinamen nach dem
Muster "Autor_-_Titel" übernehmen, sonst Dateiname mit Leerzeichen
- --jobs: halbe Kernzahl, höchstens 8 (bisher 4)
- Tests (tests/test_defaults.py), README und Bedienungsanleitung
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- load_link_uris: Linkziele aus den Link-Annotationen der PDF lesen
- link_urls: URLs als Autolink <https://…> schreiben; beim Zeilenumbruch
zerbrochene URLs mit den Linkzielen abgleichen (tolerant gegenüber
Bindestrichen, Leerraum, "/" am Ende, Abfrageteil, .html) und
utm-Parameter entfernen; ohne Linkziel aus dem gedruckten Text
zusammensetzen
- Bindestrich am Zeilenende innerhalb einer URL bleibt erhalten
- pandoc liest mit +autolink_bare_uris
- Tests, README, Bedienungsanleitung und TODO ergänzt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- normalize_markdown: Tabellenzeilen im Inhaltsverzeichnis unverändert
übernehmen; der Verzeichnis-Modus endet mit der Tabelle (sonst zerfiel
die Tabelle und die folgende Überschrift "Vorwort" ging verloren)
- Test für Verzeichnis als Tabelle
- README/Bedienungsanleitung: weiche Trennstriche, Courier-OCR-Ebenen,
englische Bücher, --ocr always für alte Scans, Grenzen aus den
Probeläufen mit fremden PDFs
- TODO.md: bekannte Schwächen (Zahlen als Überschrift, römische
Seitenzahlen, gesperrte Überschriften)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- pdf2md_v5.py → pdf2md.py; Verweise in Doku und Tests angepasst
- pdf2md_v1.py … pdf2md_v4.py nach History/ verschoben
- ljutsch_meta.xml entfernt (nicht mehr verwendet)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- BEDIENUNGSANLEITUNG.md: Installation, Weg A (PDF -> EPUB), Weg B (Markdown
bearbeiten, dann pandoc), Scans, Optionen, Prüfen, häufige Probleme;
Verweis in README.md
- Fix: pymupdf4llm schreibt Bildpfade relativ zum Arbeitsverzeichnis
("Output/x_images/…"), wenn der Bilderordner darunter liegt. Die Links
zeigen jetzt immer relativ zur Markdown-Datei; Regressionstests ergänzt.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>