VitePress vs Htmlpress
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
- Redacción — la superficie HTML de htmlpress.
- Personalización — las claves de configuración y los escapes de htmlpress.
- Comparativa — volver al índice.
Hecho con ❤ y Htmlpress