Course Structure
✎ Improve this pageJekyllLMS uses two collections: courses and lessons.
Courses
One Markdown file per course in _courses/. The Front Matter drives the detail
page and the catalog card:
---
title: "Mastering TypeScript"
slug: typescript-mastery
category: TypeScript
level: advanced
instructor: "@mattpocock"
hours: "8.5 hours"
free: false
platform: udemy
price: "$19"
affiliate_url: "https://udemy.com/..."
thumbnail_gradient: "linear-gradient(140deg,#1e1b4b,#4338ca)"
learn:
- "Annotate and infer types with confidence"
- "Model complex data with generics"
prerequisites:
- "Comfortable writing JavaScript (ES6+)"
---
learn: and prerequisites: are optional arrays rendered as a “What You’ll
Learn” / “Prerequisites” section above the curriculum on the course page —
omit either (or both) to hide that section entirely.
Lessons
Lessons live in _lessons/<course-slug>/ and link back with course: + order::
---
title: "Primitive Types"
course: typescript-mastery
order: 3
duration: "34:12"
video: "https://www.youtube.com/embed/XXXX"
free: true
---
The lesson player builds the curriculum sidebar automatically by querying all
lessons where course matches, sorted by order. Set a video: URL to embed a
player, or omit it for the code-preview placeholder.
Front Matter Reference
| Key | Where | Meaning |
|---|---|---|
slug |
course | Must match the lesson course: value and the lesson folder name. |
free |
course & lesson | Course-level: is the course fully self-hosted/free. Lesson-level: false locks that lesson behind a teaser + redirect CTA. See Monetization. |
platform |
course | e.g. udemy, self-hosted — shown in locked-lesson CTAs and the enroll card. |
affiliate_url |
course | Where locked-lesson CTAs and the “Also on “ button link to. |
price |
course | Display string, e.g. "$19" — also feeds the course’s JSON-LD offers.price. |
learn |
course (optional) | Array of strings rendered as the “What You’ll Learn” checklist. |
prerequisites |
course (optional) | Array of strings rendered as the “Prerequisites” list. |
order |
lesson | Position in the curriculum; drives prev/next navigation and progress %. |
video |
lesson (optional) | Embeddable URL (e.g. YouTube /embed/...); omit for the code-preview placeholder. |
summary |
lesson (optional) | Short one-line description shown inline in the course curriculum row (desktop only). |
Course and lesson pages also emit Course / LearningResource JSON-LD
structured data automatically from this front matter — no extra setup needed.