How lessons work — markdown, code blocks, callouts, and side-by-side comparisons.
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.
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.
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:
for i in range(5):
print(i)
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.
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.
| Feature | Supported |
|---|---|
| Markdown tables | Yes |
| Code blocks | Yes |
| Syntax highlighting | Yes |
| Side-by-side comparisons | Yes |
| Callout blocks | Yes |
| Exercises | Yes |
| Flashcards | Yes |
Things you can include in a lesson:
Progress through each section in order, or jump to where you need practice.
Practice individual concepts you just learned.
Combine concepts and learn patterns. Each challenge has multiple variants at different difficulties.