Skill zur Formatierung von WeChat Official Account Artikeln
Konvertiert einen Markdown-Artikel in HTML, das direkt in den WeChat Official Account Editor kopiert und eingefügt werden kann, ohne dass dabei Formatierungen verloren gehen.
Das Kernvermögen liegt in der Theme-Komponentenbibliothek unter references/ (ein Theme pro Satz: Designvariablen + vollständiges HTML jeder Komponente + Vorlagenskelett + Mapping-Regeln) sowie einer universellen Zusatzbibliothek (Codeblöcke / Bilder·GIFs / kleine Etiketten-Überschriften, von allen Themes gemeinsam genutzt). Die Themenliste wird ausschließlich in references/theme-index.md geführt. Diese SKILL.md beschreibt nur den Prozess und die Entscheidungen, der eigentliche HTML-Code wird ausschließlich aus der Komponentenbibliothek bezogen, nicht aus dem Gedächtnis handgeschrieben.
Arbeitsablauf
0. Eingabe und Formatvereinheitlichung
Der Benutzer kann Folgendes liefern: Markdown-Text oder .md-Pfad (direkt zu Schritt 1), .docx, .pdf, .txt/unmarkierter Klartext, Rich-Text einer Webseite. Nicht-Markdown-Eingaben müssen zuerst references/format-normalize.md lesen und gemäß dessen Regeln in einen Markdown-Entwurf konvertieren und die Struktur bestätigen (docx mit scripts/extract_docx.py, PDF mittles Read seitenweise lesen + entrauschen, Klartext per heuristischer Strukturerkennung auf Basis von Überschriften). Wenn nichts geliefert wird, den Benutzer danach fragen.
Wenn der Benutzer sagt 'Direkt formatieren / Automatisch formatieren / Ein Klick / Keine Fragen', gehe in den Vollautomatik-Modus: Überspringe die Strukturbestätigung und die Theme-Auswahl, ermittle die Struktur automatisch, wähle ein Theme basierend auf dem Thema selbstständig, formatiere und validiere, und liefere das Ergebnis zusammen mit einer Entscheidungsbegründung aus (Kapitelstruktur, eigener Titel, Begründung der Theme-Wahl).
1. Theme-Auswahl (automatischer Empfehlungsmechanismus)
Lese references/theme-index.md (die einzige Quelle für Themeninformationen). Empfehle aktiv das am besten passende Theme basierend auf dem Thema des Artikels und lasse den Benutzer dann in einem Schritt bestätigen – empfehlen, aber nicht eigenmächtig festlegen:
- Benutzer hat im Request bereits ein Theme angegeben → Direkt verwenden, nicht nachfragen.
- Thema hat eine klare Übereinstimmung → Einmalige Nachfrage zur Bestätigung: 'Empfehle XX (Grund), bestätigen oder ein anderes wählen?' Optionen: Empfehlung + 1~2 Alternativen + 'Alle anzeigen'. Thema→Theme-Zuordnung gemäß der Spalte 'Anwendungsszenarien' in theme-index:
- Tutorials / Bewertungen / Checklisten / Tool-Übersichten / Wissenssammlungen / Methodik-Aufschlüsselungen (hohe Informationsdichte) → MoYu Green
- Tiefgehende Analysen / Standpunkte / kraftvolle Themen → Rot-Weiß-Schema
- Design / Technologiekritiken / professionelle Standpunkte / High-End-Marken → Graphit-Minimalistisch
- Zen / Minimalistisches Leben / tiefgründige Essays → Weißraum-Zenstil
- Tool-Vergleiche / kreative Bewertungen (visuelle Metapher eines Belegs) → MoYu Belegstil
- Interne Notizen / tiefgehende Bewertungen / Fallstudien-Rückblicke → Olive Notizen
- Keine offensichtliche Tendenz → Standardmäßig wird die erste Zeile von theme-index (MoYu Green) als empfohlenes Element an erster Stelle gesetzt. Verwende AskUserQuestion, um den Benutzer zwischen mehreren Optionen wählen zu lassen (bei mehr als 4 Themes zuerst nach Stimmungsgruppen fragen, dann nach dem Theme in der Gruppe).
- Vollautomatik-Modus (Benutzer sagt explizit 'Direkt formatieren / Ein Klick / Keine Fragen') → Nicht fragen, automatisch das am besten zum Thema passende Theme oder das Standard-Theme (erste Zeile) auswählen, bei der Auslieferung die Wahl begründen.
- Benutzer ist mit keinem der bestehenden Themes zufrieden / möchte einen neuen Stil → Gehe zur 'Benutzerdefiniertes Theme erstellen'-Prozedur (siehe nächster Abschnitt), erstelle und registriere, dann kehre zu diesem Schritt zurück.
- theme-index ist leer → Formatiere nicht, informiere den Benutzer, dass zuerst ein Theme-Stil hinzugefügt werden muss (kann über 'Benutzerdefiniertes Theme erstellen' erfolgen).
Sobald der Benutzer ein Theme festgelegt hat, wird erst mit der Komponentenzuordnung innerhalb dieses Themes fortgefahren (Schritte 3 und 4: Artikeltyp bestimmen → laut der Rezeptur des Themes die Komponentenkombination auswählen).
2. Komponentenbibliothek lesen (zwei Teile)
(1) Lese gemäß der Spalte 'Komponentenbibliotheksdatei' des Themes in theme-index die themenspezifische Komponentenbibliothek references/theme-{Kennung}.md (enthält themenspezifische Komponenten wie Einleitungskarte, Kapitelüberschriften, Textmarkierungen, Signatur usw.).
(2) Lese gleichzeitig die universelle Zusatzbibliothek references/common-components.md – Codeblöcke, Bilder/GIFs und kleine Etiketten-Überschriften werden von allen Themes gemeinsam genutzt, mit der aktuellen Hauptfarbe des Themes eingefärbt.
Die anschließende Generierung basiert ausschließlich auf diesen beiden Komponentenbibliotheken. HTML wird aus ihnen bezogen, nicht handgeschrieben.
3. Markdown-Struktur parsen
| Element | Erkennungsregel |
|---|---|
| Artikelüberschrift | # Überschrift oder frontmatter title |
| Einleitungszitat | Äußerster > Zitat-Block am Anfang des Artikels |
| Kapitelüberschrift | ## Überschrift |
| Unterkapitel | ### Überschrift |
| Fett / Highlight / Unterstrichen | **Text** / ==Text== / <u>Text</u> oder ++Text++ |
| Zitatabsätze | > Text nicht am Anfang |
| Bilder / GIFs | ,  (GIF wie Bilder behandeln) |
| Code / Befehle / Prompts | ``` Codeblock ```, Inline `code` |
| Trennlinien / Listen | ---, *** / - Punkt oder 1. Punkt |
| Tabellen | Markdown-Tabelle (oft aus docx-Konvertierung) → Vorrangig Tabellen-/Karten-Komponente aus der Themenbibliothek verwenden (Mapping-Regeln der Themenbibliothek haben Vorrang) |
Nach dem Parsen der Struktur den Artikeltyp bestimmen (dominanten Typ nehmen, Mischformen möglich): Tutorial/Anleitung, Übersicht/Tool-Liste, Standpunkt/Tiefenanalyse, Interview/Personenportrait, Daten-Rückblick/Bericht, Leben/Gefühls-Essay, Fallbeispiel-Praxis. Bestimmungskriterien: Viele Schritte und Befehle → Tutorial; Viele parallele Punkte → Übersicht; Viele Zitate und Erzählungen über Personen → Interview; Viele Zahlen und Vergleiche → Daten; Viele Argumentationen/Deduktionen → Standpunkt.
4. Komponentenkombination nach Rezeptur auswählen → HTML zusammenbauen
Zuerst die Tabelle 'Artikeltyp → Komponentenkombinationsrezept' der ausgewählten Themenbibliothek prüfen, um die Kernkomponentenkombination und die dekorativen Komponenten basierend auf dem Artikeltyp zu bestimmen – nicht die Komponentenbibliothek durchgehen und zufällig Komponenten pro Abschnitt auswählen; die Rezeptur gewährleistet einen konsistenten Formatierungsstil für gleichartige Artikel. Elemente außerhalb der Rezeptur werden dann gemäß der Mapping-Regeltabelle der Themenbibliothek ergänzt.
Dann nach dem Schema 'Vollständige Artikelvorlage' der Themenbibliothek zusammenbauen, jedes Markdown-Element durch die entsprechende Komponente ersetzen:
- Die Reihenfolge des Schemas richtet sich nach der Themenbibliothek, verschiedene Themen können unterschiedliche Schemata haben; nicht das Schema eines anderen Themas verwenden.
- Inline-Markierungen semantisch in der ausgewählten Komponentenbibliothek suchen (Komponentennummern sind über Bibliotheken hinweg nicht einheitlich, immer nach Semantik suchen, nicht nach fester Nummer):
**Fett**→ Fett in Hauptfarbe;==Hervorhebung==→ Hervorhebung mit heller Hintergrundfarbe;<u>Text</u>oder++Text++→ Unterstrichen;~~Text~~→ Textmarker (helle Hintergrundfarbe);>Zitat→ Hervorgehobener Zitatblock. - Komponenten aus der universellen Zusatzbibliothek:
``` Codeblock ``` ` → 1a dunkel / 1b heller Codeblock, Inlinecode`` → 1c;→ 2a Bild (Beschreibungskomponente nur hinzufügen, wenn eine Beschreibung vorhanden ist),.gif→ 2b GIF; Hervorzuhebende Zwischenüberschriften/Betonungen → 3a Linke-Leiste-Zwischenüberschrift oder 3b Pillen-Etikett, Schlüsselsatz → 3d, Hinweis-Randnotiz → 3e. Priorität: Zuerst die Mapping-Regeltabelle der Themenbibliothek prüfen – wenn das Theme eine semantisch äquivalente Komponente hat (z. B. eigene Schlüsselsatz-/Hinweis-Blöcke), die Version aus der Themenbibliothek verwenden, um den Stil konsistent zu halten; wenn die Themenbibliothek keine entsprechende Komponente hat, dann die universelle Bibliothek 3x verwenden und nach deren Farbersetzungsregeln in die Themenfarbe ändern. - Ein Artikel verwendet nur die eine ausgewählte Theme-Komponentensammlung, nicht themenübergreifend mischen.
- Für Betonungen und Zwischenüberschriften 'Kleine Etiketten/Linke Leiste' verwenden, keine gestrichelten Rahmen: Verwende für die Hervorhebung einer Zwischenüberschrift oder eines Inhaltsbereichs die Linke-Leiste-Zwischenüberschrift (3a), das Pillen-Etikett (3b) oder den Linke-Leiste-Schlüsselsatz-/Hinweis-Block (3d/3e); keinen gestrichelten Rahmen (
dashedborder) um eine Überschrift setzen, das ist klobig und lenkt ab.
5. Validierung der Konformität (obligatorisch)
Nachdem das erzeugte HTML in die Zieldatei geschrieben wurde, muss das Validierungsskript ausgeführt werden, und die Fehleranzahl muss auf Null sein, damit der Vorgang als abgeschlossen gilt:
# Aufruf mit dem absoluten Pfad des Skills, in dem sich das Skript befindet; der HTML-Parameter ist ebenfalls dessen tatsächlicher Pfad (die Verzeichnisse sind in der Regel unterschiedlich)
<SKILL_ROOT>/scripts/validate_gzh_html.py <Pfad zur generierten .html-Datei>
Es überprüft deterministisch verbotene Elemente der Plattform und die <span leaf>-Umbüllung. Bei einem ERROR zu Schritt 4 zurückgehen und korrigieren; Halbbreite Satzzeichen-WARNUNGEN müssen ebenfalls auf 0 repariert werden, bevor das Ergebnis ausgeliefert wird (dies ist der häufigste Nacharbeitspunkt in der Praxis).
Verlaufshintergrund-WARNUNGEN müssen einzeln behandelt werden: Text-Highlighting, Zitat-/Daten-/CTA-Kartenhintergrund standardmäßig auf eine einfarbige Themeneigenfarbe oder rgba-Farbe ändern; wenn der Benutzer explizit die Beibehaltung wünscht, bei der Auslieferung darauf hinweisen, dass dies möglicherweise den darkmode-no-gradient-Popup auslöst. Auch rein dekorative Verläufe werden angemerkt. Wenn sie beibehalten werden, ebenfalls auf das Risiko hinweisen.
6. Ausgabe
Ausgabeformat: Reines <section>…</section>-Inhaltsfragment, beginnend mit dem globalen Container, kein <!DOCTYPE>/<html>/<head>/<body> einpacken – der WeChat-Editor akzeptiert nur Inhaltsfragmente; extrahierte Dokumentenhüllen werden verworfen oder stören das Einfügen.
-
Saubere Textdatei: HTML wird im aktuellen Arbeitsverzeichnis gespeichert, Dateiname
{Originalname}_formatiert_{Theme-Chinesisch}({Englische Kennung}).html(Englische Kennung = Dateiname der Komponentenbibliothek aus theme-index ohnetheme--Präfix und.md-Suffix). Diese wird für die Validierung und als Fallback für manuelles Einfügen verwendet. -
Vorschauseite mit 'Kopieren'-Button (ermöglicht dem Benutzer das Einfügen mit einem Klick, ohne manuelle Auswahl):
<SKILL_ROOT>/scripts/wrap_preview.py <Obige saubere text.html>Erzeugt
{...}_preview.html– im Browser geöffnet, hat es oben rechts einen Button 'In WeChat kopieren'. Ein Klick kopiert den gerenderten Rich-Text in die Zwischenablage (äquivalent zu Strg+A/Strg+C). Dann im WeChat-Editor Strg/⌘+V einfügen. Der Button und das Skript befinden sich nur in der Vorschauhülle, nicht innerhalb des zu kopierenden<section>-Bereichs, sodass der nach WeChat eingefügte Inhalt weiterhin sauberer, konformer Text ist. -
Dem Benutzer mitteilen:
{...}_preview.htmlöffnen → oben rechts auf 'Kopieren' klicken → in den WeChat-Editor einfügen; und den Pfad zur sauberen Textdatei als Fallback angeben. Die Schlussfolgerung des Validierungsskripts anhängen (bestanden / verbleibende Warnungen).
Intelligente Verarbeitung während der Generierung (Diese sind die besonderen Merkmale dieses Skills und müssen durchgeführt werden)
- Automatische Kapitelnummerierung: Zuteilung von
01/02/03…in der Reihenfolge des Auftretens von##; wenn das letzte Kapitel ein Abschluss-/Zusammenfassungstyp ist, die von der Themenbibliothek angegebene Variante für die Schlussnummerierung verwenden (z. B.∞). Wenn die Themenbibliothek keine spezifiziert, die numerische Nummerierung beibehalten. - Englische Etiketten: Generierung eines englischen Etiketts basierend auf der chinesischen Kapitelüberschrift (Beispiel: TEST für 实测, TUTORIAL für 教程, SUMMARY für 总结, THOUGHTS für 思考…). Verwenden, wenn die Themenbibliothek einen entsprechenden Platz hat.
- Unterstreichung von Schlüsselwörtern im Text (Kernmerkmal): Für jeden Textabsatz aktiv die 1–3 wichtigsten Phrasen identifizieren und mit dem unterstrichenen CSS des Themes (siehe theme-index) markieren. Priorisiere die Markierung von Kernaussagen, Schlussfolgerungen, wichtigen Daten und Eigennamen; Phrasen 4–15 Zeichen lang; wenn ein Absatz keine Kernpunkte hat, muss nicht markiert werden. Selbst wenn der Originaltext überhaupt keine Fettschrift verwendet, muss aktiv die Unterstreichung hinzugefügt werden – sie ist die am häufigsten vorkommende grundlegende Markierung.
- Hervorhebung von Schlüsselwörtern im Einleitungszitat: Kernwörter in einem einleitenden Schlüsselsatz identifizieren und mit einer Hervorhebungskomponente markieren.
- Inhaltsverzeichnis-Extraktion: Die ersten 3 aus allen
##-Überschriften extrahieren, um als Leitfaden/Inhaltsverzeichnispunkte zu dienen (wenn die Themenbibliothek eine Komponente für das Inhaltsverzeichnis hat). - Autorenvermerk in der Einleitungskarte: Abhängig vom Autor oder Thema des Artikels – wenn der Artikel einen Autorennamen hat, schreibe '—— Autorenname'; wenn kein klarer Autor vorhanden ist, eine kurze, themenbezogene Fußnote verwenden oder ganz weglassen. Nicht fest 'Jia Mu' schreiben (der Signaturbereich am Ende verwendet ebenfalls den Platzhalter
{{Autorenname}}, siehe Punkt 7). - Autorensignatur am Ende (vom Autor selbst auszufüllen, nur eine Stelle am Ende): Standardmäßig keinen Namen fest eintragen, einen Platzhalter verwenden, den der Benutzer durch seinen eigenen ersetzen soll.
- Erster Satz (Autorenvorstellung):
Ich bin {{Autorenname}}, {{Ein-Satz-Intro, z.B.: teilt gerne KI-Beobachtungen und -Wissen}}– wenn der Benutzer im Request einen Namen oder eine Intro angegeben hat, direkt einfügen; wenn nicht, die Platzhalter{{Autorenname}}/{{Intro}}beibehalten und bei der Auslieferung den Benutzer auffordern, diese durch seine eigenen zu ersetzen. - Zweiter Satz (Interaktionsaufforderung, generell, kann so belassen werden):
Wenn dir dieser Artikel gefallen hat, freuen wir uns über deinen **Daumen hoch, „In den Nachrichten lesen“ und Teilen** – bis zum nächsten Mal - Wenn der Originaltext am Ende bereits einen Autorensignatur-Abschnitt hat (z. B. 'Ich bin XXX…') → den Abschnitt aus dem Originaltext übernehmen, nicht durch einen Platzhalter ersetzen.
- Erster Satz (Autorenvorstellung):
- Listenkonvertierung: Gemäß den Mapping-Regeln der Themenbibliothek behandeln; wenn keine spezifische Listenkomponente vorhanden ist, in eingerückte Textabsätze umwandeln.
- Chinesische Vollbreiten-Satzzeichen: Satzzeichen im Textkörper immer in voller Breite (,。!?:;„“''()—— …), niemals halbe Breite
, . ! ? :und englische gerade Anführungszeichen" 'verwenden. Beim Generieren des HTML direkt die geschwungenen Anführungszeichen „“'' schreiben, nicht zuerst gerade Anführungszeichen und diese dann später ersetzen – gerade Anführungszeichen im Originaltext werden während der Umschreibung vor Ort konvertiert. Ausnahmen: In Codeblöcken, Inline-Code, englischen Eigennamen/URLs/Codebezeichnern behalten die Zeichen ihre originale Form bei.
Visuelle Hierarchie (3-stufig fortschreitend, für alle Themes universell)
| Ebene | Zweck | Häufigkeit | Mittel |
|---|---|---|---|
| Ankerebene | Stärkste Anker: Produktname/Schritte/CTA/Kernzitat | ≤ 5 im gesamten Artikel | Fett in Hauptfarbe, tiefgrundiger weißer Text Zitat |
| Markierungsebene | Textkörper-Keywords, 1–3 pro Absatz | Hochfrequent | Unterstrichene Markierung |
| Containerebene | Zitatblöcke, Konzeptetiketten, Satzbetonung | Nach Bedarf | Helle Hintergrund-Zitate, Textmarker, Badge |
Plattform-Rothine (Kern, vollständige Prüfung durch Validierungsskript)
- Verboten:
<style>/<script>/<div>,class/id-Attribute,position:fixed/absolute/sticky,float,@media/@keyframes,display:grid, CSS-Variablen, externe Schriftarten/CSS. - Pflicht: Alle Stile direkt als
style-Attribute; alle Textknoten müssen mit<span leaf="">Text</span>umschlossen werden (sonst gehen Stile beim Einfügen verloren). - Erlaubt:
display:flex(begrenzt),border-radius,box-shadow,<section>/<p>/<span>/<strong>/<img>/<h3>. - Kompatibilität mit Farbverlaufshintergründen: Farbverläufe können gerendert werden, können aber den
darkmode-no-gradient-Inhaltsstruktur-Check des WeChat-Kontos auslösen; Text- und Kartenhintergrund standardmäßig mit einfarbigen Farben, keine zusätzlichen Verläufe hinzufügen. Bei alten Komponenten/benutzerdefinierten Themes, die darauf stoßen, gemäß Schritt 5 verfahren.
Gotchas (In der Praxis beim Formatieren aufgetretene Fallstricke)
- Fehlende
<span leaf>-Umbüllung ist der häufigste fatale Fehler – nach dem Einfügen in den WeChat-Editor gehen alle Stile verloren. Durch das Validierungsskript in Schritt 5 abgesichert, nicht überspringen. - Unterstreichung: Absatz für Absatz umsetzen, pro Absatz 1–3 Phrasen. Nicht einen ganzen Absatz unterstreichen (verliert den Fokus), und keine Absätze auslassen. Auch wichtige Beschreibungen in Listenelementen müssen markiert werden.
- Kapitelnummerierungsfehler: Streng nach der Reihenfolge von
##vorgehen, keine Nummern auslassen; die Variante für die Schlussnummerierung nur für das letzte Kapitel verwenden, nicht für Zwischenkapitel. - Signaturbereich gibt es nur einmal am Ende: Verwende die festgelegten Formulierungen, nicht in der Mitte oder an mehreren Stellen; wenn der Originaltext am Ende bereits einen Autorensignatur-/„Daumen hoch, In den Nachrichten lesen, Teilen“-Absatz hat, diesen erkennen und in diesen einzigen Signaturbereich/CTA-Karte integrieren, nicht den Originalabsatz behalten und einen weiteren erstellen.
- Bildbeschreibung erfunden: Nur wenn
tatsächlich eine Beschreibung enthält, eine Beschreibungskomponente erstellen; beimit leerem alt-Text keine Beschreibung erfinden. - Bilder anpassbar, nicht full-width:
<img>immermax-width:100%;height:auto;display:block;margin:0 auto– Bilder je nach ihrer tatsächlichen Größe anzeigen, zentriert. Große Bilder auf Containergröße verkleinern, kleine Bilder in Originalgröße behalten. Nichtwidth:100%verwenden (das würde auch kleine Bilder strecken und unscharf machen); nur für Layout-Elemente wie Tabellen, Deckblattkarten, Flussdiagrammewidth:100%verwenden. - Themenübergreifende Verwendung von Komponenten: Ein Artikel verwendet nur die Komponenten des ausgewählten Themes + der universellen Bibliothek, keine Komponenten aus anderen Themes ausleihen.
- Übermäßige Nutzung der Ankerebene: Stärkste Betonung im gesamten Artikel ≤ 5 Stellen; überall Fettschrift zu setzen ist gleichbedeutend mit keiner Betonung.
- Inhalt des Originaltextes ausgelassen: Jeder Absatz, jedes Bild muss konvertiert werden, nichts darf ausgelassen werden; den wesentlichen Inhalt des Originaltextes nicht eigenmächtig hinzufügen oder entfernen.
- Platzhalterbilder zurückgelassen: Wenn der Signaturbereich/die CTA-Komponente einen Platzhalter für ein Bild enthält (z. B.
<img src="...URL für Visitenkarte oder Leitbild">) und keine echte Bild-URL vorhanden ist, die gesamte Zeile löschen, keinen Platzhalter im Endprodukt belassen. - Inhaltsverzeichnis ist eine Auswahl, nicht vollständig: Das Einführungs-/Inhaltsverzeichnis zeigt eine Auswahl von 3 Kernpunkten an, nicht die vollständige Kapitelliste; wenn es mehr als 3 Kapitel gibt, die 3 wichtigsten auswählen, nicht erzwingen oder den Eindruck erwecken, es gäbe nur 3 Kapitel.
- Keine gestrichelten Rahmen verwenden: Für Hervorhebung von Überschriften/Betonungen kleine Etiketten oder linke Leiste verwenden (universelle Bibliothek 3a–3e), keinen
border:…dashed-Rahmen um die Überschrift. Ausnahme: Wenn die Themenbibliothek eine explizite gestrichelte Komponente definiert hat (wie z. B. den quote-box-Zitatrahmen von MoYu Green oder die oneliner-card-Highlight-Karte), ist diese ein Stilmerkmal des Themes und kann gemäß der Verwendung in der Themenbibliothek normal verwendet werden. - Satzzeichen nicht mit halber Breite mischen: Halbbreite Kommas und Punkte, englische gerade Anführungszeichen
"'im Fließtext müssen alle in voller Breite geändert werden; halbbreite Symbole in Codeblöcken/Inline-Code bleiben original, den Code nicht 'in voller Breite' schreiben. - Code/Prompt muss in Codeblöcke: Code, Befehle, Prompts im Artikel mit der Codeblock-Komponente aus der universellen Bibliothek (1a/1b) formatieren, nicht in normale Absätze oder Zitatblöcke stecken, sonst gehen Einrückung und Breite verloren.
- Codeblöcke kompakt, keine großen Leerräume: Die Schreibweise der universellen Bibliothek 1a/1b verwenden: 'Jede Zeile ein
<p style="margin:0">', auf keinen Fallwhite-space:preverwenden – das würde Einrückungen vor<span>im HTML-Code und Zeilenumbrüche originalgetreu als große linke Einrückung + Leerzeilen rendern; Einrückungen nur mit vollbreiten Leerzeichen, Zeilenabstand durchline-height:1.6. - Zu ergänzende Materialien zentrieren: Platzhalter wie
【Einfügen…】, zu screenrecordendes/GIF/Video/Ergebnisbild usw. mit dem 2c zentriertem Material-Platzhalter-Bereich aus der universellen Bibliothek (heller Hintergrund, weicher gestrichelter Rahmen + zentriertes Icon und Beschreibung) formatieren, nicht mit einem linksbündigen Hinweisblock.
Benutzerdefiniertes Theme erstellen (zweiter Arbeitsablauf)
Wenn der Benutzer einen neuen Stil wünscht, der nicht in den integrierten Themes enthalten ist (sagt 'Ein neues Theme erstellen / Benutzerdefinierten Stil / Basierend auf diesem Referenzbild eine Komponentenbibliothek erstellen' oder mit keinem der bestehenden Themes zufrieden ist), lies references/theme-generator.md und befolge dessen Anweisungen streng:
- Präferenzen sammeln: Themenbeschreibung ist Pflicht (oder Referenzbild). Für Name/ID/Fünf-Farben/Schriftart/Drei TAG-Typen/Ecken/Schatten können, wenn leer, automatisch ergänzt werden; alles auf einmal abfragen, nicht Feld für Feld nachfragen.
- Block-Bibliothek HTML generieren: Den 'Generierungsprompt' am Ende von theme-generator.md unverändert ausführen. Eine vollständige Block-Bibliothek mit 45~75 Blöcken erstellen und unter
assets/theme-previews/{theme-id}.htmlspeichern – alle Blöcke werden auf derselben Seite fortlaufend angeordnet, sodass der Benutzer sie im Browser auf einer einzigen Seite auf einmal zur Bestätigung des Stils sehen kann, nicht Block für Block. - Konvertierung + Registrierung: Nach Bestätigung des Stils durch den Benutzer in das Standard-
references/theme-{Kennung}.md-Format konvertieren (muss<span leaf="">-Umbüllung hinzufügen, Vorschau-IDs entfernen, fünf Kapitel vervollständigen – die Regeln sind in Schritt drei von theme-generator.md detailliert), im theme-index.md registrieren,component_lint.pyausführen, bis 0 ERROR erreicht sind. - Nach der Auslieferung wird dieses Theme zu einem dauerhaft verfügbaren, auswählbaren Theme, das bei der Formatierung gleichberechtigt mit den integrierten Themes behandelt wird.
Während der Generierungsphase haben die Prompt-Regeln Vorrang; während der Konvertierungsphase in die Themenbibliothek haben dieses Dokument 'Plattform-Rothine' und 'Spezifikationen für das Hinzufügen neuer Themes' Vorrang (bei Konflikten hat Letzteres Vorrang, da die Themenbibliothek direkt die formatierten Ausgabeergebnisse bestimmt).
Spezifikationen für das Hinzufügen neuer Themes
Neue Themes werden mit dem Namen references/theme-{Englische Kennung}.md benannt. Der Inhalt muss Folgendes enthalten:
- Schnellübersichtstabelle der Designvariablen (Hauptfarbe/heller Hintergrund/dunkler Text/Überschriftenfarbe/Textkörperfarbe/Trennlinienfarbe usw.)
- Vollständiges HTML jeder Komponente (Inline-Stile +
<span leaf="">-Umbüllung, unter Einhaltung der oben genannten 'Plattform-Rothine') - Vollständiges Artikelvorlagen-Skelett (Anordnungsreihenfolge der Komponenten; falls eine Inhaltsverzeichnis-/Navigationskomponente vorhanden ist, die Position relativ zur Deckblatt-/Einführungskarte klar angeben)
- Tabelle 'Artikeltyp → Komponentenkombinationsrezept' (Kernkomponenten + Dekorationskomponenten für jeden Artikeltyp – die Rezeptur ist der Schlüssel für einen stabilen Formatierungsstil)
- Mapping-Regeltabelle 'Markdown → Komponente'
Nach dem Hinzufügen eine Zeile in references/theme-index.md registrieren (Theme-Name / Hauptfarbe / Anwendungsszenarien / Komponentenbibliotheksdatei / CSS für Textunterstreichung) und python3 scripts/component_lint.py . ausführen, um zu bestätigen, dass die Komponentenbibliothek keine Anti-Patterns enthält (0 ERROR).
Regressions-Anwendungsfälle für Auslösung und Theme-Auswahl finden sich in
references/eval-cases.md(wird bei der Wartung für Regressionstests verwendet, hat keinen Einfluss auf die einmalige Generierung).
