A template repository for creating workshop slides using Slidev with integrated task management for the workshops.de platform.
Click "Use this template" on GitHub to create a new repository.
git clone https://github.com/your-org/your-workshop-slides.git
cd your-workshop-slides
npm installnpm run devOpen http://localhost:3030 to see your slides.
/
βββ 00-index.md # Main index with links to all lessons
βββ sources.md # Sources and references
βββ package.json # Dependencies and scripts
βββ scripts/
β βββ build-all.sh # Build script for all lessons
βββ lessons/
β βββ 01-example-lesson/ # Lesson folder
β βββ lesson.yml # Lesson metadata (synced to platform)
β βββ 01-example-lesson.md # Main slide deck entry point
β βββ slides/ # Slide content organized by topic
β β βββ example-topic/
β β βββ why.md # 4-MAT: Why this matters
β β βββ what.md # 4-MAT: Core concepts
β β βββ how.md # 4-MAT: Practical steps
β β βββ what-if.md # 4-MAT: Edge cases & alternatives
β β βββ task.md # Exercise slide
β βββ tasks/ # Task definitions (synced to platform)
β βββ 01-first-task/
β β βββ task.yml # Task metadata
β β βββ body.md # Main description
β β βββ hint.md # Hints (optional)
β β βββ trainer_hint.md # Trainer notes (optional)
β βββ 02-second-task/
β βββ task.yml
β βββ body.md
β βββ hint.md
β βββ bonus.md # Bonus challenges (optional)
β βββ assets/ # Task-specific images
βββ .cursor/
βββ rules/
βββ slidev-rules.mdc # AI rules for slide creation
mkdir -p lessons/02-new-lesson/slides/topic-name
mkdir -p lessons/02-new-lesson/tasks/01-first-taskname: New Lesson Title
position: 2
trainer: trainer@workshops.de
github_code_url: https://github.com/org/code-repo
git_tag_starting: main
slides_type: slidev
pdf_generation_enabled: true
stackblitz_enabled: true
codesandbox_enabled: false
deprecated: falseCreate lessons/02-new-lesson/02-new-lesson.md with the Slidev frontmatter.
Create the 4-MAT structure:
slides/topic-name/why.mdslides/topic-name/what.mdslides/topic-name/how.mdslides/topic-name/what-if.mdslides/topic-name/task.md
Create a task folder with task.yml for metadata and separate .md files for content:
tasks/01-task-name/
βββ task.yml # Metadata (title, position, category, etc.)
βββ body.md # Main task description
βββ hint.md # Hints for participants (optional)
βββ bonus.md # Bonus challenges (optional)
βββ trainer_hint.md # Notes for trainers (optional)
βββ assets/ # Task-specific images (optional)
task.yml - Only metadata:
title: 'Task Title'
position: 1
category: 'Basics'
preparation: false
estimated_time_in_minutes: 15
always_unlocked: false
git_tag_completed: solution-01-task-namebody.md - Main task description with full Markdown support.
hint.md - Collapsible hints using <details> tags.
bonus.md - Additional challenges for fast learners.
trainer_hint.md - Notes visible only to trainers (common issues, time estimates, discussion points).
Note: You can also include markdown content directly in
task.ymlusingbody_markdown,hint_markdown, etc., but separate files are recommended for better readability and editor support.
Add the new lesson to scripts/build-all.sh:
echo "π Building Lesson 02..."
npx slidev build lessons/02-new-lesson/02-new-lesson.md --out dist/02-new-lesson --base /02-new-lesson/Add dev/build scripts:
{
"scripts": {
"dev:02": "slidev lessons/02-new-lesson/02-new-lesson.md --open",
"build:02": "slidev build lessons/02-new-lesson/02-new-lesson.md --out dist/02-new-lesson"
}
}Each topic follows the 4-MAT learning cycle:
| Phase | Purpose | Content |
|---|---|---|
| WHY | Connection | Why this matters, real-world problems |
| WHAT | Conceptual | Core concepts, theory, definitions |
| HOW | Practice | Step-by-step implementation |
| WHAT IF | Creative | Edge cases, alternatives, extensions |
| Script | Description |
|---|---|
npm run dev |
Start development server |
npm run dev:01 |
Start dev server for lesson 01 |
npm run build |
Build all lessons |
npm run build:01 |
Build lesson 01 only |
npm run export |
Export slides to PDF |
npm run preview |
Preview built slides |
This template is designed to work with the workshops.de platform:
- lesson.yml: Defines lesson metadata synced to the platform
- task.yml: Defines task content synced to the platform
- GitHub Sync: The platform can automatically sync content from this repository
- Set the
github_course_urlin your course settings on the platform - Enable sync for the course
- The platform will automatically import lessons and tasks
Change the theme in your slide frontmatter:
---
theme: seriph # or: default, apple-basic, etc.
---Use UnoCSS classes directly in your slides.
MIT