Créditos
Aquilo em que o duxt assenta, e aquilo de que partiu.
O duxt é uma camada fina sobre o trabalho de outros. Quase nada do que faz é invenção sua — a recolha das fontes, a análise, os componentes e o estilo vêm todos de projetos que resolveram esses problemas primeiro, e a descrição honesta deste repositório é a cola entre eles mais um punhado de opiniões.
Em que assenta
| Projeto | O que faz aqui |
|---|---|
| Vue | O modelo de componentes em que tudo isto está escrito |
| Nuxt | A framework, e o mecanismo de camadas em que toda a ideia assenta |
| Nuxt Content | Ir buscar, analisar, consultar — incluindo os repositórios git nativos |
| shadcn-vue | A base de componentes, copiada para a camada em vez de importada |
| reka-ui | As primitivas por baixo deles: foco, roving tabindex, ARIA |
| Tailwind CSS | O sistema de estilos e a camada de tokens |
| Shiki | Realce de sintaxe, em tempo de compilação |
| Os conjuntos de ícones | Quatro coleções, uma por tipo de marca |
| MDC | Componentes invocáveis a partir do Markdown |
A versão de cada um está no package.json, que é onde um número pertence — uma
segunda cópia em prosa é uma cópia que envelhece em silêncio.
Ícones
Quatro coleções, porque monocromático e com cor própria são trabalhos diferentes — a regra que decide qual desenha o quê está escrita em Convenções.
| Conjunto | Desenha | Licença |
|---|---|---|
| Lucide | a interface | ISC |
| vscode-icons | ficheiros, linguagens de bloco, ferramentas | MIT |
| Simple Icons | as marcas que o vscode-icons não traz | CC0-1.0 |
| flag-icons | a bandeira ao lado de cada locale | MIT |
A licença é nomeada aqui e não deixada apenas ao package.json porque a build
embute estes SVG naquilo que é publicado: o pacote transporta as obras, logo
transporta os avisos.
Uma licença sobre um ficheiro não é uma licença sobre uma marca. Os gestores de pacotes, o GitHub, o Discord, a Claude e a OpenAI são marcas dos seus titulares; são desenhadas aqui para nomear aquilo que identificam, e para mais nada.
De que partiu
Ideias que o duxt tirou de projetos sobre os quais não assenta. Aquilo em que assenta é a tabela acima — nada é nomeado duas vezes.
- shadcn/ui — a ideia original: componentes que são teus como ficheiros em vez de importados como dependência. Cada componente desta camada está aqui por causa dela.
- shadcn-docs-nuxt — o vizinho mais próximo, e a prova de que vale a pena ter um modelo de documentação sobre Nuxt Content e shadcn-vue.
- Docus — a ergonomia original de «estende uma camada, ficas com um site de documentação» no ecossistema Nuxt.
- Nuxt UI — pelo lado legível por máquinas:
llms.txte um endpoint de documentação que um agente pode chamar, tratados como resultado da compilação e não como um extra. - VitePress e Starlight — pelo que um tema de documentação deve por omissão a quem lê: um seletor de versões que sobrevive à navegação, um índice que acompanha, pesquisa que está lá sem configuração.
Todos os projetos acima documentam um repositório numa versão. A razão de existir
do duxt começa onde isso pára: vários repositórios, várias versões de cada um, e
uma lista sources a gerar as coleções para todos eles — ver
Fontes.
O que não está creditado aqui
Duas coisas estão deliberadamente ausentes. As dependências da própria camada
estão listadas no package.json e não precisam de uma segunda cópia mantida à
mão; e quem escreveu uma dada página é nomeado nessa página, a partir do
histórico git por trás dela, e não numa lista aqui que ficaria desatualizada no
commit seguinte.