申し訳ありませんが、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") || "Vidéo")
.replace(/How to play/gi, "Comment jouer")
.replace(/Rules/gi, "Règles");
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. もう一つの空の段落(2回目の'Enter'をシミュレート)
message += `<p></p>`;
});
if (frenchVideos.length > 3) {
message += `<p><i>(+ ${frenchVideos.length - 3} autres vidéos sur BGG)</i></p>`;
}
}
そして、これが結果です
