- EPUB mit Formeln: --mathml (Tabelle der Pandoc-Befehle, Beispiel Mathebuch) - Formel-TeX aus Alternativtexten wird für Pandoc angepasst - print.css: keine Seitenzahl auf dem Cover - Bekannte Einschränkungen: CSS je Buch statt je Dokument, nicht umsetzbare Handkonstruktionen in TeX - CHANGELOG: tools/qa unter „Unveröffentlicht“ - überlange Zeilen neu umbrochen Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
7.1 KiB
7.1 KiB
Änderungsprotokoll
Alle nennenswerten Änderungen an epub2md. Format nach Keep a Changelog, Versionsnummern nach Semantic Versioning.
Unveröffentlicht
Neu
tools/qa/: QA-Skripte versioniert (CLI-Matrix mit 89 Fällen, Generator für Test-EPUBs, unabhängiger Markdown-Validator, Wortvergleich gegen Datenverlust, Prüfung des Pandoc-Wegs für HTML, EPUB und PDF). Beschreibung intools/qa/README.md; erzeugte Daten landen in.qa/.
0.3.0 – 2026-10-06
Neu
pandoc/book.lua: Inhaltsverzeichnis wie im gedruckten Buch nach Cover, Titelseite und Impressum statt davor (Pandocs--tocsetzt es immer an den Anfang).epub2md_merge.pymarkiert dafür das Ende des Vorspanns; ohne eigene Titelseite kommt Pandocs Titelkopf hinter das Cover. Jedes Kapitel, auch Cover, Titelseite und Impressum, beginnt mitprint.cssauf einer neuen Seite; das Inhaltsverzeichnis hat Seitenzahlen. Mitepub2md_merge.py --tocsteht dessen Verzeichnis an derselben Stelle. Gilt auch für den PDF-Weg über LaTeX (\tableofcontentshinter dem Vorspann); bei Büchern mit Formeln empfiehlt die Buch-README diesen Weg. Dort setzt der Filter außerdem A4, ein seitengroßes Cover und DejaVu-Schriften, sodass keine Zeichen mehr fehlen (Mathebuch: vorher über 10.000 fehlende Glyphen wie ∈, λ, ≠).- Kapitelerkennung: Ein erstes Kapitel nur aus einem Bild ist das Cover (auch „[Titelinfo]“, „Deckblatt“), ein Kapitel „Titel“ die Titelseite. Der Vorspann darf kurze Zwischenseiten enthalten.
pandoc/print.css: Druck-Layout für PDFs mit weasyprint (A4, Seitenzahlen, Kapitel auf neuer Seite, Silbentrennung außer in Code, umbrechende Codezeilen). Die Buch-README enthält den passenden Befehl.
Geändert
--chapter-level autoist der neue Standard: Ebene 1 wie bisher, aber Kapitel mit über 30 000 Wörtern und mindestens zwei Unterkapiteln (Teile eines Romans) werden an ihren Unterkapiteln geteilt; alle anderen Kapitel bleiben ganz (Infochapter-split). Der Roman im Test ergibt 78 statt 9 Dateien, die übrigen Beispielbücher bleiben unverändert. Eine feste Zahl verhält sich wie bisher (R2).epub2md_merge.pykürzt ISO-Zeitstempel im Buch-Kopf (2025-01-13T08:00:00+00:00→13.01.2025, bei nicht-deutschen Büchern2025-01-13), damit die Pandoc-Titelseite ein lesbares Datum zeigt.- Seitenmarken (
--page-markers) aus einem Kastentitel stehen jetzt vor dem Kasten statt im fetten Titel, wie bei Überschriften.
Behoben
epub2md_merge.py: Kapitel-Startanker heißen jetztkap-003-namestatt003-name. Pandocs EPUB-Ausgabe löste Links auf IDs mit führender Ziffer nicht auf (C-Buch 32, Mathebuch 20 tote Links im EPUB).pandoc/book.luaerkennt beide Formen (QA3-05).- Buch-README: Der EPUB-Befehl enthält bei Büchern mit Formeln
--mathml. Ohne blieben im Mathebuch 1072 Formeln als TeX-Text stehen (QA3-04). - TeX aus
alt-Texten wird für Pandoc portabel gemacht (\"u→ü,\O→\emptyset,@{…}und\arraycolsepinarray, leeres\displaystylevor Zellenende). Im Mathebuch kann Pandoc damit 4985 statt 4977 Formeln setzen; vorher blieben 9 als TeX-Text stehen (QA3-06). pandoc/print.cssundpandoc/book.lua: keine Seitenzahl auf dem Cover.- CSS-Auswertung: Es zählen nur noch Stylesheets, die ein Dokument per
<link>(oder@import) einbindet. Bisher wirkten alle CSS-Dateien des Manifests, auch mitgelieferte Layouts anderer Buchreihen. Im C-Buch machte das aus fetten Buchstaben Inline-Code (`st`an`d`ard) und setzte falsche<mark>; eine fremdedisplay:none-Regel hätte Text gelöscht (QA3-01, Regressionstests intests/test_styles.py). pandoc/callouts.lua: Die Kästen blieben ohne Rahmen, wenn man Pandoc zusätzlich-H/--include-in-headerübergab, und im EPUB hatten nur die Titelseite, nicht die Kapitel, das Kasten-CSS. Das CSS steht jetzt inpandoc/callouts.css; der Filter setzt es bei HTML an den Anfang des Dokuments und fügt es bei EPUB den Stylesheets hinzu (zusammen mit Pandocs Standard-CSS bzw. zu eigenencss:-Angaben).
Dokumentation
--no-css-emphasislässt<mark>-Markierungen bestehen; diese steuert--styles.
0.2.0 – 2026-10-06
Schwerpunkt: Typografie und Gestaltung des Buches im Markdown abbilden.
Neu
- Hervorhebungen aus dem CSS des Buches (
epub2md/css.py): fett, kursiv, unterstrichen, durchgestrichen, hoch-/tiefgestellt und Festbreitenschrift werden auch übernommen, wenn der Verlag sie nur per Stylesheet setzt. Per CSS ausgeblendete Elemente (display:none) entfallen. Abschaltbar mit--no-css-emphasis. - Infokästen (Tipp, Hinweis, Warnung, Exkurs …) als GitHub-/Obsidian-Callouts
> [!TIP], wahlweise als Zitatblock, HTML-divoder normaler Text:--boxes {callout,quote,html,plain}. - Pandoc-Filter
pandoc/callouts.lua: zeichnet die Kästen in HTML/EPUB als gerahmte Kästen, in LaTeX/PDF, Word und ODT als Zitatblock mit Titel. Die Buch-README nennt ihn in den Pandoc-Befehlen. - Farben, Schriftarten, Schriftgrößen, Kapitälchen, Ausrichtung und Fremdsprache als HTML-Stil:
--styles html. Standardsemanticübernimmt nur Hintergrundmarkierungen (<mark>). - Szenenwechsel (Leerabsätze, Ornamente) als
* * *, Gedichte als Zitatblock mit Zeilenumbrüchen. - Seitenzahlen der Druckausgabe als
[S. 123]oder<!-- S. 123 -->:--page-markers {none,visible,comment}. - Unsichtbare Zeichen (Nullbreiten-Leerzeichen, weiche Trennstriche) werden im Fließtext entfernt, im
Code nicht. Abschaltbar mit
--keep-invisible-chars. - Verzeichnisse (Quellen, Literatur, Register, Glossar) unterhalb von
--chapter-levelwerden eigene Dateien. - Bericht: neue Abschnitte
text_cleanup,cssundlayout.
Geändert
- Kastentitel ohne dekorative Symbole wie
[»]. Der Kastentyp aus der Verlagsklasse hat Vorrang vor einem Typwort im Titel. - Zwischen Feld-Spans wird kein Leerzeichen mehr eingefügt, wenn einer davon per CSS ausgeblendet ist.
Dokumentation
- Bedienungsanleitung: Umwandlung in andere Formate (HTML, PDF, EPUB, Word, Kindle), Infokästen, Farben/Schriften, Seitenzahlen.
0.1.0 – 2026-10-06
Erste Fassung.
epub2md.py: DRM-freie EPUB 2/3 → kapitelweises Markdown mit Medien,metadata.yaml,manifest.json,conversion-report.jsonund Diagnose-Dateien; Code zeichengetreu, MathML → TeX, Fußnoten-Modi, sichere ZIP-/XML-Verarbeitung.epub2md_merge.py: Gesamtdatei<Original>.mdaus einem Ausgabeordner.- Optionen
--code-language,--keep-wrap-markers; Warnungchapter-large; Titel überschriftsloser Seiten aus dem Inhalt. - Alle Befunde der QA-Prüfungen (R1–R7, QA2-01 bis QA2-19) behoben oder abgemildert.
- README und Bedienungsanleitung.