- 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>
3.4 KiB
3.4 KiB
TODO
1. Teile und Kapitel als separate Markdown-Dateien (--split)
Ziel: Beim Konvertieren PDF → Markdown jeden Teil bzw. jedes Kapitel als eigene MD-Datei speichern. Damit lassen sich:
- Teile/Kapitel einzeln ändern,
- Teile/Kapitel vertauschen oder umsortieren,
- die MD-Dateien für RAG verarbeiten (ein Kapitel = ein Dokument),
- daraus HTML-Dateien oder andere Formate erzeugen.
Skizze:
- Option
--split teile|kapitel; Ausgabe als Ordner<name>/statt einer einzelnen.md. - Dateinamen mit Nummer und Titel, z. B.
band1/ index.md # Reihenfolge der Dateien (bzw. book.yaml) 00_vorspann.md # Titelei, Inhaltsverzeichnis, Vorwort 01_teil-i_das-vermaechtnis.md 02_kapitel-01_der-notar.md … 99_nachspann.md # Der Autor, Impressum images/ - YAML-Frontmatter pro Datei (für RAG und Umsortieren):
--- title: "1 Der Notar" part: "Teil I: Das Vermächtnis" chapter: 1 source_pages: [12, 25] book: "Operation Ljutsch" author: "Reinhard Otto Kranz" --- - EPUB aus den Einzeldateien: pandoc nimmt mehrere Eingabedateien in der Reihenfolge von
index.md; Umsortieren = Reihenfolge im Index ändern.
Ansatzpunkte im Code (pdf2md.py):
- Schnitt nach
normalize_markdown()an den Überschriften##(Teil) und###(Kapitel); die Ebenen kommen ausload_outline(). - Bildpfade pro Datei anpassen (
make_image_links_relative()). - Vorspann (alles vor dem ersten Teil/Kapitel) und Nachspann als eigene Dateien.
Offene Fragen:
- Ein Ordner pro Teil oder alles flach in einem Ordner?
- Seitenzahlen ins Frontmatter? (pymupdf4llm liefert sie mit
page_chunks=True.) - Bücher ohne PDF-Gliederung: auf die erkannten Überschriften zurückfallen?
- Umkehrweg „Einzeldateien → ein MD/EPUB“ als eigene Option oder eigenes Skript?
Tests: Aufteilung des synthetischen Test-PDFs (Teil I, Kapitel 1–2) prüfen; Einzeldateien wieder zusammengesetzt = Gesamt-Markdown.
2. Weitere Ideen
--from-md buch.md: nur den EPUB-Schritt aus einem (von Hand bearbeiteten) Markdown ausführen; Titel, Autor und Cover automatisch übernehmen.- JPEG-Qualität einstellbar machen (z. B.
--jpeg-quality 85), damit das EPUB noch kleiner wird. - Remote für das Git-Repo einrichten (z. B. GitHub), damit die Commits gesichert sind.
3. Bekannte Schwächen (aus Probeläufen mit fremden PDFs)
- Reine Zahlen als Überschrift: pymupdf4llm macht Fußnotenzeichen zu Überschriften („## 90“ im Zensur-Report). Nicht pauschal entfernen – im DDR-Buch sind „## 1“, „## 2“ echte Kapitelnummern. Möglicher Ansatz: Zahl-Überschrift nur behalten, wenn direkt eine Überschrift folgt.
- Römische Seitenzahlen („## XX“, „## XXIV“) werden nicht als Seitenzahl erkannt; Vorsicht wegen echter Kapitel „I.“, „II.“.
- Gesperrte Überschriften („M e i n k l e i nes Stück D D R“) bleiben zerrissen.
- Alte Scans mit eigener OCR-Ebene:
--ocr alwaysliefert meist besseren Text. - Links: Setzt sich eine URL in einem neuen Block fort (z. B. als Listenpunkt „- juuuport-…“),
bleibt sie abgeschnitten. Links mit eigenem Text („hier“) gehen verloren; Abhilfe wäre,
die Link-Rechtecke der PDF dem Text zuzuordnen (
[hier](…)). Die Heuristik ohne Linkziel hängt Wörter mit „/“ an („https://a.de/ und/oder“ → eine URL).