Unordered and ordered lists
An unordered list uses a dash, asterisk or plus as the bullet; the three are interchangeable. An ordered list uses a number and a period — and the numbers are renumbered automatically, so `1.` on every line still renders as 1, 2, 3. Use whatever number helps you read the source.
- `- item` — the commonest bullet
- `* item` and `+ item` — equivalent
- `1. item` — ordered; the actual numbers do not matter
Nesting
Indent a nested item by two to four spaces under its parent. Keep the indentation consistent through the whole list, and put a blank line before a code block inside a list item — otherwise the code is treated as part of the list text.
The rules that trip people up
A blank line between items creates a 'loose' list with paragraph spacing; no blank lines makes a tight list. Starting a new paragraph inside an item needs a blank line plus indentation. And switching between bullet characters without changing indentation can start a new list rather than continuing the same one.
Task lists
GitHub-Flavoured Markdown adds checkboxes: `- [ ]` for an open task and `- [x]` for a done one. They render as interactive checkboxes on GitHub and as static boxes elsewhere.