Извините, у меня возникла ещё одна проблема с моим плагином, который взаимодействует с API.
Я получаю различную информацию, которую вставляю в тему в зависимости от поиска. Моя проблема в том, что я получаю ссылку на видео YouTube, но она вставляется как обычный текст, а не в формате onebox, как я хочу. Я пробовал несколько методов, но застрял, и мне обязательно нужно, чтобы это работало в Markdown и в режиме Rich Text.
Вот часть моего кода, касающаяся обработки видео:
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>`;
}
}
А вот результат:
