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

Jump to section:

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