learn-markdown-with-phoebe / Session 1 of 4
Learn Markdown with Phoebe · Session 1 of 4

First words: from plain text to a real page

Markdown is how the internet writes: GitHub, Notion, Reddit, Slack, every AI chat box. Today you learn what it is, type your first formatted page in a split-pane editor, and start the about-me page that goes live on the internet in Session 4. If you can type, you're qualified.

🟢 Easiest Total beginners Nothing to install 45 min live + self-study
0-3 · Welcome 3-18 · Concepts 18-40 · Build your page 40-45 · Q&A
Part 0

Why this course exists

You've seen markdown even if you've never heard the name - every README on GitHub, every nicely formatted ChatGPT answer, every Notion page is markdown underneath. This course teaches it the only way that sticks: by building something real. Four sessions, one running project - your own page, live on your GitHub profile by the end.

Live - presented in session Self-study - read after class ★ Build-along demo The project: YOUR page
★ What you walk out with today The markdown mental model (plain text in, beautiful pages out), the seven everyday elements - headings, paragraphs, line breaks, bold, italic, lists, links - and your about-me page drafted in a real split-pane editor. No installs, no accounts, just a browser tab.
Part 1 · covers Markdown Guide "getting started" + the original spec page

What markdown actually is 6 min live

Markdown is a lightweight markup language: you add a few characters to plain text - # for headings **for bold** - and a processor turns it into a formatted page. The text stays readable BOTH ways. That's the whole trick.

1 · You type # My page **hello** world 2 · A processor converts your text to HTML (GitHub, Notion, editors - it's built into all of them) 3 · It renders a big bold heading, real formatting - on any site, phone, or app The file is just text (.md). No lock-in, no special app - it opens in anything, forever. That's why the whole internet standardized on it. This course: you type in a browser split-pane editor and watch step 3 happen live on every keystroke.
🔍 Click to zoom - the whole markdown pipeline: type, convert, render
LiveA language you already half-know3 min▶

Markdown's characters aren't arbitrary - they're how people already decorated plain-text email in the 90s: stars for *emphasis*, dashes for lists, > for quoting someone. Markdown just made the old habits official. That's why it feels familiar on day one.

  • It's everywhere: GitHub, Reddit, Notion, Obsidian, Slack, Discord, Jupyter, and every major AI chat - one syntax, learned once.
  • It's future-proof: a markdown file is plain text; it will open unchanged in 30 years. Word files from 1995 can't say that.
  • It's fast: your hands never leave the keyboard - no ribbon, no menus, no hunting for the bold button.
Real world

The moment it clicks: you paste your meeting notes into a ChatGPT or Claude chat and the answer comes back with clean headings and bullet lists. That formatting IS markdown - the AI writes it, the chat window renders it. After today you'll write it yourself, and you'll also read AI answers in a whole new way.

LiveBorn 2004, designed to be read2 min story▶

John Gruber released Markdown in 2004 (final version 1.0.1, December 2004), with feedback from Aaron Swartz. The design goal, in Gruber's own words: make it "as readable as possible" - a markdown document should be publishable as-is, as plain text, without looking like it's been marked up with tags.

Compare: HTML needs <strong>bold</strong>, markdown needs **bold**. Both produce the same result - one of them you can still read as you type it. Twenty years later that one decision is why markdown won.

Self-studyFlavors: why markdown differs slightly app to app2 min read▶

Practically every app implements markdown a little differently - these variants are called flavors, like dialects of one language. Two names worth knowing now:

  • CommonMark: the standardized core - the basics you learn today work everywhere.
  • GitHub Flavored Markdown (GFM): CommonMark plus extras - tables, checklists, emoji shortcodes. Sessions 2-3 territory, and what your profile page will use.

Rule of thumb: the Session 1 elements are universal; anything fancier, check the app. The deep-dive track (DD2) maps the whole flavor landscape if you get curious.

Part 2 · covers CommonMark tutorial lessons 3-4

Headings, paragraphs, and the line-break trap 4 min live

Structure first. Two characters - # and the blank line - give a page its whole skeleton.

LiveHeadings: # to ######2 min▶
You type# My page ## About me ### Hobbies
→
Browser shows
My page
About me
Hobbies
  • One # per level: # is the page title, ## a section, ### a subsection - down to six.
  • The space is NOT optional: #Heading silently fails; # Heading works. The #1 beginner bug, and your first quiz question.
  • Breathing room: put a blank line before and after each heading - some apps mis-render without it.
LiveParagraphs + the invisible line-break trap2 min▶
You typeLine one. Line two - SAME paragraph! Blank line = new paragraph.
→
Browser shows

Line one. Line two - SAME paragraph!

Blank line = new paragraph.

  • Enter once does nothing. Markdown joins consecutive lines into one paragraph. A blank line starts a new one.
  • Want a line break WITHOUT a new paragraph? End the line with two spaces, or write <br>. The two-space version is invisible in your editor - the classic trap when a poem or address won't break.
  • Never indent paragraphs. Four leading spaces means "code" in markdown - your text would render in a monospace box (Session 2 explains why).
