# VitePress vs Htmlpress

> Docs en Markdown con Vite + Vue frente a un único binario que compila páginas HTML planas.

[VitePress](https://vitepress.dev) 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](/es/deployment/) para ver guías por hosting.

## Ver también

- [Redacción](/es/authoring/) — la superficie HTML de htmlpress.
- [Personalización](/es/customization/) — las claves de configuración y los escapes de htmlpress.
- [Comparativa](/es/comparison/) — volver al índice.
