docs: README und Bedienungsanleitung auf den aktuellen Stand
- Kapitelbildung: Cover-Erkennung am Inhalt, Titel "Deckblatt"/"Titel" - Merge: --toc hinter dem Vorspann, unsichtbare Platzhalter für book.lua, Datumsformat im Buch-Kopf - book.lua gilt für HTML und beide PDF-Wege - Tests: test_styles.py und neue Merge-Tests beschrieben Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
86aa93c12c
commit
344e0d12b6
1 changed files with 19 additions and 5 deletions
18
README.md
18
README.md
|
|
@ -170,6 +170,10 @@ output/mein-buch/
|
|||
- ©/ISBN/„urheberrechtlich“ → „Impressum“
|
||||
- sonst die ersten acht Wörter
|
||||
- erst als letzte Notlösung der Dateiname
|
||||
|
||||
Unabhängig vom Titel gilt ein erstes Kapitel, das nur aus einem Bild besteht, als Cover (z. B.
|
||||
„[Titelinfo]“); die Titel „Deckblatt“/„Umschlag“ ergeben ein Cover, „Titel“/„Titelei“ eine Titelseite.
|
||||
Diese Typen stehen in `manifest.json` und bestimmen in der Gesamtdatei die Stelle des Inhaltsverzeichnisses.
|
||||
5. Ein HTML-Inhaltsverzeichnis wird übersprungen, wenn NAV/NCX vorhanden ist (keine doppelte Ausgabe).
|
||||
Links darauf zeigen auf `README.md`.
|
||||
6. Verzeichnisse erhalten immer eine eigene Datei, auch unterhalb von `--chapter-level`, z. B. ein
|
||||
|
|
@ -296,7 +300,7 @@ verwendet und das Verzeichnis gibt den Namen vor.
|
|||
| --- | --- |
|
||||
| `-o`, `--output DATEI.md` | anderer Zielort; Medienpfade werden relativ zum Ziel umgeschrieben |
|
||||
| `--frontmatter` / `--no-frontmatter` | ein YAML-Kopf mit Buchmetadaten (`title`, `author`, `lang`, …) für Pandoc (Standard: an) |
|
||||
| `--toc` | Inhaltsverzeichnis mit Sprunglinks auf die Kapitel einfügen |
|
||||
| `--toc` | Inhaltsverzeichnis mit Sprunglinks auf die Kapitel einfügen, hinter Cover, Titelseite und Impressum (für Pandoc-PDFs besser `pandoc/book.lua`, das Seitenzahlen und Unterabschnitte liefert) |
|
||||
| `--force` | bestehende Zieldatei überschreiben (sonst Abbruch mit Exit 1) |
|
||||
| `--version` | Programmversion |
|
||||
|
||||
|
|
@ -312,6 +316,11 @@ Beim Zusammenfügen passiert Folgendes:
|
|||
- Codeblöcke und Inline-Code werden nie verändert.
|
||||
- Kapitelüberschriften bleiben `#`, jedes Kapitel beginnt also mit einer H1. Pandoc behandelt sie als
|
||||
Kapitel.
|
||||
- Hinter dem Vorspann (Cover, Titelseite, Impressum und kurze Seiten dazwischen, bis vor den ersten Teil,
|
||||
das Vorwort oder das erste nummerierte Kapitel) steht ein unsichtbarer Platzhalter
|
||||
`<div id="epub2md-toc"></div>`; hat das Buch keine eigene Titelseite, steht hinter dem Cover zusätzlich
|
||||
`<div id="epub2md-titlepage"></div>`. `pandoc/book.lua` setzt dort Inhaltsverzeichnis und Titelkopf ein;
|
||||
GitHub, Obsidian und andere Programme zeigen die leeren `div`s nicht an.
|
||||
- Der Buch-Kopf enthält nur Felder, die im EPUB vorhanden sind (`title`, `subtitle`, `author`, `lang`,
|
||||
`publisher`, `date`, `identifier`, `rights`, `description`). Ein ISO-Zeitstempel als Datum wird gekürzt,
|
||||
damit Pandoc auf der Titelseite nicht `2025-01-13T08:00:00+00:00` druckt: bei deutschen Büchern zu
|
||||
|
|
@ -345,7 +354,7 @@ pandoc mathematikbuch.html --lua-filter $P/book.lua --lua-filter $P/callouts.lua
|
|||
|
||||
Hilfsdateien in `pandoc/`:
|
||||
|
||||
- **`book.lua`** (HTML, PDF über weasyprint; statt `--toc`): Pandocs `--toc` setzt Inhaltsverzeichnis und
|
||||
- **`book.lua`** (HTML und beide PDF-Wege; statt `--toc`): Pandocs `--toc` setzt Inhaltsverzeichnis und
|
||||
Titelkopf immer an den Anfang, vor Cover, Titelseite und Impressum. `epub2md_merge.py` markiert deshalb das
|
||||
Ende des Vorspanns (`<div id="epub2md-toc"></div>`, Kapiteltypen aus `manifest.json`) und, falls das Buch
|
||||
keine eigene Titelseite hat, die Stelle hinter dem Cover (`<div id="epub2md-titlepage"></div>`). Der
|
||||
|
|
@ -486,7 +495,10 @@ ruff check epub2md tests && mypy epub2md --ignore-missing-imports # optional,
|
|||
Die Tests erzeugen synthetische Minimal-EPUBs (EPUB 2/3, NAV/NCX, Code, Tabellen, MathML, SVG,
|
||||
Fußnoten, Glossar/Literatur/Register, unsichere ZIP-Pfade, DRM, XXE, defekte Container, Kodierung) und
|
||||
prüfen die tatsächliche CLI-Ausgabe. `tests/test_merge.py` prüft die Gesamtdatei: Reihenfolge,
|
||||
Anker-Umbenennung, Pfade, Fußnoten, unveränderter Code und Überschreibschutz. Liegen EPUBs unter `Beispiele/`, werden sie zusätzlich auf
|
||||
Anker-Umbenennung, Pfade, Fußnoten, unveränderter Code, Überschreibschutz, Datumsformat und die Stelle des
|
||||
Inhaltsverzeichnisses hinter dem Vorspann. `tests/test_styles.py` prüft die Typografie: CSS-Hervorhebungen,
|
||||
unsichtbare Zeichen, Szenenwechsel, Gedichte, Infokästen, `--styles`, `--page-markers` und die Pandoc-Befehle
|
||||
in der Buch-README. Liegen EPUBs unter `Beispiele/`, werden sie zusätzlich auf
|
||||
Struktur-Invarianten geprüft: keine kaputten Links, balancierte Code-Fences, gültiges YAML, alle Medien
|
||||
vorhanden. Dabei werden keine Buchtexte verglichen. `Beispiele/` ist per `.gitignore` vom Repository
|
||||
ausgeschlossen.
|
||||
|
|
|
|||
Loading…
Reference in a new issue