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

Cambiar tema

Atajos de teclado

VitePress vs Htmlpress

Actualizado el

VitePress es el framework oficial de documentación de Vue, construido sobre Vite. Está centrado en Markdown, trae un tema por defecto minimalista y es lo que impulsa la mayor parte de la documentación del ecosistema Vue (el propio Vue, Vite, Pinia, …).

De un vistazo

Aspecto Htmlpress VitePress
Lenguaje / runtime Rust (binario único, sin runtime) TypeScript / Node 18+
Framework de UI Ninguno (HTML + CSS plano, web components htmlpress-*) Vue 3
Herramienta de compilación Binario de htmlpress Vite (pipeline de compilación propio)
Formato de contenido Páginas HTML y Markdown Markdown con plantillas de Vue
Licencia MIT, autoalojado MIT, autoalojado
Modelo de salida Estático prerenderizado Estático prerenderizado (SSG)

Arquitectura

htmlpress es un único binario de Rust que se instala desde npm (gethtmlpress), PyPI o crates.io. Envuelve cada página HTML en un layout con una navegación y un tema; no hay bundler, ni framework de UI, ni API de plugins. Cada archivo integrado (el layout, los estilos, los scripts y cada componente) se puede escapar: un archivo en la misma ruta bajo .htmlpress/ lo reemplaza.

VitePress envuelve Vite con su propio pipeline de SSG y renderiza Vue. Su runtime es vue-router más un tema por defecto integrado.

En htmlpress la disposición del contenido no tiene restricciones: escanea por glob (include/exclude en htmlpress.yaml, todos los archivos .html por defecto), y la URL de una página sigue su ruta de archivo bajo la base del glob, así que docs/**/*.html sirve docs/guide.html en /guide/. No hace falta una carpeta docs/. La navegación se construye a partir de las carpetas y del <meta name="order"> de cada página; el index.html de una carpeta da nombre a su grupo. VitePress espera todo el contenido bajo una única raíz de fuentes (docs/ por defecto, configurable mediante srcDir), con rutas derivadas de las rutas de archivo.

Superficie de contenido

VitePress acepta Markdown con plantillas de Vue integradas: puedes usar componentes de Vue y bloques <script setup> dentro de archivos .md. No admite MDX en el sentido de React.

Las páginas de htmlpress son HTML semántico plano, al que el tema da estilo a partir de los propios elementos. Los bloques más ricos son elementos personalizados htmlpress-* (htmlpress-callout, htmlpress-tabs, htmlpress-filetree, htmlpress-cards, …), cuyo CSS y JS se enlazan solo en las páginas que usan la etiqueta. Un proyecto añade su propia etiqueta con .htmlpress/components/<name>/<name>.html, que reemplaza la etiqueta en tiempo de compilación.

htmlpress no tiene frontmatter: los metadatos de una página son su propio <head> — <title>, <meta name="description">, <meta name="order">, <meta name="layout"> y <meta name="image">; las demás etiquetas de <head> se conservan. VitePress usa frontmatter: title, layout, sidebar, outline, prev/next.

Callouts/admoniciones: VitePress usa contenedores ::: tip / ::: warning; htmlpress usa <htmlpress-callout type="warning">.

Matriz de funciones

Capacidad Htmlpress VitePress
Versionado Parcial (una sección o un despliegue por versión) No (soluciones de la comunidad)
Internacionalización (i18n) Sí (traducciones, selector de idioma, 7 idiomas de interfaz incluidos) Sí (integrada)
Búsqueda Sí (integrada, en el cliente) Sí (local + Algolia)
Blog No No (plugins de la comunidad)
Registro de cambios No No
Sitemap Sí (con site definido) Sí
RSS No No
Temas Escapes en .htmlpress/ + tokens --htmlpress-* Temas propios mediante .vitepress/theme/
Plugins No (componentes del proyecto en .htmlpress/components/) Plugins de Vite + plugins de markdown-it
Rutas personalizadas Cualquier archivo .html; layouts adicionales en .htmlpress/layouts/ Rutas dinámicas mediante paths()

Salida y despliegue

Ambos producen un directorio de HTML estático + recursos listo para cualquier hosting estático. VitePress emite en .vitepress/dist/ por defecto; htmlpress emite en .htmlpress/build/.

htmlpress escribe cada página como HTML estático en .htmlpress/build/, junto con robots.txt, un sitemap.xml cuando site está definido, una copia en Markdown de cada página, llms.txt y las skills para agentes en .well-known/agent-skills/. La clave base sirve el sitio bajo una subruta. Consulta Despliegue para ver guías por hosting.

Ver también

Hecho con ❤ y Htmlpress

Acciones

Editar en GitHubVer como Markdown

Contenido