Communitygithub.com

Dnnecessary/skills

Ein Toolkit für die Formatierung von WeChat-Artikeln: Konvertiert Markdown in HTML, das direkt in den WeChat-Editor eingefügt werden kann, ohne dass Formatierungen verloren gehen.

Was ist skills?

Dieses Skill ist eine spezialisierte Engine, die Markdown-Dokumente in HTML konvertiert, das perfekt für den WeChat Official Account Editor optimiert ist. Es stellt sicher, dass alle Formatierungen beim Einfügen erhalten bleiben. Die Kernfunktion basiert auf einer modularen Theme-Komponentenbibliothek im `references/`-Verzeichnis, die eine einheitliche Designsprache für das gesamte Dokument bietet. Der Arbeitsablauf ist in sechs Hauptschritte unterteilt: Formatvereinheitlichung (Eingabe von Markdown, .docx, PDF oder Klartext), Theme-Auswahl (inklusive automatischer Empfehlung basierend auf dem Thema), Parsen des Markdown-Dokuments, bedarfsgerechte Komponentenzusammenstellung (nach Dokumenttyp), obligatorische Validierung mit einem Skript zur Überprüfung plattformspezifischer Einschränkungen und schließlich die Ausgabe. Zu den besonderen Funktionen gehören automatische Kapitelnummerierung, Hervorhebung von Schlüsselwörtern im Text mit Unterstreichungen, ein Generator für benutzerdefinierte Themes (basierend auf Benutzerbeschreibungen oder Referenzbildern) und ein Vorschaumodus mit einem 'Copy to WeChat'-Button. Es unterstützt mehrere Plattformen wie Claude Code, Cursor und Codex und wird über spezifische Triggerwörter wie '公众号排版', '微信排版' oder '一键排版' aktiviert. Die Ausgabe ist ein `<section>`-Fragment ohne `<html>`, `<head>` oder `<body>`, das direkt in den WeChat-Editor eingefügt werden kann.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Dnnecessary/skills/tree/HEAD/gzh-design

In Ihrer bevorzugten KI fragen

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

Vorschau

Aus dem Skill-README

Beschreibung
skills preview
Beschreibung
skills preview

Dokumentation

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

ElementErkennungsregel
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![Beschreibung](URL), ![](xxx.gif) (GIF wie Bilder behandeln)
Code / Befehle / Prompts``` Codeblock ```, Inline `code`
Trennlinien / Listen---, *** / - Punkt oder 1. Punkt
TabellenMarkdown-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, Inline code `` → 1c; ![Beschreibung](url) → 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 (dashed border) 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.

  1. Saubere Textdatei: HTML wird im aktuellen Arbeitsverzeichnis gespeichert, Dateiname {Originalname}_formatiert_{Theme-Chinesisch}({Englische Kennung}).html (Englische Kennung = Dateiname der Komponentenbibliothek aus theme-index ohne theme--Präfix und .md-Suffix). Diese wird für die Validierung und als Fallback für manuelles Einfügen verwendet.

  2. 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.

  3. 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)

  1. 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.
  2. 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.
  3. 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.
  4. Hervorhebung von Schlüsselwörtern im Einleitungszitat: Kernwörter in einem einleitenden Schlüsselsatz identifizieren und mit einer Hervorhebungskomponente markieren.
  5. 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).
  6. 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).
  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.
  8. Listenkonvertierung: Gemäß den Mapping-Regeln der Themenbibliothek behandeln; wenn keine spezifische Listenkomponente vorhanden ist, in eingerückte Textabsätze umwandeln.
  9. 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)

