feat: Inhaltsverzeichnis nach Cover, Titelseite und Impressum (pandoc/book.lua)
Pandocs --toc setzt Inhaltsverzeichnis und Titelkopf immer vor den Buchtext, also vor Cover, Titelseite und Impressum. - epub2md_merge.py: Kapiteltypen aus manifest.json; Platzhalter <div id="epub2md-toc"> hinter dem Vorspann und, ohne eigene Titelseite, <div id="epub2md-titlepage"> hinter dem Cover; --toc-Liste an derselben Stelle - pandoc/book.lua (HTML/weasyprint, statt --toc): baut dort das Inhaltsverzeichnis, lässt Pandocs Titelkopf bei eigener Titelseite weg, Cover ohne Bildunterschrift, Kapitelanker → div.chapter-start; andere Formate: nur Platzhalter entfernen - print.css: jedes Kapitel (auch Cover/Titelseite/Impressum) und das Verzeichnis auf neuer Seite, Verzeichnis mit Punktlinie und Seitenzahl - Buch-README, Bedienungsanleitung, README: Befehle mit book.lua Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
65c90c67ca
commit
99c3c609ca
1 changed files with 299 additions and 65 deletions
32
README.md
32
README.md
|
|
@ -331,9 +331,11 @@ konsistente Anker:
|
|||
|
||||
```bash
|
||||
cd output/programmierbuch # Medienpfade sind relativ zur Gesamtdatei
|
||||
F=~/Python_Programs/epub2md/pandoc/callouts.lua # Pfad zum epub2md-Ordner anpassen
|
||||
pandoc programmierbuch.md --toc -s --lua-filter $F -o programmierbuch.html
|
||||
pandoc programmierbuch.md --toc --lua-filter $F -o programmierbuch.epub
|
||||
P=~/Python_Programs/epub2md/pandoc # Pfad zum epub2md-Ordner anpassen
|
||||
pandoc programmierbuch.md -s --lua-filter $P/book.lua --lua-filter $P/callouts.lua \
|
||||
--css $P/print.css --pdf-engine=weasyprint -o programmierbuch.pdf # PDF (empfohlen)
|
||||
pandoc programmierbuch.md -s --lua-filter $P/book.lua --lua-filter $P/callouts.lua -o programmierbuch.html
|
||||
pandoc programmierbuch.md --toc --lua-filter $P/callouts.lua -o programmierbuch.epub
|
||||
|
||||
cd output/mathematikbuch
|
||||
pandoc mathematikbuch.md --mathml -s -o mathematikbuch.html
|
||||
|
|
@ -341,16 +343,21 @@ pandoc mathematikbuch.md --mathml -s -o mathematikbuch.html
|
|||
pandoc mathematikbuch.html --toc --pdf-engine=xelatex -o mathematikbuch.pdf
|
||||
```
|
||||
|
||||
**PDF mit weasyprint** (ohne LaTeX; Farben, Kästen und `--styles html` bleiben erhalten):
|
||||
Hilfsdateien in `pandoc/`:
|
||||
|
||||
```bash
|
||||
pandoc buch.md -s --toc --lua-filter $F --css ~/Python_Programs/epub2md/pandoc/print.css \
|
||||
--pdf-engine=weasyprint -o buch.pdf
|
||||
```
|
||||
|
||||
`pandoc/print.css` liefert das Buchlayout: A4, Seitenzahlen, Kapitel auf neuer Seite, Silbentrennung (nicht in
|
||||
Code) und umbrechende Codezeilen. Mit `--css` lässt Pandoc sein eigenes Stylesheet weg, deshalb bringt
|
||||
`print.css` auch Grundschrift, Zeilenabstand und Titelkopf mit. Getestet mit dem Python-Buch (342 Seiten).
|
||||
- **`book.lua`** (HTML, PDF über weasyprint; 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
|
||||
Filter baut dort das Inhaltsverzeichnis (`--toc-depth` gilt), lässt Pandocs Titelkopf bei vorhandener
|
||||
Titelseite weg, zeigt das Cover ohne Bildunterschrift und macht aus den Kapitelankern
|
||||
`div.chapter-start` für Seitenumbrüche. Bei anderen Formaten entfernt er nur die Platzhalter. Wer selbst
|
||||
`--toc` angibt, bekommt Pandocs Verzeichnis wie gewohnt.
|
||||
- **`print.css`** (weasyprint): A4, Seitenzahlen, jedes Kapitel (auch Cover, Titelseite, Impressum) und das
|
||||
Inhaltsverzeichnis auf neuer Seite, Inhaltsverzeichnis mit Punktlinie und Seitenzahl, Silbentrennung
|
||||
(nicht in Code), umbrechende Codezeilen. Mit `--css` lässt Pandoc sein eigenes Stylesheet weg, deshalb
|
||||
bringt `print.css` auch Grundschrift, Zeilenabstand und Titelkopf mit. Getestet mit dem Python-Buch
|
||||
(362 Seiten).
|
||||
|
||||
**Infokästen:** Pandoc kennt die Schreibweise `> [!TIP]` erst ab neueren Versionen (Erweiterung `alerts`);
|
||||
3.1.3 (Ubuntu 24.04) zeigt „[!TIP]“ als Text. Der Filter `pandoc/callouts.lua` behebt das: In HTML und
|
||||
|
|
@ -450,6 +457,7 @@ epub2md/
|
|||
├── models.py Dataclasses (Kapitel, Medien, Noten, Metadaten …)
|
||||
└── utils.py Slugs, YAML-Emitter, Pfadhelfer
|
||||
pandoc/
|
||||
├── book.lua Pandoc-Filter: Inhaltsverzeichnis nach Cover/Titelseite/Impressum, Kapitel-Seitenumbrüche
|
||||
├── callouts.lua Pandoc-Filter: '> [!TIP]'-Kästen → gerahmte Kästen (HTML/EPUB) bzw. Zitatblock mit Titel
|
||||
├── callouts.css Gestaltung der Kästen (vom Filter eingebunden; muss neben callouts.lua liegen)
|
||||
└── print.css Druck-Layout für PDFs mit weasyprint (A4, Seitenzahlen, Kapitel auf neuer Seite, Codeumbruch)
|
||||
|
|
|
|||
Loading…
Reference in a new issue