Secciones de artículos
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
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 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.
- 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.
- 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.xmlbajo el prefijo, enlazado desde el head de cada página, cuando se definesite, ya que un feed usa enlaces absolutos.
- 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.
- 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: añade enlaces junto a las pestañas de tus secciones.
-
Frontmatter: el
<title>y el<meta name="order">que determinan el contenido de las secciones.
Hecho con ❤ y Htmlpress