CommunityBildgithub.com

Text to Elegant Image

Analysiert Markdown-/Klartext-Inhalte, layoutet sie intelligent und exportiert sie als hochauflösende, elegante Langbilder oder Teilen-Poster (mit 18 integrierten visuellen Stilen).

Was ist Text to Elegant Image?

Dieses Skill wandelt Markdown oder Klartext in ein professionell formatiertes Langbild (z. B. lange Grafik, Poster, Titelbild) um, indem es HTML generiert und mit Puppeteer (Headless-Chrome) als PNG exportiert. Es bietet 18 unterschiedliche visuelle Stile – von Cyberpunk und Apple-Design bis zu Xiahongshu (kleines rotes Buch) und traditionellem Tuschemalerei-Stil – sowie zwei Layout-Modi (Langbild für lange Texte, Poster/Titelkarte für prägnante Zitate oder Titel). Das Skill erkennt automatisch Datenelemente wie KPIs, Fortschrittsbalken, Vergleiche und Zeitleisten und visualisiert sie mit einer Komponentenbibliothek. Es stellt sicher, dass vor dem Export keine Emojis vorhanden sind (da sie in Headless-Umgebungen kaputt gerendert werden), und unterstützt eine einfache Neustilierung, ohne das gesamte HTML neu schreiben zu müssen. Der Benutzer kann den Ausgabeordner konfigurieren und die Bildbreite anpassen; das Endresultat ist ein lokales PNG im angegebenen Verzeichnis.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Songhonglei/text-to-elegant-image/tree/HEAD

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Text to Elegant Image?

Wandelt Markdown oder Klartext in ein wunderschön formatiertes, hochauflösendes Langbild um. Dies geschieht durch die Generierung einer HTML-Datei und die Aufnahme eines Screenshots mit dem Headless-Browser Puppeteer.

Ressourcendateistruktur

resources/
├── styles/               # 18 Stile, eine Datei pro Stil (enthält CSS + HTML-Beispiel + Komponentenvariablen-Zuordnung + Dekoration)
│   ├── 01_cyberpunk.md … 18_vivid.md
│   └── _BASE.md          # Allgemeines HTML-Gerüst + Typografieregeln + Referenz auf Open-Source-CSS-Toolbibliotheken
└── components.css        # Allgemeine visuelle Komponentenbibliothek (KPI-Karten/Fortschrittsbalken/Vergleichsbalken/Donut/Prozess/Zeitleiste usw.)

Lese-Disziplin: Nur die benötigten Dateien lesen. Nachdem der Stil festgelegt wurde, nur die entsprechenden styles/NN_key.md- und styles/_BASE.md-Dateien lesen; keine anderen Stildateien lesen. Wenn der Inhalt Daten/Prozesse/Vergleiche enthält, zusätzlich components.css lesen.

Stilauswahl

Insgesamt 18 Stile:

