Skip to content

Commit 77dcede

Browse files
authored
Merge branch 'main' into i18n/fr-update-integrations-reference
2 parents 9416897 + 366132c commit 77dcede

96 files changed

Lines changed: 2668 additions & 512 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/content/docs/es/basics/astro-pages.mdx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ title: Páginas
33
description: Una introducción a las páginas de Astro.
44
i18nReady: true
55
---
6-
import ReadMore from '~/components/ReadMore.astro'
7-
import Since from '~/components/Since.astro'
6+
7+
import ReadMore from '~/components/ReadMore.astro';
8+
import Since from '~/components/Since.astro';
89

910
Las **páginas** son [componentes de Astro](/es/basics/astro-components/) que se encuentran en la subcarpeta `src/pages/`. Ellas son las responsables de manejar el enrutamiento, la carga de datos y el diseño general de cada página HTML de tu proyecto.
1011

@@ -23,7 +24,7 @@ Astro es compatible con los siguientes tipos de archivos en el directorio `src/p
2324

2425
Astro aprovecha una estrategia de enrutamiento llamada **enrutamiento basado en archivos**. Cada archivo `.astro` en la carpeta `src/pages` se convierte en una página o un endpoint en tu proyecto de acuerdo a su ruta.
2526

26-
Un archivo puede generar múltiples páginas usando [enrutamiento dinámico](/es/guides/routing/#dynamic-routes). Esto te permite crear páginas incluso si tu contenido está fuera del directorio especial `/pages/`, como en una [colección de contenido](/es/guides/content-collections/) o un [CMS](/es/guides/cms/).
27+
Un archivo puede generar múltiples páginas usando [enrutamiento dinámico](/es/guides/routing/#rutas-dinámicas). Esto te permite crear páginas incluso si tu contenido está fuera del directorio especial `/pages/`, como en una [colección de contenido](/es/guides/content-collections/) o un [CMS](/es/guides/cms/).
2728

2829
<ReadMore>Lee más sobre [enrutamiento en Astro](/es/guides/routing/)</ReadMore>
2930

src/content/docs/es/basics/layouts.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Pero, ¡no hay nada especial acerca de los componentes plantilla! Pueden [acepta
1616

1717
Sin embargo, si un componente de plantilla contiene una página shell, su elemento `<html>` debe ser el padre de todos los demás elementos en el componente.
1818

19-
Los componentes de plantilla se colocan comúnmente en la carpeta `src/layouts` en tu proyecto, pero esto no es un requisito; puedes elegir ubicarlos en cualquier lugar de tu proyecto. Incluso puedes colocar las plantillas junto a tus páginas mediante [el uso de un prefijo `_` en los nombres de las plantillas](/es/guides/routing/#excluding-pages).
19+
Los componentes de plantilla se colocan comúnmente en la carpeta `src/layouts` en tu proyecto, pero esto no es un requisito; puedes elegir ubicarlos en cualquier lugar de tu proyecto. Incluso puedes colocar las plantillas junto a tus páginas mediante [el uso de un prefijo `_` en los nombres de las plantillas](/es/guides/routing/#excluir-páginas).
2020

2121
## Plantilla de ejemplo
2222

src/content/docs/es/guides/cms/builderio.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
---
22
title: Builder.io y Astro
3-
description: Agrega contenido a tu proyecto de Astro usando el CMS visual de Builder.io
3+
description: Agrega contenido a tu proyecto Astro usando el CMS visual de Builder.io
44
sidebar:
55
label: Builder.io
66
type: cms
77
logo: builderio
88
stub: false
99
i18nReady: true
1010
---
11+
1112
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro'
1213
import { FileTree } from '@astrojs/starlight/components';
1314
import { Steps } from '@astrojs/starlight/components';
@@ -172,7 +173,7 @@ Algunas veces las cosas pueden salir mal al configurar la vista previa. Si algo
172173
* Asegúrate de que el sitio esté en línea - por ejemplo, tu servidor de desarrollo está en ejecución.
173174
* Asegúrate que las URLs coincidan exactamente - la que está en tu proyecto de Astro y la que está configurada en la aplicación de Builder.
174175
* Asegúrate que sea la URL completa incluyendo el protocolo, por ejemplo `https://`.
175-
* Si estás trabajando en un entorno virtual como [IDX](https://idx.dev), [StackBlitz](https://stackblitz.com/), o [Gitpod](https://www.gitpod.io/), es posible que tengas que copiar y pegar la URL nuevamente cuando reinicies tu espacio de trabajo, ya que esto generalmente genera una nueva URL para tu proyecto.
176+
* Si estás trabajando en un entorno virtual como [StackBlitz](https://stackblitz.com/), es posible que tengas que copiar y pegar la URL nuevamente cuando reinicies tu espacio de trabajo, ya que esto generalmente genera una nueva URL para tu proyecto.
176177

177178
Para más ideas, lee [la guía de solución de problemas de Builder](https://www.builder.io/c/docs/guides/preview-url-working).
178179
:::
@@ -246,7 +247,7 @@ Si estás usando un framework de JavaScript (por ejemplo, Svelte, Vue o React) e
246247

247248
### Mostrar una entrada de blog individual
248249

249-
Crea la página `src/pages/posts/[slug].astro` que [generará dinámicamente una página](/es/guides/routing/#dynamic-routes) para cada entrada.
250+
Crea la página `src/pages/posts/[slug].astro` que [generará dinámicamente una página](/es/guides/routing/#rutas-dinámicas) para cada entrada.
250251

251252
<FileTree title="Estructura del proyecto">
252253
- src/
@@ -381,4 +382,3 @@ Con este webhook en su lugar, cada vez que hagas clic en el botón **Publish** e
381382
## Recursos de la comunidad
382383

383384
- Lee [Conectando el CMS visual de Builder.io a Astro](https://www.hamatoyogi.dev/blog/astro-log/connecting-builderio-to-astro) por Yoav Ganbar.
384-
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
---
2+
title: ButterCMS y Astro
3+
description: Agrega contenido a tu proyecto Astro usando ButterCMS
4+
sidebar:
5+
label: ButterCMS
6+
type: cms
7+
logo: buttercms
8+
stub: false
9+
i18nReady: true
10+
---
11+
12+
import { Steps } from '@astrojs/starlight/components';
13+
import PackageManagerTabs from '~/components/tabs/PackageManagerTabs.astro';
14+
15+
[ButterCMS](https://buttercms.com/) es un CMS headless y un motor de blogs que te permite publicar contenido estructurado para usarlo en tu proyecto.
16+
17+
## Integración con Astro
18+
19+
:::note
20+
Para ver un ejemplo completo de un blog, consulta el [Proyecto inicial Astro + ButterCMS](https://buttercms.com/starters/astro-starter-project/).
21+
:::
22+
23+
En esta sección, usaremos el [SDK de ButterCMS](https://www.npmjs.com/package/buttercms) para importar tus datos a tu proyecto Astro.
24+
25+
Para empezar, necesitarás lo siguiente:
26+
27+
### Prerequisitos
28+
29+
1. **Un proyecto Astro** - Si aún no tienes un proyecto Astro, nuestra [Guía de instalación](/es/install-and-setup/) te permitirá ponerlo en marcha en un momento.
30+
31+
2. **Una cuenta de ButterCMS** - Si aún no tienes una cuenta, puedes [registrarte](https://buttercms.com/join/) para disfrutar de una prueba gratuita.
32+
33+
3. **Tu token de la API de ButterCMS** - Puedes encontrar tu token de la API en la página [configuración](https://buttercms.com/settings/).
34+
35+
### Configuración
36+
37+
<Steps>
38+
1. Crea un archivo `.env` en el directorio raíz de tu proyecto y añade tu token de la API como variable de entorno:
39+
40+
```ini title=".env"
41+
BUTTER_TOKEN=YOUR_API_TOKEN_HERE
42+
```
43+
44+
:::tip
45+
Más información sobre [el uso de variables de entorno](/es/guides/environment-variables/) y los archivos `.env` en Astro.
46+
:::
47+
48+
2. Instala el SDK de ButterCMS como dependencia:
49+
50+
<PackageManagerTabs>
51+
<Fragment slot="npm">
52+
```shell
53+
npm install buttercms
54+
```
55+
</Fragment>
56+
<Fragment slot="pnpm">
57+
```shell
58+
pnpm add buttercms
59+
```
60+
</Fragment>
61+
<Fragment slot="yarn">
62+
```shell
63+
yarn add buttercms
64+
```
65+
</Fragment>
66+
</PackageManagerTabs>
67+
68+
3. Crea un archivo `buttercms.js` en un nuevo directorio `src/lib/` de tu proyecto:
69+
70+
```js title="src/lib/buttercms.js"
71+
import Butter from 'buttercms';
72+
73+
export const butterClient = Butter(import.meta.env.BUTTER_TOKEN);
74+
```
75+
</Steps>
76+
77+
**Esto autentica el SDK mediante tu token de la API y lo exporta para que puedas usarlo en todo tu proyecto.**
78+
79+
### Obtención de datos
80+
81+
Para obtener contenido, importa este cliente y usa una de sus funciones `retrieve`.
82+
83+
En este ejemplo, [recuperamos una colección](https://buttercms.com/docs/api/#retrieve-a-collection) que tiene tres campos: un texto breve `name`, un número `price` y un campo WYSIWYG `description`.
84+
85+
```astro title="src/pages/ShopItem.astro"
86+
---
87+
import { butterClient } from '../lib/buttercms';
88+
const response = await butterClient.content.retrieve(['shopitem']);
89+
90+
interface ShopItem {
91+
name: string,
92+
price: number,
93+
description: string,
94+
}
95+
96+
const items = response.data.data.shopitem as ShopItem[];
97+
---
98+
<body>
99+
{items.map(item => <div>
100+
<h2>{item.name} - ${item.price}</h2>
101+
<p set:html={item.description}></p>
102+
</div>)}
103+
</body>
104+
```
105+
106+
La interfaz refleja los tipos de campo. El campo `description` de tipo WYSIWYG se carga como una cadena de texto HTML, y [`set:html`](/es/reference/directives-reference/#sethtml) te permite mostrarlo.
107+
108+
Del mismo modo, puedes [recuperar una página](https://buttercms.com/docs/api/#get-a-single-page) y mostrar sus campos:
109+
110+
```astro title="src/pages/ShopItem.astro"
111+
---
112+
import { butterClient } from '../lib/buttercms';
113+
const response = await butterClient.page.retrieve('*', 'simple-page');
114+
const pageData = response.data.data;
115+
116+
interface Fields {
117+
seo_title: string,
118+
headline: string,
119+
hero_image: string,
120+
}
121+
122+
const fields = pageData.fields as Fields;
123+
---
124+
<html>
125+
<title>{fields.seo_title}</title>
126+
<body>
127+
<h1>{fields.headline}</h1>
128+
<img src={fields.hero_image} />
129+
</body>
130+
</html>
131+
```
132+
133+
## Recursos Oficiales
134+
135+
- [Proyecto inicial Astro + ButterCMS](https://buttercms.com/starters/astro-starter-project/).
136+
- La [documentación completa de la API de ButterCMS](https://buttercms.com/docs/api/).
137+
- [Guía de JavaScript](https://buttercms.com/docs/api-client/javascript/) de ButterCMS.
138+
139+
## Recursos de la comunidad
140+
141+
- ¡Agrega el tuyo!
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
title: Caisy y Astro
3+
description: Agrega contenido a tu proyecto Astro usando Caisy como CMS
4+
sidebar:
5+
label: Caisy
6+
type: cms
7+
logo: caisy
8+
i18nReady: true
9+
stub: true
10+
---
11+
12+
[Caisy](https://caisy.io/) es un CMS headless que expone una API de GraphQL para acceder al contenido.
13+
14+
## Cómo usar Caisy CMS con Astro
15+
16+
Usa `graphql-request` y el renderizador de texto enriquecido de Caisy para Astro para recuperar los datos de tu CMS y mostrar tu contenido en una página Astro:
17+
18+
```astro title="src/pages/blog/[...slug].astro"
19+
---
20+
import RichTextRenderer from '@caisy/rich-text-astro-renderer';
21+
import { gql, GraphQLClient } from 'graphql-request';
22+
23+
const params = Astro.params;
24+
25+
const client = new GraphQLClient(
26+
`https://cloud.caisy.io/api/v3/e/${import.meta.env.CAISY_PROJECT_ID}/graphql`,
27+
{
28+
headers: {
29+
'x-caisy-apikey': import.meta.env.CAISY_API_KEY
30+
}
31+
}
32+
);
33+
34+
const gqlResponse = await client.request(
35+
gql`
36+
query allBlogArticle($slug: String) {
37+
allBlogArticle(where: { slug: { eq: $slug } }) {
38+
edges {
39+
node {
40+
text {
41+
json
42+
}
43+
title
44+
slug
45+
id
46+
}
47+
}
48+
}
49+
}
50+
`,
51+
{ slug: params.slug }
52+
);
53+
54+
const post = gqlResponse?.allBlogArticle?.edges?.[0]?.node;
55+
---
56+
<h1>{post.title}</h1>
57+
<RichTextRenderer node={post.text.json} />
58+
```
59+
60+
## Recursos oficiales
61+
62+
- Consulta el ejemplo de Caisy + Astro en [GitHub](https://github.com/caisy-io/caisy-example-astro) o [StackBlitz](https://stackblitz.com/github/caisy-io/caisy-example-astro?file=src%2Fpages%2Fblog%2F%5B...slug%5D.astro).
63+
- Realiza búsquedas en tus documentos en [modo borrador](https://caisy.io/developer/docs/external-api/localization-and-preview#preview-mode-15) y en varias [configuraciones regionales](https://caisy.io/developer/docs/external-api/localization-and-preview#localization-in-a-graphql-query-8).
64+
- Usa [paginación](https://caisy.io/developer/docs/external-api/queries-pagination) para consultar grandes cantidades de documentos.
65+
- Usa [filter](https://caisy.io/developer/docs/external-api/external-filter-and-sorting) en tus consultas y [order](https://caisy.io/developer/docs/external-api/external-filter-and-sorting#sorting-8) los resultados.

src/content/docs/es/guides/cms/drupal.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Drupal & Astro
2+
title: Drupal y Astro
33
description: Agrega contenido a tu proyecto Astro usando Drupal como CMS
44
sidebar:
55
label: Drupal
@@ -419,7 +419,7 @@ Con la configuración anterior, ahora puedes crear un blog que use Drupal como C
419419

420420
Usa el mismo método para obtener tus datos de Drupal como arriba, pero esta vez, en una página que creará una ruta de página única para cada artículo.
421421

422-
Este ejemplo utiliza el modo estático predeterminado de Astro y crea [un archivo de página de enrutamiento dinámico](/es/guides/routing/#dynamic-routes) con la función `getStaticPaths()`. Esta función se llamará en tiempo de compilación para generar la lista de rutas que se convierten en páginas.
422+
Este ejemplo utiliza el modo estático predeterminado de Astro y crea [un archivo de página de enrutamiento dinámico](/es/guides/routing/#rutas-dinámicas) con la función `getStaticPaths()`. Esta función se llamará en tiempo de compilación para generar la lista de rutas que se convierten en páginas.
423423

424424
<Steps>
425425
1. Crea un nuevo archivo `src/pages/articles/[path].astro` e importa la interfaz `DrupalNode` y `getArticle()` desde `src/api/drupal.ts`. Obtén tus datos dentro de una función `getStaticPaths()` para crear rutas para tu blog.

0 commit comments

Comments
 (0)