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

Cambiar tema

Atajos de teclado

Archivo de configuración

Actualizado el

El archivo de configuración es opcional. Por defecto, htmlpress toma todos los archivos .html de la carpeta que le indiques.

Htmlpress se configura con un único archivo en la raíz de tu proyecto: htmlpress.yaml. Colócalo junto a tus páginas y htmlpress lo detecta automáticamente: sin flags ni variables de entorno. Sus claves siguen la configuración de Livemark.

Configuración mínima

Todas las claves son opcionales, así que un proyecto no necesita ninguna configuración. La más pequeña que resulta útil le da nombre al sitio:

title: My docs

Un htmlpress.yaml vacío equivale a no tenerlo. Sin él, cada archivo .html y .md del proyecto (por defecto include: ["**/*.html", "**/*.md"]) se convierte en una página, renderizada con el layout y el tema integrados: barra lateral, tabla de contenidos, modo oscuro, todo por defecto. Cualquier otro archivo se copia tal cual a la salida, en la misma ruta. Las carpetas ocultas como .git/ y .htmlpress/, y node_modules/, se omiten.

Qué puedes configurar

Cada clave tiene un valor predeterminado razonable. El conjunto completo:

Clave Predeterminado Uso
include **/*.html, **/*.md un glob o una lista: los archivos .html y .md que se convierten en páginas; un .md junto a su gemelo .html se copia en su lugar
exclude ninguno un glob o una lista: archivos que quedan totalmente fuera de la compilación, sean páginas o no
title el nombre de la carpeta la cabecera y el título de cada pestaña
description ninguno para las páginas que no tienen una propia
site ninguno la URL pública, para los enlaces canónicos y sociales y sitemap.xml
base ninguno la subruta bajo la que se sirve el sitio, como /repo/ en GitHub Pages; consulta Ruta base
logo ninguno la URL de una imagen, mostrada antes del título del sitio
favicon el logo la URL del icono del sitio
banner ninguno HTML para una barra de anuncios sobre la cabecera
breadcrumbs true la ruta de carpetas sobre el contenido de cada página; el <meta name="breadcrumbs"> de una página la anula
head ninguno meta, links y scripts añadidos al head de cada página; consulta Metadatos del sitio
links ninguno enlaces en la cabecera o en la barra lateral; consulta Enlaces externos
sections ninguno partes del sitio con una navegación propia; consulta Secciones de artículos
edit ninguno un enlace "Editar esta página": esta URL seguida de la ruta de la página
contentSignals todas true search, aiInput y aiTrain: cómo pueden usar el contenido los sistemas automatizados, escrito en robots.txt; consulta Agentes de IA
codeThemeLight, codeThemeDark catppuccin-latte, catppuccin-mocha Los temas de los bloques de código; consulta Temas de sintaxis.
patches ninguno Metadatos de página definidos desde la configuración, y archivos .md publicados como páginas; consulta Parches de artículos.
plugins ninguno Plugins de Textlane añadidos al pipeline de páginas, cada uno un nombre o { name, options }: md sobre el árbol de una página Markdown tras sus directivas, html sobre el árbol de cada página antes de los ids de los encabezados. Un plugin que htmlpress ya ejecuta, como md.gfm o html.slug, se reconfigura con tus opciones en lugar de ejecutarse dos veces; consulta Plugins.
skills ninguno un glob o una lista de archivos SKILL.md, relativos al proyecto, para publicar como skills de agente
languages uno, inglés los idiomas en los que se publica el sitio, el predeterminado primero; consulta Traducciones

Con languages, los textos que ve un lector (title, description, banner y los títulos de enlaces y secciones) también aceptan un mapa por código de idioma, como title: { en: Docs, es: Guía }.

El esquema completo está en rust/src/models/config.rs. Una clave desconocida es un error, así que una errata nunca pasa en silencio.

Include y exclude

include reemplaza el valor predeterminado, así que lista todas las carpetas que quieras. Las carpetas de cada glob anteriores a su primer comodín son su base: solo se leen los archivos bajo una base, y se sirven sin ella, de modo que docs/**/*.html compila docs/guide.html en /guide/. Los demás archivos bajo una base, incluidos los .html que include deja fuera, se copian tal cual.

Los globs son relativos al proyecto y no pueden salir de él (.. o una ruta absoluta es un error): * se queda dentro de una carpeta, ** atraviesa carpetas, y un patrón de include o exclude que no coincide con ningún archivo muestra una advertencia.

Ruta base

Con base definido, cada URL relativa a la raíz de la compilación (en href, src, srcset, poster y action, tanto en las páginas como en el layout y en el HTML de la configuración) la recibe como prefijo: escribe /guide/ y el sitio enlaza a /repo/guide/. Las URL relativas y absolutas no se tocan, y tampoco las url() del CSS propio de una página. start y preview también sirven el sitio bajo la base, y redirigen / allí; reinicia start tras cambiar base.

Ejemplo completo

La mayoría de los sitios reales acaban pareciéndose a esto:

site: https://htmlpress.dev
title: Htmlpress
description: Static site generator
logo: /logo.svg
banner: 'Version 1 is out: <a href="/changelog/">read more</a>'
include: docs/**/*.html
exclude: docs/**/_*
links:
  - title: GitHub
    url: https://github.com/datisthq/htmlpress
  - title: Chat
    url: https://discord.gg/example
    position: sidebar
head:
  scripts:
    - src: https://stats.example.com/script.js
      defer: ""
contentSignals:
  aiTrain: false
skills: .skills/*/SKILL.md
edit: https://github.com/datisthq/htmlpress/edit/main/docs/

Adónde ir después

Hecho con ❤ y Htmlpress

Acciones

Editar en GitHubVer como Markdown

Contenido