Lo siento, estoy teniendo otro problema con mi plugin que se comunica con una API.
Recupero diversa información que inserto en un tema en relación con una búsqueda. Mi problema es que recibo mi enlace de video de YouTube, pero se inserta como texto plano y no como onebox como me gustaría. He probado varios métodos, pero estoy atascado, y por supuesto, quiero que sea compatible tanto con Markdown como con rich text.
Aquí hay una parte de mi código que se ocupa de la gestión de videos:
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>🎥 Vídeos de reglas (FR) :</h3>`;
frenchVideos.slice(0, 3).forEach(video => {
let vTitle = (video.getAttribute("title") || "Vídeo")
.replace(/How to play/gi, "Cómo jugar")
.replace(/Rules/gi, "Reglas");
const vLink = video.getAttribute("link");
// 1. El título en su párrafo
message += `<p><strong>📖 ${vTitle}</strong></p>`;
// 2. UN PÁRRAFO VACÍO (Simula pulsar 'Enter')
message += `<p></p>`;
// 3. EL ENLACE SOLO (Esta es la "línea única" solicitada por Discourse)
// No ponemos <a>, dejamos el texto plano de la URL
message += `<p>${vLink}</p>`;
// 4. OTRO PÁRRAFO VACÍO (Simula una segunda 'Enter')
message += `<p></p>`;
});
if (frenchVideos.length > 3) {
message += `<p><em>(+ ${frenchVideos.length - 3} otros vídeos en BGG)</em></p>`;
}
}
Y aquí está el resultado
