Créditos
Sobre qué está construido duxt, y en qué se fijó para construirse.
duxt es una capa fina sobre el trabajo de otras personas. Casi nada de lo que hace es invención propia — la obtención de las fuentes, el análisis, los componentes y los estilos vienen todos de proyectos que resolvieron esos problemas primero, y la descripción honesta de este repositorio es el pegamento entre ellos más un puñado de opiniones.
Construido sobre
| Proyecto | Qué hace aquí |
|---|---|
| Vue | El modelo de componentes en el que está escrito todo esto |
| Nuxt | El framework, y el mecanismo de capas sobre el que se asienta toda la idea |
| Nuxt Content | Obtención, análisis y consulta — incluidos los repositorios nativos de git |
| shadcn-vue | La base de componentes, copiada dentro de la capa en vez de importada |
| reka-ui | Las primitivas que hay debajo: foco, roving tabindex, ARIA |
| Tailwind CSS | El sistema de estilos y la capa de tokens |
| Shiki | Resaltado de sintaxis, en tiempo de compilación |
| Los conjuntos de iconos | Cuatro colecciones, una por tipo de marca |
| MDC | Componentes invocables desde Markdown |
La versión de cada uno está en package.json, que es donde le corresponde estar
a un número — una segunda copia en prosa es una copia que se queda obsoleta en
silencio.
Iconos
Cuatro colecciones, porque monocromo y con color propio son trabajos distintos — la regla que decide cuál dibuja qué está escrita en Convenciones.
| Conjunto | Dibuja | Licencia |
|---|---|---|
| Lucide | la interfaz | ISC |
| vscode-icons | archivos, lenguajes de bloque, herramientas | MIT |
| Simple Icons | las marcas que vscode-icons no lleva | CC0-1.0 |
| flag-icons | la bandera junto a cada locale | MIT |
La licencia se nombra aquí y no solo en package.json porque la compilación
incrusta estos SVG en lo que se publica: el paquete transporta las obras, así que
transporta los avisos.
Una licencia sobre un archivo no es una licencia sobre una marca. Los gestores de paquetes, GitHub, Discord, Claude y OpenAI son marcas de sus titulares; aquí se dibujan para nombrar aquello que identifican, y para nada más.
Construido mirando a
Ideas que duxt tomó de proyectos sobre los que no está construido. Sobre lo que sí está construido es la tabla de arriba — nada se nombra dos veces.
- shadcn/ui — la idea original: componentes que posees como archivos en lugar de importar como dependencia. Cada componente de esta capa está aquí por ella.
- shadcn-docs-nuxt — el vecino más cercano, y la prueba de que una plantilla de documentación sobre Nuxt Content y shadcn-vue merece la pena.
- Docus — la ergonomía original de «extiende una capa y tienes un sitio de documentación» en el ecosistema de Nuxt.
- Nuxt UI — por la parte legible por máquinas:
llms.txty un endpoint de documentación que un agente puede llamar, tratados como salida de la compilación y no como un añadido. - VitePress y Starlight — por lo que un tema de documentación le debe a un lector por defecto: un selector de versiones que sobrevive a la navegación, una tabla de contenidos que sigue el desplazamiento, una búsqueda que está ahí sin configuración.
Todos los proyectos de arriba documentan un repositorio en una versión. La razón
de existir de duxt empieza donde eso termina: varios repositorios, varias
versiones de cada uno, y una sola lista sources que genera las colecciones de
todos ellos — véase Fuentes.
Lo que no se acredita aquí
Faltan dos cosas a propósito. Las dependencias de la propia capa están listadas
en package.json y no necesitan una segunda copia mantenida a mano; y quienes
escribieron una página determinada aparecen nombrados en esa página, a partir
del historial git que hay detrás, y no en una lista aquí que quedaría obsoleta
en el siguiente commit.