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

# Plantillas de contenido

> Renderiza gráficos listos para publicar (memes, tarjetas de citas, testimonios) a partir de plantillas predefinidas

Las plantillas de contenido son gráficos renderizados en el servidor (memes, tarjetas de citas, comparaciones antes/después, anuncios, testimonios e imágenes de reacción) que rellenas con tu propio texto, colores e imágenes. Las imágenes renderizadas se guardan automáticamente en tu [biblioteca multimedia](/es/cli/media.md), listas para adjuntar a una publicación.

## Categorías disponibles

| Slug de categoría | Plantilla |
| - | - |
| `meme` | Meme clásico (texto superior / texto inferior) |
| `quote_card` | Tarjeta de cita con tu marca |
| `before_after` | Comparación lado a lado |
| `reaction` | Imagen de reacción |
| `announcement` | Tarjeta de anuncio de producto o noticia |
| `testimonial` | Tarjeta de testimonio de cliente |

## templates:list

Explora las plantillas disponibles, con la opción de filtrar por categoría.

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

| Opción | Descripción |
| - | - |
| `--category <name>` | Filtra por categoría (consulta los slugs anteriores) |
| `--page <number>` | Número de página (por defecto: 1) |
| `--limit <number>` | Elementos por página (por defecto: 20) |

```bash Ejemplos theme={null}
# Every active template
so-me templates:list

# Only quote cards
so-me templates:list --category quote_card

# Compact table
so-me templates:list --table

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

## templates:get

Obtiene una plantilla por ID, incluido su esquema `fields[]`; úsalo para ver qué entradas espera la plantilla (etiquetas, tipos, `required`, `maxLength`, `defaultValue`, etc.) antes de renderizar.

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

```bash Ejemplos theme={null}
# Full template definition
so-me templates:get 550e8400-e29b-41d4-a716-446655440000

# Just the field schema
so-me templates:get 550e8400-... | jq '.fields'

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

## templates:render

Renderiza una plantilla con tus propios valores de campo. El resultado es una imagen subida a tu biblioteca multimedia; la respuesta contiene `imageUrl` y el nuevo `fileId` que puedes pasar a [`posts:create`](/es/cli/posts#postscreate).

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

| Opción | Descripción |
| - | - |
| `-d, --data <json-string>` | Objeto JSON en línea que asigna valores a los ID de campo |
| `-f, --file <path>` | Ruta a un archivo JSON con los valores de los campos |

Se requiere exactamente una de las opciones `--data` o `--file`. Si no se indica ninguna, el comando termina con un error; el JSON debe analizarse como un objeto cuyas claves sean los `id` de los campos de la plantilla.

```bash Ejemplos theme={null}
# Inline values for a quote card
so-me templates:render 550e8400-... \
  --data '{"quote":"Ship early. Ship often.","author":"CLI test","bg":"#111","fg":"#fff"}'

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

# Render, then immediately schedule a post with the resulting image
RESULT=$(so-me templates:render 550e8400-... --data '{"quote":"..."}')
URL=$(echo "$RESULT" | jq -r '.imageUrl')
# Find the fileId that was added to your media library
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]
>
> La validación de los campos obligatorios se hace en el servidor. Ejecuta primero `templates:get <id>` para ver exactamente qué campos son obligatorios y sus restricciones de `maxLength`; el renderizado devolverá un 400 si falta algún campo obligatorio.

> [!WARNING]
>
> Las plantillas de contenido son distintas de las **respuestas guardadas de la bandeja de entrada** (fragmentos de texto cortos para responder a mensajes directos o comentarios). Para ellas, usa [inbox:saved-replies](/es/cli/inbox.md) / `inbox:create-reply`.
>
> También son distintas de las **plantillas de mensaje de WhatsApp** (plantillas salientes preaprobadas que Meta exige para WhatsApp Business), documentadas en [Plantillas de WhatsApp](/es/inbox/whatsapp-templates.md).


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