Saltar para o conteúdo
duxt

Configuração

Cada chave sob duxt em app.config.ts — o que controla e quando é lida.

Tudo o que se segue vive sob duxt no teu app/app.config.ts. Como a combinação funciona, e porque os arrays substituem em vez de acrescentar, está em Configuração.

Site

ChavePor omissãoO que controla
titlenenhumO nome na barra de navegação e no título de SEO
logonenhumUm logótipo em vez do par de ícone e nome — ver abaixo
versionnenhumaO distintivo ao lado
organizationnenhumaQuem publica o site, para schema.org — ver abaixo
localesos seteQue idiomas da camada este site serve
breadcrumbtruefalse retira o trilho por cima do título da página
pageIconnenhumÍcone para páginas sem um próprio — o da secção ganha
packageManagerspnpm, npm, yarn, bunQue gestores um bloco de comando oferece, por essa ordem
requestSamplessete de dozeQue amostras de código o cliente de ensaio oferece — ver Amostras de pedido
sampleLanguagesnenhumaGramáticas Shiki adicionais, para x-codeSamples numa linguagem que nenhuma amostra nomeia
poweredByligadofalse retira a linha «Powered by duxt» do rodapé
CampoTipoNotas
srcstringA marca. Sem valor fica o ícone genérico ao lado de title
srcDarkstringTrocado por CSS sob a classe dark, não por script
alttextoRecai em title

Definir um é Dá identidade ao teu site.

organization

O nó Organization que os motores de busca e os resumos de IA leem para nomear uma fonte. Ausente até o definires: o duxt renderiza a documentação de outros e não adivinha de quem.

CampoTipoNotas
nametextoO nome de quem publica. Sem ele não se publica nada
urlstringO site dessa entidade. Recorre a site.url
logostringAbsoluto, ou um caminho desde a raiz; quadrado e com 112px ou mais

Uma entrada de secção é uma ligação mais um campo próprio:

CampoTipoNotas
pageIconstringÍcone para as páginas desta secção que não definam um. Prevalece sobre duxt.pageIcon; o frontmatter de uma página continua a ganhar

Útil onde as páginas não podem levar ícone — o frontmatter de um ADR está fixo em title, description, status e date, pelo que o registo de decisões seria apresentado sem nenhum.

ChavePor omissãoO que controla
navigationuma entradaLigações da barra; uma entrada com children vira um menu
sectionsvazioA segunda linha da barra — as partes de topo da documentação
linksvazioLigações com ícone à direita da barra
asidesó o títulotitle e links sob o índice
footervaziocopyright e legal
landinguma açãoA página em /

A maioria é entregue vazia, por duas razões diferentes. links, aside.links, footer.legal, title, version e o texto da página inicial nomeiam um projeto concreto — um repositório, uma comunidade, um aviso legal, um nome, uma versão publicada, uma frase sobre o que faz — e pertencem a quem gere o site. sections nomeia as partes de uma árvore de documentação, e a árvore é tua: quatro separadores a apontar para nomes de pasta que a camada adivinhasse não levariam a lado nenhum. Define-o quando a tua documentação tiver secções; até lá a linha não é apresentada e a barra lateral mostra a árvore inteira, que é a forma certa para documentação sem secções.

Uma linha por fonte. Uma entrada pertence à fonte sob cujo prefixo de URL está, e a linha mostra as entradas da fonte em que o leitor se encontra — um site com a documentação na raiz e outra coisa em /demo escreve assim uma só lista sections, e cada área desenha a sua parte dela. Uma secção gerada por baixo de uma área (/demo/api) pertence a essa área em vez de ser uma. Um site com uma única fonte tem uma área, cada entrada está lá dentro, e a linha é exactamente a lista tal como foi escrita.

A página inicial

A página em / desenha três faixas, e cada uma está ausente até a sua chave estar definida.

ChavePor omissãoO que desenha
badgenenhumA pastilha por cima do título — texto, ou um objeto de distintivo
headlinenenhumO h1; recai sobre title
descriptionnenhumaO parágrafo por baixo, e a meta description da página
actionsuma, «Ler a documentação»Os botões do bloco principal; uma ação sem to resolve para a primeira secção
commandnenhumUm comando de instalação copiável sob os botões
previewnenhumUma página deste site, incorporada numa janela de browser
featuresvazioA grelha de cartões

