Pular para o conteúdo principal

Adicione um chatbot de IA com citações ao MkDocs

· 4 minutos de leitura
Michael Fisher
ChattyBox maintainer and technical writer

Os temas do MkDocs expõem diretórios de substituição diferentes, e o Material pode navegar entre páginas sem um recarregamento completo. Uma integração duradoura deve preservar os scripts existentes do tema, carregar o widget uma vez e coexistir com a pesquisa e a navegação em dispositivos móveis.

Autor e revisor técnico: Michael Fisher, responsável pela manutenção do ChattyBox. Publicado e verificado tecnicamente em 10 de julho de 2026. O protocolo de verificação abaixo é um tutorial de implementação; não é reivindicado nenhum resultado de tráfego, deflexão ou precisão das respostas.

1. Escolha o diretório de substituição correto

Para o Material for MkDocs, aponte custom_dir para um diretório overrides:

site_name: My documentation
theme:
name: material
custom_dir: overrides
features:
- navigation.instant

Para o tema integrado, use um diretório de tema personalizado separado:

site_name: My documentation
theme:
name: mkdocs
custom_dir: custom_theme

Manter as variantes separadas deixa claro qual template base upstream está a ser estendido.

2. Estenda o bloco de scripts

Crie overrides/main.html para o Material ou custom_theme/main.html para o tema integrado:

{% extends "base.html" %}

{% block scripts %}
{{ super() }}
<script
id="chattybox-widget"
src="https://chattybox.ai/widget.js"
async
data-api-key="YOUR_API_KEY"
data-api-url="YOUR_CHAT_API_URL"
data-chattybox-widget="true"
></script>
{% endblock %}

{{ super() }} preserva os scripts fornecidos pelo tema, incluindo o comportamento de navegação e pesquisa. Omitir esse elemento pode fazer o widget parecer funcionar enquanto quebra silenciosamente a interface da documentação. O ID estável também fornece uma asserção direta contra loaders duplicados.

Use valores específicos do projeto da referência de instalação do widget. O guia de chatbot de IA para MkDocs aborda o escopo das fontes, o comportamento do rastreamento e as perguntas que deve avaliar antes de publicar.

3. Compile ambas as variantes

No seu projeto MkDocs:

python -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt

cd material
mkdocs build --strict

cd ../vanilla
mkdocs build --strict

--strict transforma avisos em falhas, identificando problemas de navegação e configuração antes de o widget ser avaliado.

4. Execute as verificações no navegador

Sirva cada variante e verifique:

  1. A pesquisa integrada continua a abrir e a devolver o resultado de documentação esperado.
  2. A navegação instantânea do Material muda de rota sem duplicar o loader do widget.
  3. document.querySelectorAll('#chattybox-widget').length continua a ser 1 depois de várias mudanças de rota.
  4. Numa viewport de 390 px, o launcher não cobre a pesquisa, a navegação nem os controles seguinte/anterior.
  5. Uma pergunta suportada cita a página esperada, e uma pergunta sem suporte produz um fallback conservador.

As primeiras quatro verificações validam o comportamento da integração. A quinta depende das páginas que indexa e requer um conjunto de avaliação representativo; siga o guia de scraping e o checklist de lançamento em vez de tratar um carregamento de script bem-sucedido como prova da qualidade das respostas.

5. Preserve uma CSP restritiva

Permita o host do widget em script-src, a origem da API configurada em connect-src e as origens das fontes em style-src e font-src quando necessário. O widget atual injeta estilos de componentes, por isso uma política de resto estrita também precisa de uma estratégia explícita para estilos inline. Evite listas de origens com wildcards.

Checklist de manutenção

Recompile ambas as variantes do tema depois de atualizações do MkDocs ou do Material, pois os nomes dos blocos de template upstream podem mudar. Mantenha o ID do script estável, preserve super() e repita as verificações de pesquisa, navegação instantânea, sobreposição em dispositivos móveis e citações de fontes.

Para planear o lançamento de ponta a ponta, use o checklist de implementação de chatbot para documentação.

Fontes

Utilizamos ferramentas opcionais de análise e gestão de tags para compreender a utilização do site. Escolha se pretende permitir o Ahrefs Web Analytics, o PostHog e o Google Tag Manager. Ao desativar a análise, esta página será recarregada para que a alteração seja aplicada corretamente. A funcionalidade essencial do site e a monitorização de erros não são controladas por esta escolha. Leia a nossa política de privacidade.