#DateiStilVisuelle SchlüsselwörterAm besten geeignet für
101_cyberpunk.mdCyberpunk-Technologie-Stil (Standard)Dunkel/Neon/SVG-WabengitterKI-Analysen, Tech-Berichte, coole Poster
202_minimal.mdMinimalistisch-eleganter StilWeißer Hintergrund/Serifen/Weißraum/Rauschen-ReispapierLiterarische Essays, Tagebücher, humanistisches Wissen
303_apple.mdApple-Design-StilHellgrau/Milchglas-Karten/Bunte FensterProduktivitätstools, Retrospektiven, Methodiken
404_cowork.mdCowork-Leicht-Technik-StilApple Grauweiß/Tech-Blau/Mattglas-HeroInterne Präsentationen, KI-Tool-Einführungen, Produkthandbücher
505_newspaper.mdZeitungs-/Magazin-StilCremefarben/Bleistift-Kornmuster/Schwarzweiß-DruckHistorische Ereignisse, Zeitleisten, tiefgehende Erzählungen
606_bloomberg.mdBloomberg-Terminal-StilReinschwarz/CRT-Muster/Oranger LeuchttextDatenberichte, Kennzahlenvergleiche, Finanztechnologie
707_ink.mdTuschemalerei-Rollen-StilReispapier-Verlauf/Zinnoberrot/Pinselschwung-LinienChinesische Geschichte, Kunst & Kultur, östliche Ästhetik
808_steampunk.mdSteampunk-StilDunkelbraun/Kupferfarbene Zahnräder/Waben-Nieten/DruckmesserIndustriegeschichte, Technologiesprünge, Maschinenästhetik
909_xhs.mdXiaohongshu-StilWeißer Hintergrund/Offizielles Rot/Abgerundete KartenWissensnotizen, Lebensratgeber, nützliche Tipps
1010_morandi.mdMorandi-Edelgrau-StilWarmgrau-Beige-Hintergrund/Graugrün/Farbkartenstreifen/Zurückhaltender WeißraumMarkenmethodiken, Retrospektiven, humanistische Essays
1111_glass.mdGlasmorphismus-StilFarbverlaufshintergrund/Lichtflecken-Kugeln/MattglaskartenSaaS-Websites, Eventseiten, Funktionsvorstellungen
1212_palace.mdVerbotene-Stadt-StilDunkelbrauner Holzgrund/Zinnoberrot/Goldene Schrift/Mäander-SiegelChinesische Geschichte, Chinatown-Feste, Kultur- & Museumsausstellungen
1313_fresh.mdFrischer Naturgrün-StilHellminzgrund/Waldgrün/BlattelementeGesundheit & Umweltschutz, Lebensstil, wissenschaftliche Ratgeber
1414_earthy.mdErdiger HolzstilLeinenstruktur/Terrakotta-Orange/Handgenähte KartenkantenHandwerklicher Kaffee, Lebensästhetik, Markengeschichten
1515_dreamy.mdElegant-Lila-Träumerischer StilLavendelgrund/Lila-Verlauf/SternenstaubBeauty & Mode, Emotionen, Event-Poster
1616_macaron.mdMacaron-Pastell-StilCremiger Rosé-Grund/Punkte/Zuckerkügelchen-NummernDesserts & Babyartikel, Lebensfreude, Feiertagsgrüße
1717_carbon.mdDunkler Minimalismus-StilKohlegrauer Tiefgrund/Blau-Grün/Terminal-ZeilennummernTechnische Dokumentation, Entwicklerinhalte, Datenberichte
1818_vivid.mdVitaler Farbverlaufs-StilLila-Rosa-Orange-Verlauf/Flüssige Farbblöcke/Farbverlaufsumrandete KartenEvent-Promotion, junge Marken, Musik & Unterhaltung

Zwei Modi des Xiaohongshu-Stils (Stil 9)

Stil 9 hat zwei integrierte Untermodi, die vom Benutzer angegeben werden; Standard ist Modus A, wenn nicht angegeben:

ModusAuslöserCharakter
A — Schlicht & Formell"einfach"/"formell"/"sauber"/"wissensreich"Feine Ränder, kleine abgerundete Ecken, unterstrichene Nummern, viel Atmungsaktivität
B — Reichhaltig & Verspielt"verspielt"/"reichhaltig"/"niedlich"/"lebendig"/"lustig"Hellrosa, große abgerundete Ecken, ausgefüllte Kreisnummern, Wellenlinien, Footer mit Leittext

Nach der Generierung den Benutzer über den aktuellen Modus informieren und auf die Wechselmöglichkeit hinweisen:

"Bereits mit der schlichten Version erstellt. Wenn Sie den verspielten Stil bevorzugen, sagen Sie einfach 'Mach eine verspielte Version'."

Stilauswahl-Leitfaden

Wenn der Benutzer keinen Stil angibt, automatisch basierend auf dem Inhaltstyp empfehlen und dem Benutzer die Optionen mitteilen:

