cards2pack
Überblick
Abschnitt betitelt „Überblick“cards2pack ist ein CLI-Tool, das Adaptive-Card-JSON-Dateien in Greentic-Packs umwandelt. Es:
- Scannt Karten, erstellt einen Abhängigkeitsgraphen und generiert
.ygtc-Flows - Extrahiert übersetzbare Zeichenketten für i18n
- Übersetzt Karten automatisch über
greentic-i18n-translator - Verpackt alles in ein bereitstellbares
.gtpack
Installation
Abschnitt betitelt „Installation“cargo install greentic-cards2packErforderliche Tools:
cargo install greentic-flow greentic-packcargo install greentic-i18n-translator # optional, for --auto-translateSchnellstart
Abschnitt betitelt „Schnellstart“-
Adaptive Cards erstellen
cards/welcome.json {"type": "AdaptiveCard","version": "1.4","body": [{ "type": "TextBlock", "text": "Welcome!", "size": "Large" },{ "type": "TextBlock", "text": "How can I help you today?" }],"actions": [{"type": "Action.Submit","title": "Get Started","data": { "flow": "demo", "step": "next-card" }}]} -
Pack generieren
Terminal-Fenster greentic-cards2pack generate \--cards ./cards \--out ./my-pack \--name my-pack -
Ausgabe
my-pack/pack.yamlflows/main.ygtcassets/cards/welcome.jsondist/my-pack.gtpack.cards2pack/manifest.json
CLI-Referenz
Abschnitt betitelt „CLI-Referenz“generate
Abschnitt betitelt „generate“Hauptbefehl: Karten scannen, Flows generieren, Pack bauen.
greentic-cards2pack generate [OPTIONS]| Flag | Beschreibung |
|---|---|
--cards <DIR> | Verzeichnis mit Adaptive-Card-JSON-Dateien (erforderlich) |
--out <DIR> | Ausgabeverzeichnis für den Workspace (erforderlich) |
--name <NAME> | Pack-Name (erforderlich) |
--strict | Fehler bei fehlenden Zielen, Duplikaten und ungültigem JSON |
--group-by <MODE> | Flow-Gruppierung: folder oder flow-field |
--default-flow <NAME> | Standard-Flow-Name für nicht gruppierte Karten |
--prompt | Prompt-basierte Weiterleitung aktivieren (fügt prompt2flow-Knoten hinzu) |
--prompt-json <FILE> | Answers-JSON für Prompt-Weiterleitung (erfordert --prompt) |
--auto-translate | Karten automatisch mit bis zu 8 parallelen Threads übersetzen (erfordert greentic-i18n-translator) |
--langs <CODES> | Kommagetrennte Sprachcodes; weglassen, um in alle über 65 unterstützten Locale-Varianten zu übersetzen |
--glossary <FILE> | Glossar-JSON für konsistente Übersetzungen |
--verbose | Detaillierte Ausgabe ausgeben |
extract-i18n
Abschnitt betitelt „extract-i18n“Übersetzbare Zeichenketten aus Karten in ein JSON-Bundle extrahieren.
greentic-cards2pack extract-i18n [OPTIONS]| Flag | Beschreibung |
|---|---|
--input <DIR> | Verzeichnis mit Karten-JSON-Dateien (erforderlich) |
--output <FILE> | Ausgabe-JSON-Pfad (Standard: i18n/en.json) |
--prefix <PREFIX> | Schlüsselpräfix (Standard: card) |
--include-existing | Zeichenketten einschließen, die bereits $t()-Muster enthalten |
--verbose | Extraktionsbericht ausgeben |
Kartenidentifikation
Abschnitt betitelt „Kartenidentifikation“Karten werden identifiziert über (in dieser Prioritätsreihenfolge):
- Das Feld
greentic.cardIdim Karten-JSON - Den Dateinamen ohne Endung (z. B.
welcome.json→welcome)
Karten werden gruppiert in Flows über:
- Das Feld
flowin den Aktionsdaten --group-by folder(Verzeichnisstruktur)- Den Fallback
--default-flow
i18n und Auto-Übersetzung
Abschnitt betitelt „i18n und Auto-Übersetzung“Zeichenketten extrahieren
Abschnitt betitelt „Zeichenketten extrahieren“greentic-cards2pack extract-i18n \ --input ./cards \ --output i18n/en.json \ --verboseAusgabe:
{ "card.welcome.body_0.text": "Welcome!", "card.welcome.body_1.text": "How can I help you today?", "card.welcome.actions_0.title": "Get Started"}Extrahierte Feldtypen
Abschnitt betitelt „Extrahierte Feldtypen“| Feld | Quelle |
|---|---|
text | Inhalt von TextBlock |
title | Aktionstitel, Kartentitel, Toggle-Titel |
label | Labels von Eingaben |
placeholder | Platzhalter von Eingaben |
errorMessage | Validierungsfehler |
altText | Alternativtext für Bilder |
fallbackText | Fallback-Inhalt |
FactSet title/value | Fact-Einträge |
ChoiceSet title | Auswahloptionen |
Auto-übersetzen (ein Befehl)
Abschnitt betitelt „Auto-übersetzen (ein Befehl)“greentic-cards2pack generate \ --cards ./cards \ --out ./my-pack \ --name my-pack \ --auto-translate \ --langs fr,deDies extrahiert Zeichenketten aus den ursprünglichen Kartendateien, übersetzt sie über greentic-i18n-translator mit bis zu 8 parallelen Threads und bündelt alles:
my-pack/assets/i18n/ en.json # English (source) fr.json # French de.json # GermanGlossar
Abschnitt betitelt „Glossar“Verwende ein Glossar, um Markennamen und technische Begriffe konsistent zu halten:
{ "Greentic": "Greentic", "Dashboard": "Dashboard"}greentic-cards2pack generate \ --cards ./cards --out ./pack --name demo \ --auto-translate --langs fr,de \ --glossary glossary.jsonFlow-Generierung
Abschnitt betitelt „Flow-Generierung“Generierte Flow-Abschnitte werden in Marker eingeschlossen:
# BEGIN GENERATED (cards2pack)# ... generated nodes ...# END GENERATED (cards2pack)
# Developer space below (preserved on regen)Inhalte außerhalb der Marker bleiben erhalten, wenn du erneut generierst.
Strikter Modus
Abschnitt betitelt „Strikter Modus“Mit --strict:
- Verursachen fehlende Routing-Ziele Fehler (statt Stub-Knoten)
- Verursachen doppelte
cardId-Werte Fehler - Verursacht ungültiges JSON Fehler
Template-Variablen
Abschnitt betitelt „Template-Variablen“Verwende Handlebars-Syntax für dynamische Inhalte:
{ "type": "TextBlock", "text": "Hello, {{name}}!"}Beispiel: Mehrstufiges Formular mit Übersetzung
Abschnitt betitelt „Beispiel: Mehrstufiges Formular mit Übersetzung“# Create cards in cards/ directory, then:greentic-cards2pack generate \ --cards ./cards \ --out ./checkout-pack \ --name checkout \ --auto-translate \ --langs fr,ja,es \ --glossary glossary.json \ --strictSiehe das translate-demo-Beispiel für eine vollständige Schritt-für-Schritt-Anleitung.