[{"data":1,"prerenderedAt":1366},["ShallowReactive",2],{"duxt-navigation-docs-docs_pt":3,"i-lucide:gavel":943,"i-lucide:file-text":948,"docs-pt-PT-\u002Fadr\u002F0010-keep-contents-per-collection-search-as-the-default":950,"duxt-preferred-missing-\u002Fadr\u002F0010-keep-contents-per-collection-search-as-the-default":946,"i-lucide:rocket":1310,"i-lucide:compass":1312,"i-lucide:book-open":1314,"i-lucide:list":1316,"i-lucide:puzzle":1318,"i-lucide:ruler":1320,"i-lucide:copy":1322,"i-lucide:chevron-down":1324,"i-lucide:thumbs-up":1326,"i-lucide:thumbs-down":1328,"i-lucide:star":1330,"i-lucide:circle-alert":1332,"i-simple-icons:discord":1334,"i-lucide:book-open-text":1336,"i-lucide:arrow-up-right":1338,"i-lucide:file-code-2":1340,"duxt-version-missing-\u002Fadr\u002F0010-keep-contents-per-collection-search-as-the-default":1342,"i-lucide:menu":1346,"i-lucide:search":1348,"i-lucide:keyboard":1350,"i-simple-icons:github":1352,"i-lucide:moon":1354,"i-lucide:arrow-left":1356,"i-lucide:arrow-right":1358,"i-lucide:chevron-right":1360,"i-flag:pt-4x3":1362},[4,31,111,183,827,846,854,879],{"title":5,"path":6,"stem":7,"children":8,"description":12},"Introdução","\u002Fgetting-started","1.getting-started",[9,14,20,26],{"title":5,"path":6,"stem":10,"icon":11,"description":12,"subcategory":13},"1.getting-started\u002Findex","lucide:rocket","O que é o duxt, e o que chega com uma única linha de configuração.",null,{"title":15,"path":16,"stem":17,"icon":18,"description":19,"subcategory":13},"Instalação","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F1.installation","lucide:download","Adicione a camada, estenda-a, escreva Markdown.",{"title":21,"path":22,"stem":23,"icon":24,"description":25,"subcategory":13},"Configuração","\u002Fgetting-started\u002Fconfiguration","1.getting-started\u002F2.configuration","lucide:settings","Um ficheiro configura o site inteiro — o que lhe pertence e como é combinado.",{"title":27,"path":28,"stem":29,"icon":11,"description":30,"subcategory":13},"Começar com o starter","\u002Fgetting-started\u002Ffrom-starter","1.getting-started\u002F3.from-starter","Cria com o Nuxi um site de documentação duxt pronto a executar.",{"title":32,"path":33,"stem":34,"children":35,"description":39},"Conceitos","\u002Fconcepts","2.concepts",[36,40,46,52,58,64,70,76,81,87,93,99,105],{"title":32,"path":33,"stem":37,"icon":38,"description":39,"subcategory":13},"2.concepts\u002Findex","lucide:compass","Como a camada funciona — o modelo de fontes, o esquema de URL, as coleções e as verificações.",{"title":41,"path":42,"stem":43,"icon":44,"description":45,"subcategory":13},"Camadas e substituição","\u002Fconcepts\u002Flayers","2.concepts\u002F1.layers","lucide:layers","O que uma camada Nuxt te dá, o que te tira, e que caminhos não resolvem como se leem.",{"title":47,"path":48,"stem":49,"icon":50,"description":51,"subcategory":13},"Tematização","\u002Fconcepts\u002Ftheming","2.concepts\u002F10.theming","lucide:palette","Como o tema está montado — componentes próprios, uma camada de tokens e um modo escuro que comuta por classe.",{"title":53,"path":54,"stem":55,"icon":56,"description":57,"subcategory":13},"Bases de dados","\u002Fconcepts\u002Fdatabases","2.concepts\u002F11.databases","lucide:database","Em que adaptadores de base de dados do Content um site duxt pode ser implementado, quais foram verificados e a única regra que mantém a camada fora do caminho.",{"title":59,"path":60,"stem":61,"icon":62,"description":63,"subcategory":13},"Atalhos de teclado","\u002Fconcepts\u002Fkeyboard-shortcuts","2.concepts\u002F12.keyboard-shortcuts","lucide:keyboard","As quatro teclas que o tema vincula, onde cada uma se aplica e onde quem lê fica a saber.",{"title":65,"path":66,"stem":67,"icon":68,"description":69,"subcategory":13},"Fontes","\u002Fconcepts\u002Fsources","2.concepts\u002F2.sources","lucide:git-branch","Uma lista de fontes torna-se cada coleção, prefixo e versão que o site serve.",{"title":71,"path":72,"stem":73,"icon":74,"description":75,"subcategory":13},"URL e versões","\u002Fconcepts\u002Furls-and-versions","2.concepts\u002F3.urls-and-versions","lucide:git-compare","Como aparecem os segmentos de repositório e versão, e o que é dito a quem lê uma versão antiga.",{"title":77,"path":78,"stem":79,"icon":56,"description":80,"subcategory":13},"Coleções","\u002Fconcepts\u002Fcollections","2.concepts\u002F4.collections","O que o Content constrói a partir das fontes, e as quatro coisas que o esquema acrescenta.",{"title":82,"path":83,"stem":84,"icon":85,"description":86,"subcategory":13},"Secções geradas","\u002Fconcepts\u002Fgenerated-sections","2.concepts\u002F5.generated-sections","lucide:file-cog","Um artefacto mais um tipo, publicados como páginas — o que é o registo, e as duas políticas que um tipo responde.",{"title":88,"path":89,"stem":90,"icon":91,"description":92,"subcategory":13},"O que a compilação verifica","\u002Fconcepts\u002Fbuild-checks","2.concepts\u002F6.build-checks","lucide:shield-check","As falhas silenciosas que esta camada teve, transformadas em mensagens.",{"title":94,"path":95,"stem":96,"icon":97,"description":98,"subcategory":13},"Leitores automáticos","\u002Fconcepts\u002Fmachine-readers","2.concepts\u002F7.machine-readers","lucide:bot","O que um modelo recebe — llms.txt, o Markdown em bruto de qualquer página e um verdadeiro servidor MCP.",{"title":100,"path":101,"stem":102,"icon":103,"description":104,"subcategory":13},"SEO","\u002Fconcepts\u002Fseo","2.concepts\u002F8.seo","lucide:search","O que cada página emite para rastreadores e cartões sociais, que módulo o escreve, e o único valor que a camada não consegue adivinhar.",{"title":106,"path":107,"stem":108,"icon":109,"description":110,"subcategory":13},"Localização","\u002Fconcepts\u002Flocalisation","2.concepts\u002F9.localisation","lucide:languages","A camada traz sete locales, e cada texto configurado assume três formas.",{"title":112,"path":113,"stem":114,"children":115,"description":119},"Guias","\u002Fguides","3.guides",[116,120,126,132,138,143,148,153,159,165,171,177],{"title":112,"path":113,"stem":117,"icon":118,"description":119,"subcategory":13},"3.guides\u002Findex","lucide:book-open","Uma tarefa por página, do início ao fim — vários repositórios, várias versões, vários idiomas e uma implementação.",{"title":121,"path":122,"stem":123,"icon":124,"description":125,"subcategory":13},"Vários repositórios","\u002Fguides\u002Fseveral-repositories","3.guides\u002F1.several-repositories","lucide:folder-git","Servir a documentação de vários projetos a partir de um só site.",{"title":127,"path":128,"stem":129,"icon":130,"description":131,"subcategory":13},"Publicar documentação de um provider Terraform","\u002Fguides\u002Fpublish-terraform-provider-docs","3.guides\u002F10.publish-terraform-provider-docs","simple-icons:terraform","Transformar uma árvore Markdown do tfplugindocs numa referência versionada com navegação própria do provider.",{"title":133,"path":134,"stem":135,"icon":136,"description":137,"subcategory":13},"Guardar fontes remotas e imagens OG em cache","\u002Fguides\u002Fcache-build-work","3.guides\u002F11.cache-build-work","lucide:database-zap","Reutilizar downloads de repositórios públicos e cartões sociais renderizados entre builds de CI.",{"title":139,"path":140,"stem":141,"icon":74,"description":142,"subcategory":13},"Várias versões","\u002Fguides\u002Fseveral-versions","3.guides\u002F2.several-versions","Servir a mesma documentação em várias refs, com seletor e aviso.",{"title":144,"path":145,"stem":146,"icon":109,"description":147,"subcategory":13},"Vários idiomas","\u002Fguides\u002Fseveral-languages","3.guides\u002F3.several-languages","Servir a interface em vários idiomas, e traduzir também as páginas.",{"title":149,"path":150,"stem":151,"icon":50,"description":152,"subcategory":13},"Substituir o tema","\u002Fguides\u002Foverride-the-theme","3.guides\u002F4.override-the-theme","Mudar uma cor, substituir um componente, acrescentar uma primitiva shadcn-vue.",{"title":154,"path":155,"stem":156,"icon":157,"description":158,"subcategory":13},"Mover uma página","\u002Fguides\u002Fmove-a-page","3.guides\u002F5.move-a-page","lucide:signpost","redirectFrom no frontmatter, transformado em regras de rota sob todos os prefixos.",{"title":160,"path":161,"stem":162,"icon":163,"description":164,"subcategory":13},"Implementar um site","\u002Fguides\u002Fdeploy-a-site","3.guides\u002F6.deploy-a-site","lucide:cloud-upload","Onde um site duxt pode correr, do que precisa lá, e porque o conteúdo não é atualizado em execução.",{"title":166,"path":167,"stem":168,"icon":169,"description":170,"subcategory":13},"Recolher opiniões da página","\u002Fguides\u002Fcollect-page-feedback","3.guides\u002F7.collect-page-feedback","lucide:thumbs-up","Envolve o DuxtPageFeedback e guarda a resposta onde a tua analítica já vive.",{"title":172,"path":173,"stem":174,"icon":175,"description":176,"subcategory":13},"Dá identidade ao teu site","\u002Fguides\u002Fbrand-your-site","3.guides\u002F8.brand-your-site","lucide:badge-check","Define o nome, o logótipo e os ícones, para que o site se leia como teu e não como o da camada.",{"title":178,"path":179,"stem":180,"icon":181,"description":182,"subcategory":13},"Enviar eventos de analítica","\u002Fguides\u002Fsend-analytics-events","3.guides\u002F9.send-analytics-events","lucide:chart-line","Um callback, cinco eventos, nenhum fornecedor — liga as interações dos leitores do duxt à analítica que já tens a correr.",{"title":184,"path":185,"stem":186,"children":187,"description":191},"Referência","\u002Freference","4.reference",[188,192,196,228,258,264,268,273,413,570,696,741,802],{"title":184,"path":185,"stem":189,"icon":190,"description":191,"subcategory":13},"4.reference\u002Findex","lucide:list","A superfície pública da camada — chaves de configuração, frontmatter, componentes, composables e endpoints.",{"title":21,"path":193,"stem":194,"icon":24,"description":195,"subcategory":13},"\u002Freference\u002Fconfiguration","4.reference\u002F1.configuration","Cada chave sob duxt em app.config.ts — o que controla e quando é lida.",{"title":197,"path":198,"stem":199,"children":200,"icon":202,"description":203,"subcategory":13},"Registo de alterações","\u002Freference\u002Fchangelog","4.reference\u002F10.changelog\u002Findex",[201,204,210,216,222],{"title":197,"path":198,"stem":199,"icon":202,"description":203,"subcategory":13},"lucide:tag","Um registo de versões, publicado como páginas — uma cronologia, uma página por versão, e um feed.",{"title":205,"path":206,"stem":207,"icon":208,"description":209,"subcategory":13},"Declarar a secção","\u002Freference\u002Fchangelog\u002Fsection","4.reference\u002F10.changelog\u002F1.section","lucide:file-clock","O tipo de secção `changelog` — onde vive o ficheiro, e as duas políticas que responde.",{"title":211,"path":212,"stem":213,"icon":214,"description":215,"subcategory":13},"Granularidade","\u002Freference\u002Fchangelog\u002Fgranularity","4.reference\u002F10.changelog\u002F2.granularity","lucide:split","Uma página por versão, ou o ficheiro como a única página que foi escrito.",{"title":217,"path":218,"stem":219,"icon":220,"description":221,"subcategory":13},"O que é lido","\u002Freference\u002Fchangelog\u002Fwhat-is-read","4.reference\u002F10.changelog\u002F3.what-is-read","lucide:scan-text","Que títulos passam a versões, quais a grupos, e o que acontece ao resto.",{"title":223,"path":224,"stem":225,"icon":226,"description":227,"subcategory":13},"Esquema e componentes","\u002Freference\u002Fchangelog\u002Fcomponents","4.reference\u002F10.changelog\u002F4.components","lucide:box","O esquema em que um histórico dividido renderiza, e os dois componentes MDC de que as suas páginas são feitas.",{"title":229,"path":230,"stem":231,"children":232,"icon":234,"description":235,"subcategory":13},"Coleções Bruno","\u002Freference\u002Fbruno","4.reference\u002F11.bruno\u002Findex",[233,236,241,247,253],{"title":229,"path":230,"stem":231,"icon":234,"description":235,"subcategory":13},"lucide:send","Uma coleção Bruno publicada como referência centrada em pedidos, com um arquivo descarregável.",{"title":205,"path":237,"stem":238,"icon":239,"description":240,"subcategory":13},"\u002Freference\u002Fbruno\u002Fsection","4.reference\u002F11.bruno\u002F1.section","lucide:file-code","Onde vive uma coleção Bruno, que páginas produz e que opções aceita.",{"title":242,"path":243,"stem":244,"icon":245,"description":246,"subcategory":13},"O que é publicado","\u002Freference\u002Fbruno\u002Fwhat-is-published","4.reference\u002F11.bruno\u002F2.what-is-published","lucide:shield","Environments, credenciais, scripts e testes nunca chegam a uma página.",{"title":248,"path":249,"stem":250,"icon":251,"description":252,"subcategory":13},"O cliente de pedidos","\u002Freference\u002Fbruno\u002Ftry-it","4.reference\u002F11.bruno\u002F3.try-it","lucide:send-horizontal","Desligado por omissão e dirigido apenas a destinos declarados públicos.",{"title":254,"path":255,"stem":256,"icon":18,"description":257,"subcategory":13},"Obter a coleção","\u002Freference\u002Fbruno\u002Fgetting-the-collection","4.reference\u002F11.bruno\u002F4.getting-the-collection","O arquivo está ligado à versão e idioma visíveis; a ligação Bruno não.",{"title":259,"path":260,"stem":261,"icon":262,"description":263,"subcategory":13},"Hooks","\u002Freference\u002Fhooks","4.reference\u002F12.hooks","lucide:plug","O único hook de build que o duxt emite, o que ele entrega e por que existe apenas um.",{"title":65,"path":265,"stem":266,"icon":68,"description":267,"subcategory":13},"\u002Freference\u002Fsources","4.reference\u002F2.sources","Os campos de uma entrada de fonte, as suas refs, e as opções que moldam os URL.",{"title":269,"path":270,"stem":271,"icon":239,"description":272,"subcategory":13},"Frontmatter","\u002Freference\u002Ffrontmatter","4.reference\u002F3.frontmatter","Os campos que uma página pode ter além do título e da descrição, e os dois que a compilação preenche.",{"title":274,"path":275,"stem":276,"children":277,"icon":279,"description":280,"subcategory":13},"Componentes MDC","\u002Freference\u002Fmdc-components","4.reference\u002F4.mdc-components\u002Findex",[278,281,287,293,299,305,311,317,323,329,367,373,378,384,390,396,402,408],{"title":274,"path":275,"stem":276,"icon":279,"description":280,"subcategory":13},"lucide:blocks","Os blocos que uma página Markdown pode invocar, uma página cada, com as suas props.",{"title":282,"path":283,"stem":284,"icon":285,"description":286,"subcategory":13},"Callout","\u002Freference\u002Fmdc-components\u002Fcallout","4.reference\u002F4.mdc-components\u002F1.callout","lucide:message-square-warning","Um aparte em que o leitor deve parar — uma dica, um aviso, um perigo.",{"title":288,"path":289,"stem":290,"icon":291,"description":292,"subcategory":13},"Gestores de pacotes","\u002Freference\u002Fmdc-components\u002Fpackage-managers","4.reference\u002F4.mdc-components\u002F10.package-managers","lucide:package","Um comando, um separador por gestor de pacotes, memorizado de página em página.",{"title":294,"path":295,"stem":296,"icon":297,"description":298,"subcategory":13},"Árvore de ficheiros","\u002Freference\u002Fmdc-components\u002Ffile-tree","4.reference\u002F4.mdc-components\u002F11.file-tree","lucide:folder-tree","Uma estrutura de pastas, com ícones por tipo de ficheiro.",{"title":300,"path":301,"stem":302,"icon":303,"description":304,"subcategory":13},"Pré-visualização","\u002Freference\u002Fmdc-components\u002Fpreview","4.reference\u002F4.mdc-components\u002F12.preview","lucide:eye","Um componente desenhado tal como a página o desenha, com o seu código-fonte ao lado.",{"title":306,"path":307,"stem":308,"icon":309,"description":310,"subcategory":13},"Cartões de página","\u002Freference\u002Fmdc-components\u002Fpage-cards","4.reference\u002F4.mdc-components\u002F13.page-cards","lucide:layout-grid","Os filhos de uma secção, como cartões.",{"title":312,"path":313,"stem":314,"icon":315,"description":316,"subcategory":13},"Partial","\u002Freference\u002Fmdc-components\u002Fpartial","4.reference\u002F4.mdc-components\u002F14.partial","lucide:puzzle","Um bloco escrito uma vez e apresentado em todas as fontes que dele precisam.",{"title":318,"path":319,"stem":320,"icon":321,"description":322,"subcategory":13},"Since","\u002Freference\u002Fmdc-components\u002Fsince","4.reference\u002F4.mdc-components\u002F15.since","lucide:milestone","A versão em que algo apareceu, ao lado de um cabeçalho.",{"title":324,"path":325,"stem":326,"icon":327,"description":328,"subcategory":13},"Mermaid","\u002Freference\u002Fmdc-components\u002Fmermaid","4.reference\u002F4.mdc-components\u002F16.mermaid","lucide:workflow","Um diagrama a partir de um bloco de código ou de uma prop.",{"title":330,"path":331,"stem":332,"children":333,"icon":335,"description":336,"subcategory":13},"Substituições de prosa","\u002Freference\u002Fmdc-components\u002Fprose","4.reference\u002F4.mdc-components\u002F17.prose\u002Findex",[334,337,343,349,355,361],{"title":330,"path":331,"stem":332,"icon":335,"description":336,"subcategory":13},"lucide:type","O que a camada muda no Markdown simples — ligações, cabeçalhos, imagens, código e tabelas.",{"title":338,"path":339,"stem":340,"icon":341,"description":342,"subcategory":13},"ProseA","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-a","4.reference\u002F4.mdc-components\u002F17.prose\u002F1.prose-a","lucide:link","Uma ligação, resolvida em função da fonte em que foi escrita.",{"title":344,"path":345,"stem":346,"icon":347,"description":348,"subcategory":13},"ProseH2, ProseH3, ProseH4","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-headings","4.reference\u002F4.mdc-components\u002F17.prose\u002F2.prose-headings","lucide:heading","Cabeçalhos, cada um com a sua âncora permanente.",{"title":350,"path":351,"stem":352,"icon":353,"description":354,"subcategory":13},"ProseImg","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-img","4.reference\u002F4.mdc-components\u002F17.prose\u002F3.prose-img","lucide:image","Uma imagem: consciente do tema, adaptável e ampliável.",{"title":356,"path":357,"stem":358,"icon":359,"description":360,"subcategory":13},"ProsePre","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-pre","4.reference\u002F4.mdc-components\u002F17.prose\u002F4.prose-pre","lucide:terminal","O bloco de código: nome do ficheiro, ícone da linguagem, botão de copiar.",{"title":362,"path":363,"stem":364,"icon":365,"description":366,"subcategory":13},"ProseTable","\u002Freference\u002Fmdc-components\u002Fprose\u002Fprose-table","4.reference\u002F4.mdc-components\u002F17.prose\u002F5.prose-table","lucide:table","Uma tabela que se desloca em vez da página.",{"title":368,"path":369,"stem":370,"icon":371,"description":372,"subcategory":13},"Passos","\u002Freference\u002Fmdc-components\u002Fsteps","4.reference\u002F4.mdc-components\u002F2.steps","lucide:list-ordered","Uma lista ordenada desenhada como passos numerados sobre uma calha.",{"title":374,"path":375,"stem":376,"icon":239,"description":377,"subcategory":13},"Grupo de código","\u002Freference\u002Fmdc-components\u002Fcode-group","4.reference\u002F4.mdc-components\u002F3.code-group","Vários blocos de código como um só bloco com separadores, rotulados pelo nome do ficheiro.",{"title":379,"path":380,"stem":381,"icon":382,"description":383,"subcategory":13},"Grupo de separadores","\u002Freference\u002Fmdc-components\u002Ftab-group","4.reference\u002F4.mdc-components\u002F4.tab-group","lucide:panels-top-left","Separadores para tudo o que não seja código.",{"title":385,"path":386,"stem":387,"icon":388,"description":389,"subcategory":13},"Tab","\u002Freference\u002Fmdc-components\u002Ftab","4.reference\u002F4.mdc-components\u002F5.tab","lucide:square","Um painel de um grupo de separadores.",{"title":391,"path":392,"stem":393,"icon":394,"description":395,"subcategory":13},"Accordion","\u002Freference\u002Fmdc-components\u002Faccordion","4.reference\u002F4.mdc-components\u002F6.accordion","lucide:chevrons-up-down","Secções recolhíveis — um FAQ, ou respostas que o leitor escolhe.",{"title":397,"path":398,"stem":399,"icon":400,"description":401,"subcategory":13},"Item de accordion","\u002Freference\u002Fmdc-components\u002Faccordion-item","4.reference\u002F4.mdc-components\u002F7.accordion-item","lucide:chevron-down","Uma secção recolhível.",{"title":403,"path":404,"stem":405,"icon":406,"description":407,"subcategory":13},"Grupo de campos","\u002Freference\u002Fmdc-components\u002Ffield-group","4.reference\u002F4.mdc-components\u002F8.field-group","lucide:list-tree","Uma lista de campos como um só bloco.",{"title":409,"path":410,"stem":411,"icon":202,"description":412,"subcategory":13},"Campo","\u002Freference\u002Fmdc-components\u002Ffield","4.reference\u002F4.mdc-components\u002F9.field","Um parâmetro, propriedade ou opção, com o seu tipo e valor por omissão.",{"title":414,"path":415,"stem":416,"children":417,"icon":419,"description":420,"subcategory":13},"Componentes","\u002Freference\u002Fcomponents","4.reference\u002F5.components\u002Findex",[418,421,447,488,539],{"title":414,"path":415,"stem":416,"icon":419,"description":420,"subcategory":13},"lucide:component","Os componentes da própria camada, uma página cada — para que serve cada um e o que recebe.",{"title":422,"path":423,"stem":424,"children":425,"icon":427,"description":428,"subcategory":13},"Layout","\u002Freference\u002Fcomponents\u002Flayout","4.reference\u002F5.components\u002F1.layout\u002Findex",[426,429,435,441],{"title":422,"path":423,"stem":424,"icon":427,"description":428,"subcategory":13},"lucide:layout-panel-top","Os dois componentes que emolduram uma página — a barra de navegação e o rodapé.",{"title":430,"path":431,"stem":432,"icon":433,"description":434,"subcategory":13},"DuxtHeader","\u002Freference\u002Fcomponents\u002Flayout\u002Fduxt-header","4.reference\u002F5.components\u002F1.layout\u002F1.duxt-header","lucide:panel-top","A barra de navegação: título, navegação, pesquisa e as ligações de ícone.",{"title":436,"path":437,"stem":438,"icon":439,"description":440,"subcategory":13},"DuxtFooter","\u002Freference\u002Fcomponents\u002Flayout\u002Fduxt-footer","4.reference\u002F5.components\u002F1.layout\u002F2.duxt-footer","lucide:panel-bottom","O rodapé: o nome do site, as suas ligações legais e a linha da própria camada.",{"title":442,"path":443,"stem":444,"icon":445,"description":446,"subcategory":13},"DuxtAnnouncements","\u002Freference\u002Fcomponents\u002Flayout\u002Fduxt-announcements","4.reference\u002F5.components\u002F1.layout\u002F3.duxt-announcements","lucide:megaphone","Avisos do próprio site, desenhados por posição apenas quando existe algo a anunciar.",{"title":448,"path":449,"stem":450,"children":451,"icon":38,"description":453,"subcategory":13},"Navegação","\u002Freference\u002Fcomponents\u002Fnavigation","4.reference\u002F5.components\u002F2.navigation\u002Findex",[452,454,460,465,471,477,482],{"title":448,"path":449,"stem":450,"icon":38,"description":453,"subcategory":13},"Circular pela documentação — a linha de secções, a barra lateral, o trilho, o índice e anterior\u002Fseguinte.",{"title":455,"path":456,"stem":457,"icon":458,"description":459,"subcategory":13},"DuxtSections","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-sections","4.reference\u002F5.components\u002F2.navigation\u002F1.duxt-sections","lucide:rows-3","A segunda linha da barra de navegação — as partes de topo da documentação.",{"title":461,"path":462,"stem":463,"icon":406,"description":464,"subcategory":13},"DuxtNavigation","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-navigation","4.reference\u002F5.components\u002F2.navigation\u002F2.duxt-navigation","A árvore da barra lateral.",{"title":466,"path":467,"stem":468,"icon":469,"description":470,"subcategory":13},"DuxtNavigationLink","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-navigation-link","4.reference\u002F5.components\u002F2.navigation\u002F3.duxt-navigation-link","lucide:link-2","Uma entrada da barra lateral.",{"title":472,"path":473,"stem":474,"icon":475,"description":476,"subcategory":13},"DuxtBreadcrumb","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-breadcrumb","4.reference\u002F5.components\u002F2.navigation\u002F4.duxt-breadcrumb","lucide:chevrons-right","O trilho por cima do título da página.",{"title":478,"path":479,"stem":480,"icon":190,"description":481,"subcategory":13},"DuxtToc","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-toc","4.reference\u002F5.components\u002F2.navigation\u002F5.duxt-toc","O índice, e o aside por baixo dele.",{"title":483,"path":484,"stem":485,"icon":486,"description":487,"subcategory":13},"DuxtPageNav","\u002Freference\u002Fcomponents\u002Fnavigation\u002Fduxt-page-nav","4.reference\u002F5.components\u002F2.navigation\u002F6.duxt-page-nav","lucide:arrow-left-right","Anterior e seguinte, limitados pela secção.",{"title":489,"path":490,"stem":491,"children":492,"icon":494,"description":495,"subcategory":13},"Controlos","\u002Freference\u002Fcomponents\u002Fcontrols","4.reference\u002F5.components\u002F3.controls\u002Findex",[493,496,501,506,512,517,523,528,534],{"title":489,"path":490,"stem":491,"icon":494,"description":495,"subcategory":13},"lucide:sliders-horizontal","O que o leitor opera — a pesquisa, os seletores, a folha de atalhos e dois indicadores.",{"title":497,"path":498,"stem":499,"icon":103,"description":500,"subcategory":13},"DuxtSearch","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-search","4.reference\u002F5.components\u002F3.controls\u002F1.duxt-search","Pesquisa cada fonte ativa e intercala os seus resultados ordenados localmente.",{"title":502,"path":503,"stem":504,"icon":44,"description":505,"subcategory":13},"DuxtVersion","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-version","4.reference\u002F5.components\u002F3.controls\u002F2.duxt-version","O distintivo de versão, e o seletor quando há mais do que uma.",{"title":507,"path":508,"stem":509,"icon":510,"description":511,"subcategory":13},"DuxtVersionBanner","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-version-banner","4.reference\u002F5.components\u002F3.controls\u002F3.duxt-version-banner","lucide:triangle-alert","A barra que diz ao leitor que esta versão não é a atual.",{"title":513,"path":514,"stem":515,"icon":109,"description":516,"subcategory":13},"DuxtLocale","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-locale","4.reference\u002F5.components\u002F3.controls\u002F4.duxt-locale","O seletor de idioma.",{"title":518,"path":519,"stem":520,"icon":521,"description":522,"subcategory":13},"DuxtProgress","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-progress","4.reference\u002F5.components\u002F3.controls\u002F5.duxt-progress","lucide:loader","Até onde o leitor já desceu na página.",{"title":524,"path":525,"stem":526,"icon":62,"description":527,"subcategory":13},"DuxtShortcuts","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-shortcuts","4.reference\u002F5.components\u002F3.controls\u002F6.duxt-shortcuts","A folha de atalhos de teclado, na tecla ?.",{"title":529,"path":530,"stem":531,"icon":532,"description":533,"subcategory":13},"DuxtSkipLink","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-skip-link","4.reference\u002F5.components\u002F3.controls\u002F7.duxt-skip-link","lucide:skip-forward","O primeiro elemento focável da página.",{"title":535,"path":536,"stem":537,"icon":62,"description":538,"subcategory":13},"DuxtShortcutsTrigger","\u002Freference\u002Fcomponents\u002Fcontrols\u002Fduxt-shortcuts-trigger","4.reference\u002F5.components\u002F3.controls\u002F8.duxt-shortcuts-trigger","O botão que abre a folha de atalhos.",{"title":540,"path":541,"stem":542,"children":543,"icon":545,"description":546,"subcategory":13},"Página","\u002Freference\u002Fcomponents\u002Fpage","4.reference\u002F5.components\u002F4.page\u002Findex",[544,547,553,559,564],{"title":540,"path":541,"stem":542,"icon":545,"description":546,"subcategory":13},"lucide:file-text","Os componentes que pertencem à própria página.",{"title":548,"path":549,"stem":550,"icon":551,"description":552,"subcategory":13},"DuxtPageInfo","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-page-info","4.reference\u002F5.components\u002F4.page\u002F1.duxt-page-info","lucide:git-commit-horizontal","De onde veio a página: ligação de edição, última atualização, contribuidores.",{"title":554,"path":555,"stem":556,"icon":557,"description":558,"subcategory":13},"DuxtCopyPage","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-copy-page","4.reference\u002F5.components\u002F4.page\u002F2.duxt-copy-page","lucide:clipboard-copy","Entrega esta página a um modelo, ou lê o seu código-fonte.",{"title":560,"path":561,"stem":562,"icon":169,"description":563,"subcategory":13},"DuxtPageFeedback","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-page-feedback","4.reference\u002F5.components\u002F4.page\u002F3.duxt-page-feedback","«Esta página foi útil?» — um evento, e sem backend.",{"title":565,"path":566,"stem":567,"icon":568,"description":569,"subcategory":13},"DuxtCodeBlock","\u002Freference\u002Fcomponents\u002Fpage\u002Fduxt-code-block","4.reference\u002F5.components\u002F4.page\u002F4.duxt-code-block","lucide:code","O cartão à volta de um bloco de código.",{"title":571,"path":572,"stem":573,"children":574,"icon":576,"description":577,"subcategory":13},"Composables","\u002Freference\u002Fcomposables","4.reference\u002F6.composables\u002Findex",[575,578,612,641],{"title":571,"path":572,"stem":573,"icon":576,"description":577,"subcategory":13},"lucide:function-square","As funções que a camada expõe aos teus próprios componentes, uma página cada.",{"title":579,"path":580,"stem":581,"children":582,"icon":56,"description":584,"subcategory":13},"Configuração e conteúdo","\u002Freference\u002Fcomposables\u002Fconfig-and-content","4.reference\u002F6.composables\u002F1.config-and-content\u002Findex",[583,585,590,596,601,607],{"title":579,"path":580,"stem":581,"icon":56,"description":584,"subcategory":13},"A configuração fundida, e que coleção serve a página que está a ser lida.",{"title":586,"path":587,"stem":588,"icon":24,"description":589,"subcategory":13},"useDuxtConfig()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-config","4.reference\u002F6.composables\u002F1.config-and-content\u002F1.use-duxt-config","A configuração fundida, com todos os campos de texto já resolvidos.",{"title":591,"path":592,"stem":593,"icon":594,"description":595,"subcategory":13},"useDuxtCollection()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-collection","4.reference\u002F6.composables\u002F1.config-and-content\u002F2.use-duxt-collection","lucide:library","Que coleção serve esta rota.",{"title":597,"path":598,"stem":599,"icon":406,"description":600,"subcategory":13},"useDuxtNavigation()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-navigation","4.reference\u002F6.composables\u002F1.config-and-content\u002F3.use-duxt-navigation","A árvore de navegação da coleção que serve esta rota.",{"title":602,"path":603,"stem":604,"icon":605,"description":606,"subcategory":13},"useDuxtSection()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-section","4.reference\u002F6.composables\u002F1.config-and-content\u002F4.use-duxt-section","lucide:folder-open","A parte da documentação em que esta página está.",{"title":608,"path":609,"stem":610,"icon":475,"description":611,"subcategory":13},"useDuxtBreadcrumb()","\u002Freference\u002Fcomposables\u002Fconfig-and-content\u002Fuse-duxt-breadcrumb","4.reference\u002F6.composables\u002F1.config-and-content\u002F5.use-duxt-breadcrumb","O trilho da secção até uma página.",{"title":613,"path":614,"stem":615,"children":616,"icon":618,"description":619,"subcategory":13},"Caminhos e versões","\u002Freference\u002Fcomposables\u002Fpaths-and-versions","4.reference\u002F6.composables\u002F2.paths-and-versions\u002Findex",[617,620,625,630,635],{"title":613,"path":614,"stem":615,"icon":618,"description":619,"subcategory":13},"lucide:route","Ler um URL, escrever outro de volta, e saber que versão está a ser lida.",{"title":621,"path":622,"stem":623,"icon":321,"description":624,"subcategory":13},"useDuxtPath()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-path","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F1.use-duxt-path","O caminho em que a documentação está, com o locale retirado.",{"title":626,"path":627,"stem":628,"icon":341,"description":629,"subcategory":13},"useDuxtLink()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-link","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F2.use-duxt-link","Um caminho de documentação, reescrito como ligação.",{"title":631,"path":632,"stem":633,"icon":44,"description":634,"subcategory":13},"useDuxtVersion()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-version","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F3.use-duxt-version","O que o seletor mostra, o que o aviso diz, se se deve indexar.",{"title":636,"path":637,"stem":638,"icon":639,"description":640,"subcategory":13},"useDuxtSiteUrl()","\u002Freference\u002Fcomposables\u002Fpaths-and-versions\u002Fuse-duxt-site-url","4.reference\u002F6.composables\u002F2.paths-and-versions\u002F4.use-duxt-site-url","lucide:globe","A origem configurada, e caminhos tornados absolutos.",{"title":642,"path":643,"stem":644,"children":645,"icon":118,"description":647,"subcategory":13},"Experiência de leitura","\u002Freference\u002Fcomposables\u002Freading","4.reference\u002F6.composables\u002F3.reading\u002Findex",[646,648,652,658,663,669,675,680,686,691],{"title":642,"path":643,"stem":644,"icon":118,"description":647,"subcategory":13},"Pesquisa, cabeçalhos, foco, histórico e as escolhas que um leitor faz.",{"title":649,"path":650,"stem":651,"icon":103,"description":500,"subcategory":13},"useDuxtSearch()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-search","4.reference\u002F6.composables\u002F3.reading\u002F1.use-duxt-search",{"title":653,"path":654,"stem":655,"icon":656,"description":657,"subcategory":13},"useFuzzySearch()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-fuzzy-search","4.reference\u002F6.composables\u002F3.reading\u002F2.use-fuzzy-search","lucide:spell-check","Tolerância a gralhas ao lado do índice exato.",{"title":659,"path":660,"stem":661,"icon":347,"description":662,"subcategory":13},"useActiveHeading()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-active-heading","4.reference\u002F6.composables\u002F3.reading\u002F3.use-active-heading","O cabeçalho que está à vista neste momento.",{"title":664,"path":665,"stem":666,"icon":667,"description":668,"subcategory":13},"useDuxtPageFocus()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-page-focus","4.reference\u002F6.composables\u002F3.reading\u002F4.use-duxt-page-focus","lucide:focus","Move o foco para o cabeçalho depois de uma navegação do lado do cliente.",{"title":670,"path":671,"stem":672,"icon":673,"description":674,"subcategory":13},"useRecentPages()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-recent-pages","4.reference\u002F6.composables\u002F3.reading\u002F5.use-recent-pages","lucide:history","As páginas abertas mais recentemente, até ao limite configurado.",{"title":676,"path":677,"stem":678,"icon":291,"description":679,"subcategory":13},"usePackageManager()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-package-manager","4.reference\u002F6.composables\u002F3.reading\u002F6.use-package-manager","O gestor de pacotes que um leitor escolheu.",{"title":681,"path":682,"stem":683,"icon":684,"description":685,"subcategory":13},"useDuxtToast()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-toast","4.reference\u002F6.composables\u002F3.reading\u002F7.use-duxt-toast","lucide:bell","Notificações, embrulhadas para que nenhum componente importe a biblioteca.",{"title":687,"path":688,"stem":689,"icon":62,"description":690,"subcategory":13},"useDuxtShortcuts()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-shortcuts","4.reference\u002F6.composables\u002F3.reading\u002F8.use-duxt-shortcuts","As teclas que o tema escuta.",{"title":692,"path":693,"stem":694,"icon":181,"description":695,"subcategory":13},"useDuxtAnalytics()","\u002Freference\u002Fcomposables\u002Freading\u002Fuse-duxt-analytics","4.reference\u002F6.composables\u002F3.reading\u002F9.use-duxt-analytics","Comunicar uma interação do leitor ao callback do próprio site, ou a ninguém.",{"title":697,"path":698,"stem":699,"children":700,"icon":618,"description":702,"subcategory":13},"Endpoints","\u002Freference\u002Fendpoints","4.reference\u002F7.endpoints\u002Findex",[701,703,708,714,719,724,729,735],{"title":697,"path":698,"stem":699,"icon":618,"description":702,"subcategory":13},"Tudo o que o site serve além das páginas, uma página cada.",{"title":704,"path":705,"stem":706,"icon":545,"description":707,"subcategory":13},"\u002Fllms.txt","\u002Freference\u002Fendpoints\u002Fllms-txt","4.reference\u002F7.endpoints\u002F1.llms-txt","A documentação como índice Markdown, segundo llmstxt.org.",{"title":709,"path":710,"stem":711,"icon":712,"description":713,"subcategory":13},"\u002Fllms-full.txt","\u002Freference\u002Fendpoints\u002Fllms-full-txt","4.reference\u002F7.endpoints\u002F2.llms-full-txt","lucide:file-stack","Uma extensão do duxt com as mesmas páginas num ficheiro Markdown.",{"title":715,"path":716,"stem":717,"icon":239,"description":718,"subcategory":13},"\u003Cpage>.md","\u002Freference\u002Fendpoints\u002Fpage-markdown","4.reference\u002F7.endpoints\u002F3.page-markdown","O código-fonte de qualquer página, no seu próprio URL mais .md.",{"title":720,"path":721,"stem":722,"icon":97,"description":723,"subcategory":13},"\u002Fmcp","\u002Freference\u002Fendpoints\u002Fmcp","4.reference\u002F7.endpoints\u002F4.mcp","Um servidor MCP sobre o mesmo conteúdo.",{"title":725,"path":726,"stem":727,"icon":103,"description":728,"subcategory":13},"\u002Fsitemap.xml e \u002Frobots.txt","\u002Freference\u002Fendpoints\u002Fsitemap-and-robots","4.reference\u002F7.endpoints\u002F5.sitemap-and-robots","Para onde um rastreador é apontado, e aquilo de que é mantido fora.",{"title":730,"path":731,"stem":732,"icon":733,"description":734,"subcategory":13},"\u002Frss.xml","\u002Freference\u002Fendpoints\u002Frss-xml","4.reference\u002F7.endpoints\u002F6.rss-xml","lucide:rss","O feed, assim que uma secção for nomeada.",{"title":736,"path":737,"stem":738,"icon":739,"description":740,"subcategory":13},"\u002F_duxt\u002Fdevtools","\u002Freference\u002Fendpoints\u002Fdevtools","4.reference\u002F7.endpoints\u002F7.devtools","lucide:wrench","A rota a partir da qual o painel das Nuxt Devtools é servido. Apenas em desenvolvimento.",{"title":742,"path":743,"stem":744,"children":745,"icon":739,"description":747,"subcategory":13},"Devtools","\u002Freference\u002Fdevtools","4.reference\u002F8.devtools\u002Findex",[746,748,753,758,763,769,775,781,786,791,796],{"title":742,"path":743,"stem":744,"icon":739,"description":747,"subcategory":13},"Dez painéis que mostram no que as tuas fontes se tornaram. Apenas em desenvolvimento.",{"title":749,"path":750,"stem":751,"icon":594,"description":752,"subcategory":13},"Sources","\u002Freference\u002Fdevtools\u002Fsources","4.reference\u002F8.devtools\u002F1.sources","No que `duxt.sources` se tornou — uma coleção por fonte, versão e idioma.",{"title":754,"path":755,"stem":756,"icon":157,"description":757,"subcategory":13},"Redirects","\u002Freference\u002Fdevtools\u002Fredirects","4.reference\u002F8.devtools\u002F10.redirects","Todos os redireccionamentos que o servidor serve, e quais deles a camada escreveu.",{"title":759,"path":760,"stem":761,"icon":618,"description":762,"subcategory":13},"Paths","\u002Freference\u002Fdevtools\u002Fpaths","4.reference\u002F8.devtools\u002F2.paths","Cola um URL e vê que fonte o reclama e o que encontra lá.",{"title":764,"path":765,"stem":766,"icon":767,"description":768,"subcategory":13},"Pages","\u002Freference\u002Fdevtools\u002Fpages","4.reference\u002F8.devtools\u002F3.pages","lucide:files","Todas as páginas de todas as coleções, com o frontmatter e os metadados de git.",{"title":770,"path":771,"stem":772,"icon":773,"description":774,"subcategory":13},"Versions","\u002Freference\u002Fdevtools\u002Fversions","4.reference\u002F8.devtools\u002F4.versions","lucide:columns-3","Que versão — e que idioma — leva que página.",{"title":776,"path":777,"stem":778,"icon":779,"description":780,"subcategory":13},"Checks","\u002Freference\u002Fdevtools\u002Fchecks","4.reference\u002F8.devtools\u002F5.checks","lucide:check-check","O validador da compilação, aplicado ao que o site está a servir agora.",{"title":782,"path":783,"stem":784,"icon":103,"description":785,"subcategory":13},"Search","\u002Freference\u002Fdevtools\u002Fsearch","4.reference\u002F8.devtools\u002F6.search","O que o índice de pesquisa contém, pela mesma consulta que a caixa de diálogo faz.",{"title":787,"path":788,"stem":789,"icon":494,"description":790,"subcategory":13},"Config","\u002Freference\u002Fdevtools\u002Fconfig","4.reference\u002F8.devtools\u002F7.config","A configuração `duxt` fundida, e de que lado da fusão vem cada valor.",{"title":792,"path":793,"stem":794,"icon":109,"description":795,"subcategory":13},"i18n","\u002Freference\u002Fdevtools\u002Fi18n","4.reference\u002F8.devtools\u002F8.i18n","Chaves de mensagem por idioma, contra o idioma base.",{"title":797,"path":798,"stem":799,"icon":800,"description":801,"subcategory":13},"Cache","\u002Freference\u002Fdevtools\u002Fcache","4.reference\u002F8.devtools\u002F9.cache","lucide:hard-drive","A cache de descargas do Content, e uma forma de deitar fora uma entrada.",{"title":803,"path":804,"stem":805,"children":806,"icon":262,"description":808,"subcategory":13},"Referência da API","\u002Freference\u002Fopenapi","4.reference\u002F9.openapi\u002Findex",[807,809,813,817,822],{"title":803,"path":804,"stem":805,"icon":262,"description":808,"subcategory":13},"Um documento OpenAPI, publicado como páginas de referência com um cliente que envia pedidos reais.",{"title":205,"path":810,"stem":811,"icon":239,"description":812,"subcategory":13},"\u002Freference\u002Fopenapi\u002Fsection","4.reference\u002F9.openapi\u002F1.section","O tipo de secção `openapi` — onde vive o documento, e no que se torna.",{"title":414,"path":814,"stem":815,"icon":226,"description":816,"subcategory":13},"\u002Freference\u002Fopenapi\u002Fcomponents","4.reference\u002F9.openapi\u002F2.components","Os três componentes MDC de que é feita uma página de referência gerada.",{"title":818,"path":819,"stem":820,"icon":234,"description":821,"subcategory":13},"O cliente de ensaio","\u002Freference\u002Fopenapi\u002Ftry-it","4.reference\u002F9.openapi\u002F3.try-it","Um pedido real, enviado pelo próprio navegador do leitor.",{"title":823,"path":824,"stem":825,"icon":568,"description":826,"subcategory":13},"Amostras de pedido","\u002Freference\u002Fopenapi\u002Frequest-samples","4.reference\u002F9.openapi\u002F4.request-samples","O mesmo pedido em doze clientes, e como acrescentar o teu.",{"title":828,"path":829,"stem":830,"children":831,"description":834},"Extensões","\u002Fadd-ons","5.add-ons",[832,835,840],{"title":828,"path":829,"stem":833,"icon":315,"description":834,"subcategory":13},"5.add-ons\u002Findex","Camadas complementares que estendem um site duxt — cada uma é um pacote próprio, adicionado com mais uma entrada em extends.",{"title":836,"path":837,"stem":838,"icon":103,"description":839,"subcategory":13},"Typesense","\u002Fadd-ons\u002Ftypesense","5.add-ons\u002F1.typesense","Consuma o único hook de build do duxt em uma coleção do Typesense — cada fonte, versão e idioma, atualizados por um id estável.",{"title":841,"path":842,"stem":843,"icon":844,"description":845,"subcategory":13},"Meilisearch","\u002Fadd-ons\u002Fmeilisearch","5.add-ons\u002F2.meilisearch","simple-icons:meilisearch","Adicione a camada complementar oficial para indexação atômica durante o build e busca opcional no navegador.",{"title":847,"path":848,"stem":849,"children":850,"icon":852,"description":853,"subcategory":13},"Créditos","\u002Fcredits","6.credits\u002Findex",[851],{"title":847,"path":848,"stem":849,"icon":852,"description":853,"subcategory":13},"lucide:heart","Aquilo em que o duxt assenta, e aquilo de que partiu.",{"title":855,"path":856,"stem":857,"children":858,"description":862},"Convenções","\u002Fconventions","7.conventions",[859,863,869,874],{"title":855,"path":856,"stem":860,"icon":861,"description":862,"subcategory":13},"7.conventions\u002Findex","lucide:ruler","Regras próprias do projeto — as que não se deduzem do código.",{"title":864,"path":865,"stem":866,"icon":867,"description":868,"subcategory":13},"Identidade","\u002Fconventions\u002Fbranding","7.conventions\u002F1.branding","lucide:shapes","A marca [d]uxt — onde é usado cada recurso, por que os parênteses do ícone foram redesenhados, e que cores são fixas.",{"title":870,"path":871,"stem":872,"icon":353,"description":873,"subcategory":13},"Ícones","\u002Fconventions\u002Ficons","7.conventions\u002F2.icons","Quatro conjuntos de ícones, e a única pergunta que decide qual deles desenha uma marca.",{"title":875,"path":876,"stem":877,"icon":91,"description":878,"subcategory":13},"Segurança das dependências","\u002Fconventions\u002Fdependency-security","7.conventions\u002F3.dependency-security","Rever avisos sem esconder os caminhos afetados.",{"title":880,"path":881,"stem":882,"children":883,"description":887},"Decisões de arquitetura","\u002Fadr","99.adr",[884,888,893,898,903,908,913,918,923,928,933,938],{"title":880,"path":881,"stem":885,"icon":886,"description":887,"subcategory":13},"99.adr\u002Findex","lucide:gavel","O registo de decisões — todas as decisões de arquitetura registadas para o duxt.",{"title":889,"path":890,"stem":891,"icon":13,"description":892,"subcategory":13},"Construir o duxt como uma camada que transporta um módulo","\u002Fadr\u002F0001-build-duxt-as-a-layer-carrying-a-module","99.adr\u002F0001-build-duxt-as-a-layer-carrying-a-module","Distribuir o tema como uma camada Nuxt cuja raiz é o pacote, e não como um modelo inicial.",{"title":894,"path":895,"stem":896,"icon":13,"description":897,"subcategory":13},"Gerar as coleções a partir de uma só lista de fontes","\u002Fadr\u002F0002-generate-the-collections-from-one-source-list","99.adr\u002F0002-generate-the-collections-from-one-source-list","Calcular as coleções do Content a partir de uma lista de fontes compacta ao carregar a configuração, em vez de fazer quem a consome declará-las.",{"title":899,"path":900,"stem":901,"icon":13,"description":902,"subcategory":13},"Decidir os prefixos de URL em tempo de compilação","\u002Fadr\u002F0003-decide-the-url-prefixes-at-build-time","99.adr\u002F0003-decide-the-url-prefixes-at-build-time","Se um segmento de repositório ou de versão aparece é decidido pela lista de fontes antes do primeiro pedido, nunca por pedido.",{"title":904,"path":905,"stem":906,"icon":13,"description":907,"subcategory":13},"Desenhar os componentes Markdown com MDC","\u002Fadr\u002F0004-render-markdown-components-with-mdc","99.adr\u002F0004-render-markdown-components-with-mdc","Usar a própria sintaxe MDC do Content para componentes dentro do Markdown, em vez de adotar MDX.",{"title":909,"path":910,"stem":911,"icon":13,"description":912,"subcategory":13},"Entregar a camada sem ligações específicas do proprietário","\u002Fadr\u002F0005-ship-the-layer-without-owner-specific-links","99.adr\u002F0005-ship-the-layer-without-owner-specific-links","Toda a predefinição que nomearia um projeto concreto — repositório, gestor de issues, comunidade, aviso legal — é entregue vazia.",{"title":914,"path":915,"stem":916,"icon":13,"description":917,"subcategory":13},"Recompilar de forma agendada em vez de atualizar em tempo de execução","\u002Fadr\u002F0006-rebuild-on-a-schedule-rather-than-refresh-at-runtime","99.adr\u002F0006-rebuild-on-a-schedule-rather-than-refresh-at-runtime","Um site que lê outro repositório apanha as suas alterações quando compila, e não é oferecida nenhuma atualização em tempo de execução.",{"title":919,"path":920,"stem":921,"icon":13,"description":922,"subcategory":13},"Servir as traduções como coleções próprias","\u002Fadr\u002F0007-serve-translations-as-collections-of-their-own","99.adr\u002F0007-serve-translations-as-collections-of-their-own","Acrescentar uma dimensão de locale a uma fonte, em vez de um segmento de locale ao caminho de conteúdo.",{"title":924,"path":925,"stem":926,"icon":13,"description":927,"subcategory":13},"Construir o tema sobre componentes shadcn-vue próprios","\u002Fadr\u002F0008-build-the-theme-on-owned-shadcn-vue-components","99.adr\u002F0008-build-the-theme-on-owned-shadcn-vue-components","A camada guarda o código-fonte dos seus componentes de interface em vez de os importar de uma biblioteca de componentes ou de um tema de documentação já feito.",{"title":929,"path":930,"stem":931,"icon":13,"description":932,"subcategory":13},"Tirar a base de SEO do pacote Nuxt SEO","\u002Fadr\u002F0009-take-the-seo-stack-from-the-nuxt-seo-bundle","99.adr\u002F0009-take-the-seo-stack-from-the-nuxt-seo-bundle","A camada instala o @nuxtjs\u002Fseo e entrega-lhe as etiquetas de head e os dados estruturados que antes escrevia à mão, guardando apenas as regras que dependem de versões e traduções.",{"title":934,"path":935,"stem":936,"icon":13,"description":937,"subcategory":13},"Manter a pesquisa por coleção do Content como padrão","\u002Fadr\u002F0010-keep-contents-per-collection-search-as-the-default","99.adr\u002F0010-keep-contents-per-collection-search-as-the-default","Um único índice sobre todas as fontes foi medido contra a pesquisa de um índice por coleção do Content e não é o padrão da camada; o hook de compilação transforma-o antes numa camada fornecedora.",{"title":939,"path":940,"stem":941,"icon":13,"description":942,"subcategory":13},"Alojar as camadas fornecedoras num monorepo Turborepo","\u002Fadr\u002F0011-host-the-provider-layers-in-a-turborepo-monorepo","99.adr\u002F0011-host-the-provider-layers-in-a-turborepo-monorepo","A camada passa para packages\u002Fduxt e o site para apps\u002Fwww, cada pacote publicado versiona e marca por si como \u003Cname>@vX.Y.Z, e a decisão de repositórios próprios registada em",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":947},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m14 13l-8.381 8.38a1 1 0 0 1-3.001-3l8.384-8.381M16 16l6-6m-.5.5l-8-8M8 8l6-6M8.5 7.5l8 8\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":949},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z\"\u002F>\u003Cpath d=\"M14 2v5a1 1 0 0 0 1 1h5M10 9H8m8 4H8m8 4H8\"\u002F>\u003C\u002Fg>",{"page":951,"from":1308,"asked":1309},{"id":952,"title":934,"body":953,"breadcrumb":1299,"category":13,"compare":13,"contributors":13,"copyPage":1299,"date":1300,"description":937,"extension":1301,"feedback":1299,"fullWidth":946,"icon":13,"lastUpdated":13,"layout":13,"meta":1302,"navigation":1299,"pageInfo":1299,"page_title":13,"path":935,"prevNext":1299,"rawbody":1304,"redirectFrom":13,"release":13,"search":1299,"seo":1305,"sitemap":1306,"stem":936,"subcategory":13,"toc":13,"__hash__":1307},"docs_pt\u002F99.adr\u002F0010-keep-contents-per-collection-search-as-the-default.md",{"type":954,"value":955,"toc":1288},"minimark",[956,961,977,1007,1026,1045,1050,1072,1144,1165,1178,1204,1208,1214,1217,1250,1265,1269,1272,1277,1280],[957,958,960],"h2",{"id":959},"contexto","Contexto",[962,963,964,965,968,969,972,973,976],"p",{},"A pesquisa é um índice por coleção. ",[966,967,649],"code",{}," chama o\n",[966,970,971],{},"useSearchCollection()"," do Content uma vez por fonte ativa, o que descarrega o\n",[966,974,975],{},"sql_dump.txt"," dessa coleção e constrói um índice FTS5 no navegador sobre SQLite\nem WASM. Desta única forma decorrem três queixas:",[978,979,980,988,998],"ul",{},[981,982,983,987],"li",{},[984,985,986],"strong",{},"A carga cresce com o modelo."," Um despejo por coleção ativa, e as coleções\nmultiplicam-se como fontes × versões × idiomas. O multi-fonte é a proposta do\nduxt, e a pesquisa paga-a linearmente.",[981,989,990,993,994,997],{},[984,991,992],{},"As fontes não podem ser classificadas umas contra as outras."," Cada base de\ndados classifica dentro de si própria, por isso ",[966,995,996],{},"interleave()"," alterna as\nlistas por fonte: a posição é a única coisa comparável que existe.",[981,999,1000,1003,1004,1006],{},[984,1001,1002],{},"Sem tolerância a gralhas no caminho principal."," O FTS5 casa termos e\nprefixos, nunca aproximações, pelo que ",[966,1005,653],{}," mantém um segundo\níndice sobre as mesmas secções e carrega a cada falha.",[962,1008,1009,1010,1017,1018,1021,1022,1025],{},"O ",[1011,1012,1016],"a",{"href":1013,"rel":1014},"https:\u002F\u002Fpagefind.app\u002F",[1015],"nofollow","Pagefind"," responde em princípio às três: um índice\nfatiado do qual o navegador só busca uma parte, uma lista classificada única com\nfiltros e — como padrão do Starlight — a resposta do projeto mais comparável. A\nsua API de Node aceita registos em vez de HTML compilado, pelo que\n",[966,1019,1020],{},"addCustomRecord"," consome ",[966,1023,1024],{},"duxt:search:records"," diretamente e a camada nunca tem\nde exigir uma estratégia de renderização aos sites que a estendem.",[962,1027,1028,1029,1032,1033,1036,1037,1040,1041,1044],{},"Foi medido em vez de discutido, sobre o conteúdo real de ",[966,1030,1031],{},"www\u002F",": 33 coleções,\n2.918 páginas, ",[984,1034,1035],{},"11.937 registos"," em cinco idiomas e quatro versões.\n",[966,1038,1039],{},"scripts\u002Fsearch-index-bench.ts"," calculou os números abaixo, e\n",[966,1042,1043],{},"tests\u002Fsearch-index-bench.test.ts"," fixa a regra pela qual foram lidos.",[1046,1047,1049],"h3",{"id":1048},"o-que-a-medição-encontrou","O que a medição encontrou",[962,1051,1052,1055,1056,1059,1060,1063,1064,1067,1068,1071],{},[984,1053,1054],{},"Carga — o Pagefind ganha, com clareza."," A primeira consulta de uma leitora em\ninglês custa hoje ",[984,1057,1058],{},"1.448 KB"," (1.108 KB de SQLite em WASM e o seu worker, 340\nKB de despejos nas sete coleções em causa) e todas as seguintes são gratuitas. A\nmesma consulta contra um índice Pagefind custa ",[984,1061,1062],{},"150 KB",", e cada seguinte ",[984,1065,1066],{},"13\nKB",". Mesmo descontando por completo o motor de base de dados — o Content\ncarrega-o a pedido, e um ",[966,1069,1070],{},"queryCollection"," no cliente ao mudar de rota também o\npode invocar — são 340 KB contra 150 KB, e os 340 KB são a metade que cresce com\ncada fonte que um consumidor acrescenta, ao passo que os 150 KB não crescem.",[962,1073,1074,1077,1078,1081,1082,1085,1086,1085,1089,1092,1093,1085,1096,1085,1099,1085,1102,1092,1105,1108,1109,1081,1112,1085,1115,1085,1118,1085,1121,1085,1124,1092,1127,1085,1130,1085,1133,1136,1137,1139,1140,1143],{},[984,1075,1076],{},"Classificação — o Pagefind ganha, por idioma."," Um índice sobre todas as\nfontes devolveu uma única lista classificada, e os filtros saíram do contrato de\nregistos sem adaptação nenhuma: ",[966,1079,1080],{},"source"," continha ",[966,1083,1084],{},"\u002F",", ",[966,1087,1088],{},"\u002Fdemo",[966,1090,1091],{},"\u002Fdemo\u002Fapi",",\n",[966,1094,1095],{},"\u002Fdemo\u002Fchangelog",[966,1097,1098],{},"\u002Fdemo\u002Fchangelog-flat",[966,1100,1101],{},"\u002Fdemo\u002Fcollection",[966,1103,1104],{},"\u002Freleases",[966,1106,1107],{},"\u002Ftf",", e ",[966,1110,1111],{},"version",[966,1113,1114],{},"main",[966,1116,1117],{},"v0.1.0",[966,1119,1120],{},"v0.2.0",[966,1122,1123],{},"v0.2.6",[966,1125,1126],{},"v0.3.4",[966,1128,1129],{},"v1.x",[966,1131,1132],{},"v2.x",[966,1134,1135],{},"v3.x",". ",[966,1138,996],{}," desapareceria — para as fontes. Não\ndesapareceria de todo: o Pagefind indexa cada idioma em separado e seleciona um\nem tempo de execução, a sua documentação não descreve forma de pesquisar dois em\nconjunto, e ",[966,1141,1142],{},"mergeIndex"," contra o mesmo caminho base é ignorado, pelo que o\nrecuo entre idiomas de que depende uma página por traduzir continua a precisar\nde uma segunda instância e de dois espaços de pontuação incomparáveis.",[962,1145,1146,1149,1150,1153,1154,1157,1158,1161,1162,1164],{},[984,1147,1148],{},"Tolerância a gralhas — o Pagefind perde, e leva o recuo consigo."," O Pagefind\nfaz lematização por idioma e não tem correspondência difusa. ",[966,1151,1152],{},"collecton"," foi\nsalvo por prefixo até 360 resultados; ",[966,1155,1156],{},"verison"," — uma troca de letras —\ndevolveu ",[984,1159,1160],{},"três páginas sem relação",". Isso é pior do que o comportamento FTS5\nque substitui, porque não é um resultado vazio: ",[966,1163,649],{}," recorre ao\nFuse precisamente quando a passagem exata nada devolve, por isso três respostas\nerradas são três razões para o recuo nunca disparar. O Fuse teria de ficar, e o\ngatilho que o invoca teria de ser reescrito à volta de um fornecedor que\nresponde com aprumo e ao lado.",[962,1166,1167,1170,1171,1174,1175,1177],{},[984,1168,1169],{},"Saída — um ficheiro por secção indexada."," O índice emitiu ",[984,1172,1173],{},"12.066\nficheiros"," e 6,80 MiB para 11.937 registos, um fragmento por secção, contra os\n1.414 que uma compilação Cloudflare de ",[966,1176,1031],{}," escreve hoje. O Cloudflare Workers\nlimita uma versão a 20.000 ficheiros estáticos no plano gratuito. Um site de\ndocumentação cujo índice cresce um ficheiro por secção, por fonte, por versão e\npor idioma atinge esse limite com noventa páginas de material de origem, e quem\nacrescentasse um idioma descobri-lo-ia num deploy falhado.",[962,1179,1180,1183,1184,1187,1188,1191,1192,1195,1196,1199,1200,1203],{},[984,1181,1182],{},"O empacotamento não é obstáculo."," ",[966,1185,1186],{},"pagefind@1.5.2"," é MIT, entrega sete\nbinários pré-compilados como ",[966,1189,1190],{},"optionalDependencies"," que cobrem todas as\nplataformas que ",[966,1193,1194],{},"engines"," promete, e não precisa de descarga em postinstall nem\nde cadeia node-gyp — a fasquia que o ",[966,1197,1198],{},"better-sqlite3"," não passou. Indexar 11.937\nregistos levou 6,8 segundos e aos 10,0 o índice inteiro estava em memória. Nada\ndisto entra em conflito com\n",[1011,1201,1202],{"href":915},"ADR-0006",":\ntudo acontece durante a compilação.",[957,1205,1207],{"id":1206},"decisão","Decisão",[962,1209,1210,1213],{},[984,1211,1212],{},"A pesquisa por coleção do Content mantém-se como padrão da camada."," O\nPagefind não é adotado como aquilo que o duxt entrega.",[962,1215,1216],{},"Dos três problemas, um índice único resolve um por inteiro, outro apenas dentro\nde um idioma, e o terceiro agrava-o — acrescentando ainda uma lei de crescimento\ndo número de ficheiros que colide com a plataforma onde o próprio site da camada\né publicado. Um padrão muda-se por um ganho claro, não por uma troca, e dois em\ntrês é uma forma diferente, não uma melhor.",[962,1218,1219,1222,1224,1225,1085,1228,1085,1231,1085,1234,1092,1236,1238,1239,1242,1243,1245,1246,1249],{},[984,1220,1221],{},"O Pagefind continua disponível, como camada e não como padrão.",[966,1223,1024],{}," foi aberto exatamente para isto, e a medição confirmou que\no contrato não precisa de adaptação: ",[966,1226,1227],{},"url",[966,1229,1230],{},"title",[966,1232,1233],{},"content",[966,1235,1080],{},[966,1237,1111],{}," e ",[966,1240,1241],{},"locale"," correspondem campo a campo a ",[966,1244,1020],{},", e os\nfiltros que saem são as identidades de fonte e as etiquetas de versão que o duxt\njá calcula. Quem quiser um índice único escreve\n",[966,1247,1248],{},"extends: ['@kirchdev\u002Fduxt', 'duxt-pagefind']"," e paga o número de ficheiros de\nforma consciente.",[962,1251,1252,1183,1255,1258,1259,1261,1262,1264],{},[984,1253,1254],{},"A regra sobrevive ao candidato.",[966,1256,1257],{},"searchIndexVerdict",", em\n",[966,1260,1039],{},", enuncia as seis condições que um substituto tem\nde cumprir — carga sensivelmente menor, fontes classificadas em conjunto,\ntolerância a gralhas preservada, apenas em tempo de compilação, binários que\ncubram ",[966,1263,1194],{}," e saída dentro do limite de ficheiros do deploy — e devolve\naquelas que um candidato falha. O «não» deste ADR é um valor que essa função\ndevolve.",[957,1266,1268],{"id":1267},"consequências","Consequências",[962,1270,1271],{},"Os leitores mantêm uma pesquisa que descarrega mais e depois responde offline, e\nmantêm a tolerância a gralhas que o Fuse dá. A queixa sobre a carga fica por\nresolver: quem reúne muitas fontes continua a pagar por coleção ativa, e essa é\na razão mais forte para voltar ao assunto.",[962,1273,1274,1276],{},[966,1275,996],{}," fica, e com ele o comentário que explica porque não há pontuações\ncomparáveis com que classificar.",[962,1278,1279],{},"Voltar ao assunto é barato e os termos estão escritos. Se o Pagefind ganhasse\ncorrespondência difusa, ou emitisse fragmentos em menos ficheiros, duas\ncondições inverter-se-iam; um candidato que indexasse todos os idiomas num único\nespaço pesquisável inverteria uma terceira. Corram de novo o banco de ensaio em\nvez de reargumentar o caso — e registem um novo ADR que substitua este, porque\nestes registos são apenas acrescentados.",[962,1281,1282,1283,1287],{},"Nada disto restringe um serviço externo. O Meilisearch e o Typesense respondem\nàs três queixas e nunca foram candidatos a ",[1284,1285,1286],"em",{},"padrão",", porque um padrão não pode\nexigir a um consumidor que opere ou compre um serviço; consomem o mesmo hook.",{"title":1289,"searchDepth":1290,"depth":1291,"links":1292},"",2,5,[1293,1297,1298],{"id":959,"depth":1290,"text":960,"children":1294},[1295],{"id":1048,"depth":1296,"text":1049},3,{"id":1206,"depth":1290,"text":1207},{"id":1267,"depth":1290,"text":1268},true,"2026-09-12","md",{"status":1303},"accepted","---\ntitle: Manter a pesquisa por coleção do Content como padrão\ndescription: Um único índice sobre todas as fontes foi medido contra a pesquisa de um índice por coleção do Content e não é o padrão da camada; o hook de compilação transforma-o antes numa camada fornecedora.\nstatus: accepted\ndate: 2026-09-12\n---\n\n## Contexto\n\nA pesquisa é um índice por coleção. `useDuxtSearch()` chama o\n`useSearchCollection()` do Content uma vez por fonte ativa, o que descarrega o\n`sql_dump.txt` dessa coleção e constrói um índice FTS5 no navegador sobre SQLite\nem WASM. Desta única forma decorrem três queixas:\n\n- **A carga cresce com o modelo.** Um despejo por coleção ativa, e as coleções\n  multiplicam-se como fontes × versões × idiomas. O multi-fonte é a proposta do\n  duxt, e a pesquisa paga-a linearmente.\n- **As fontes não podem ser classificadas umas contra as outras.** Cada base de\n  dados classifica dentro de si própria, por isso `interleave()` alterna as\n  listas por fonte: a posição é a única coisa comparável que existe.\n- **Sem tolerância a gralhas no caminho principal.** O FTS5 casa termos e\n  prefixos, nunca aproximações, pelo que `useFuzzySearch()` mantém um segundo\n  índice sobre as mesmas secções e carrega a cada falha.\n\nO [Pagefind](https:\u002F\u002Fpagefind.app\u002F) responde em princípio às três: um índice\nfatiado do qual o navegador só busca uma parte, uma lista classificada única com\nfiltros e — como padrão do Starlight — a resposta do projeto mais comparável. A\nsua API de Node aceita registos em vez de HTML compilado, pelo que\n`addCustomRecord` consome `duxt:search:records` diretamente e a camada nunca tem\nde exigir uma estratégia de renderização aos sites que a estendem.\n\nFoi medido em vez de discutido, sobre o conteúdo real de `www\u002F`: 33 coleções,\n2.918 páginas, **11.937 registos** em cinco idiomas e quatro versões.\n`scripts\u002Fsearch-index-bench.ts` calculou os números abaixo, e\n`tests\u002Fsearch-index-bench.test.ts` fixa a regra pela qual foram lidos.\n\n### O que a medição encontrou\n\n**Carga — o Pagefind ganha, com clareza.** A primeira consulta de uma leitora em\ninglês custa hoje **1.448 KB** (1.108 KB de SQLite em WASM e o seu worker, 340\nKB de despejos nas sete coleções em causa) e todas as seguintes são gratuitas. A\nmesma consulta contra um índice Pagefind custa **150 KB**, e cada seguinte **13\nKB**. Mesmo descontando por completo o motor de base de dados — o Content\ncarrega-o a pedido, e um `queryCollection` no cliente ao mudar de rota também o\npode invocar — são 340 KB contra 150 KB, e os 340 KB são a metade que cresce com\ncada fonte que um consumidor acrescenta, ao passo que os 150 KB não crescem.\n\n**Classificação — o Pagefind ganha, por idioma.** Um índice sobre todas as\nfontes devolveu uma única lista classificada, e os filtros saíram do contrato de\nregistos sem adaptação nenhuma: `source` continha `\u002F`, `\u002Fdemo`, `\u002Fdemo\u002Fapi`,\n`\u002Fdemo\u002Fchangelog`, `\u002Fdemo\u002Fchangelog-flat`, `\u002Fdemo\u002Fcollection`, `\u002Freleases`,\n`\u002Ftf`, e `version` continha `main`, `v0.1.0`, `v0.2.0`, `v0.2.6`, `v0.3.4`,\n`v1.x`, `v2.x`, `v3.x`. `interleave()` desapareceria — para as fontes. Não\ndesapareceria de todo: o Pagefind indexa cada idioma em separado e seleciona um\nem tempo de execução, a sua documentação não descreve forma de pesquisar dois em\nconjunto, e `mergeIndex` contra o mesmo caminho base é ignorado, pelo que o\nrecuo entre idiomas de que depende uma página por traduzir continua a precisar\nde uma segunda instância e de dois espaços de pontuação incomparáveis.\n\n**Tolerância a gralhas — o Pagefind perde, e leva o recuo consigo.** O Pagefind\nfaz lematização por idioma e não tem correspondência difusa. `collecton` foi\nsalvo por prefixo até 360 resultados; `verison` — uma troca de letras —\ndevolveu **três páginas sem relação**. Isso é pior do que o comportamento FTS5\nque substitui, porque não é um resultado vazio: `useDuxtSearch()` recorre ao\nFuse precisamente quando a passagem exata nada devolve, por isso três respostas\nerradas são três razões para o recuo nunca disparar. O Fuse teria de ficar, e o\ngatilho que o invoca teria de ser reescrito à volta de um fornecedor que\nresponde com aprumo e ao lado.\n\n**Saída — um ficheiro por secção indexada.** O índice emitiu **12.066\nficheiros** e 6,80 MiB para 11.937 registos, um fragmento por secção, contra os\n1.414 que uma compilação Cloudflare de `www\u002F` escreve hoje. O Cloudflare Workers\nlimita uma versão a 20.000 ficheiros estáticos no plano gratuito. Um site de\ndocumentação cujo índice cresce um ficheiro por secção, por fonte, por versão e\npor idioma atinge esse limite com noventa páginas de material de origem, e quem\nacrescentasse um idioma descobri-lo-ia num deploy falhado.\n\n**O empacotamento não é obstáculo.** `pagefind@1.5.2` é MIT, entrega sete\nbinários pré-compilados como `optionalDependencies` que cobrem todas as\nplataformas que `engines` promete, e não precisa de descarga em postinstall nem\nde cadeia node-gyp — a fasquia que o `better-sqlite3` não passou. Indexar 11.937\nregistos levou 6,8 segundos e aos 10,0 o índice inteiro estava em memória. Nada\ndisto entra em conflito com\n[ADR-0006](\u002Fadr\u002F0006-rebuild-on-a-schedule-rather-than-refresh-at-runtime):\ntudo acontece durante a compilação.\n\n## Decisão\n\n**A pesquisa por coleção do Content mantém-se como padrão da camada.** O\nPagefind não é adotado como aquilo que o duxt entrega.\n\nDos três problemas, um índice único resolve um por inteiro, outro apenas dentro\nde um idioma, e o terceiro agrava-o — acrescentando ainda uma lei de crescimento\ndo número de ficheiros que colide com a plataforma onde o próprio site da camada\né publicado. Um padrão muda-se por um ganho claro, não por uma troca, e dois em\ntrês é uma forma diferente, não uma melhor.\n\n**O Pagefind continua disponível, como camada e não como padrão.**\n`duxt:search:records` foi aberto exatamente para isto, e a medição confirmou que\no contrato não precisa de adaptação: `url`, `title`, `content`, `source`,\n`version` e `locale` correspondem campo a campo a `addCustomRecord`, e os\nfiltros que saem são as identidades de fonte e as etiquetas de versão que o duxt\njá calcula. Quem quiser um índice único escreve\n`extends: ['@kirchdev\u002Fduxt', 'duxt-pagefind']` e paga o número de ficheiros de\nforma consciente.\n\n**A regra sobrevive ao candidato.** `searchIndexVerdict`, em\n`scripts\u002Fsearch-index-bench.ts`, enuncia as seis condições que um substituto tem\nde cumprir — carga sensivelmente menor, fontes classificadas em conjunto,\ntolerância a gralhas preservada, apenas em tempo de compilação, binários que\ncubram `engines` e saída dentro do limite de ficheiros do deploy — e devolve\naquelas que um candidato falha. O «não» deste ADR é um valor que essa função\ndevolve.\n\n## Consequências\n\nOs leitores mantêm uma pesquisa que descarrega mais e depois responde offline, e\nmantêm a tolerância a gralhas que o Fuse dá. A queixa sobre a carga fica por\nresolver: quem reúne muitas fontes continua a pagar por coleção ativa, e essa é\na razão mais forte para voltar ao assunto.\n\n`interleave()` fica, e com ele o comentário que explica porque não há pontuações\ncomparáveis com que classificar.\n\nVoltar ao assunto é barato e os termos estão escritos. Se o Pagefind ganhasse\ncorrespondência difusa, ou emitisse fragmentos em menos ficheiros, duas\ncondições inverter-se-iam; um candidato que indexasse todos os idiomas num único\nespaço pesquisável inverteria uma terceira. Corram de novo o banco de ensaio em\nvez de reargumentar o caso — e registem um novo ADR que substitua este, porque\nestes registos são apenas acrescentados.\n\nNada disto restringe um serviço externo. O Meilisearch e o Typesense respondem\nàs três queixas e nunca foram candidatos a *padrão*, porque um padrão não pode\nexigir a um consumidor que opere ou compre um serviço; consomem o mesmo hook.\n",{"title":934,"description":937},{"loc":935},"ctBYhr0vl3tsln3b26QfCXKnWujkDYyNIYJt4TR_NhU","pt","pt-PT",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1311},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09\"\u002F>\u003Cpath d=\"M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z\"\u002F>\u003Cpath d=\"M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05\"\u002F>\u003C\u002Fg>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1313},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"m16.24 7.76l-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z\"\u002F>\u003C\u002Fg>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1315},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v16m8.001-2A2 2 0 0 0 22 17V5a2 2 0 0 0-1.999-2L16 3.002A5 5 0 0 0 12 5a5 5 0 0 0-4-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 1.999 2H8a5 5 0 0 1 4 2a5 5 0 0 1 4-2z\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1317},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 5h.01M3 12h.01M3 19h.01M8 5h13M8 12h13M8 19h13\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1319},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15.39 4.39a1 1 0 0 0 1.68-.474a2.5 2.5 0 1 1 3.014 3.015a1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474a2.5 2.5 0 1 0-3.014 3.015a1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474a2.5 2.5 0 1 1-3.014-3.015a1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474a2.5 2.5 0 1 0 3.014-3.015a1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1321},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21.3 15.3a2.4 2.4 0 0 1 0 3.4l-2.6 2.6a2.4 2.4 0 0 1-3.4 0L2.7 8.7a2.41 2.41 0 0 1 0-3.4l2.6-2.6a2.41 2.41 0 0 1 3.4 0Zm-6.8-2.8l2-2m-5-1l2-2m-5-1l2-2m7 11l2-2\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1323},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"\u002F>\u003C\u002Fg>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1325},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m6 9l6 6l6-6\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1327},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 5.88L14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88M7 10v12\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1329},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 18.12L10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88M17 14V2\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1331},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1333},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 8v4m0 4h.01\"\u002F>\u003C\u002Fg>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1335},"\u003Cpath fill=\"currentColor\" d=\"M20.317 4.37a19.8 19.8 0 0 0-4.885-1.515a.074.074 0 0 0-.079.037c-.21.375-.444.864-.608 1.25a18.3 18.3 0 0 0-5.487 0a13 13 0 0 0-.617-1.25a.08.08 0 0 0-.079-.037A19.7 19.7 0 0 0 3.677 4.37a.1.1 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.08.08 0 0 0 .031.057a19.9 19.9 0 0 0 5.993 3.03a.08.08 0 0 0 .084-.028a14 14 0 0 0 1.226-1.994a.076.076 0 0 0-.041-.106a13 13 0 0 1-1.872-.892a.077.077 0 0 1-.008-.128a10 10 0 0 0 .372-.292a.07.07 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.07.07 0 0 1 .078.01q.181.149.373.292a.077.077 0 0 1-.006.127a12.3 12.3 0 0 1-1.873.892a.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.08.08 0 0 0 .084.028a19.8 19.8 0 0 0 6.002-3.03a.08.08 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.06.06 0 0 0-.031-.03M8.02 15.33c-1.182 0-2.157-1.085-2.157-2.419c0-1.333.956-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.956 2.418-2.157 2.418m7.975 0c-1.183 0-2.157-1.085-2.157-2.419c0-1.333.955-2.419 2.157-2.419c1.21 0 2.176 1.096 2.157 2.42c0 1.333-.946 2.418-2.157 2.418\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1337},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v16m4-8h2m-2-4h2m2.001 10A2 2 0 0 0 22 17V5a2 2 0 0 0-1.999-2L16 3.002A5 5 0 0 0 12 5a5 5 0 0 0-4-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 1.999 2H8a5 5 0 0 1 4 2a5 5 0 0 1 4-2zM6 13h2M6 9h2\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1339},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1341,"hidden":1299},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M4 22h14a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v4\"\u002F>\u003Cpath d=\"M14 2v4a2 2 0 0 0 2 2h4M5 12l-3 3l3 3m4 0l3-3l-3-3\"\u002F>\u003C\u002Fg>",[1343,1344,1345],"\u002Fv0.3.4\u002Fadr\u002F0010-keep-contents-per-collection-search-as-the-default","\u002Fv0.2.0\u002Fadr\u002F0010-keep-contents-per-collection-search-as-the-default","\u002Fv0.1.0\u002Fadr\u002F0010-keep-contents-per-collection-search-as-the-default",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1347},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1349},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1351},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M10 8h.01M12 12h.01M14 8h.01M16 12h.01M18 8h.01M6 8h.01M7 16h10m-9-4h.01\"\u002F>\u003Crect width=\"20\" height=\"16\" x=\"2\" y=\"4\" rx=\"2\"\u002F>\u003C\u002Fg>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1353},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1355},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1357},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 19l-7-7l7-7m7 7H5\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1359},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":944,"top":944,"width":945,"height":945,"rotate":944,"vFlip":946,"hFlip":946,"body":1361},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":944,"top":944,"width":1363,"height":1364,"rotate":944,"vFlip":946,"hFlip":946,"body":1365},640,480,"\u003Cpath fill=\"red\" d=\"M256 0h384v480H256z\"\u002F>\u003Cpath fill=\"#060\" d=\"M0 0h256v480H0z\"\u002F>\u003Cg fill=\"#ff0\" fill-rule=\"evenodd\" stroke=\"#000\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\".6\">\u003Cpath d=\"M339.5 306.2c-32.3-1-180-93.2-181-108l8.1-13.5c14.7 21.3 165.7 111 180.6 107.8z\"\u002F>\u003Cpath d=\"M164.9 182.8c-2.9 7.8 38.6 33.4 88.4 63.8s92.9 49 96 46.4l1.5-2.8q-.9 1.6-4.3.6c-13.5-3.9-48.6-20-92.1-46.4c-43.6-26.4-81.4-50.7-87.3-61a6 6 0 0 1-.6-3.1h-.2l-1.2 2.2zm175.3 123.8q-.7 1.3-3.5.8c-12-1.3-48.6-19.1-91.9-45c-50.4-30.2-92-57.6-87.4-64.8l1.2-2.2l.2.1c-4 12.2 82.1 61.4 87.2 64.6c49.8 30.8 91.8 48.9 95.5 44.2z\"\u002F>\u003Cpath d=\"M256.2 207.2c32.2-.3 72-4.4 95-13.6l-5-8c-13.5 7.5-53.5 12.5-90.3 13.2c-43.4-.4-74.1-4.5-89.5-14.8l-4.6 8.6c28.2 12 57.2 14.5 94.4 14.6\"\u002F>\u003Cpath d=\"M352.5 193.8c-.8 1.3-15.8 6.4-37.8 10.2a381 381 0 0 1-58.6 4.3a416 416 0 0 1-56.2-3.6c-23.1-3.6-35-8.6-39.5-10.4l1.1-2.2c12.7 5 24.7 8 38.7 10.2A412 412 0 0 0 256 206a392 392 0 0 0 58.3-4.3c22.5-3.7 34.8-8.4 36.6-10.5zm-4.4-8.1c-2.4 2-14.6 6.3-36 9.7a388 388 0 0 1-55.8 4c-22 0-40.1-1.6-53.8-3.6c-21.8-2.8-33.4-8-37.6-9.4l1.3-2.2c3.3 1.7 14.4 6.2 36.5 9.3a385 385 0 0 0 53.6 3.4a384 384 0 0 0 55.4-4c21.5-3 33.1-8.4 34.9-9.8zM150.3 246c19.8 10.7 63.9 16 105.6 16.4c38 .1 87.4-5.8 105.9-15.6l-.5-10.7c-5.8 9-58.8 17.7-105.8 17.4s-90.7-7.6-105.3-17v9.5\"\u002F>\u003Cpath d=\"M362.8 244.5v2.5c-2.8 3.4-20.2 8.4-42 12a434 434 0 0 1-65.4 4.4a400 400 0 0 1-62-4.3a155 155 0 0 1-44.4-12v-2.9c9.7 6.4 35.9 11.2 44.7 12.6c15.8 2.4 36.1 4.2 61.7 4.2c26.9 0 48.4-1.9 65-4.4c15.7-2.3 38-8.2 42.4-12.1m0-9v2.5c-2.8 3.3-20.2 8.3-42 11.9a434 434 0 0 1-65.4 4.5a414 414 0 0 1-62-4.3a155 155 0 0 1-44.4-12v-3c9.7 6.5 36 11.2 44.7 12.6a408 408 0 0 0 61.7 4.3c26.9 0 48.5-2 65-4.5c15.7-2.2 38-8.1 42.4-12m-107 68.8c-45.6-.2-84.7-12.4-93-14.4l6 9.4a250 250 0 0 0 87.4 14.3c34.7-1 65-3.7 86.3-14.1l6.2-9.8c-14.5 6.9-64 14.6-93 14.6\"\u002F>\u003Cpath d=\"m344.9 297.3l-2.8 4c-10 3.6-26 7.4-32.6 8.4a296 296 0 0 1-53.7 5c-40.4-.6-73.5-8.5-89-15.3l-1.3-2.1l.2-.4l2.1.9a287 287 0 0 0 88.2 14.5c18.8 0 37.5-2.1 52.6-4.8c23.2-4.7 32.6-8.2 35.5-9.8l.7-.4zm5.3-8.8l-2 3.5c-5.4 2-20 6.2-41.3 9.2c-14 1.9-22.7 3.8-50.6 4.3a347 347 0 0 1-94.2-14L161 289a390 390 0 0 0 95.4 14c25.5-.5 36.4-2.4 50.3-4.3c24.8-3.8 37.3-8 41-9.1v-.2l2.6-1z\"\u002F>\u003Cpath d=\"M350.8 237.6c.1 30-15.3 57-27.6 68.8a99 99 0 0 1-67.8 28.2c-30.3.5-58.8-19.2-66.5-27.9a101 101 0 0 1-27.5-67.4c1.8-32.8 14.7-55.6 33.3-71.3a100 100 0 0 1 64.2-22.7a98 98 0 0 1 71 35.6c12.5 15.2 18 31.7 20.9 56.7M255.6 135a106 106 0 0 1 106 105.2a105.6 105.6 0 1 1-211.4 0c-.1-58 47.3-105.2 105.4-105.2\"\u002F>\u003Cpath d=\"M255.9 134.5c58.2 0 105.6 47.4 105.6 105.6S314.1 345.7 256 345.7s-105.6-47.4-105.6-105.6S197.8 134.5 256 134.5zM152.6 240c0 56.8 46.7 103.3 103.3 103.3S359.2 296.8 359.2 240s-46.7-103.3-103.3-103.3S152.6 183.2 152.6 240\"\u002F>\u003Cpath d=\"M256 143.3a97 97 0 0 1 96.7 96.7a97 97 0 0 1-96.7 96.8c-53 0-96.7-43.6-96.7-96.8a97 97 0 0 1 96.7-96.7M161.6 240c0 52 42.6 94.4 94.4 94.4s94.4-42.5 94.4-94.4s-42.6-94.4-94.4-94.4a95 95 0 0 0-94.4 94.4\"\u002F>\u003Cpath d=\"M260.3 134h-9.1v212.3h9z\"\u002F>\u003Cpath d=\"M259.3 132.8h2.3v214.7h-2.2V132.8zm-9 0h2.4v214.7h-2.3z\"\u002F>\u003Cpath d=\"M361.6 244.2v-7.8l-6.4-6l-36.3-9.6l-52.2-5.3l-63 3.2l-44.8 10.6l-9 6.7v7.9l22.9-10.3l54.4-8.5h52.3l38.4 4.2l26.6 6.4z\"\u002F>\u003Cpath d=\"M256 223.8c24.9 0 49 2.3 68.3 6c19.8 4 33.7 9 38.5 14.5v2.8c-5.8-7-24.5-12-39-15c-19-3.6-43-6-67.9-6c-26.1 0-50.5 2.6-69.3 6.2c-15 3-35.1 9-37.6 14.8v-2.9c1.3-4 16.3-10 37.3-14.3c18.9-3.7 43.3-6.1 69.6-6.1zm0-9.1a383 383 0 0 1 68.3 6c19.8 4 33.7 9 38.5 14.6v2.7c-5.8-6.9-24.5-12-39-14.9c-19-3.7-43-6-67.9-6a376 376 0 0 0-69.2 6.2c-14.5 2.7-35.4 8.9-37.7 14.7v-2.8c1.4-4 16.6-10.3 37.3-14.3c19-3.7 43.3-6.2 69.7-6.2m-.6-46.2c39.3-.2 73.6 5.5 89.3 13.5l5.7 10c-13.6-7.4-50.6-15-94.9-14c-36.1.3-74.7 4-94 14.4l6.8-11.4c15.9-8.3 53.3-12.5 87.1-12.5\"\u002F>\u003Cpath d=\"M256 176.7a354 354 0 0 1 61.3 4.3c16 3 31.3 7.4 33.5 9.8l1.7 3c-5.3-3.4-18.6-7.3-35.6-10.5s-38.7-4.3-61-4.2c-25.3-.1-45 1.2-61.8 4.2a109 109 0 0 0-33.3 10.3l1.7-3.1c6-3 15.3-6.7 31.1-9.6c17.5-3.2 37.4-4.1 62.4-4.2m0-9c21.4-.2 42.6 1 59.1 4a96 96 0 0 1 30.6 10l2.5 4c-4.2-4.7-20-9.2-34.1-11.6c-16.4-2.9-36.7-4-58.1-4.2a361 361 0 0 0-59.5 4.4a97 97 0 0 0-29.6 9.1l2.2-3.3c5.8-3 15.2-5.8 27-8.1a357 357 0 0 1 59.9-4.4zM308.4 284a276 276 0 0 0-52.5-4c-65.5.8-86.6 13.5-89.2 17.3l-5-8c16.8-12 52.4-18.8 94.6-18.2q32.9.5 56.6 5l-4.5 8\"\u002F>\u003Cpath d=\"M255.6 278.9c18.2.3 36 1 53.3 4.2l-1.2 2.2c-16-3-33.2-4-52-4c-24.3-.2-48.7 2.1-70 8.2c-6.7 1.9-17.8 6.2-19 9.8l-1.2-2c.4-2.2 7-6.6 19.6-10c24.4-7 47.2-8.3 70.5-8.4m.8-9.2a327 327 0 0 1 57.3 5l-1.3 2.3a299 299 0 0 0-56-4.9c-24.2 0-49.9 1.8-73.3 8.6c-7.5 2.2-20.6 7-21 10.7l-1.2-2.2c.2-3.4 11.5-7.9 21.7-10.8c23.5-6.9 49.3-8.6 73.8-8.7\"\u002F>\u003Cpath d=\"m349.4 290.5l-7.8 12.3l-22.7-20.1l-58.6-39.5l-66.2-36.3l-34.3-11.7l7.3-13.6l2.5-1.3l21.3 5.3l70.4 36.3l40.6 25.6L336 272l13.9 16z\"\u002F>\u003Cpath d=\"M158.6 195.5c6-4 50.2 15.6 96.6 43.6c46.1 28 90.3 59.6 86.3 65.5l-1.3 2.1l-.6.5c.1-.1.8-1 0-3.1c-2-6.5-33.4-31.5-85.3-62.9c-50.7-30.1-92.9-48.3-97-43.1zM351 290.4c3.8-7.6-37.2-38.5-88.1-68.6c-52-29.5-89.6-46.9-96.5-41.7L165 183l.4-.5c1.2-1 3.3-1 4.2-1c11.8.2 45.5 15.7 92.8 42.8c20.8 12 87.6 55 87.3 67c0 1 .1 1.2-.3 1.8l1.7-2.6z\"\u002F>\u003C\u002Fg>\u003Cg transform=\"translate(0 26.7)scale(1.06667)\">\u003Cpath fill=\"#fff\" stroke=\"#000\" stroke-width=\".7\" d=\"M180.6 211a59 59 0 0 0 17.5 41.7a59 59 0 0 0 41.8 17.6a59 59 0 0 0 42-17.4a59 59 0 0 0 17.4-41.8v-79.2l-118.7-.2z\"\u002F>\u003Cpath fill=\"red\" stroke=\"#000\" stroke-width=\".5\" d=\"M183 211.1a56 56 0 0 0 16.8 40a57 57 0 0 0 40.2 16.8a57 57 0 0 0 40.2-16.6a56 56 0 0 0 16.7-40v-77H183v76.8m91-53.7v48.9l-.1 5.1a33 33 0 0 1-10 24a34 34 0 0 1-24 10c-9.4 0-17.7-4-23.9-10.2a34 34 0 0 1-10-24v-54z\"\u002F>\u003Cg id=\"SVGEJEWUNBm\">\u003Cg id=\"SVGclb1EdrC\" fill=\"#ff0\" stroke=\"#000\" stroke-width=\".5\">\u003Cpath stroke=\"none\" d=\"M190.2 154.4c.1-5.5 4-6.8 4-6.8c.1 0 4.3 1.4 4.3 6.9z\"\u002F>\u003Cpath d=\"m186.8 147.7l-.7 6.3h4.2c0-5.2 4-6 4-6c.1 0 4 1.1 4.1 6h4.2l-.8-6.4zm-1 6.4h17q.5 0 .6.7q0 .8-.6.8h-17q-.5 0-.6-.8q0-.7.7-.7z\"\u002F>\u003Cpath d=\"M192 154c0-3.3 2.3-4.2 2.3-4.2s2.3 1 2.3 4.2H192m-5.8-9h16.3q.5.1.6.8q0 .5-.6.6h-16.3q-.5 0-.6-.7q0-.5.6-.6zm.4 1.5H202q.5 0 .6.7t-.6.7h-15.5q-.6 0-.6-.7t.6-.7zm5-10.6h1.2v.8h.9v-.8h1.3v.9h.9v-1h1.2v2q0 .6-.5.6h-4.4q-.5 0-.6-.5zm4.6 2.7l.3 6.4h-4.3l.3-6.5h3.7\"\u002F>\u003Cpath id=\"SVGX7Ev4b9n\" d=\"M191 141.6v3.4h-4v-3.4z\"\u002F>\u003Cuse width=\"100%\" height=\"100%\" x=\"10.6\" href=\"#SVGX7Ev4b9n\"\u002F>\u003Cpath id=\"SVGCFb9YbAP\" d=\"M186.3 139h1.2v1h.9v-1h1.2v1h.9v-1h1.2v2q0 .6-.5.6h-4.3l-.6-.6z\"\u002F>\u003Cuse width=\"100%\" height=\"100%\" x=\"10.6\" href=\"#SVGCFb9YbAP\"\u002F>\u003Cpath fill=\"#000001\" stroke=\"none\" d=\"M193.9 140.6c0-.6.9-.6.9 0v1.6h-.9z\"\u002F>\u003Cpath id=\"SVGUVAvAd6p\" fill=\"#000001\" stroke=\"none\" d=\"M188.6 142.8c0-.6.8-.6.8 0v1.2h-.8z\"\u002F>\u003Cuse width=\"100%\" height=\"100%\" x=\"10.6\" href=\"#SVGUVAvAd6p\"\u002F>\u003C\u002Fg>\u003Cuse width=\"100%\" height=\"100%\" y=\"46.3\" href=\"#SVGclb1EdrC\"\u002F>\u003Cuse width=\"100%\" height=\"100%\" href=\"#SVGclb1EdrC\" transform=\"rotate(-45.2 312.8 180)\"\u002F>\u003C\u002Fg>\u003Cuse width=\"100%\" height=\"100%\" x=\"45.7\" href=\"#SVGclb1EdrC\"\u002F>\u003Cuse width=\"100%\" height=\"100%\" href=\"#SVGEJEWUNBm\" transform=\"matrix(-1 0 0 1 479.8 0)\"\u002F>\u003Cg id=\"SVGo10APbeA\" fill=\"#fff\">\u003Cpath fill=\"#039\" d=\"M232.6 202.4a8 8 0 0 0 2.2 5.7a7 7 0 0 0 5.3 2.4q3.2-.2 5.3-2.4a8 8 0 0 0 2.2-5.7v-10.8h-15z\"\u002F>\u003Ccircle cx=\"236.1\" cy=\"195.7\" r=\"1.5\"\u002F>\u003Ccircle cx=\"244.4\" cy=\"195.7\" r=\"1.5\"\u002F>\u003Ccircle cx=\"240.2\" cy=\"199.7\" r=\"1.5\"\u002F>\u003Ccircle cx=\"236.1\" cy=\"203.9\" r=\"1.5\"\u002F>\u003Ccircle cx=\"244.4\" cy=\"203.9\" r=\"1.5\"\u002F>\u003C\u002Fg>\u003Cuse width=\"100%\" height=\"100%\" y=\"-26\" href=\"#SVGo10APbeA\"\u002F>\u003Cuse width=\"100%\" height=\"100%\" x=\"-20.8\" href=\"#SVGo10APbeA\"\u002F>\u003Cuse width=\"100%\" height=\"100%\" x=\"20.8\" href=\"#SVGo10APbeA\"\u002F>\u003Cuse width=\"100%\" height=\"100%\" y=\"25.8\" href=\"#SVGo10APbeA\"\u002F>\u003C\u002Fg>",1792683435815]