diff --git a/client/src/lib/sanitize.ts b/client/src/lib/sanitize.ts new file mode 100644 index 0000000..55dabad --- /dev/null +++ b/client/src/lib/sanitize.ts @@ -0,0 +1,57 @@ +// ============================================================ +// Minimal inline HTML sanitizer. Not as thorough as DOMPurify but +// covers the main XSS vectors for CMS-authored Learning Hub +// content (admin-authored, so the trust model is higher than +// user-generated content anyway): +// +// • Strips + - +
diff --git a/shared/types.ts b/shared/types.ts index cc26856..8da666d 100644 --- a/shared/types.ts +++ b/shared/types.ts @@ -499,6 +499,11 @@ export interface QuizSubmitOk { percentage: number; results: QuizResultEntry[]; } +// /api/learning/content/:slug/slides (Marp rendering) +export interface LearningSlidesOk { + css: string; + slides: string[]; // pre-rendered HTML per slide from the server +} // ── Extensions (pagers/directory) ──────────────────────────── export interface Extension {