Lewati ke konten utama

Tambahkan chatbot AI dengan sumber ke MkDocs

· 3 mnt baca
Michael Fisher
ChattyBox maintainer and technical writer

Tema MkDocs menyediakan direktori override yang berbeda, dan Material dapat berpindah antarhalaman tanpa pemuatan ulang penuh. Integrasi yang tahan lama harus mempertahankan skrip bawaan tema, memuat widget satu kali, serta berjalan bersama pencarian dan navigasi pada perangkat seluler.

Penulis dan peninjau teknis: Michael Fisher, pemelihara ChattyBox. Dipublikasikan dan diperiksa secara teknis pada 10 Juli 2026. Protokol verifikasi di bawah ini adalah tutorial implementasi; tidak ada klaim hasil terkait trafik, pengalihan, atau akurasi jawaban.

1. Pilih direktori override yang tepat

Untuk Material for MkDocs, arahkan custom_dir ke direktori overrides:

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

Untuk tema bawaan, gunakan direktori tema kustom yang terpisah:

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

Memisahkan kedua varian memperjelas template dasar upstream mana yang diperluas.

2. Perluas blok scripts

Buat overrides/main.html untuk Material atau custom_theme/main.html untuk tema bawaan:

{% 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() }} mempertahankan skrip yang disediakan tema, termasuk perilaku navigasi dan pencarian. Menghilangkannya dapat membuat widget terlihat berfungsi, tetapi diam-diam merusak antarmuka dokumentasi. ID yang stabil juga memberi Anda assertion langsung untuk loader duplikat.

Gunakan nilai khusus proyek dari referensi instalasi widget. Panduan chatbot AI MkDocs membahas cakupan sumber, perilaku crawl, dan pertanyaan yang perlu dievaluasi sebelum dipublikasikan.

3. Bangun kedua varian

Dari proyek MkDocs Anda:

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

cd material
mkdocs build --strict

cd ../vanilla
mkdocs build --strict

--strict mengubah peringatan menjadi kegagalan sehingga masalah navigasi dan konfigurasi yang rusak terdeteksi sebelum widget dievaluasi.

4. Jalankan pemeriksaan browser

Sajikan setiap varian lalu verifikasi:

  1. Pencarian bawaan masih terbuka dan mengembalikan hasil dokumentasi yang diharapkan.
  2. Material instant navigation mengubah rute tanpa menggandakan loader widget.
  3. document.querySelectorAll('#chattybox-widget').length tetap 1 setelah beberapa perubahan rute.
  4. Pada viewport 390 px, launcher tidak menutupi pencarian, navigasi, atau kontrol berikutnya/sebelumnya.
  5. Pertanyaan yang didukung mengutip halaman yang diharapkan, dan pertanyaan yang tidak didukung menghasilkan fallback yang konservatif.

Empat pemeriksaan pertama memvalidasi perilaku integrasi. Pemeriksaan kelima bergantung pada halaman yang Anda indeks dan memerlukan set evaluasi yang representatif; ikuti panduan scraping dan checklist peluncuran alih-alih menganggap skrip yang berhasil dimuat sebagai bukti kualitas jawaban.

5. Pertahankan CSP yang ketat

Izinkan host widget dalam script-src, origin API yang dikonfigurasi dalam connect-src, serta origin font dalam style-src dan font-src jika diperlukan. Widget saat ini menyuntikkan gaya komponen, sehingga kebijakan yang selain itu sudah ketat juga memerlukan strategi gaya inline yang eksplisit. Hindari daftar source wildcard.

Checklist pemeliharaan

Bangun ulang kedua varian tema setelah upgrade MkDocs atau Material karena nama blok template upstream dapat berubah. Pertahankan ID skrip, pertahankan super(), lalu jalankan kembali pemeriksaan pencarian, instant navigation, tumpang tindih seluler, dan kutipan sumber.

Untuk merencanakan peluncuran menyeluruh, gunakan checklist implementasi chatbot dokumentasi.

Sumber

Kami menggunakan alat analitik dan pengelolaan tag opsional untuk memahami penggunaan situs. Pilih apakah Anda ingin mengizinkan alat berikut: Ahrefs Web Analytics, PostHog, dan Google Tag Manager. Menonaktifkan analitik akan memuat ulang halaman ini agar perubahan diterapkan dengan baik. Fungsi penting situs dan pemantauan kesalahan tidak dikendalikan oleh pilihan ini. Baca kebijakan privasi kami.