From 1ffdd4bbaec6f81a39e34bc7edc9fb6e41fe80e5 Mon Sep 17 00:00:00 2001 From: Rotimi Best Date: Sun, 16 Aug 2026 22:49:05 +0100 Subject: [PATCH] fix(public-course): render exercise description as rich-text HTML (#920) --- packages/ui/src/custom/public-course/exercise-view.svelte | 5 ++++- packages/ui/src/custom/public-course/types.ts | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/custom/public-course/exercise-view.svelte b/packages/ui/src/custom/public-course/exercise-view.svelte index 249922dd..53fe14a7 100644 --- a/packages/ui/src/custom/public-course/exercise-view.svelte +++ b/packages/ui/src/custom/public-course/exercise-view.svelte @@ -13,6 +13,7 @@ import { QuestionList } from '../exercise-question'; import { cn } from '../../tools'; import Callout from './callout.svelte'; + import { SafeHtmlContent } from '../safe-html-content'; import type { PublicCourseCalloutAnimation, PublicCourseCalloutData, PublicExerciseViewData } from './types'; import type { PublicExerciseStoredAttempt } from './public-exercise-attempts-storage'; import { @@ -401,7 +402,9 @@ {#if exercise.description} -

{exercise.description}

+
+ +
{/if}
diff --git a/packages/ui/src/custom/public-course/types.ts b/packages/ui/src/custom/public-course/types.ts index e85988bf..bc6624f1 100644 --- a/packages/ui/src/custom/public-course/types.ts +++ b/packages/ui/src/custom/public-course/types.ts @@ -81,6 +81,7 @@ export interface PublicLessonViewData { export interface PublicExerciseViewData { kind: 'exercise'; title: string; + /** Rich-text HTML (as produced by the exercise description editor). */ description: string | null; sectionTitle: string | null; isUnlocked: boolean;