> ## Documentation Index
> Fetch the complete documentation index at: https://docs.so-me.studio/llms.txt
> Use this file to discover all available pages before exploring further.

# Inhaltsvorlagen

> Veröffentlichungsfertige Grafiken (Memes, Zitatkarten, Testimonials) aus voreingestellten Vorlagen rendern

Inhaltsvorlagen sind serverseitig gerenderte Grafiken — Memes, Zitatkarten, Vorher-nachher-Vergleiche, Ankündigungen, Testimonials und Reaktionsbilder —, die du mit eigenen Texten, Farben und Bildern füllst. Gerenderte Bilder landen automatisch in deiner [Medienbibliothek](/de/cli/media.md) und sind bereit, an einen Beitrag angehängt zu werden.

## Verfügbare Kategorien

| Kategorie-Slug | Vorlage |
| - | - |
| `meme` | Klassisches Meme (Text oben / Text unten) |
| `quote_card` | Zitatkarte im Markendesign |
| `before_after` | Vergleich nebeneinander |
| `reaction` | Reaktionsbild |
| `announcement` | Ankündigungskarte für Produkt oder News |
| `testimonial` | Kunden-Testimonial-Karte |

## templates:list

Durchsucht die verfügbaren Vorlagen, optional nach Kategorie gefiltert.

```bash theme={null}
so-me templates:list [options]
```

| Option | Beschreibung |
| - | - |
| `--category <name>` | Nach Kategorie filtern (Slugs siehe oben) |
| `--page <number>` | Seitennummer (Standard: 1) |
| `--limit <number>` | Einträge pro Seite (Standard: 20) |

```bash Beispiele theme={null}
# Alle aktiven Vorlagen
so-me templates:list

# Nur Zitatkarten
so-me templates:list --category quote_card

# Kompakte Tabelle
so-me templates:list --table

# Nur die IDs
so-me templates:list | jq -r '.data[].id'
```

## templates:get

Ruft eine Vorlage über ihre ID ab, einschließlich ihres `fields[]`-Schemas — damit siehst du vor dem Rendern, welche Eingaben die Vorlage erwartet (Labels, Typen, `required`, `maxLength`, `defaultValue` usw.).

```bash theme={null}
so-me templates:get <template-id>
```

```bash Beispiele theme={null}
# Vollständige Vorlagendefinition
so-me templates:get 550e8400-e29b-41d4-a716-446655440000

# Nur das Feldschema
so-me templates:get 550e8400-... | jq '.fields'

# Nur Pflichtfelder
so-me templates:get 550e8400-... | jq '.fields[] | select(.required) | .id'
```

## templates:render

Rendert eine Vorlage mit deinen eigenen Feldwerten. Das Ergebnis ist ein Bild, das in deine Medienbibliothek hochgeladen wird; die Antwort enthält die `imageUrl` und die neue `fileId`, die du an [`posts:create`](/de/cli/posts#postscreate) übergeben kannst.

```bash theme={null}
so-me templates:render <template-id> [--data <json> | --file <path>]
```

| Option | Beschreibung |
| - | - |
| `-d, --data <json-string>` | Inline-JSON-Objekt, das Feld-IDs auf Werte abbildet |
| `-f, --file <path>` | Pfad zu einer JSON-Datei mit den Feldwerten |

Genau eines von `--data` oder `--file` ist erforderlich. Fehlen beide, beendet sich der Befehl mit einem Fehler; das JSON muss zu einem Objekt geparst werden, dessen Schlüssel die Feld-`id`s der Vorlage sind.

```bash Beispiele theme={null}
# Inline-Werte für eine Zitatkarte
so-me templates:render 550e8400-... \
  --data '{"quote":"Ship early. Ship often.","author":"CLI test","bg":"#111","fg":"#fff"}'

# Werte aus einer Datei
cat > values.json <<'EOF'
{
  "headline": "Now launching",
  "subheadline": "v2.0 in closed beta",
  "bg": "#5417d7"
}
EOF
so-me templates:render 550e8400-... --file values.json

# Rendern und dann sofort einen Beitrag mit dem entstandenen Bild planen
RESULT=$(so-me templates:render 550e8400-... --data '{"quote":"..."}')
URL=$(echo "$RESULT" | jq -r '.imageUrl')
# Die fileId finden, die deiner Medienbibliothek hinzugefügt wurde
FILE_ID=$(so-me media:search "$(basename $URL)" | jq -r '.data[0].id')
so-me posts:create -c "Quote of the day" --post-type IMAGE -m $FILE_ID --platform TWITTER
```

> [!TIP]
>
> Die Validierung der Pflichtfelder erfolgt serverseitig. Rufe zuerst `templates:get <id>` auf, um genau zu sehen, welche Felder erforderlich sind und welche `maxLength`-Beschränkungen gelten — das Rendern schlägt mit 400 fehl, wenn ein Pflichtfeld fehlt.

> [!WARNING]
>
> Inhaltsvorlagen unterscheiden sich von **gespeicherten Posteingangs-Antworten** (kurze Textbausteine zum Antworten auf Direktnachrichten/Kommentare). Dafür verwendest du [inbox:saved-replies](/de/cli/inbox.md) / `inbox:create-reply`.
>
> Sie unterscheiden sich auch von **WhatsApp-Nachrichtenvorlagen** (vorab genehmigte ausgehende Vorlagen, die Meta für WhatsApp Business verlangt), dokumentiert unter [WhatsApp-Vorlagen](/de/inbox/whatsapp-templates.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.