Skip to content

workshops-de/angular-workshop-slides

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
│           └── 02-second-task/
│               ├── task.yml
│               └── 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 tasks/01-task-name/task.yml for each exercise.

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

Releases

No releases published

Packages

No packages published