diff --git a/backend/src/services/learning-objects/processing/audio/audio-processor.ts b/backend/src/services/learning-objects/processing/audio/audio-processor.ts
index 6442e1b3..0c4dd75e 100644
--- a/backend/src/services/learning-objects/processing/audio/audio-processor.ts
+++ b/backend/src/services/learning-objects/processing/audio/audio-processor.ts
@@ -1,5 +1,7 @@
/**
* Based on https://github.com/dwengovzw/Learning-Object-Repository/blob/main/app/processors/audio/audio_processor.js
+ *
+ * WARNING: The support for audio learning objects is currently still experimental.
*/
import DOMPurify from 'isomorphic-dompurify';
diff --git a/backend/src/services/learning-objects/processing/extern/extern-processor.ts b/backend/src/services/learning-objects/processing/extern/extern-processor.ts
index 2aa02482..aff26d45 100644
--- a/backend/src/services/learning-objects/processing/extern/extern-processor.ts
+++ b/backend/src/services/learning-objects/processing/extern/extern-processor.ts
@@ -1,5 +1,7 @@
/**
* Based on https://github.com/dwengovzw/Learning-Object-Repository/blob/main/app/processors/extern/extern_processor.js
+ *
+ * WARNING: The support for external content is currently still experimental.
*/
import DOMPurify from 'isomorphic-dompurify';
diff --git a/backend/src/services/learning-objects/processing/gift/gift-processor.ts b/backend/src/services/learning-objects/processing/gift/gift-processor.ts
index 5cffcb47..5d20e99c 100644
--- a/backend/src/services/learning-objects/processing/gift/gift-processor.ts
+++ b/backend/src/services/learning-objects/processing/gift/gift-processor.ts
@@ -36,18 +36,22 @@ class GiftProcessor extends StringProcessor {
override renderFn(giftString: string) {
const quizQuestions: GIFTQuestion[] = parse(giftString);
- let html = "
";
+ let html = "
\n";
+ let i = 1;
for (let question of quizQuestions) {
- html += this.renderQuestion(question);
+ html += `
\n`;
+ html += " " + this.renderQuestion(question, i).replaceAll(/\n(.+)/g, "\n $1"); // replace for indentation.
+ html += `
\n`;
+ i++;
}
- html += "
"
+ html += "
\n"
return DOMPurify.sanitize(html);
}
- private renderQuestion(question: T): string {
+ private renderQuestion(question: T, questionNumber: number): string {
const renderer = this.renderers[question.type] as GIFTQuestionRenderer;
- return renderer.render(question);
+ return renderer.render(question, questionNumber);
}
}
diff --git a/backend/src/services/learning-objects/processing/gift/question-renderers/category-question-renderer.ts b/backend/src/services/learning-objects/processing/gift/question-renderers/category-question-renderer.ts
index 8329d4d6..6f299c17 100644
--- a/backend/src/services/learning-objects/processing/gift/question-renderers/category-question-renderer.ts
+++ b/backend/src/services/learning-objects/processing/gift/question-renderers/category-question-renderer.ts
@@ -3,7 +3,7 @@ import {Category} from "gift-pegjs";
import {ProcessingError} from "../../processing-error";
export class CategoryQuestionRenderer extends GIFTQuestionRenderer {
- render(question: Category): string {
+ render(question: Category, questionNumber: number): string {
throw new ProcessingError("The question type 'Category' is not supported yet!");
}
}
diff --git a/backend/src/services/learning-objects/processing/gift/question-renderers/description-question-renderer.ts b/backend/src/services/learning-objects/processing/gift/question-renderers/description-question-renderer.ts
index 1f8c94be..adea25a6 100644
--- a/backend/src/services/learning-objects/processing/gift/question-renderers/description-question-renderer.ts
+++ b/backend/src/services/learning-objects/processing/gift/question-renderers/description-question-renderer.ts
@@ -3,7 +3,7 @@ import {Description} from "gift-pegjs";
import {ProcessingError} from "../../processing-error";
export class DescriptionQuestionRenderer extends GIFTQuestionRenderer {
- render(question: Description): string {
+ render(question: Description, questionNumber: number): string {
throw new ProcessingError("The question type 'Description' is not supported yet!");
}
}
diff --git a/backend/src/services/learning-objects/processing/gift/question-renderers/essay-question-renderer.ts b/backend/src/services/learning-objects/processing/gift/question-renderers/essay-question-renderer.ts
index e990d000..af000c11 100644
--- a/backend/src/services/learning-objects/processing/gift/question-renderers/essay-question-renderer.ts
+++ b/backend/src/services/learning-objects/processing/gift/question-renderers/essay-question-renderer.ts
@@ -2,7 +2,15 @@ import {GIFTQuestionRenderer} from "./gift-question-renderer";
import {Essay} from "gift-pegjs";
export class EssayQuestionRenderer extends GIFTQuestionRenderer {
- render(question: Essay): string {
- return "";
+ render(question: Essay, questionNumber: number): string {
+ let renderedHtml = "";
+ if (question.title) {
+ renderedHtml += `