--split, --from-md, --jpeg-quality, YAML-Kopf, --title/--author
- --split teile|kapitel: Einzeldateien in einem Ordner mit index.md (Reihenfolge) und images/; Titelei und Inhaltsverzeichnis als Vorspann; YAML-Kopf je Datei (title, part, chapter, order, book, author) - --from-md DATEI|ORDNER: EPUB aus bearbeitetem Markdown bzw. Split-Ordner, Angaben aus dem YAML-Kopf; ersetzt den pandoc-Befehl aus Weg B - Markdown beginnt mit YAML-Kopf (title, author, lang, cover); Cover wird mit --images immer abgelegt - --jpeg-quality (Standard 85 statt fest 95): EPUB Band 1 3 MB statt 5 MB - --title/--author überschreiben PDF-Metadaten - Tests (tests/test_split.py), README, Bedienungsanleitung (Weg C), CLAUDE.md, TODO.md Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
f0e0562451
commit
d52ac597fc
1 changed files with 527 additions and 103 deletions
66
TODO.md
66
TODO.md
|
|
@ -1,68 +1,14 @@
|
|||
# TODO
|
||||
|
||||
## 1. Teile und Kapitel als separate Markdown-Dateien (`--split`)
|
||||
## 1. Ideen
|
||||
|
||||
**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):
|
||||
```yaml
|
||||
---
|
||||
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 aus `load_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.
|
||||
- `--split`: Seitenzahlen der PDF ins Frontmatter (`source_pages`); pymupdf4llm liefert sie
|
||||
mit `page_chunks=True`, müsste aber durch die ganze Nachbearbeitung getragen werden.
|
||||
- `--split`: Bücher ohne erkennbare Gliederung werden nicht geteilt (nur `00_vorspann.md`);
|
||||
denkbar wäre ein Schnitt nach Seitenzahl oder Länge.
|
||||
- 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)
|
||||
## 2. 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“
|
||||
|
|
|
|||
Loading…
Reference in a new issue