No description
- HTML 74.8%
- Python 21.3%
- CSS 3%
- Shell 0.9%
Beim Einsatz auf einem zweiten Buch (Thriller) sind vier Maengel aufgefallen, alle im Browser nachgemessen, nicht aus dem Quelltext abgeleitet: 1. Die Ausgabe war ein HTML-Fragment: kein DOCTYPE, kein <html>, kein <head>. Damit fehlte **<meta name="viewport">** -- auf dem Telefon rendert die Seite dann in ~980 px Desktopbreite und muss aufgezogen werden. Ebenfalls kein **<meta charset>**: Chrome faellt auf windows-1252 zurueck und zerlegt alle Umlaute. Beides betrifft die veroeffentlichte Lesefassung des Akku-Buchs genauso -- dort bitte gegenpruefen, ob der Webserver den Zeichensatz bisher mitgeliefert hat. 2. Titel und Sprache waren fest auf "Lithium-Akkus reparieren" verdrahtet, an zwei Stellen. Sie kommen jetzt aus <title> und <html lang> der Quelldatei, damit dasselbe Werkzeug jedes Buch bauen kann. 3. Kein Positionsspeicher. Neu: Die Leseposition wird in localStorage gehalten -- nicht als Scrollhoehe, sondern als letzte Ueberschrift oberhalb des Viewports plus Abstand. Das ueberlebt geaenderte Schriftgroesse, Geraetewechsel und Textaenderungen am Manuskript. Gespeichert wird gedrosselt beim Scrollen sowie auf pagehide und visibilitychange (unload feuert auf iOS oft nicht). Beim Oeffnen wird still wiederaufgesetzt, dazu sechs Sekunden lang eine Pille "Weitergelesen bei ..." mit "Von vorn". Ein Anker in der URL hat Vorrang vor der Erinnerung. 4. history.scrollRestoration steht jetzt auf "manual", sonst arbeitet die browsereigene Wiederherstellung gegen die eigene. Nachgemessen an Vollbrand: Wiederaufsetzen mit Abweichung 0 Pixel, charset UTF-8, Umlaute korrekt, Titel "Vollbrand - Lesefassung". |
||
|---|---|---|
| buch-01-akku-reparatur | ||
| gemeinsam | ||
| rechtliches | ||
| .gitignore | ||
| AGENTS.md | ||
| README.md | ||
ebooks
Manuskripte und Produktions-Toolchain fuer die KDP-Veroeffentlichungen.
Aufbau
gemeinsam/css/druck.css Satzspiegel fuer KDP-Taschenbuch 6" x 9"
gemeinsam/css/epub.css Reflowable-Stil fuer das eBook
gemeinsam/werkzeuge/ Assembler und Pruefwerkzeuge
buch-01-akku-reparatur/ Buch 1 (in Arbeit)
Aus einer Markdown-Quelle entstehen beide Ausgabeformate: Markdown → pandoc → EPUB, und Markdown → HTML+CSS → WeasyPrint → Druck-PDF.
Bauen
./buch-01-akku-reparatur/bauen.sh
Das Skript erzeugt PDF und EPUB und prueft beide anschliessend:
das PDF wird nachgemessen (Stege, Trimmgroesse, Seitenzahl gegen die
KDP-Tabelle), das EPUB laeuft durch epubcheck. Exit-Code 1 bei Befunden.
Umgebungsabhaengigkeiten
| Punkt | Warum |
|---|---|
DYLD_FALLBACK_LIBRARY_PATH=/opt/homebrew/lib |
conda-Python findet die Homebrew-Libs fuer WeasyPrint sonst nicht. Setzt bauen.sh selbst. |
hyphenate-character: "\002D" in druck.css |
Charter enthaelt kein U+2010 HYPHEN. Ohne die Zeile holt WeasyPrint jeden Trennstrich aus einer Fallback-Schrift (gemessen: Hiragino Mincho). |
Kolumnentitel via string(kapitel, first-except) |
@page name:first greift in WeasyPrint nur auf der ersten Dokumentseite, nicht je Kapitel. Gemessen, nicht vermutet. |
KDP-Vorgaben (Stand 2026-08, nachgeschlagen)
- Trimm 6" x 9", Innensteg bei 151-300 Seiten mindestens 12,7 mm
- Aussen/oben/unten mindestens 6,35 mm ohne Anschnitt
- Anschnitt, falls genutzt: 3,2 mm allseitig
- Seitenzahl 24 bis 828
- 10 neue Titel pro Buchformat und Woche
Vor der Veroeffentlichung
- Impressum: Name und ladungsfaehige Anschrift (Verlegerpflicht in DE)
- Haftungsausschluss
- KI-Deklaration bei KDP setzen: Text und Bilder (generiertes Cover)
- Buch werbefrei halten (KDP-Vertrag Ziffer 5.1.2)
- Buchpreisbindung: gleicher Preis bei allen Anbietern
- Probeexemplar drucken lassen und pruefen