Saltar al contenido HtmlpressGenerador de sitios estáticos HtmlpressGenerador de sitios estáticos

Cambiar tema

Atajos de teclado

Secciones de artículos

Actualizado el

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.xml bajo el prefijo, enlazado desde el head de cada página, cuando se define site, 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

Acciones

Editar en GitHubVer como Markdown

Contenido