Skip to content

Commit

Permalink
Merge branch 'main' into feat/matrix_icon
Browse files Browse the repository at this point in the history
  • Loading branch information
delucis committed Dec 6, 2023
2 parents e75c79c + 909afa2 commit 3605047
Show file tree
Hide file tree
Showing 97 changed files with 5,187 additions and 508 deletions.
5 changes: 0 additions & 5 deletions .changeset/calm-bananas-nail.md

This file was deleted.

5 changes: 5 additions & 0 deletions .changeset/large-planes-ring.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@astrojs/starlight": patch
---

Add Dutch translations of default aside labels
5 changes: 0 additions & 5 deletions .changeset/tidy-mails-brake.md

This file was deleted.

Binary file added docs/src/assets/showcase/secco.lekoarts.de.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/src/components/showcase-sites.astro
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,5 @@ import FluidGrid from './fluid-grid.astro';
thumbnail="docs.ethfollow.xyz.png"
/>
<Card title="Knip" href="https://knip.dev" thumbnail="knip.dev.png" />
<Card title="secco" href="https://secco.lekoarts.de" thumbnail="secco.lekoarts.de.png" />
</FluidGrid>
16 changes: 16 additions & 0 deletions docs/src/content/docs/es/guides/authoring-content.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,22 @@ Starlight admite la gama completa de la sintaxis [Markdown](https://daringfireba

Por favor, asegúrate de consultar la documentación de [MDX](https://mdxjs.com/docs/what-is-mdx/#markdown) o [Markdoc](https://markdoc.dev/docs/syntax) si estás utilizando esos formatos de archivo, ya que el soporte y el uso de Markdown pueden variar.

## Frontmatter

Puedes personalizar individualmente las páginas en Starlight estableciendo valores en el frontmatter.
El frontmatter se establece en la parte superior de tus archivos entre separadores `---`:

```md title="src/content/docs/example.md"
---
title: Mi título de página
---

El contenido de la página sigue luego de los `---`.
```

Cada página debe incluir al menos un `title`.
Vea la [referencia de frontmatter](/es/reference/frontmatter/) para ver todos los campos disponibles y cómo añadir campos personalizados.

## Estilos en línea

El texto puede estar **en negrita**, _en cursiva_, o ~~tachado~~.
Expand Down
25 changes: 25 additions & 0 deletions docs/src/content/docs/es/guides/i18n.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -234,3 +234,28 @@ Puedes establecer traducciones para la UI de Pagefind en el mismo archivo JSON u
"pagefind.searching": "Searching for [SEARCH_TERM]..."
}
```

### Extiende el esquema de traducción

Agrega claves personalizadas a los diccionarios de traducción de tu sitio estableciendo `extend` en las opciones de `i18nSchema()`.
En el siguiente ejemplo, una clave nueva, opcional `custom.label` se agrega a las claves predeterminadas:

```diff lang="js"
// src/content/config.ts
import { defineCollection, z } from 'astro:content';
import { docsSchema, i18nSchema } from '@astrojs/starlight/schema';
export const collections = {
docs: defineCollection({ schema: docsSchema() }),
i18n: defineCollection({
type: 'data',
schema: i18nSchema({
+ extend: z.object({
+ 'custom.label': z.string().optional(),
+ }),
}),
}),
};
```

Aprende más sobre los esquemas de colección de contenido en [“Definir un esquema de colección”](https://docs.astro.build/es/guides/content-collections/#definiendo-un-esquema-de-colección) en la documentación de Astro.
2 changes: 0 additions & 2 deletions docs/src/content/docs/es/guides/overriding-components.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
---
title: Sobreescribiendo Componentes
description: Aprende como sobreescribir los componentes integrados de Starlight para agregar elementos personalizados a la interfaz de tu sitio de documentación.
sidebar:
badge: Nuevo
---

La UI por defecto de Starlight y las opciones de configuración están diseñadas para ser flexibles y funcionar para una variedad de contenidos. Gran parte de la apariencia predeterminada de Starlight se puede personalizar con [CSS](/es/guides/css-and-tailwind/) y [opciones de configuración](/es/guides/customization/).
Expand Down
166 changes: 166 additions & 0 deletions docs/src/content/docs/es/guides/site-search.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
---
title: Búsqueda en el sitio
description: Aprende sobre las funciones de búsqueda de sitios integradas de Starlight y cómo personalizarlas.
sidebar:
badge: Nuevo
---

import { Tabs, TabItem } from '@astrojs/starlight/components';

Por defecto, los sitios de Starlight incluyen una búsqueda de texto completo impulsada por [Pagefind](https://pagefind.app/), que es una herramienta de búsqueda rápida y de bajo ancho de banda para sitios estáticos.

No es necesaria ninguna configuración para habilitar la búsqueda. Construye e implementa tu sitio, luego usa la barra de búsqueda en el encabezado del sitio para encontrar contenido.

## Ocultar contenido en los resultados de búsqueda

### Excluye una página

Para excluir una página del índice de búsqueda, agrega [`pagefind: false`](/reference/frontmatter/#pagefind) al frontmatter de la página:

```md title="src/content/docs/not-indexed.md" ins={3}
---
title: Contenido para ocultar de la búsqueda
pagefind: false
---
```

### Excluye parte de una página

Pagefind ignorará el contenido dentro de un elemento con el atributo [`data-pagefind-ignore`](https://pagefind.app/docs/indexing/#removing-individual-elements-from-the-index).

En el siguiente ejemplo, el primer párrafo se mostrará en los resultados de búsqueda, pero el contenido del `<div>` no:

```md title="src/content/docs/partially-indexed.md" ins="data-pagefind-ignore"
---
title: Página parcialmente indexada
---

Este texto será descubrible a través de la búsqueda.

<div data-pagefind-ignore>

Este texto estará oculto de la búsqueda.

</div>
```

## Proveedores de búsqueda alternativos

### Algolia DocSearch

Si tienes acceso al [programa DocSearch de Algolia](https://docsearch.algolia.com/) y quieres usarlo en lugar de Pagefind, puedes usar el plugin oficial Starlight DocSearch.

1. Instala `@astrojs/starlight-docsearch`:

<Tabs>

<TabItem label="npm">

```sh
npm install @astrojs/starlight-docsearch
```

</TabItem>

<TabItem label="pnpm">

```sh
pnpm install @astrojs/starlight-docsearch
```

</TabItem>

<TabItem label="Yarn">

```sh
yarn add @astrojs/starlight-docsearch
```

</TabItem>

</Tabs>

2. Agrega DocSearch a tu configuración de Starlight [`plugins`](/es/reference/configuration/#plugins) en `astro.config.mjs` y pásale tu `appId`, `apiKey` e `indexName` de Algolia:

```js ins={4,10-16}
// astro.config.mjs
import { defineConfig } from 'astro/config';
import starlight from '@astrojs/starlight';
import starlightDocSearch from '@astrojs/starlight-docsearch';
export default defineConfig({
integrations: [
starlight({
title: 'Sitio con DocSearch',
plugins: [
starlightDocSearch({
appId: 'TU_ID_DE_APP'
apiKey: 'TU_LLAVE_DE_API_DE_BÚSQUEDA'
indexName: 'TU_NOMBRE_DE_ÍNDICE',
}),
],
}),
],
});
```
Con esta configuración actualizada, la barra de búsqueda de tu sitio ahora abrirá un modal de Algolia en lugar del modal de búsqueda predeterminado.
#### Traduciendo la UI de DocSearch
DocSearch solo proporciona cadenas de UI en inglés de forma predeterminada.
Para agregar traducciones de la UI al modal en otros idiomas, usa el [sistema de internacionalización](/guides/i18n/#traduce-la-ui-de-starlight) incorporado de Starlight.
1. Extiende la definición de la colección de contenido `i18n` de Starlight con el esquema de DocSearch en `src/content/config.ts`:
```js ins={4} ins=/{ extend: .+ }/
// src/content/config.ts
import { defineCollection } from 'astro:content';
import { docsSchema, i18nSchema } from '@astrojs/starlight/schema';
import { docSearchI18nSchema } from '@astrojs/starlight-docsearch/schema';
export const collections = {
docs: defineCollection({ schema: docsSchema() }),
i18n: defineCollection({
type: 'data',
schema: i18nSchema({ extend: docSearchI18nSchema() }),
}),
};
```
2. Agrega traducciones a tus archivos JSON en `src/content/i18n/`.
Estas son las predeterminadas en inglés que usa DocSearch:
```json title="src/content/i18n/en.json"
{
"docsearch.searchBox.resetButtonTitle": "Clear the query",
"docsearch.searchBox.resetButtonAriaLabel": "Clear the query",
"docsearch.searchBox.cancelButtonText": "Cancel",
"docsearch.searchBox.cancelButtonAriaLabel": "Cancel",
"docsearch.startScreen.recentSearchesTitle": "Recent",
"docsearch.startScreen.noRecentSearchesText": "No recent searches",
"docsearch.startScreen.saveRecentSearchButtonTitle": "Save this search",
"docsearch.startScreen.removeRecentSearchButtonTitle": "Remove this search from history",
"docsearch.startScreen.favoriteSearchesTitle": "Favorite",
"docsearch.startScreen.removeFavoriteSearchButtonTitle": "Remove this search from favorites",
"docsearch.errorScreen.titleText": "Unable to fetch results",
"docsearch.errorScreen.helpText": "You might want to check your network connection.",
"docsearch.footer.selectText": "to select",
"docsearch.footer.selectKeyAriaLabel": "Enter key",
"docsearch.footer.navigateText": "to navigate",
"docsearch.footer.navigateUpKeyAriaLabel": "Arrow up",
"docsearch.footer.navigateDownKeyAriaLabel": "Arrow down",
"docsearch.footer.closeText": "to close",
"docsearch.footer.closeKeyAriaLabel": "Escape key",
"docsearch.footer.searchByText": "Search by",
"docsearch.noResultsScreen.noResultsText": "No results for",
"docsearch.noResultsScreen.suggestedQueryText": "Try searching for",
"docsearch.noResultsScreen.reportMissingResultsText": "Believe this query should return results?",
"docsearch.noResultsScreen.reportMissingResultsLinkText": "Let us know."
}
```
25 changes: 25 additions & 0 deletions docs/src/content/docs/es/reference/configuration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,16 @@ Cuando sea `false`, se utilizan los colores proporcionados por el tema de resalt
Cuando usas temas personalizados y estableces esto en `true`, debes proporcionar por lo menos un tema oscuro y uno claro para asegurar un contraste de color adecuado.
:::

### `pagefind`

**tipo:** `boolean`
**por defecto:** `true`

Define si el proveedor de búsqueda predeterminado de Starlight [Pagefind](https://pagefind.app/) está habilitado.

Establece esta opción a `false` para excluir una página de los resultados de búsqueda.
Esto también ocultará la interfaz de usuario de búsqueda predeterminada si está en uso.

### `head`

**tipo:** [`HeadConfig[]`](#headconfig)
Expand Down Expand Up @@ -519,3 +529,18 @@ starlight({
```

Consulta la [Referencia de Personalización de Componentes](/es/reference/overrides/) para obtener detalles de todos los componentes que puedes anular.

### `plugins`

**tipo:** [`StarlightPlugin[]`](/es/reference/plugins/#referencia-rápida-de-la-api)

Extiende Starlight con plugins personalizados.
Los plugins aplican cambios a tu proyecto para modificar o agregar a las funcionalidades a Starlight.

```js
starlight({
plugins: [starlightPlugin()],
});
```

Vea la [Referencia de Plugins](/es/reference/plugins/) para obtener detalles sobre cómo crear tus propios plugins.
68 changes: 68 additions & 0 deletions docs/src/content/docs/es/reference/frontmatter.md
Original file line number Diff line number Diff line change
Expand Up @@ -372,3 +372,71 @@ sidebar:
target: _blank
---
```

## Personaliza el esquema del frontmatter

El esquema del frontmatter para la colección de contenido `docs` de Starlight se configura en `src/content/config.ts` usando el auxiliar `docsSchema()`:

```ts {3,6}
// src/content/config.ts
import { defineCollection } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';

export const collections = {
docs: defineCollection({ schema: docsSchema() }),
};
```

Aprende más sobre los esquemas de colección de contenido en [“Definir un esquema de colección”](https://docs.astro.build/es/guides/content-collections/#definiendo-un-esquema-de-colección) en la documentación de Astro.

`docsSchema()` toma las siguientes opciones:

### `extend`

**tipo:** esquema Zod o función que devuelve un esquema Zod
**por defecto:** `z.object({})`

Extiende el esquema de Starlight con campos adicionales estableciendo `extend` en las opciones de `docsSchema()`.
El valor debe ser un [esquema Zod](https://docs.astro.build/es/guides/content-collections/#definiendo-tipos-de-datos-con-zod).

En el siguiente ejemplo, proporcionamos un tipo más estricto para `description` para hacerlo requerido y agregamos un nuevo campo opcional `category`:

```ts {8-13}
// src/content/config.ts
import { defineCollection, z } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';

export const collections = {
docs: defineCollection({
schema: docsSchema({
extend: z.object({
// Hacer un campo integrado requerido en lugar de opcional.
description: z.string(),
// Agrega un nuevo campo al esquema.
category: z.enum(['tutorial', 'guide', 'reference']).optional(),
}),
}),
}),
};
```

Para tomar ventaja del [auxiliar `image()` de Astro](https://docs.astro.build/es/guides/images/#imágenes-en-colecciones-de-contenido), usa una función que devuelva tu extensión de esquema:

```ts {8-13}
// src/content/config.ts
import { defineCollection, z } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';

export const collections = {
docs: defineCollection({
schema: docsSchema({
extend: ({ image }) => {
return z.object({
// Agrega un campo que debe resolverse a una imagen local.
cover: image(),
});
},
}),
}),
};
```
8 changes: 8 additions & 0 deletions docs/src/content/docs/es/reference/overrides.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,12 @@ Objeto `Date` de JavaScript que representa cuándo se actualizó por última vez

Objeto `URL` para la dirección donde se puede editar esta página si está habilitado.

#### `labels`

**Tipo:** `Record<string, string>`

Un objecto que contiene cadenas de UI localizadas para la página actual. Consulta la guía ["Traducir la UI de Starlight"](/es/guides/i18n/#traduce-la-ui-de-starlight) para ver una lista de todas las claves disponibles.

---

## Componentes
Expand Down Expand Up @@ -229,6 +235,8 @@ La implementación predeterminada incluye lógica para renderizar logotipos defi
Componente utilizado para renderizar la UI de búsqueda de Starlight.
La implementación predeterminada incluye el botón en el encabezado y el código para mostrar un modal de búsqueda cuando se hace clic y cargar la UI de [Pagefind](https://pagefind.app/).

Cuando [`pagefind`](/es/reference/configuration/#pagefind) está deshabilitado, el componente de búsqueda predeterminado no se renderizará. Sin embargo, si reemplazas `Search`, tu componente personalizado siempre se renderizará incluso si la opción de configuración `pagefind` es `false`. Esto te permite agregar una interfaz de usuario para proveedores de búsqueda alternativos cuando se deshabilita Pagefind.

#### `SocialIcons`

**Componente por defecto:** [`SocialIcons.astro`](https://github.com/withastro/starlight/blob/main/packages/starlight/components/SocialIcons.astro)
Expand Down
Loading

0 comments on commit 3605047

Please sign in to comment.