Попытка получить одну коробку с YouTube

Извините, у меня возникла ещё одна проблема с моим плагином, который взаимодействует с 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>`;
    }
  }

А вот результат:

Извините, я наконец понял, что забыл использовать класс onebox :sweat_smile:

Извините за беспокойство.

2 лайка