# Fitur Embed Konten di Materi Markdown & Slide **Tanggal:** 2026-07-19 **Status:** Implementasi selesai **Lokasi kode:** Backend `services/lesson_service.py` + Frontend (CSS only) --- ## 1. Latar Belakang Elemes memerlukan fitur agar author materi dapat menyisipkan konten *embedded* (iframe dari platform luar) langsung dari markdown — baik di tubuh materi maupun di dalam slide presentasi. Contoh penggunaan: video YouTube, desain Canva, Google Docs, Figma, widget Scratch, dll. ### Infrastruktur yang Sudah Ada Elemes **sudah punya** pipeline markdown→embed untuk `circuit` dan `flowchart`: - **Backend** (`services/lesson_service.py`): regex fence ```circuit``` → `
`, lalu `md.markdown()` render jadi HTML. - **Frontend** (`src/lib/actions/render*Embeds.ts`): `IntersectionObserver` ganti div → `
Judul by Author ``` ```` **Kelebihan:** - User kontrol penuh (aspect ratio, style, link credit) — embed code dari platform resmi sudah optimize. - Support Canva, YouTube, Google Docs, Figma, Scratch, dll sekaligus — tanpa hardcode transform per-platform. - Lebih fleksibel: author bisa kustomisasi wrapper, caption, dll. **Konsekuensi keamanan:** Raw HTML = potensi XSS. Wajib **sanitize** sebelum render. Tanpa sanitize, author bisa sisipkan `