From 572beb9d643fa1d1b5da9ce95916f793dac47f44 Mon Sep 17 00:00:00 2001 From: CritasWang Date: Tue, 6 Jan 2026 11:18:16 +0800 Subject: [PATCH 1/2] add ask ai by kapa --- package.json | 2 +- src/.vuepress/config.ts | 37 +++++++++++++++++++++++++++++++++ src/.vuepress/public/slogo.png | Bin 0 -> 7866 bytes 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 src/.vuepress/public/slogo.png diff --git a/package.json b/package.json index 85db8570e..9a97c78c6 100644 --- a/package.json +++ b/package.json @@ -48,5 +48,5 @@ "singleQuote": true, "trailingComma": "all" }, - "packageManager": "pnpm@10.25.0" + "packageManager": "pnpm@10.27.0" } diff --git a/src/.vuepress/config.ts b/src/.vuepress/config.ts index f3ba6d66d..0ba663741 100644 --- a/src/.vuepress/config.ts +++ b/src/.vuepress/config.ts @@ -84,6 +84,43 @@ _paq.push(['enableLinkTracking']); })(); `, ], + [ + 'script', + { + async: true, + src: 'https://widget.kapa.ai/kapa-widget.bundle.js', + 'data-website-id': '2d37bfdd-8d98-40ba-9223-9d4f81bfb327', + // 'data-language': 'zh', + 'data-project-name': 'Apache IoTDB', + 'data-project-color': '#9E2878', + 'data-project-logo': 'https://iotdb.apache.org/slogo.png', + 'data-button-position-right': '16px', + 'data-button-position-bottom': '120px', + 'data-button-height': '50px', + 'data-button-width': '50px', + 'data-button-text': 'Ask', + 'data-modal-image-width': '150px', + 'data-modal-title': 'AI Docs', + // 'data-modal-disclaimer': + // 'This is a custom LLM with access to all [Kapa documentation](https://docs.kapa.ai).', + // 'data-modal-example-questions': + // 'How do I get started?,How to add example questions?', + 'data-user-analytics-fingerprint-enabled': 'true', + // 'data-modal-x-offset': '0', + // 'data-modal-y-offset': '0', + // 'data-modal-with-overlay': 'false', + // 'data-modal-inner-flex-direction': 'column', + // 'data-modal-inner-justify-content': 'end', + // 'data-modal-inner-max-width': '500px', + // 'data-modal-inner-position-left': 'auto', + // 'data-modal-inner-position-right': '0', + // 'data-modal-inner-position-bottom': '0', + // 'data-modal-inner-position-top': '0', + // 'data-modal-size': '100vh', + // 'data-modal-lock-scroll': 'false', + // 'data-modal-header-bg-color': '#fff', + }, + ], ], shouldPrefetch: false, diff --git a/src/.vuepress/public/slogo.png b/src/.vuepress/public/slogo.png new file mode 100644 index 0000000000000000000000000000000000000000..1bee9c59dd744bf0a3d974bf40baadaf0a08105c GIT binary patch literal 7866 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 literal 0 HcmV?d00001 From 31580cece4f0354df2888a729f013d6bfd95b1ee Mon Sep 17 00:00:00 2001 From: CritasWang Date: Tue, 6 Jan 2026 11:19:22 +0800 Subject: [PATCH 2/2] Ensure accessibility --- src/.vuepress/public/.htaccess | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/.vuepress/public/.htaccess b/src/.vuepress/public/.htaccess index c8284f1c8..7aaedcc56 100644 --- a/src/.vuepress/public/.htaccess +++ b/src/.vuepress/public/.htaccess @@ -6,4 +6,4 @@ RewriteRule . /404.html [L] ErrorDocument 404 /404.html -Header set Content-Security-Policy "default-src data: blob: 'self' *.apache.org *.githubusercontent.com *.github.com *.algolia.net *.algolianet.com *.apachecon.com *.communityovercode.org 'unsafe-inline' 'unsafe-eval'; frame-src 'self' data: blob:; frame-ancestors 'self'; worker-src 'self' data: blob:; img-src 'self' blob: data: https: *.apache.org www.apachecon.com; style-src 'self' 'unsafe-inline' data:;" +Header set Content-Security-Policy "default-src data: blob: 'self' *.apache.org *.githubusercontent.com *.github.com *.algolia.net *.algolianet.com *.kapa.ai *.apachecon.com *.communityovercode.org 'unsafe-inline' 'unsafe-eval'; frame-src 'self' data: blob:; frame-ancestors 'self'; worker-src 'self' data: blob:; img-src 'self' blob: data: https: *.apache.org www.apachecon.com; style-src 'self' 'unsafe-inline' data:;"