Temas: visión general

En esta página

Un tema de EmDash es un sitio Astro completo (páginas, diseños, componentes, estilos) distribuido vía create-astro. También incluye un archivo seed que inicializa la base de datos con colecciones, campos, menús, redirecciones y contenido de ejemplo en la primera ejecución.

Qué aporta un tema

Un tema es un proyecto Astro funcional con:

  • Pages — Rutas Astro para renderizar contenido (inicio, entradas de blog, archivos, etc.)
  • Layouts — Estructura HTML compartida
  • Components — Elementos de UI reutilizables (navegación, tarjetas, pies)
  • Styles — CSS o configuración de Tailwind
  • Un archivo seed — JSON que indica al CMS qué tipos de contenido y campos crear

Estructura del tema

my-theme/
├── package.json           # Metadatos del tema + config EmDash
├── astro.config.mjs       # Integración Astro
├── src/
│   ├── live.config.ts     # Configuración de Live Collections
│   ├── pages/             # Rutas Astro
│   ├── layouts/           # Componentes de diseño
│   └── components/        # Componentes de UI
└── .emdash/
    ├── seed.json          # Esquema + contenido de ejemplo
    └── uploads/           # Archivos multimedia locales opcionales

Cómo arrancan los sitios

Al crear un sitio desde un tema ocurre lo siguiente:

  1. create-astro genera el proyecto desde la plantilla
  2. Ejecutas npm install y npm run dev
  3. En la primera visita al admin se ejecuta automáticamente el asistente de configuración
  4. El asistente aplica el seed, creando colecciones, menús, redirecciones y contenido
  5. El sitio queda listo

Para usuarios

Elige un tema, ejecuta el asistente y edita. No hace falta conocer la base de datos.

Para desarrolladores

Los temas son proyectos Astro estándar. Personalízalos libremente tras el scaffolding.

Instalar un tema

Usa create-astro con una plantilla:

npm create astro@latest -- --template @emdash-cms/template-blog

Los temas de la comunidad funcionan vía GitHub:

npm create astro@latest -- --template github:user/emdash-portfolio

Tras la instalación:

cd my-site
npm install
npm run dev

Visita http://localhost:4321/_emdash/admin para completar el asistente.

El asistente de configuración

Se ejecuta automáticamente en la primera visita al admin. El asistente:

  1. Pide título del sitio, eslogan y credenciales de administrador
  2. Ofrece incluir contenido de ejemplo
  3. Aplica el archivo seed a la base de datos
  4. Redirige al panel de administración
┌────────────────────────────────────────────────────────┐
│                                                        │
│                    ◆ EmDash                          │
│                                                        │
│              Bienvenido a tu nuevo sitio               │
│                                                        │
│  Título:         [Mi blog genial                     ] │
│  Eslogan:        [Ideas y reflexiones                ] │
│                                                        │
│  Email admin:    [[email protected]                  ] │
│  Contraseña:     [••••••••••••                       ] │
│                                                        │
│  ☑ Incluir contenido de ejemplo                        │
│                                                        │
│                   [Crear sitio →]                      │
│                                                        │
│  Plantilla: Blog inicial                               │
│  Crea: 2 colecciones, 3 páginas, 1 entrada             │
└────────────────────────────────────────────────────────┘

Temas oficiales

EmDash ofrece temas oficiales de inicio, cada uno en variantes local (SQLite + sistema de archivos) y Cloudflare (D1 + R2):

TemaDescripciónUso
@emdash-cms/template-blogBlog mínimo con entradas, páginas, categorías y modo oscuroBlogs personales, sitios simples
@emdash-cms/template-portfolioPortfolio editorial con proyectos, tipografía serif (Playfair Display) y diseños centrados en imagenFreelancers, agencias, creativos
@emdash-cms/template-marketingSitio de marketing con bloques Portable Text (hero, características, testimonios, precios, FAQ)Landing pages, SaaS, marketing de producto

Variantes Cloudflare

Para Cloudflare Pages con D1 y R2, añade -cloudflare al nombre de la plantilla:

npm create astro@latest -- --template @emdash-cms/template-blog-cloudflare
npm create astro@latest -- --template @emdash-cms/template-portfolio-cloudflare
npm create astro@latest -- --template @emdash-cms/template-marketing-cloudflare

Estas variantes incluyen wrangler.jsonc para la configuración de despliegue.

Personalizar tras la instalación

Cuando termina el asistente, tu sitio es un proyecto Astro estándar. Personalízalo como cualquier sitio Astro:

  • Edita páginas en src/pages/
  • Modifica diseños en src/layouts/
  • Añade colecciones desde el admin
  • Instala integraciones de Astro
  • Despliega donde Astro funcione

El archivo seed solo se usa en la configuración inicial. Una vez aplicado, el esquema vive en la base de datos.

Próximos pasos