Inhalt tendiert zu → Empfohlener Stil
──────────────────────────────────────
Technologie/KI/Datenanalyse        → Cyberpunk-Technologie-Stil oder Bloomberg-Terminal-Stil
Geschichte/Zeitleiste/Erzählung    → Zeitungs-Magazin-Stil oder Tuschemalerei-Rollen-Stil (chinesische Geschichte)
Industrie/Mechanik/Technologiesprünge → Steampunk-Stil
Produktivität/Methodik/Retrospektive → Apple-Design-Stil oder Cowork-Leicht-Technik-Stil
Literatur/Tagebuch/Humanistisches  → Minimalistisch-eleganter Stil oder Tuschemalerei-Rollen-Stil
Interne Unternehmenspräsentationen → Cowork-Leicht-Technik-Stil
Wissensnotizen/Lebensratgeber/Tipps   → Xiaohongshu-Stil
Markenmethodik/Retrospektive/Hochwertigkeitsgefühl → Morandi-Edelgrau-Stil
SaaS/Produktseite/Eventseite       → Glasmorphismus-Stil oder Vitaler Farbverlaufs-Stil
Chinesische Geschichte/Chinatown-Feste/Kultur & Museen → Verbotene-Stadt-Stil oder Tuschemalerei-Rollen-Stil
Gesundheit/Umweltschutz/Lebensstil → Frischer Naturgrün-Stil
Handwerk/Kaffee/Lebensästhetik     → Erdiger Holzstil
Beauty/Mode/Gefühle/Romantik       → Elegant-Lila-Träumerischer Stil
Desserts/Babyartikel/Niedlich/Inspirierend → Macaron-Pastell-Stil
Technische Dokumentation/Entwickler/Augenfreundlich → Dunkler Minimalismus-Stil
Events/Promotion/Trends/Jung       → Vitaler Farbverlaufs-Stil

Beispiel für Empfehlungsformulierung:

"Basierend auf dem Inhalt empfehle ich den 'Xiaohongshu-Stil' (notizenartig, gut zum Teilen) oder den 'Apple-Design-Stil' (mehr Tool-Charakter). Es gibt insgesamt 18 Stile zur Auswahl, Sie können auch direkt sagen, welchen Sie möchten (z.B. 'Verbotene-Stadt-Stil', 'Morandi', 'Glasmorphismus')."