command é uma string simples, não texto: um comando de shell é igual em todos os idiomas, e um traduzido por engano é um que não corre. A camada não entrega nenhum — não sabe como se chama o teu projeto, pela mesma razão por que links está vazio.

Não há chamada à ação final, deliberadamente. Os botões do bloco principal são a chamada; repeti-los sob uma grelha de cartões pede a um leitor acabado de chegar que decida duas vezes.

badge é entregue vazio pela mesma razão que links: uma pastilha por cima do título diz algo sobre o estado de um projeto — «beta», «a v2 saiu» — e a camada nada sabe sobre o estado do teu. Um texto é a forma curta; o objeto acrescenta ícone, cor e destino.

Campo de badgeTipoNotas
labeltextoObrigatório. {version} é substituído pela version do site
iconstringQualquer nome do Iconify
variantstringdefault, secondary, outline, success, destructive
tostringFaz de toda a pastilha uma ligação
externalbooleanO separador novo
badge: {
  label: '{version} lançada',
  icon: 'lucide:rocket',
  variant: 'success',
  to: 'https://github.com/acme/sdk/releases/latest',
  external: true
}

preview é uma janela viva, não uma imagem. Incorpora uma página deste site num enquadramento de browser que o leitor pode percorrer, navegar e cujo tema pode mudar sem sair da página inicial. O enquadramento só é montado quando a faixa entra no ecrã, e nunca durante a renderização no servidor — um iframe no HTML inicial é um segundo carregamento completo a competir com o primeiro.

Campo de previewTipoNotas
tostringA página a incorporar; por omissão, a primeira secção
heightstringQualquer comprimento CSS. Por omissão 32rem, 24rem sob sm
srcstringUma captura EM VEZ da página viva
srcDarkstringServe o modo escuro; sem ele, src serve ambos
alttextoO texto alternativo da imagem e o nome acessível do enquadramento

Forma de uma ligação

CampoTipoNotas
labeltextoObrigatório
tostringUm caminho de documentação é localizado; um URL não
iconstringQualquer nome do Iconify, p. ex. lucide:rocket
descriptiontextoMostrada num menu suspenso da barra
externalbooleanO separador novo e a seta — nunca o roteamento
childrenDuxtLink[]Transforma uma entrada da barra num menu suspenso
variantvariante de botãolanding.actions

Todos os campos marcados como texto aceitam um literal, uma chave i18n ou um registo por locale — ver Localização.

Fontes

ChaveLida emO que controla
sourcestempo de compilaçãoAs fontes de documentação
sourceOptionstempo de compilaçãoComo essas fontes se tornam prefixos de URL
versionsexecuçãoSubstitui as versões derivadas quando precisam de rótulos ou descrições

Ambas as chaves de fonte têm uma página própria. locales é a terceira chave de compilação: alterar qualquer uma das três exige nova compilação.

O feed

/rss.xml está vazio até feed.path nomear uma secção:

feed: { path: '/changelog', title: 'o meu projeto — lançamentos' }

Desligado por omissão, de propósito. Um feed é uma lista de coisas que aconteceram, e uma página de referência editada não é um acontecimento — um site que publica cada edição como item ensina os seus leitores a cancelar a subscrição. Os itens são ordenados pela date da própria página, recorrendo ao último commit que lhe tocou, e só a versão predefinida de cada fonte contribui, por isso um changelog versionado não repete cada entrada uma vez por versão.

A secção para a qual costuma apontar é um histórico de versões, cujas páginas trazem cada uma a sua date.

Gerado, não escrito

ChaveEscrito porContém
resolvedSourcesa compilaçãoO manifesto: que coleção serve que prefixo
layerVersiona compilaçãoA versão do duxt, para o rodapé
layerRepositorya compilaçãoO repositório do duxt, para o rodapé

Definir qualquer um dos três à mão é sobrescrito na compilação seguinte.

Esta página foi útil?