# Secciones de artículos

> Divide un sitio en secciones, cada una con su propia pestaña y navegación.

Una sección es una parte del sitio, como una guía o una referencia de API, con su propio prefijo de URL, su propia pestaña y su propia navegación: mientras una de sus páginas está abierta, la barra lateral y los enlaces de anterior y siguiente solo muestran las páginas de esa sección. Htmlpress incluye estos tipos de sección:

- **Article**: el predeterminado. Las páginas bajo un prefijo, agrupadas en la barra lateral por carpeta.
- **Custom**: solo una pestaña que lleva a una URL.
- **Blog**: entradas con fecha, de la más reciente a la más antigua, con páginas de etiquetas y un feed RSS.
- **Changelog**: una página por versión de un registro de cambios en Markdown.

## Uso básico

```yaml
site: https://example.com
sections:
  - title: Guide
    prefix: /
  - title: API
    prefix: /api/
    siteTitle: API Reference
  - title: GitHub
    type: custom
    url: https://github.com/datisthq/htmlpress
```

Cuando se omite `sections`, todas las páginas se renderizan en una única navegación, lo que conviene a los sitios pequeños.

## Campos comunes

Toda sección acepta:

| Campo             | Predeterminado                        | Propósito                                                                                                                                                                                                            |
| ----------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `title`           | ninguno, obligatorio                  | El nombre de la pestaña y el grupo de la sección en `llms.txt`.                                                                                                                                                      |
| `type`            | `article`                             | `article` posee páginas; `custom` es solo una pestaña hacia su `url`.                                                                                                                                                |
| `prefix`          | ninguno, obligatorio para `article`   | La ruta de carpeta que comparten sus páginas, que empieza y termina con `/` (`/`, `/api/`). La pestaña lleva a la página del prefijo o, si no existe, a la primera página de la sección.                             |
| `url`             | ninguno, obligatorio para `custom`    | Adónde lleva una pestaña `custom`.                                                                                                                                                                                   |
| `position`        | `header`                              | `header` para una pestaña junto a los enlaces de la cabecera, `sidebar` para una entrada encima de las páginas de la barra lateral.                                                                                  |
| `icon`            | ninguno                               | Un [icono integrado](/es/authoring/rich-elements/#iconos) antes del título, como `book-open`.                                                                                                                        |
| `siteTitle`       | el `title` del sitio                  | El título de la marca mientras una de las páginas de la sección está abierta.                                                                                                                                        |
| `siteLink`        | `/`                                   | Adónde enlaza la marca mientras una de las páginas de la sección está abierta.                                                                                                                                       |
| `siteDescription` | la `description` del sitio            | La descripción para las páginas de la sección que no tienen una propia, y la que aparece bajo la marca.                                                                                                              |
| `source`          | ninguno, obligatorio para `changelog` | El registro de cambios en Markdown que se divide, relativo al proyecto; debe quedar dentro del proyecto y no ser un archivo oculto. O la URL de un repositorio de GitHub, para compilarlo a partir de sus versiones. |
| `version`         | `false`                               | Para un `changelog`: muestra la última versión junto al título.                                                                                                                                                      |

Cualquier otro campo es un error, y también lo es una sección `article` sin `prefix`, un prefijo que no empieza y termina con `/`, o una sección `custom` sin `url`. En un teléfono, todas las secciones, de cabecera o de barra lateral, se listan en la barra lateral.

## Secciones de artículos

Documentación simple, y el valor predeterminado: puedes omitir `type` por completo.

```yaml
- title: Guide
  prefix: /guide/
```

Dentro de una sección, la barra lateral anida sus páginas por carpeta, a cualquier profundidad. Las páginas de la raíz aparecen sin agrupar, y cada carpeta obtiene su propio grupo plegable dentro del de su carpeta padre, con el título de su `index.html` o, si no lo tiene, el nombre de la carpeta:

- introduction.html

- guides

  - index.html
  - install.html
  - deploy.html

- reference

  - index.html

  - cli.html

  - api

    - index.html
    - auth.html

`guides/index.html` se sirve en `/guides/`, la página propia del grupo, y además da nombre a la carpeta en las migas de pan. Sin `sections`, todo el sitio se agrupa de esta forma.

Una sección `custom` no posee páginas. Su pestaña se marca como actual cuando su `url` es interna y apunta a la página abierta o a una carpeta por encima de ella (`/` solo en la página de inicio); una URL externa nunca lo hace.

```yaml
- title: Blog
  type: custom
  url: https://blog.example.com
```

## Secciones de blog

Las páginas de una sección `blog` son entradas: fechadas con `<meta name="date">`, firmadas con `<meta name="author">` y etiquetadas con `<meta name="keywords">`. Los enlaces de anterior y siguiente las listan de la más reciente a la más antigua. La barra lateral enlaza a todas las entradas, las cinco más recientes, el feed RSS (con `site`) y cada etiqueta; la barra lateral de un registro de cambios enlaza igualmente a todas las versiones y a las cinco más recientes. La compilación añade:

- un índice en el prefijo que lista todas las entradas, salvo que la sección tenga su propio `index.html`;
- una página por etiqueta en `tags/<tag>/` bajo el prefijo;
- un feed RSS en `rss.xml` bajo el prefijo, enlazado desde el head de cada página, cuando se define `site`, ya que un feed usa enlaces absolutos.

```yaml
- title: Blog
  type: blog
  prefix: /blog/
```

## Secciones de registro de cambios

Una sección `changelog` divide su `source` en cada encabezado `##` en una página por versión en `<version>/` bajo el prefijo, de la más reciente a la más antigua tal como las lista el archivo, además de un índice que las enumera. Un encabezado de release-please, `## [0.2.0](…) (2026-10-01)`, aporta la versión y su fecha; los encabezados `###` de la versión se convierten en sus secciones. Con `version: true`, la pestaña muestra la última versión.

```yaml
- title: Changelog
  type: changelog
  prefix: /changelog/
  source: CHANGELOG.md
  version: true
```

Un `source` que nombra un repositorio de GitHub, `https://github.com/acme/tool`, compila en cambio una página por versión: su etiqueta como versión, su fecha de publicación y sus notas, y un enlace "Ver en GitHub". El HTML sin procesar de las notas se muestra como texto, así que una versión no puede añadir scripts al sitio. La compilación lee las primeras 100 versiones de la API de GitHub, con `GITHUB_TOKEN` del entorno cuando está definido, y las guarda en caché en `.htmlpress/cache/`; una compilación posterior revalida la caché y recurre a ella cuando no se puede contactar con GitHub. Sin caché, una petición fallida hace fallar la compilación.

## Orden y correspondencia

Las URL de las páginas se asignan a las secciones por el prefijo más largo. Dada `/api/v2/auth/` y secciones con los prefijos `/` y `/api/`, la página se coloca en `/api/`. Como un prefijo es una ruta de carpeta, `/guide/` nunca se queda con `/guides/`. Las páginas que no pertenecen a ninguna sección forman una parte más por su cuenta, con su propia navegación.

`llms.txt` también agrupa sus enlaces por sección, en el orden de la configuración, con las páginas que no pertenecen a ninguna sección al final bajo "Other"; sin `sections`, por carpeta de primer nivel.

Dentro de una navegación, una página pertenece al grupo del `index.html` de su carpeta, y ese índice al de su carpeta padre: `guides/cli/run.html` queda en el grupo `cli` dentro de "Guides". Una carpeta sin `index.html` no forma grupo, y sus páginas quedan arriba. Las páginas se ordenan por `<meta name="order">` entre sus hermanas: el `index.html` raíz siempre va primero, los órdenes de 0 o más siguen en orden ascendente, después las páginas sin orden por ruta, y luego los órdenes negativos, con `-1` al final. Un grupo se coloca donde se ordena su `index.html`, así que dale un orden para colocar todo el grupo. El paginador recorre la barra lateral de arriba abajo, con el índice de cada grupo antes de sus páginas.

Un `404.html` en la raíz se excluye de la barra lateral; es la página que muestra un hosting para una URL inexistente, y un proyecto sin ella obtiene un "Página no encontrada" integrado.

## Ver también

- [Enlaces externos](/es/customization/external-links/): añade enlaces junto a las pestañas de tus secciones.
- [Frontmatter](/es/authoring/frontmatter/): el `<title>` y el `<meta name="order">` que determinan el contenido de las secciones.