EbeneZweckHäufigkeitMittel
AnkerebeneStärkste Anker: Produktname/Schritte/CTA/Kernzitat≤ 5 im gesamten ArtikelFett in Hauptfarbe, tiefgrundiger weißer Text Zitat
MarkierungsebeneTextkörper-Keywords, 1–3 pro AbsatzHochfrequentUnterstrichene Markierung
ContainerebeneZitatblöcke, Konzeptetiketten, SatzbetonungNach BedarfHelle 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 ![Beschreibung](url) tatsächlich eine Beschreibung enthält, eine Beschreibungskomponente erstellen; bei ![](url) mit leerem alt-Text keine Beschreibung erfinden.
  • Bilder anpassbar, nicht full-width: <img> immer max-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. Nicht width:100% verwenden (das würde auch kleine Bilder strecken und unscharf machen); nur für Layout-Elemente wie Tabellen, Deckblattkarten, Flussdiagramme width: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 Fall white-space:pre verwenden – 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 durch line-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:

  1. 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.
  2. 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}.html speichern – 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.
  3. 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.py ausführen, bis 0 ERROR erreicht sind.
  4. 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:

  1. Schnellübersichtstabelle der Designvariablen (Hauptfarbe/heller Hintergrund/dunkler Text/Überschriftenfarbe/Textkörperfarbe/Trennlinienfarbe usw.)
  2. Vollständiges HTML jeder Komponente (Inline-Stile + <span leaf="">-Umbüllung, unter Einhaltung der oben genannten 'Plattform-Rothine')
  3. Vollständiges Artikelvorlagen-Skelett (Anordnungsreihenfolge der Komponenten; falls eine Inhaltsverzeichnis-/Navigationskomponente vorhanden ist, die Position relativ zur Deckblatt-/Einführungskarte klar angeben)
  4. Tabelle 'Artikeltyp → Komponentenkombinationsrezept' (Kernkomponenten + Dekorationskomponenten für jeden Artikeltyp – die Rezeptur ist der Schlüssel für einen stabilen Formatierungsstil)
  5. 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).

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Dnnecessary/skills

MUST USE when user wants to 调研/research/搜索/search/查/找/look up anything on the internet — e.g. 全网调研 X / 帮我调研一下 X / 查一下 X / 搜搜 X / 看看大家怎么评价 X / X 上有什么讨论 / research this topic。 Also MUST USE when user mentions any platform or shares any URL/链接: 小红书/xiaohongshu/xhs, Twitter/推特/X, B站/bilibili, Reddit, Facebook, Instagram, V2EX, LinkedIn/领英/Boss直聘/招聘/求职/jobs, YouTube, GitHub code search, 小宇宙播客, 雪球/股票行情, RSS feeds, or any web URL. 16 platforms, multi-backend routing (OpenCLI / per-platform CLIs / APIs). Zero config for 6 channels. Run `agent-reach doctor --json` to see which backend serves each platform right now. NOT for: 写报告/数据分析/翻译等内容加工(本 skill 只负责从互联网获取内容); 发帖/评论/点赞等写操作;已有专门 skill 的平台(先用专门 skill)。 【路由方式】SKILL.md 包含路由表和常用命令,复杂场景需按需阅读对应分类的 references/*.md。 分类:search / social (小红书/推特/B站/V2EX/Reddit/Facebook/Instagram) / career(LinkedIn/Boss直聘) / dev(github) / web(网页/文章/RSS) / video(YouTube/B站/播客) / finance(雪球/股票)。

Dnnecessary/skills

基于多篇作者、博主、公众号或品牌内容的正文,进行全面、可解释、可复核的数据分析,覆盖样本质量、发布节奏、选题结构、关键词概念、标题策略、篇章结构、论证方式、证据体系、案例实体、语言风格、情绪立场、读者收益、行动引导、视觉使用、时间演化和维度关联,并进一步提炼作者定位、内容资产、选题系统、分析框架、判断标准、表达模板、案例库、金句风格、内容机会和写作 SOP。默认生成本地 Markdown 报告、独立文案框架、HTML 看板并同步飞书;只有用户明确关闭时才跳过 HTML 或飞书。

Verwandte Skills