Schlüsselwort-Matching bei Stilpräferenzen des Benutzers:

  • "Technikgefühl"/"cool"/"dunkel"/"Neon" → Cyberpunk-Technologie-Stil
  • "minimalistisch"/"weiß"/"sauber"/"künstlerisch" → Minimalistisch-eleganter Stil
  • "Apple-Design"/"modern"/"produktartig" → Apple-Design-Stil
  • "Leicht-Technik"/"intern"/"blau"/"Apple-Design-blau"/"Technikblau" → Cowork-Leicht-Technik-Stil
  • "Zeitung"/"Magazin"/"historisch"/"Retro-Druck" → Zeitungs-Magazin-Stil
  • "Daten"/"Finanzen"/"Terminal"/"Bloomberg" → Bloomberg-Terminal-Stil
  • "Tuschemalerei"/"chinesisch"/"östlich"/"Rolle"/"Alt-China" → Tuschemalerei-Rollen-Stil
  • "Dampf"/"Punk"/"mechanisch"/"kupfer"/"Zahnrad"/"Retro-Industrie" → Steampunk-Stil
  • "Xiaohongshu"/"Notiz"/"Inspiration"/"Tipps"/"Teilen"/"Rot" → Xiaohongshu-Stil (Offizielles Rot #FF2442)
  • "Morandi"/"Edelgrau"/"niedrige Sättigung"/"ruhig"/"hochwertig" → Morandi-Edelgrau-Stil
  • "Glas"/"Milchglas"/"matt"/"transparent"/"durchsichtig"/"SaaS" → Glasmorphismus-Stil
  • "Verbotene Stadt"/"Palast"/"Rote Mauer"/"Goldene Schrift"/"Zinnober"/"Chinatown-Stil" → Verbotene-Stadt-Stil
  • "frisch"/"grün"/"natürlich"/"Minze"/"umweltfreundlich"/"Wald" → Frischer Naturgrün-Stil
  • "Erdtöne"/"Holz"/"Terrakotta"/"Leinen"/"handgemacht"/"warm und bodenständig" → Erdiger Holzstil
  • "lila"/"träumerisch"/"Lavendel"/"romantisch"/"elegantes Lila" → Elegant-Lila-Träumerischer Stil
  • "Macaron"/"pink"/"Pastell"/"süß"/"niedlich"/"mädchenhaft" → Macaron-Pastell-Stil
  • "dunkel"/"tief"/"schwarzer Minimalismus"/"augenfreundlich"/"Technikgefühl"/"Entwickler" → Dunkler Minimalismus-Stil
  • "Farbverlauf"/"vital"/"trendy"/"jung"/"bunt"/"Spannung" → Vitaler Farbverlaufs-Stil

Layout-Modi (Langbild / Poster)

Standardmäßig wird ein Langbild ausgegeben (560px breit, vertikale Blöcke). Wenn der Benutzer "Poster"/"Zitat-Poster"/"Titelbild"/"Cover" sagt, wird in den anderen Layout-Modus gewechselt:

LayoutAuslöserSpezifikationLayout-Schwerpunkte
Langbild (Standard)"Langbild"/"Großbild"/nicht angegebenBreite 560px, Höhe automatischTitelbereich + mehrere Inhaltsblöcke, vollständiger Inhalt
Zitat-Poster"Poster"/"Zitat"/"Teilen-Bild"Breite 600px, Höhe 800px fest (3:4)Ein zentrales Zitat vergrößert und zentriert + viel Weißraum + kleine Quellenangabe, Inhalt auf 30 Zeichen begrenzt
Titelkarte"Cover"/"Titelbild"Breite 600px, Höhe 800px fest (3:4)Großer Titel + Untertitel + 2-3 kurze Verkaufsargumente, wie ein Xiaohongshu-Titelbild

Poster/Cover-Modus: Einen der 18 Stile für Farben und Charakter wählen. .container auf width: 600px; height: 800px; display: flex; flex-direction: column; justify-content: center; setzen für feste Höhe und zentriertes Layout; beim Screenshot-Befehl muss --fixed-height 800 übergeben werden, um die Höhenanpassung zu überspringen, Breite 600 übergeben, also:

node scripts/export_image.js <html> <output.png> 600 --fixed-height 800

Im Langbild-Modus (Standard) wird --fixed-height nicht übergeben; das Skript misst automatisch die tatsächliche Höhe von .container und schneidet den überflüssigen unteren Rand ab. Rahmenabstand: Im Langbild-Modus wird standardmäßig ein einheitlicher 32px-Rahmen um die Leinwand hinzugefügt (links/rechts durch verbreiterte Leinwand + margin:auto generiert, oben/unten durch body-Padding erzwungen), alle vier Seiten gleichmäßig, kein Anliegen an den Rändern – keine manuellen Parameter nötig. Bei Bedarf kann --frame <px> für benutzerdefinierten Abstand verwendet werden (z.B. --frame 48) oder --frame 0 zum Deaktivieren des Rahmens. Festes Layout (--fixed-height) füllt die Leinwand vollständig und hat eigenen Innenabstand; es ignoriert automatisch --frame. Kartenhintergrund: Die .container der 18 Stile haben standardmäßig ein Karten-Design (Hintergrundfarbe + Strich + abgerundete Ecken/Schatten, jeder Stil mit eigenem Farbschema und Charakter, z.B. Neonrahmen bei Cyberpunk, Papierrand bei Tuschemalerei, einfarbiger Block bei Morandi). Zusammen mit dem Rahmenabstand entsteht ein "Karte schwebt auf Leinwand"-Effekt – keine manuellen Parameter nötig, standardmäßig aktiviert. Für eine flache, durchgehende Version (Inhalt direkt in den Hintergrund, ohne Kartenrand) kann --flat übergeben werden: node scripts/export_image.js <html> <output.png> 560 --flat. ⚠️ Beim Glasmorphismus-Stil (11_glass) ist der Kartenhintergrund selbst matt; --flat lässt die Kernoptik verschwinden – nicht für diesen Stil verwenden. Bei Titelbildern wird empfohlen, oben rechts/unten rechts einen sanften Lichtfleck (radial-gradient + absolute Positionierung) hinzuzufügen, um den Weißraum links auszugleichen und eine große leere Fläche auf der rechten Seite zu vermeiden.

Ausführungsablauf

Schritt 1: Inhaltsstruktur analysieren

Den Benutzerinhalt lesen und extrahieren:

  • Haupttitel, Untertitel
  • Kernzitate (vergrößert anzeigen)
  • Strukturierte Blöcke (Vergleiche, Listen, Zeitleisten usw.)

Chancen für Visualisierung erkennen (wichtig): Den Inhalt nach Schlüsselzahlen, Anteilen, Rankings, Trends, Prozessen, Vergleichen, Zeitlinien durchsuchen – diese sollten in visuelle Komponenten umgewandelt werden (KPI-Karten, Fortschrittsbalken, Vergleichsbalken, Donut, Prozessschritte, Zeitleisten – siehe Kommentare in resources/components.css), anstatt als reiner Text angeordnet zu werden. Bei 2-3 Schlüsselzahlen sollte eine KPI-Karte verwendet werden; bei Rankings/Vergleichen ein Vergleichsbalken. Text mit Bildern ist der Schlüssel zur Qualität eines Langbilds.

Schritt 2: Stilressourcen lesen und HTML generieren

  1. Nach Auswahl des Stils die Dateien resources/styles/<NN_key>.md (enthält CSS, HTML-Strukturbeispiel, Komponentenvariablen-Zuordnung, Schrifteinbindung, Akzent-Dekorationen) und resources/styles/_BASE.md (allgemeines Gerüst + Typografieregeln) lesen
  2. Wenn in Schritt 1 Visualisierungsmöglichkeiten erkannt wurden, resources/components.css lesen und die benötigten CSS-Abschnitte der Komponenten in <style> kopieren. Dabei auch den :root-Block der „Komponentenvariablen-Zuordnung“ aus der Stildatei kopieren (Komponenten nutzen die --t2e-*-Variablen für die Farben)
  3. Wenn die Stildatei einen Abschnitt „Schrifteinbindung" enthält, die Schriftart-<link> in <head> einfügen
  4. Wenn die Stildatei einen Abschnitt „Akzent-Dekoration" enthält, diese Dekorationselemente bevorzugen, um den Wiedererkennungswert zu erhöhen
  5. Den Inhalt in das Gerüst einfügen, vollständiges HTML generieren und mit dem write-Werkzeug unter /tmp/elegant_image_<timestamp>.html speichern (das Werkzeug heißt write, nicht write_to_file)

Footer-Behandlungsregeln (wichtig):

  • Der Benutzer hat keine Autoreninformationen angegeben: Im .footer-Element des HTML wird der Standardwert eingetragen: <skillName> @ <aktuelles Modell>
    • Beispiel: text-to-elegant-image @ claude-4.6-sonnet
  • Der Benutzer hat Autoreninformationen angegeben (z.B. "Autor: Max Mustermann"): Den benutzerdefinierten Text eintragen
  • Der Benutzer hat ausdrücklich keinen Footer gewünscht: Das .footer-Element wird nicht im HTML erzeugt; beim Screenshot wird --no-footer angehängt

Im Footer nicht „Generated by " oder eine andere KI-Identifikation schreiben.

Schritt 3: Abhängigkeitsprüfung und Initialisierung (vor jeder Nutzung)

Das Setup-Skript ausführen, um die Umgebung zu prüfen:

bash <Skill-Verzeichnis>/scripts/setup.sh
  • Prüft Node.js (>= v18 erforderlich), Chrome/Chromium, puppeteer-core – drei Abhängigkeiten
  • Wenn alles bereit ist, wird direkt ausgegeben: ✔ Alle Abhängigkeiten sind bereit
  • Fehlendes Node.js / Chrome: Das Skript gibt einen Fehler aus und beendet sich (exit 1), mit dem Hinweis, die fehlende Abhängigkeit zu installieren (Node.js >= v18 / Chrome oder Chromium)
  • Fehlendes puppeteer-core: Das Skript zeigt „Wird installiert…" an und führt npm install aus (der Installationsprozess ist sichtbar; es wird nur puppeteer-core als einzige Rendering-Abhängigkeit installiert)

Wenn alles bereit ist, kehrt das Skript extrem schnell zurück, ohne Leistungseinbußen; es wird empfohlen, es vor jedem Aufruf auszuführen.

Schritt 4: Emoji-Prüfung (vor dem Screenshot zwingend)

Bei der HTML-Generierung sind Emojis streng verboten – der Headless-Umgebung fehlen farbige Emoji-Schriftarten, was zu schwarzen Kästchen führt. Alternativen:

Ursprüngliche Emoji-VerwendungAlternative Schreibweise
Abschnittssymbole (Diagramm, Kristallkugel, Karte)Reiner Text-Titel, mit border-left-Farbstreifen unterscheiden
Statusmarkierungen (Haken/Kreuz/Warnung)Farbige Badges: <span class="badge-green">Vollautomatisch</span>
Dekorative SymboleLöschen oder durch Akzent-Dekorationen des Stils ersetzen (Blätter, Sterne, Siegel usw.)
Fortschritt/PfeileCSS-::before-Pseudo-Elemente oder reiner Text ->, ·

Nach der Generierung muss eine Prüfung durchgeführt werden:

python3 <Skill-Verzeichnis>/scripts/check_emoji.py <HTML-Dateipfad>

FAIL (exit 1) → Angegebene Zeilen ersetzen → Erneut ausführen, bis PASS, erst dann in den Screenshot-Schritt gehen.

Schritt 5: Screenshot-Export durchführen

node <Skill-Verzeichnis>/scripts/export_image.js \
  <Absoluter HTML-Dateipfad> \
  <Ausgabeverzeichnis>/<Dateiname>.png \
  [Breite] [--author "Autoreninformation" | --no-footer]

Ausgabeverzeichnis-Konfiguration (bitte Benutzer bei erster Nutzung führen):

Das Ausgabeverzeichnis wird nach folgender Priorität aufgelöst (hoch → niedrig):

  1. Explizit im Befehl übergebener Ausgabepfad
  2. Umgebungsvariable T2EI_OUTPUT_DIR
  3. Standardwert: ./output (Unterverzeichnis output/ im aktuellen Arbeitsverzeichnis)

💡 Erstnutzungs-Führung: Fragen Sie den Benutzer vor der ersten Generierung eines Langbildes einmal: „In welches Verzeichnis möchten Sie das Bild ausgeben?“

  • Benutzer gibt nichts an → Standard ./output verwenden
  • Benutzer gibt ein festes Verzeichnis an → Empfehlung, es in die Umgebungsvariable zu schreiben, um es dauerhaft zu speichern:
    echo 'export T2EI_OUTPUT_DIR="$HOME/my-images"' >> ~/.bashrc
    

Danach nicht mehr erneut fragen.

Footer-Parameter-Erklärung:

ParameterEffekt
Nicht übergeben (Standard)Den bereits im HTML geschriebenen Footer verwenden (siehe Schritt 2)
--author "Benutzerdefinierter Text"Footer durch angegebenen Text ersetzen
--no-footerFooter vollständig entfernen

Das Skript erkennt automatisch den Chrome/Chromium-Pfad (Linux/macOS/WSL), wartet automatisch auf das Laden der Webfonts (maximal 8s; CDN-Erreichbarkeit blockiert nicht), misst automatisch die Inhaltshöhe für präzises Zuschneiden und erstellt das Ausgabeverzeichnis, wenn es nicht existiert. Die Breite beträgt standardmäßig 600px, 2x deviceScaleFactor für hochauflösende Ausgabe.

Schritt 6: Ergebnis zurückgeben und Bild ausliefern

Nach erfolgreichem Screenshot dem Benutzer den lokalen PNG-Pfad zurückgeben:

Bild erstellt 🎉
Lokaler Pfad: <Ausgabeverzeichnis>/<Dateiname>.png

Der Benutzer kann die PNG-Datei direkt im Dateisystem/Editor ansehen oder selbst verteilen.

📌 Zur automatischen Verteilung (Platzhalter, vorerst nicht integriert) Diese Open-Source-Version ist nur für die Generierung „Text → elegantes Langbild" zuständig; sie enthält keine integrierte Fähigkeit zum automatischen Senden von Bildern über IM-Kanäle. Wenn das generierte Bild automatisch an WeChat / Telegram / Slack usw. gesendet werden soll, können Sie nach diesem Schritt selbst den Bot/API der entsprechenden Plattform anbinden (zukünftige Versionen könnten optionale Adapter bieten). Derzeit muss der Benutzer das lokale PNG manuell abholen und verteilen.

Stilwechsel (kostengünstiger Pfad)

Wenn der Benutzer zu einem bereits generierten Langbild sagt „Mach es im XX-Stil": Nicht das gesamte HTML neu schreiben. Die neue Stildatei lesen und nur den CSS-Abschnitt des Stils im <style> sowie die Komponentenvariablen-Zuordnung (--t2e-* :root-Block) ersetzen. Die Klassen-Präfixe des alten Stils im HTML (z.B. mo-*) durch die des neuen Stils (z.B. fr-*) ersetzen – die Gerüst-Komponenten der Stile sind isomorph (header/title/subtitle/section-title/card/item/num/quote/tag/divider/footer) und können eins zu eins ersetzt werden. Danach die Schritte 4-6 erneut ausführen.

Fallback-Mechanismus

Wenn der Screenshot fehlschlägt (z.B. weil kein Browser installiert ist), gibt das Skript den HTML-Dateipfad aus und leitet den Benutzer an, die Datei im Browser zu öffnen und manuell als PDF/Bild zu drucken.

Wichtige Hinweise

  • Das dritte Argument von export_image.js kann die Breite angeben (Standard 600px), 2x deviceScaleFactor für hochauflösende Ausgabe
  • Keine externen Bilder einbinden; Symbole durch reine CSS-Formen oder Inline-SVG-Data-URIs ersetzen, um Netzwerkausfälle zu vermeiden; die einzige erlaubte externe Ressource ist der Schriftart-CDN (fonts.googleapis.com, öffentlicher Dienst; mit System-Schriftarten als Fallback, nicht blockierend)
  • Ausgabepfad: <Ausgabeverzeichnis>/<Dateiname>.png (Standard-Ausgabeverzeichnis ist ./output, kann mit der Umgebungsvariable T2EI_OUTPUT_DIR konfiguriert werden, siehe Schritt 5)

Skriptübersicht

SkriptZweck
scripts/setup.shAbhängigkeitsprüfung (Node/Chrome/puppeteer-core), bei fehlendem puppeteer-core wird eine Installation angeboten und durchgeführt (Ausgabe sichtbar)
scripts/check_emoji.pyEmoji-Prüfung vor dem Screenshot; bei FAIL werden Zeichen und Zeilennummern ausgegeben
scripts/export_image.jsPuppeteer-Screenshot-Export: Schriftarten-Warten + präzises Höhen-Zuschneiden + vier seitige Rahmenabstände + Kartenhintergrund-Schalter (--flat) + Footer-Einfügung/Entfernung

Verwandte Skills