Saltar al contenido

Keystatic y Astro

Keystatic es un sistema de gestión de contenidos (CMS) headless de código abierto que te permite estructurar tu contenido y sincronizarlo con GitHub.

Añade las integraciones de Markdoc (para las entradas de contenido) y React (para el panel de control de la UI de administración de Keystatic) a tu proyecto de Astro, utilizando el comando astro add para tu gestor de paquetes.

Ventana de la terminal
npx astro add react markdoc

También necesitarás dos paquetes de Keystatic:

Ventana de la terminal
npm install @keystatic/core @keystatic/astro

Añade la integración de Astro desde @keystatic/astro en tu archivo de configuración de Astro:

astro.config.mjs
import { defineConfig } from 'astro/config'
import react from '@astrojs/react'
import markdoc from '@astrojs/markdoc'
import keystatic from '@keystatic/astro'
// https://astro.build/config
export default defineConfig({
integrations: [react(), markdoc(), keystatic()],
output: 'static',
})

Creación de un archivo de configuración de Keystatic

Sección titulada “Creación de un archivo de configuración de Keystatic”

Se requiere un archivo de configuración de Keystatic para definir tu esquema de contenido. Este archivo también te permitirá conectar un proyecto a un repositorio específico de GitHub (si decides hacerlo).

Crea un archivo llamado keystatic.config.ts en la raíz del proyecto y añade el siguiente código para definir tanto tu tipo de almacenamiento (local) como una única colección de contenido (posts):

keystatic.config.ts
import { config, fields, collection } from '@keystatic/core';
export default config({
storage: {
kind: 'local',
},
collections: {
posts: collection({
label: 'Posts',
slugField: 'title',
path: 'src/content/posts/*',
format: { contentField: 'content' },
schema: {
title: fields.slug({ name: { label: 'Title' } }),
content: fields.markdoc({
label: 'Content',
}),
},
}),
},
});

Keystatic ahora está configurado para gestionar tu contenido basado en tu esquema.

Para iniciar tu panel de control de la UI de administración de Keystatic, inicia el servidor de desarrollo de Astro:

Ventana de la terminal
npm run dev

Visita http://127.0.0.1:4321/keystatic en el navegador para ver la UI de administración de Keystatic ejecutándose.

  1. En el panel de control de la UI de administración de Keystatic, haz clic en la colección “Posts”.

  2. Usa el botón para crear una nueva publicación. Añade el título “My First Post” y algo de contenido, luego guarda la publicación.

  3. Esta publicación ahora debería ser visible desde tu colección “Posts”. Puedes ver y editar tus publicaciones individuales desde esta página del panel de control.

  4. Regresa a ver los archivos de tu proyecto de Astro. Ahora encontrarás un nuevo archivo .mdoc dentro del directorio src/content/posts para esta nueva publicación:

    • Directoriosrc/
      • Directoriocontent/
        • Directorioposts/
          • my-first-post.mdoc
  5. Navega a ese archivo en tu editor de código y verifica que puedes ver el contenido de Markdown que ingresaste. Por ejemplo:

    ---
    title: My First Post
    ---
    This is my very first post. I am **super** excited!

Consulta y muestra tus publicaciones y colecciones, tal como lo harías en cualquier proyecto de Astro.

El siguiente ejemplo muestra una lista de los títulos de cada publicación, con un enlace a una página de publicación individual.

---
import { getCollection } from 'astro:content'
const posts = await getCollection('posts')
---
<ul>
{posts.map(post => (
<li>
<a href={`/posts/${post.id}`}>{post.data.title}</a>
</li>
))}
</ul>

Para mostrar el contenido de una publicación individual, puedes importar y usar el componente <Content /> para renderizar tu contenido a HTML:

---
import { getEntry } from 'astro:content'
const post = await getEntry('posts', 'my-first-post')
const { Content } = await post.render()
---
<main>
<h1>{post.data.title}</h1>
<Content />
</main>

Para obtener más información sobre consultas, filtrado, visualización del contenido de tus colecciones y más, consulta la documentación de colecciones de contenido completa.

Para desplegar tu sitio web, visita nuestras guías de despliegue y sigue las instrucciones para tu proveedor de alojamiento preferido.

Probablemente también querrás conectar Keystatic a GitHub para poder gestionar el contenido en la instancia desplegada del proyecto.

Más guías de CMS

Socios de CMS destacados

  • CloudCannon

    CMS basado en Git creado para mayor velocidad, seguridad y cero dolores de cabeza.

Todas las guías de CMS

Contribuir Comunidad Patrocinar