From fd348a085a67459b64dca311a8eb06d9676b917b Mon Sep 17 00:00:00 2001 From: Raunak Madan Date: Fri, 8 May 2026 22:14:29 +0530 Subject: [PATCH 1/2] Update examples to follow v1beta3 structure and naming scheme Signed-off-by: Raunak Madan --- README.md | 28 +++++++++++++++++++ .../course-1/module/quiz.md | 12 ++++---- .../example-learning-path/course-1/test.md | 12 ++++---- .../course-2/module/quiz.md | 12 ++++---- .../example-learning-path/course-2/test.md | 12 ++++---- .../example-learning-path/exam.md | 12 ++++---- 6 files changed, 58 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 1c61564d..101af7dc 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,34 @@ A high-level view of the structure looks like this: - **Add your lessons** as Markdown (`.md`) files inside the `content` directory of a course. - **Use frontmatter** at the top of your `_index.md` and lesson files to define titles, descriptions, and weights. +### Add Assessments + +Assessment files use the Academy test layout and define their questions in Markdown frontmatter. Use short, stable IDs for questions and options; question IDs must be unique within one assessment, and option IDs must be unique within one question. The Academy theme converts these author-facing IDs into deterministic UUIDs in the generated JSON consumed by Layer5 Cloud. + +```yaml +--- +title: "Assessment Example" +id: "assessment-example" +type: "test" +layout: "test" +passPercentage: 70 +maxAttempts: 3 +timeLimit: 30 +numberOfQuestions: 1 +questions: + - id: "q1" + text: "Academy content is authored in Markdown." + type: "true-false" + marks: 1 + options: + - id: "true" + text: "True" + isCorrect: true + - id: "false" + text: "False" +--- +``` + ### 5. Add Assets (Images & Videos) Enhance your course with images and other visual aids. To ensure compatibility with the multi-tenant Academy platform, **do not use standard Markdown image links**. Instead, use the `usestatic` shortcode, which generates the correct, tenant-aware path for your assets. diff --git a/content/learning-paths/your-org-uuid/example-learning-path/course-1/module/quiz.md b/content/learning-paths/your-org-uuid/example-learning-path/course-1/module/quiz.md index 60ba78d8..717784ff 100644 --- a/content/learning-paths/your-org-uuid/example-learning-path/course-1/module/quiz.md +++ b/content/learning-paths/your-org-uuid/example-learning-path/course-1/module/quiz.md @@ -1,6 +1,6 @@ --- title: "Module Quiz" -pass_percentage: 70 +passPercentage: 70 questions: - id: "q1" text: "Which Layer5 project is used for visual design in Kubernetes and cloud native infrastructure?" @@ -11,7 +11,7 @@ questions: text: "Meshery" - id: "b" text: "Kanvas" - is_correct: true + isCorrect: true - id: "c" text: "Istio" - id: "d" @@ -23,19 +23,19 @@ questions: options: - id: "a" text: "MeshSync" - is_correct: true + isCorrect: true - id: "b" text: "Broker" - is_correct: true + isCorrect: true - id: "c" text: "Operator" - is_correct: true + isCorrect: true - id: "d" text: "Docker Engine" - id: "q3" text: "Which tool manages Kubernetes namespace labeling?" type: "short-answer" marks: 2 - correct_answer: "kubectl" + correctAnswer: "kubectl" type: "test" --- \ No newline at end of file diff --git a/content/learning-paths/your-org-uuid/example-learning-path/course-1/test.md b/content/learning-paths/your-org-uuid/example-learning-path/course-1/test.md index 130f9c76..bbc206eb 100644 --- a/content/learning-paths/your-org-uuid/example-learning-path/course-1/test.md +++ b/content/learning-paths/your-org-uuid/example-learning-path/course-1/test.md @@ -1,6 +1,6 @@ --- title: "Course Test" -pass_percentage: 70 +passPercentage: 70 questions: - id: "q1" text: "Which Layer5 project is used for visual design in Kubernetes and cloud native infrastructure?" @@ -11,7 +11,7 @@ questions: text: "Meshery" - id: "b" text: "Kanvas" - is_correct: true + isCorrect: true - id: "c" text: "Istio" - id: "d" @@ -23,19 +23,19 @@ questions: options: - id: "a" text: "MeshSync" - is_correct: true + isCorrect: true - id: "b" text: "Broker" - is_correct: true + isCorrect: true - id: "c" text: "Operator" - is_correct: true + isCorrect: true - id: "d" text: "Docker Engine" - id: "q3" text: "Which tool manages Kubernetes namespace labeling?" type: "short-answer" marks: 2 - correct_answer: "kubectl" + correctAnswer: "kubectl" type: "test" --- \ No newline at end of file diff --git a/content/learning-paths/your-org-uuid/example-learning-path/course-2/module/quiz.md b/content/learning-paths/your-org-uuid/example-learning-path/course-2/module/quiz.md index ca2c1169..0bdf6be7 100644 --- a/content/learning-paths/your-org-uuid/example-learning-path/course-2/module/quiz.md +++ b/content/learning-paths/your-org-uuid/example-learning-path/course-2/module/quiz.md @@ -1,6 +1,6 @@ --- title: "Module Quiz" -pass_percentage: 70 +passPercentage: 70 questions: - id: "q1" text: "Which Layer5 project is used for visual design in Kubernetes and cloud native infrastructure?" @@ -11,7 +11,7 @@ questions: text: "Meshery" - id: "b" text: "Kanvas" - is_correct: true + isCorrect: true - id: "c" text: "Istio" - id: "d" @@ -23,19 +23,19 @@ questions: options: - id: "a" text: "MeshSync" - is_correct: true + isCorrect: true - id: "b" text: "Broker" - is_correct: true + isCorrect: true - id: "c" text: "Operator" - is_correct: true + isCorrect: true - id: "d" text: "Docker Engine" - id: "q3" text: "Which tool manages Kubernetes namespace labeling?" type: "short-answer" marks: 2 - correct_answer: "kubectl" + correctAnswer: "kubectl" type: "test" --- \ No newline at end of file diff --git a/content/learning-paths/your-org-uuid/example-learning-path/course-2/test.md b/content/learning-paths/your-org-uuid/example-learning-path/course-2/test.md index 130f9c76..bbc206eb 100644 --- a/content/learning-paths/your-org-uuid/example-learning-path/course-2/test.md +++ b/content/learning-paths/your-org-uuid/example-learning-path/course-2/test.md @@ -1,6 +1,6 @@ --- title: "Course Test" -pass_percentage: 70 +passPercentage: 70 questions: - id: "q1" text: "Which Layer5 project is used for visual design in Kubernetes and cloud native infrastructure?" @@ -11,7 +11,7 @@ questions: text: "Meshery" - id: "b" text: "Kanvas" - is_correct: true + isCorrect: true - id: "c" text: "Istio" - id: "d" @@ -23,19 +23,19 @@ questions: options: - id: "a" text: "MeshSync" - is_correct: true + isCorrect: true - id: "b" text: "Broker" - is_correct: true + isCorrect: true - id: "c" text: "Operator" - is_correct: true + isCorrect: true - id: "d" text: "Docker Engine" - id: "q3" text: "Which tool manages Kubernetes namespace labeling?" type: "short-answer" marks: 2 - correct_answer: "kubectl" + correctAnswer: "kubectl" type: "test" --- \ No newline at end of file diff --git a/content/learning-paths/your-org-uuid/example-learning-path/exam.md b/content/learning-paths/your-org-uuid/example-learning-path/exam.md index c713a327..7cae4308 100644 --- a/content/learning-paths/your-org-uuid/example-learning-path/exam.md +++ b/content/learning-paths/your-org-uuid/example-learning-path/exam.md @@ -1,6 +1,6 @@ --- title: "Learning Path Exam" -pass_percentage: 70 +passPercentage: 70 questions: - id: "q1" text: "Which Layer5 project is used for visual design in Kubernetes and cloud native infrastructure?" @@ -11,7 +11,7 @@ questions: text: "Meshery" - id: "b" text: "Kanvas" - is_correct: true + isCorrect: true - id: "c" text: "Istio" - id: "d" @@ -23,19 +23,19 @@ questions: options: - id: "a" text: "MeshSync" - is_correct: true + isCorrect: true - id: "b" text: "Broker" - is_correct: true + isCorrect: true - id: "c" text: "Operator" - is_correct: true + isCorrect: true - id: "d" text: "Docker Engine" - id: "q3" text: "Which tool manages Kubernetes namespace labeling?" type: "short-answer" marks: 2 - correct_answer: "kubectl" + correctAnswer: "kubectl" type: "test" --- \ No newline at end of file From 1825330871b41a63ea61db70ddd897dd1566641a Mon Sep 17 00:00:00 2001 From: Raunak Madan Date: Fri, 8 May 2026 22:23:37 +0530 Subject: [PATCH 2/2] Add missing front matter fields Signed-off-by: Raunak Madan --- .../example-learning-path/course-1/module/quiz.md | 7 ++++++- .../your-org-uuid/example-learning-path/course-1/test.md | 7 ++++++- .../example-learning-path/course-2/module/quiz.md | 7 ++++++- .../your-org-uuid/example-learning-path/course-2/test.md | 7 ++++++- .../your-org-uuid/example-learning-path/exam.md | 7 ++++++- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/content/learning-paths/your-org-uuid/example-learning-path/course-1/module/quiz.md b/content/learning-paths/your-org-uuid/example-learning-path/course-1/module/quiz.md index 717784ff..999a425a 100644 --- a/content/learning-paths/your-org-uuid/example-learning-path/course-1/module/quiz.md +++ b/content/learning-paths/your-org-uuid/example-learning-path/course-1/module/quiz.md @@ -1,6 +1,11 @@ --- title: "Module Quiz" +id: "course-1-module-quiz" +layout: "test" passPercentage: 70 +maxAttempts: 3 +timeLimit: 30 +numberOfQuestions: 3 questions: - id: "q1" text: "Which Layer5 project is used for visual design in Kubernetes and cloud native infrastructure?" @@ -38,4 +43,4 @@ questions: marks: 2 correctAnswer: "kubectl" type: "test" ---- \ No newline at end of file +--- diff --git a/content/learning-paths/your-org-uuid/example-learning-path/course-1/test.md b/content/learning-paths/your-org-uuid/example-learning-path/course-1/test.md index bbc206eb..c220139a 100644 --- a/content/learning-paths/your-org-uuid/example-learning-path/course-1/test.md +++ b/content/learning-paths/your-org-uuid/example-learning-path/course-1/test.md @@ -1,6 +1,11 @@ --- title: "Course Test" +id: "course-1-test" +layout: "test" passPercentage: 70 +maxAttempts: 3 +timeLimit: 30 +numberOfQuestions: 3 questions: - id: "q1" text: "Which Layer5 project is used for visual design in Kubernetes and cloud native infrastructure?" @@ -38,4 +43,4 @@ questions: marks: 2 correctAnswer: "kubectl" type: "test" ---- \ No newline at end of file +--- diff --git a/content/learning-paths/your-org-uuid/example-learning-path/course-2/module/quiz.md b/content/learning-paths/your-org-uuid/example-learning-path/course-2/module/quiz.md index 0bdf6be7..82985865 100644 --- a/content/learning-paths/your-org-uuid/example-learning-path/course-2/module/quiz.md +++ b/content/learning-paths/your-org-uuid/example-learning-path/course-2/module/quiz.md @@ -1,6 +1,11 @@ --- title: "Module Quiz" +id: "course-2-module-quiz" +layout: "test" passPercentage: 70 +maxAttempts: 3 +timeLimit: 30 +numberOfQuestions: 3 questions: - id: "q1" text: "Which Layer5 project is used for visual design in Kubernetes and cloud native infrastructure?" @@ -38,4 +43,4 @@ questions: marks: 2 correctAnswer: "kubectl" type: "test" ---- \ No newline at end of file +--- diff --git a/content/learning-paths/your-org-uuid/example-learning-path/course-2/test.md b/content/learning-paths/your-org-uuid/example-learning-path/course-2/test.md index bbc206eb..392e6910 100644 --- a/content/learning-paths/your-org-uuid/example-learning-path/course-2/test.md +++ b/content/learning-paths/your-org-uuid/example-learning-path/course-2/test.md @@ -1,6 +1,11 @@ --- title: "Course Test" +id: "course-2-test" +layout: "test" passPercentage: 70 +maxAttempts: 3 +timeLimit: 30 +numberOfQuestions: 3 questions: - id: "q1" text: "Which Layer5 project is used for visual design in Kubernetes and cloud native infrastructure?" @@ -38,4 +43,4 @@ questions: marks: 2 correctAnswer: "kubectl" type: "test" ---- \ No newline at end of file +--- diff --git a/content/learning-paths/your-org-uuid/example-learning-path/exam.md b/content/learning-paths/your-org-uuid/example-learning-path/exam.md index 7cae4308..92ac2dd8 100644 --- a/content/learning-paths/your-org-uuid/example-learning-path/exam.md +++ b/content/learning-paths/your-org-uuid/example-learning-path/exam.md @@ -1,6 +1,11 @@ --- title: "Learning Path Exam" +id: "learning-path-exam" +layout: "test" passPercentage: 70 +maxAttempts: 3 +timeLimit: 30 +numberOfQuestions: 3 questions: - id: "q1" text: "Which Layer5 project is used for visual design in Kubernetes and cloud native infrastructure?" @@ -38,4 +43,4 @@ questions: marks: 2 correctAnswer: "kubectl" type: "test" ---- \ No newline at end of file +---