عذرًا، أواجه مشكلة أخرى مع الإضافة (plugin) الخاصة بي التي تتواصل مع واجهة برمجة تطبيقات (API).
أقوم باسترداد معلومات متنوعة وأقوم بإدراجها في موضوع (topic) بناءً على بحث. مشكلتي هي أنني أستقبل رابط فيديو يوتيوب الخاص بي ولكنه يُدرج كنص خام وليس كـ 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>🎥 فيديوهات القواعد (بالفرنسية) :</h3>`;
frenchVideos.slice(0, 3).forEach(video => {
let vTitle = (video.getAttribute("title") || "فيديو")
.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>، نترك نص الرابط الخام
message += `<p>${vLink}</p>`;
// 4. فقرة فارغة أخرى (تحاكي ضغطة 'Enter' ثانية)
message += `<p></p>`;
});
if (frenchVideos.length > 3) {
message += `<p><i>(+ ${frenchVideos.length - 3} فيديوهات أخرى على BGG)</i></p>`;
}
}
وهذه هي النتيجة:
