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

Cambiar tema

Atajos de teclado

Fumadocs vs Htmlpress

Actualizado el

Fumadocs es un framework de documentación basado en Next.js y construido en torno al App Router. Reparte las responsabilidades entre paquetes separados: fumadocs-core (lógica headless), fumadocs-ui (componentes de UI por defecto) y fumadocs-mdx (cargador de la fuente de contenido).

De un vistazo

Aspecto Htmlpress Fumadocs
Lenguaje / runtime Rust (binario único, sin runtime) TypeScript / Node 18+
Framework de UI Ninguno (HTML + CSS plano, web components htmlpress-*) React 18/19 (App Router de Next.js)
Herramienta de compilación Binario de htmlpress Next.js (Turbopack/Webpack)
Formato de contenido Páginas HTML y Markdown Markdown + MDX
Licencia MIT, autoalojado MIT, autoalojado
Modelo de salida Estático prerenderizado Estático o SSR (modos de Next.js)

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.

Fumadocs da por hecho que ya tienes (o quieres) una aplicación Next.js. No es una CLI autónoma: creas un proyecto Next, instalas los paquetes de Fumadocs y conectas fumadocs-core y fumadocs-ui a tu App Router. fumadocs-mdx lee el contenido de archivos .md/.mdx y lo expone como objetos tipados.

La división en paquetes es intencionada: fumadocs-core expone hooks y primitivas sin UI, de modo que los proyectos pueden cambiar fumadocs-ui por una UI propia sin hacer un fork.

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. Fumadocs lee de un único directorio de contenido configurado (definido en el plugin de fuente de fumadocs-mdx); las rutas se derivan de las rutas de archivo bajo esa raíz.

Superficie de contenido

Fumadocs acepta Markdown + MDX con frontmatter y componentes de React incrustados. Usa fumadocs-mdx (un cargador de MDX propio), que produce objetos de contenido tipados en TypeScript con IntelliSense completo para el frontmatter. Los componentes personalizados viven junto al código de tu aplicación Next.

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. Fumadocs usa frontmatter: title, description, icon, full.

Matriz de funciones

Capacidad Htmlpress Fumadocs
Versionado Parcial (una sección o un despliegue por versión) Parcial (mediante fuentes de contenido separadas)
Internacionalización (i18n) Sí (traducciones, selector de idioma, 7 idiomas de interfaz incluidos) Sí (integrada)
Búsqueda Sí (integrada, en el cliente) Sí (basada en Orama, Algolia opcional)
Renderizado de OpenAPI No Sí (fumadocs-openapi)
Blog No No (usa rutas de Next)
Registro de cambios No No
Sitemap Sí (con site definido) Mediante sitemap.ts de Next.js
RSS No Mediante rutas de Next.js
Temas Escapes en .htmlpress/ + tokens --htmlpress-* Cambiar fumadocs-ui o hacer override por componente
Rutas personalizadas Cualquier archivo .html; layouts adicionales en .htmlpress/layouts/ Cualquier página del App Router de Next
CLI independiente Sí (htmlpress build) No (comandos de Next.js)

Salida y despliegue

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.

Fumadocs hereda los modos de salida de Next.js: exportación estática completa (output: 'export'), SSG/SSR híbrido o totalmente dinámico. El despliegue admite lo mismo que Next.js: Vercel es el destino por defecto, pero funciona cualquier hosting de Node o Cloudflare Workers (mediante OpenNext).

Ver también

Hecho con ❤ y Htmlpress

Acciones

Editar en GitHubVer como Markdown

Contenido