Skip to content

A template repository for creating workshop slides using Slidev with integrated task management for the workshops.de platform.

Notifications You must be signed in to change notification settings

workshops-de/workshop-slides-template

Repository files navigation

Workshop Slides Template

A template repository for creating workshop slides using Slidev with integrated task management for the workshops.de platform.

πŸš€ Quick Start

1. Use This Template

Click "Use this template" on GitHub to create a new repository.

2. Clone and Setup

git clone https://github.com/your-org/your-workshop-slides.git
cd your-workshop-slides
npm install

3. Start Development

npm run dev

Open http://localhost:3030 to see your slides.

πŸ“ Project Structure

/
β”œβ”€β”€ 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

πŸ“ Creating a New Lesson

1. Create Lesson Folder

mkdir -p lessons/02-new-lesson/slides/topic-name
mkdir -p lessons/02-new-lesson/tasks/01-first-task

2. Create lesson.yml

name: 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: false

3. Create Main Slide File

Create lessons/02-new-lesson/02-new-lesson.md with the Slidev frontmatter.

4. Add Topic Slides

Create the 4-MAT structure:

  • slides/topic-name/why.md
  • slides/topic-name/what.md
  • slides/topic-name/how.md
  • slides/topic-name/what-if.md
  • slides/topic-name/task.md

5. Add Tasks

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-name

body.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.yml using body_markdown, hint_markdown, etc., but separate files are recommended for better readability and editor support.

6. Update Build Script

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/

7. Update package.json

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"
  }
}

πŸŽ“ 4-MAT Teaching Structure

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

πŸ“¦ Available Scripts

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

πŸ”— Platform Integration

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

Enabling GitHub Sync

  1. Set the github_course_url in your course settings on the platform
  2. Enable sync for the course
  3. The platform will automatically import lessons and tasks

🎨 Customization

Theme

Change the theme in your slide frontmatter:

---
theme: seriph # or: default, apple-basic, etc.
---

Styling

Use UnoCSS classes directly in your slides.

πŸ“š Resources

πŸ“„ License

MIT

About

A template repository for creating workshop slides using Slidev with integrated task management for the workshops.de platform.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •