Beyond bold and italic
Most people write Markdown daily and still miss the features that make GFM (GitHub Flavored Markdown) genuinely powerful. These are the ones that change how you work.
Tables
| Header | Right-aligned |
|--------|--------------:|
| cell | value |
Colons in the separator row set alignment. Cells can't span columns or rows — when you need that, you need HTML.
Task lists and strikethrough
- [x] shipped
- [ ] pending
~~deprecated~~ renders struck through
Task lists render as real checkboxes on GitHub and in most renderers, making them the quickest status tracker that survives any tool migration.
Code blocks with language
Always tag fences: ```python buys you syntax highlighting, and — more importantly — lets tooling (like linters and docs generators) process the block. Use ~~~ fences or more backticks (````) when the code itself contains triple backticks.
The escaping traps
- Underscores inside words (
snake_case_names) are usually left alone by GFM, but*glob*and_privateat word boundaries become emphasis — escape with backslash when you mean it literally. - Indentation is syntax. Four spaces after a list item makes a nested list; four spaces on a fresh paragraph makes a code block. Mixed tabs and spaces produce "code block" surprises.
- Line breaks: a single newline joins into one paragraph. End a line with two spaces, or use a backslash, for a hard break.
- HTML passes through —
<div>blocks are copied to output verbatim, and Markdown inside block-level HTML often isn't processed. Inline HTML inside a paragraph works fine.
Links and images
Reference-style links keep paragraphs readable: [docs][1] with [1]: https://… defined anywhere in the file. Images are links with a bang: .
Practice all of this live with syntax highlighting and export in the Markdown Editor — preview, HTML, and Word export, all client-side.