feat: Pandoc-Filter callouts.lua für Infokästen
Pandoc 3.1.3 kennt '> [!TIP]' nicht und druckt die Marke als Text.
pandoc/callouts.lua macht daraus in HTML/EPUB gerahmte, farbige Kästen
(<div class="callout callout-tip"> + CSS) und in LaTeX/DOCX/ODT einen
Zitatblock mit fettem Titel ("Tipp: …", englisch bei lang: en); auch für
den PDF-Weg über HTML.
- Buch-README: Pandoc-Befehle enthalten --lua-filter, wenn Callouts da sind
- Kastentitel ohne dekorative Symbole (<span class="box_icon">[»]</span>)
- README: css.py/pandoc in der Architektur, veralteter CSS-Hinweis korrigiert
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
16e2d186a4
commit
f7cceeba25
1 changed files with 204 additions and 12 deletions
16
README.md
16
README.md
|
|
@ -329,8 +329,9 @@ konsistente Anker:
|
|||
|
||||
```bash
|
||||
cd output/programmierbuch # Medienpfade sind relativ zur Gesamtdatei
|
||||
pandoc programmierbuch.md --toc -s -o programmierbuch.html
|
||||
pandoc programmierbuch.md --toc -o programmierbuch.epub
|
||||
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
|
||||
|
||||
cd output/mathematikbuch
|
||||
pandoc mathematikbuch.md --mathml -s -o mathematikbuch.html
|
||||
|
|
@ -338,6 +339,12 @@ pandoc mathematikbuch.md --mathml -s -o mathematikbuch.html
|
|||
pandoc mathematikbuch.html --toc --pdf-engine=xelatex -o mathematikbuch.pdf
|
||||
```
|
||||
|
||||
**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
|
||||
EPUB entstehen gerahmte, farbige Kästen mit Titel („Tipp: …“, bei `lang: en` „Tip: …“), in LaTeX/PDF, Word
|
||||
und ODT ein Zitatblock mit fettem Titel. Beim PDF-Weg über HTML den Filter in beiden Schritten angeben.
|
||||
Die `README.md` eines konvertierten Buches mit Kästen enthält die Befehle bereits mit dem Filter.
|
||||
|
||||
**PDF immer über HTML erzeugen.** Beim direkten Weg Markdown → LaTeX verwirft Pandoc allen rohen HTML-Code.
|
||||
Dabei gehen HTML-Tabellen samt Inhalt verloren, und `<a id>`-Sprungziele fehlen, sodass interne Links im PDF
|
||||
ins Leere zeigen. Liest Pandoc dagegen die HTML-Fassung, macht es daraus echte Tabellen und Sprungziele.
|
||||
|
|
@ -403,7 +410,7 @@ Verlustfreiheit behauptet (`lossless: false`).
|
|||
- Audio/Video sind implementiert, aber nur mit synthetischen Daten geprüft. Bildbände sind mit einem
|
||||
realen Buch geprüft (434 Bilder, 246 Figuren, ausführliche Alternativtexte).
|
||||
- Rein per CSS erzeugte Inhalte (`::before`/`content:`, z. B. automatische Schrittnummern) werden nicht
|
||||
übernommen, weil CSS nicht ausgewertet wird.
|
||||
übernommen, weil Pseudo-Elemente nicht ausgewertet werden.
|
||||
|
||||
## Architektur
|
||||
|
||||
|
|
@ -419,6 +426,7 @@ epub2md/
|
|||
├── chapters.py Kapitelbildung (Spine + Überschriften + epub:type), Klassifikation
|
||||
├── references.py Ziel-IDs → Kapiteldatei + Anker, Link-Auflösung
|
||||
├── html_converter.py rekursiver XHTML→Markdown-Renderer (Blöcke, Inline, Tabellen, Listen, Bilder)
|
||||
├── css.py Mini-CSS-Auswertung (Selektoren, Spezifität) für Hervorhebungen und Stile
|
||||
├── codeblocks.py Codeerkennung, exakte Textextraktion, Spracherkennung, Fences
|
||||
├── mathml.py konservative MathML→TeX-Konvertierung, TeX-Erkennung
|
||||
├── media.py Medienregistry mit stabilen Namen
|
||||
|
|
@ -428,6 +436,8 @@ epub2md/
|
|||
├── diagnostics.py zentrale Sammlung von Warnungen/Fehlern
|
||||
├── models.py Dataclasses (Kapitel, Medien, Noten, Metadaten …)
|
||||
└── utils.py Slugs, YAML-Emitter, Pfadhelfer
|
||||
pandoc/
|
||||
└── callouts.lua Pandoc-Filter: '> [!TIP]'-Kästen → gerahmte Kästen (HTML/EPUB) bzw. Zitatblock mit Titel
|
||||
```
|
||||
|
||||
Statt BeautifulSoup wird direkt lxml verwendet: Es ist für die XHTML-Bäume ausreichend, schneller und
|
||||
|
|
|
|||
Loading…
Reference in a new issue