The debugging reflex Text glued together that should be separate? You forgot a blank line. Text in a weird grey box? You indented it. Those two fixes solve most day-one confusion.
Self-studyHorizontal rules + the underline-style headings2 min read▶
  • Horizontal rule: three or more dashes --- alone on a line draw a divider. Keep a blank line above it - text directly above --- turns into a heading instead (see next point).
  • Setext headings: the older style - underline text with === for a level-1 or --- for a level-2 heading. You'll see it in the wild; writing # style is cleaner.
  • Escaping accidents: a line that starts with a character markdown cares about (like a literal # or -) renders as formatting unless you put a backslash in front: \# not a heading. Full escapable set: \ ` * _ { } [ ] < > ( ) # + - . ! |
Part 4 · the running project

One page, four sessions 2 min live

Every session grows the same file: your about-me page. No toy exercises - in Session 4 this exact document goes live on your GitHub profile, where anyone who looks you up will see it.

1 · Page drafted 2 · Structure in 3 · Looks pro 4 · Live on GitHub headings, intro, hobby list, one link (today) photo, quote, skills table, checklist badges, emoji, diagram, collapsible extras the username/username repo trick + commit Miss a week? Each session page stands alone, and your draft lives in your browser editor - pick up where you left off.
🔍 Click to zoom - the roadmap: one page, four sessions, then it's live
Demo 1 of 3

Open your editor, type your first markdown ★ 6 min · everyone types

Open stackedit.io/app in a new tab - a free split-pane editor, no account needed. Markdown goes on the left, the rendered page appears on the right. (Backup: dillinger.io - same idea.)

Clear the sample text. Type # followed by your name - watch the right pane produce a big bold heading the instant you type the space.

Press Enter TWICE (blank line!) and write one plain sentence about yourself. Then press Enter once and write another - notice they glue into one paragraph. Add the blank line. Feel the rule.

Bold one word with **stars**, italicize another with *one star*. You're writing markdown.

Why a split-pane editor first? Markdown Guide's own advice for beginners: start where you SEE the conversion live. Instant feedback turns rules into reflexes in minutes. GitHub's editor (Session 4) has a preview tab too - same idea, one click slower.
Demo 2 of 3

Draft YOUR about-me page ★ 12 min · everyone builds

Structure first, three headings: # Your Name, then ## About me, then ## Three things I love. Blank lines between everything.

Under "About me": two or three sentences. Who are you, what do you do, what are you learning? Bold the thing you want people to remember; italicize something playful.

Under "Three things I love": a - list, three items. Nobody's grading the hobbies.

Add one real link: your LinkedIn, your favorite site, anything - [text](url). Square brackets say it, round brackets take you there.

Discernment lap: read the RIGHT pane like a stranger would. Reorder, reword, make it yours. This exact file becomes your public page in Session 4 - write like someone will read it, because they will.

Real world

A student's first draft was one grey wall of text - technically correct markdown, zero structure. Adding two ## headings and turning one sentence into a three-item list took 90 seconds and made it look designed. Structure IS the design skill, and markdown makes structure cheap.

Demo 3 of 3

Break it on purpose ★ 4 min · follow along

Delete the space in a heading: #Broken. Watch the right pane show a sad literal #Broken. Put the space back. (Same trick breaks -item lists.)

Remove the blank line between two paragraphs - watch them merge. Restore it.

Try to type a literal star: write *wink*, see it italicize against your will, then fix it with backslashes: \*wink\*.

Indent a normal sentence four spaces - surprise, it's a grey code box now. Un-indent. You've now met every day-one bug in captivity, on purpose.

Why break things? Every bug you cause on purpose is one you'll diagnose in two seconds when it happens by accident. This lab IS the quiz prep.
After the session

This week ◐ 30 min total

Check yourself

Three questions before you go 🎯 ◐ 90 seconds

1 · You press Enter once and keep typing - what does markdown do?

Enter once does nothing. Blank line = new paragraph; two trailing spaces or <br> = line break within one.

2 · Why does #Heading render as literal text instead of a heading?

Space after the marker - the same rule saves your lists (- item) too. The #1 beginner bug, now yours to never make.

3 · You want to type a literal * star in your text. Best move?

Backslash escapes any markdown character: \ ` * _ { } [ ] < > ( ) # + - . ! | - the get-out-of-formatting-free card.

Source material

Official sources covered

This session teaches the working content of the canonical markdown learning materials - the interactive tutorial at commonmark.org, the reference at markdownguide.org, and the original spec at daringfireball.net.

✓CommonMark tutorial, lessons 1-7emphasis, paragraphs, headings, lists, links - Parts 2-3 + demos
✓Markdown Guide: getting startedwhat markdown is, why use it, how processors work - Part 1
✓Markdown Guide: basic syntax (first half)headings through links, incl. best-practice notes - Parts 2-3
✓Daring Fireball: markdown project pagehistory, philosophy, the readability goal - Part 1
◐CommonMark tutorial, lessons 8-10images, code, nested lists - Session 2 + self-study cards here
◐Markdown Guide: basic syntax (second half)images, blockquotes, code - Session 2 territory

Session 1 cheat sheet · pin this

Headings# Title · ## Section · ### Sub - space after # required, blank lines around.
ParagraphsBlank line = new paragraph. Enter once = nothing. Two trailing spaces = line break.
Emphasis*italic* · **bold** · ***both*** - stars hug the text, no inner spaces.
Lists- item (bulleted) · 1. item (numbered, real numbers optional) - space after the marker.
Links[text](url) - square brackets say it, round brackets take you there. Quick: <url>.
Escape hatchBackslash before any special character: \* \# \_ renders it literally.