Primeros pasos con EmDash
Esta guía te lleva paso a paso a través de la creación de tu primer sitio con EmDash, desde la instalación hasta la publicación de tu primera entrada.
Si aún estás evaluando si EmDash es el CMS de Astro adecuado, comienza con ¿Qué es EmDash? o Mejor CMS para Astro y luego regresa a esta guía de configuración.
Requisitos previos
Sección titulada «Requisitos previos»- Node.js v22.12.0 o superior (las versiones con números impares no son compatibles)
- npm, pnpm o yarn
- Un editor de código (se recomienda VS Code)
Crear un nuevo proyecto
Sección titulada «Crear un nuevo proyecto»npm create emdash@latestpnpm create emdash@latestyarn create emdashSigue las indicaciones para nombrar tu proyecto y configurar tus preferencias.
Iniciar el servidor de desarrollo
Sección titulada «Iniciar el servidor de desarrollo»-
Navega al directorio de tu proyecto:
Ventana de terminal cd my-emdash-site -
Instala las dependencias:
Ventana de terminal npm install -
Inicia el servidor de desarrollo:
Ventana de terminal npm run dev -
Abre tu navegador en
http://localhost:4321
Completar el asistente de configuración
Sección titulada «Completar el asistente de configuración»Cuando abras por primera vez el panel de administración, el asistente de configuración de EmDash te guiará en la configuración inicial:
-
Navega a
http://localhost:4321/_emdash/admin -
Serás redirigido al Asistente de Configuración. Ingresa:
- Título del Sitio — El nombre de tu sitio
- Eslogan — Una breve descripción
- Correo del administrador — Tu dirección de correo electrónico
-
Haz clic en Crear Sitio para registrar tu clave de acceso
-
Tu navegador te pedirá que crees una clave de acceso usando Touch ID, Face ID, Windows Hello o una llave de seguridad
Una vez que tu clave de acceso esté registrada, habrás iniciado sesión y serás redirigido al panel de administración.
Tu primera entrada
Sección titulada «Tu primera entrada»-
En la barra lateral de administración, haz clic en Entradas bajo Contenido.
-
Haz clic en Nueva Entrada.
-
Ingresa un título y escribe algún contenido usando el editor de texto enriquecido.
-
Establece el estado en Publicado y haz clic en Guardar.
-
Visita la página de inicio de tu sitio para ver tu entrada en vivo — ¡no se requiere reconstruir el sitio!
Estructura del proyecto
Sección titulada «Estructura del proyecto»Tu proyecto de EmDash sigue una estructura estándar de Astro con algunas adiciones:
my-emdash-site/├── astro.config.mjs # Astro + EmDash configuration├── src/│ ├── live.config.ts # Live Collections configuration│ ├── pages/│ │ ├── index.astro # Homepage│ │ └── posts/│ │ └── [...slug].astro # Dynamic post pages│ ├── layouts/│ │ └── Base.astro # Base layout│ └── components/ # Your Astro components├── .emdash/│ ├── seed.json # Template seed file│ └── types.ts # Generated TypeScript types└── package.jsonArchivos de configuración
Sección titulada «Archivos de configuración»astro.config.mjs
Sección titulada «astro.config.mjs»Aquí se configura EmDash como integración de Astro:
import { defineConfig } from "astro/config";import emdash, { local } from "emdash/astro";import { sqlite } from "emdash/db";
export default defineConfig({ integrations: [ emdash({ database: sqlite({ url: "file:./data.db" }), storage: local({ directory: "./uploads", baseUrl: "/_emdash/api/media/file", }), }), ],});src/live.config.ts
Sección titulada «src/live.config.ts»Esto conecta EmDash con el sistema de contenido de Astro:
import { defineLiveCollection } from "astro:content";import { emdashLoader } from "emdash/runtime";
export const collections = { _emdash: defineLiveCollection({ loader: emdashLoader() }),};Variables de entorno
Sección titulada «Variables de entorno»Para despliegues en producción, necesitarás configurar:
# Required for authenticationEMDASH_AUTH_SECRET=your-secret-here
# Opcional: para vista previa de contenidoEMDASH_PREVIEW_SECRET=tu-secreto-de-vista-previaGenera un secreto de autenticación seguro con:
npx emdash auth secretConsultar contenido en páginas
Sección titulada «Consultar contenido en páginas»Utiliza las funciones de consulta de EmDash en tus páginas de Astro. Estas siguen el patrón de colecciones dinámicas de Astro, devolviendo { entries, error } para colecciones y { entry, error } para entradas individuales:
---import { getEmDashCollection } from "emdash";import Base from "../../layouts/Base.astro";
const { entries: posts } = await getEmDashCollection("posts");---
<Base title="Inicio"> <h1>Últimas Entradas</h1> <ul> {posts.map((post) => ( <li> <a href={`/posts/${post.slug}`}>{post.data.title}</a> </li> ))} </ul></Base>Para entradas individuales:
---import { getEmDashEntry } from "emdash";
const { slug } = Astro.params;const { entry: post } = await getEmDashEntry("posts", slug);
if (!post) { return Astro.redirect("/404");}---
<h1>{post.data.title}</h1>Generar tipos de TypeScript
Sección titulada «Generar tipos de TypeScript»Para una seguridad de tipos completa, genera tipos desde el esquema de tu base de datos:
npx emdash typesEsto crea .emdash/types.ts con interfaces para todas tus colecciones. Tu editor ahora autocompletará los nombres de los campos y detectará errores de tipo.
Próximos pasos
Sección titulada «Próximos pasos»¡Ahora tienes un sitio de EmDash funcional! Aquí tienes a dónde ir a continuación:
- Conceptos básicos — Comprende cómo funciona EmDash internamente
- Trabajar con Contenido — Aprende a consultar y renderizar contenido
- Biblioteca de Medios — Sube y gestiona imágenes y archivos
- Crear un Blog — Construye un blog completo con categorías y etiquetas
- Desplegar en Cloudflare — Lleva tu sitio a producción