Tina CMS & Astro
Tina CMS es un sistema de gestión de contenido sin servidor respaldado por Git.
Integración con Astro
Para empezar, necesitarás un proyecto Astro existente.
-
Ejecuta el siguiente comando para instalar Tina en tu proyecto Astro.
Terminal window npx @tinacms/cli@latest initTerminal window pnpx @tinacms/cli@latest initTerminal window yarn dlx @tinacms/cli@latest init- Cuando se te pregunte ingresar un Cloud ID, presione Enter para omitir. Generará uno más tarde si desea usar Tina Cloud.
- Cuando se te pregunte “¿Qué framework estás usando?”, escoge Otro.
- Cuando se te pregunte donde se almacenan los archivos del directorio public, presione Enter.
Depués de haber terminado lo anterior, deberías tener una carpeta
.tinaen la raíz de tu proyecto y un archivohello-world.mdgenerado encontent/posts/hello-world.md. -
Cambia el script
devenpackage.json:package.json {"scripts": {"dev": "astro dev","dev": "tinacms dev -c \"astro dev\""}}package.json {"scripts": {"dev": "astro dev","dev": "tinacms dev -c \"astro dev\""}}package.json {"scripts": {"dev": "astro dev","dev": "tinacms dev -c \"astro dev\""}} -
Ahora TinaCMS está configurado en modo local. Prueba esto ejecutando el script
dev, luego navega a/admin/index.html#/collections/post.Editando el archivo “Hello, World!” actualizará el archivo
content/posts/hello-world.mden el directorio de tu proyecto. -
Configura tus colecciones Tina editando la propiedad
schema.collectionsen.tina/config.ts.Por ejemplo, puedes agregar una propiedad frontmatter requerida “date posted”(fecha de publicación) a nuestros posts:
.tina/config.ts import { defineConfig } from "tinacms";// Tu proveedor de hosting probablemente exponga esto como una variable de entornoconst branch = process.env.HEAD || process.env.VERCEL_GIT_COMMIT_REF || "main";export default defineConfig({branch,clientId: null, // Obtén esto de tina.iotoken: null, // Obtén esto de tina.iobuild: {outputFolder: "admin",publicFolder: "public",},media: {tina: {mediaRoot: "images",publicFolder: "public",},},schema: {collections: [{name: "posts",label: "Posts",path: "src/content/posts",format: 'mdx',fields: [{type: "string",name: "title",label: "Title",isTitle: true,required: true,},{type: "datetime",name: "posted",label: "Date Posted",required: true,},{type: "rich-text",name: "body",label: "Body",isBody: true,},],},],},});Aprende más sobre las colecciones Tina en la documentación de Tina.
-
En producción, TinaCMS puede hacer commit de los cambios directamente a tu repositorio de GitHub. Para configurar TinaCMS para producción, puedes elegir usar Tina Cloud o auto-hospedar la Tina Data Layer. Puedes leer más sobre el registro para Tina Cloud en la documentación de Tina.
Recursos Oficiales
Recursos de la comunidad
- Plantilla de inicio de Tina y Astro con edición visual por Jeff See y Dylan Awalt-Conley
- Plantilla de inicio de Tina con Astro por Tom Bennet
- Utilizando la Optimización de Imágenes de Astro con Tina