C.W.K.
Stream
Lesson 01 of 08 · published

What Is Markdown?

~10 min · markdown, commonmark, history

Level 0Plaintext
0 XP0/64 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

Plain text that renders rich

Markdown is a lightweight markup language created by John Gruber in 2004. You write plain text with simple symbols; a parser turns it into rich, formatted HTML — headings, bold, links, code blocks, the works.

The current standard is CommonMark (spec 0.31.2). Before CommonMark, every parser disagreed about edge cases. CommonMark formalized the syntax so 'this Markdown' produces 'this HTML' everywhere it matters.

Where you already meet Markdown

  • GitHub — README files, issues, PRs, discussions, wiki pages.
  • Documentation — MkDocs, Docusaurus, VitePress, Read the Docs.
  • Notes — Obsidian, Notion, Bear, Typora, Logseq.
  • Static sites & blogs — Hugo, Jekyll, Astro, Next.js MDX.
  • Chat — Slack, Discord, Mattermost (Markdown subsets).
  • Technical writing — API docs, changelogs, RFCs, runbooks.

Why a plain-text format keeps winning

Markdown files are just text. They diff cleanly in git, they survive editor changes, and they outlive whatever shiny tool you wrote them in. Open a Markdown file from 2010 — still readable. Open a 2010 Word doc with embedded macros — good luck.

How rendering works

A Markdown processor (parser + renderer) reads your text, builds an abstract syntax tree (AST) of blocks and inlines, then walks the tree to emit HTML. Different processors share the spec but vary in extensions.

Principle: Treat Markdown as a contract with the renderer, not as a 'this looks right in my editor' guess. The contract is CommonMark.

Code

First Markdown·markdown
# My Project

This is **bold** and this is *italic*.

- Item one
- Item two

[Visit GitHub](https://github.com)
Render Markdown locally with pandoc·bash
# Convert Markdown to HTML
pandoc README.md -o README.html

# Or to a standalone styled HTML doc
pandoc README.md -s --metadata title="Demo" -o README.html

# Preview in browser
open README.html

External links

Exercise

Open a new file called scratch.md, write a small page about something you did this week (3 paragraphs, one list, one link, one code block). Render it with pandoc scratch.md -s -o scratch.html and open the result. Read the HTML source — match every Markdown line to the HTML it produced.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.