// MODULE 01

Your First Module

How lessons work — markdown, code blocks, callouts, and side-by-side comparisons.

Welcome

This is a sample module to show you how vibe-learn lessons work. Everything you see here is written in plain markdown and converted to HTML at build time.

Lessons support all standard markdown: bold, italic, inline code, links, lists, tables, and more.

Code Blocks

Fenced code blocks get automatic syntax highlighting via highlight.js.

def greet(name: str) -> str:
    """Return a greeting."""
    return f"Hello, {name}!"

print(greet("World"))
function greet(name) {
    return `Hello, ${name}!`;
}

console.log(greet("World"));

You can use any language highlight.js supports — just set the language after the opening fence.

Side-by-Side Code Comparisons

If you put a label (italic text) right before a code block, the engine wraps it in a styled header. Two consecutive labeled blocks become a side-by-side comparison:

Python
for i in range(5):
    print(i)
JavaScript
for (let i = 0; i < 5; i++) {
    console.log(i);
}

This is great for showing the same concept in different languages, or before/after refactoring.

Callout Blocks

Use blockquotes with a bold label to create callout boxes:

Tip: This is a callout block. Use them for important notes, warnings, or tips. The bold label at the start sets the tone.

Warning: Callouts support the full range of Markdown formatting, including bold, italic, code, and links.

Tables

Feature Supported
Markdown tables Yes
Code blocks Yes
Syntax highlighting Yes
Side-by-side comparisons Yes
Callout blocks Yes
Exercises Yes
Flashcards Yes

Lists

Things you can include in a lesson:

Exercises

Progress through each section in order, or jump to where you need practice.

Practice individual concepts you just learned.

💪 Challenges

Combine concepts and learn patterns. Each challenge has multiple variants at different difficulties.

Module 1 Summary