Pular para o conteúdo
duxt
v0.9.0 publicada

Documentação com versões, a partir dos repositórios que já tens

O duxt é uma camada Nuxt: estende-a e a tua pasta docs/ torna-se um site, com tema, pesquisa, referência de API e llms.txt. Aponta-a para outros repositórios, ou para tags do mesmo, e cada um torna-se uma versão.

linha de configuração
1
idiomas incluídos
7
licenciado, código aberto
MIT

Demonstração ao vivo

http://localhost/pt-BR/getting-started
Abrir

Configuração

Uma linha, e a pasta é um site

O duxt é uma camada Nuxt: estendê-la traz o tema, as páginas, os componentes e os passos da build de uma vez, e deixa tudo substituível.

  • Sem gerador e sem nada para ejetar: o teu repositório mantém os seus ficheiros.
  • Substitui um componente colocando o teu no mesmo caminho.
  • Compila para um site estático: publica onde o Nuxt for.
Instalação
export default defineNuxtConfig({
  extends: ['@kirchdev/duxt']
})
export default defineAppConfig({
  duxt: {
    title: 'Acme',
    // The folder you already write in.
    sources: [{ path: 'docs' }]
  }
})

Fontes

Vários repositórios, várias versões, uma lista

Uma fonte é um repositório e as versões, tags ou branches a publicar. O duxt transforma a lista numa coleção por versão e repositório e nos prefixos que as separam, tudo na build.

  • Clonagem, autenticação de repositórios privados e cache vêm do próprio Content v3.
  • Uma fonte única não precisa de prefixo: um segmento com um só valor não distingue nada.
  • O seletor permanece na página que está a ler, e avisa quando ela não existe lá.
URLs e versões
sources: [
  // The repository you are standing in.
  { path: 'docs' },

  // Another one: retain the newest patch in every minor line.
  {
    repo: 'acme/api',
    path: 'docs',
    releases: { select: 'minor' },
    refs: [{ branch: 'main', status: 'upcoming' }]
  }
]
# What the build publishes from the list beside this.

/guides/deploying          # this repository, no prefix
/api/guides/retries        # acme/api at the newest selected release
/api/main/guides/retries   # the branch, marked "upcoming"
/api/v1.4.0/guides/retries # another retained minor line

Referência gerada

Referência a partir dos artefactos que já publicas

OpenAPI torna-se páginas de operações e schemas, Bruno pedidos e downloads, e tfplugindocs uma referência de provider. Tudo continua a ser uma coleção Content comum.

  • O OpenAPI fornece operações, schemas, exemplos e modelos de segurança.
  • O Bruno preserva pastas, documentação e variáveis e oferece um download expurgado.
  • O tfplugindocs conserva categorias e títulos do provider sem achatar a árvore Markdown.
Como funciona a referência gerada
openapi: 3.1.0
info:
  title: Acme API
  version: 2.4.0
paths:
  /widgets:
    get:
      operationId: listWidgets
meta {
  name: List widgets
  type: http
  seq: 1
}

get {
  url: {{baseUrl}}/widgets
  body: none
  auth: inherit
}
---
page_title: acme_widget Resource
subcategory: Widgets
---

# acme_widget (Resource)

Creates and manages an Acme widget.

Experimentar

Um cliente que envia o pedido real

Cada página de operação traz um cliente. Preenche os parâmetros, edita o corpo contra o seu esquema, envia a partir do teu browser, e lê a resposta ao lado do exemplo que a teria produzido.

  • Sete exemplos de origem, doze incluídos, ou um teu, reescritos enquanto escreves.
  • O editor do corpo é CodeMirror, carregado a pedido: uma página sem endpoint não descarrega nada dele.
  • O teu token fica no teu browser: aqui não há servidor a quem enviá-lo.
Como funciona o cliente

Enviar um pedido

Autenticação

O que escrever aqui fica neste separador, nunca é guardado e só é enviado para o servidor que escolheu.

O pedido é enviado pelo seu navegador, diretamente para esse servidor.

Na tua stack

O mesmo pedido, na tua linguagem

Não um exemplo de um pedido como o de cima, mas esse pedido. O servidor que escolheste, o token que escreveste e o corpo que editaste, reescritos a cada tecla para o cliente onde o vais colar.

  • Um só componente: o exemplo e o botão não podem divergir.
  • Acrescenta os teus com `requestSamples`, ou tira os que os teus leitores não usam.
Exemplos de pedido

Exemplo de pedido

curl '/demo/echo' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer demo-token' \
  -d '{
  "reference": "HB-1042",
  "mode": "sea"
}'

Leitores automáticos

Escrita também para o modelo que a lê

O mesmo conteúdo em formatos legíveis por máquinas: índice em llms.txt, versões predefinidas em llms-full.txt, cada página em Markdown e rota MCP para listar, pesquisar e ler.

  • As rotas de texto podem ser pré-renderizadas; o MCP serve as mesmas coleções em execução.
  • Cada página tem um «copiar como Markdown» e uma ligação que a abre num assistente.
  • A rota MCP serve as mesmas coleções que o site consulta: uma fonte, dois leitores.
Leitores automáticos
http://localhost/llms.txt
Abrir

Funcionalidades