Changes for page Home

Last modified by Iris on 2026/04/14 17:40

From version 17.1
edited by Jiahao Lai
on 2026/03/26 16:12
Change comment: There is no comment for this version
To version 13.1
edited by Jiahao Lai
on 2026/03/26 15:47
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -187,24 +187,60 @@
187 187  {{/velocity}}
188 188  
189 189  
190 +
190 190  {{html clean="false"}}
191 -<script src="/webjars/wiki%3Awonway/marked/4.0.2/marked.min.js"></script>
192 -<script src="/webjars/wiki%3Awonway/dompurify/2.3.10/purify.min.js"></script>
192 +<div id="llm-chat-widget" style="position:fixed;right:20px;bottom:20px;z-index:9999;"></div>
193 +
193 193  <script>
194 -// 初始化 AI 浮窗(主 wiki 专用,直接复用子 wiki 资源)
195 195  document.addEventListener('DOMContentLoaded', function() {
196 - // 强制加载浮窗样式
197 - const link = document.createElement('link');
198 - link.rel = 'stylesheet';
199 - link.href = '/webjars/wiki%3Awonway/application-ai-llm-chat-webjar/0.7.2/chatWidget.css';
200 - document.head.appendChild(link);
196 + // 延长等待时间,确保配置和依赖完全加载
197 + setTimeout(async () => {
198 + try {
199 + // 1. 加载 marked.js 依赖
200 + await new Promise((resolve) => {
201 + const s = document.createElement('script');
202 + s.src = 'https://docs.we-con.com.cn/webjars/wiki%3Awonway/marked/4.0.2/marked.min.js';
203 + s.onload = resolve;
204 + document.body.appendChild(s);
205 + });
201 201  
202 - // 加载浮窗主脚本
203 - const script = document.createElement('script');
204 - script.src = '/webjars/wiki%3Awonway/application-ai-llm-chat-webjar/0.7.2/chatWidget.js';
205 - script.dataset.wikiName = 'wonway';
206 - script.dataset.baseUrl = '/xwiki/';
207 - document.body.appendChild(script);
207 + // 2. 加载 CSS
208 + await new Promise((resolve) => {
209 + const l = document.createElement('link');
210 + l.rel = 'stylesheet';
211 + l.href = 'https://docs.we-con.com.cn/webjars/wiki%3Awonway/application-ai-llm-chat-webjar/0.7.2/chatWidget.css';
212 + l.onload = resolve;
213 + document.head.appendChild(l);
214 + });
215 +
216 + // 3. 加载 chatWidget.js
217 + await new Promise((resolve) => {
218 + const s = document.createElement('script');
219 + s.src = 'https://docs.we-con.com.cn/webjars/wiki%3Awonway/application-ai-llm-chat-webjar/0.7.2/chatWidget.js';
220 + s.onload = resolve;
221 + document.body.appendChild(s);
222 + });
223 +
224 + // 4. 循环等待,直到 LLM 配置就绪
225 + let retries = 0;
226 + const maxRetries = 20; // 最多等 20*200ms = 4秒
227 + const waitForLLM = () => {
228 + if (window.LLMChatWidget && typeof LLMChatWidget.init === 'function') {
229 + LLMChatWidget.init();
230 + console.log("✅ 浮窗启动成功!");
231 + } else if (retries < maxRetries) {
232 + retries++;
233 + setTimeout(waitForLLM, 200);
234 + } else {
235 + throw new Error("LLM 配置超时未就绪");
236 + }
237 + };
238 + waitForLLM();
239 + } catch (e) {
240 + console.error("❌ 最终失败", e);
241 + alert("浮窗加载失败:" + (e.message || "未知错误"));
242 + }
243 + }, 1500); // 延长初始等待时间
208 208  });
209 209  </script>
210 210  {{/html}}