抱歉,我的插件在与 API 通信时遇到了另一个问题。
我根据搜索结果获取了各种信息并将其插入到一个主题中。我的问题是,我收到了我的 YouTube 视频链接,但它被插入为纯文本而不是我想要的 onebox 格式。我已经尝试了许多方法,但现在我卡住了,而且我希望它同时兼容 Markdown 和富文本。
这是我代码中与视频处理相关的一部分
const videoTags = Array.from(xmlDoc.getElementsByTagName(“video”));
const frenchVideos = videoTags.filter(v => (v.getAttribute(“language”) || “”).toLowerCase().includes(“french”));
if (frenchVideos.length > 0) {
message += `<hr><h3>🎥 规则视频 (FR) :</h3>`;
frenchVideos.slice(0, 3).forEach(video => {
let vTitle = (video.getAttribute("title") || "视频")
.replace(/How to play/gi, "如何游玩")
.replace(/Rules/gi, "规则");
const vLink = video.getAttribute("link");
// 1. 标题在自己的段落中
message += `<p><strong>📖 ${vTitle}</strong></p>`;
// 2. 一个空段落 (模拟按 'Enter' 键)
message += `<p></p>`;
// 3. 仅链接 (这是 Discourse 所需的“单行”)
// 不添加 <a> 标签,只保留纯文本 URL
message += `<p>${vLink}</p>`;
// 4. 另一个空段落 (模拟第二次按 'Enter' 键)
message += `<p></p>`;
});
if (frenchVideos.length > 3) {
message += `<p><i>(+ ${frenchVideos.length - 3} 个 BGG 上的其他视频)</i></p>`;
}
}
这是结果
