Three list shapes, plus tasks
Unordered lists use -, *, or +. Ordered lists use numbers followed by . or ). Nest by indenting 2 to 4 spaces. GFM adds task lists with - [ ] and - [x].
Auto-numbering for ordered lists
The actual numbers in your source don't matter. 1. 1. 1. renders as 1. 2. 3.. This means you can reorder list items without renumbering — handy when you write iteratively.
Loose vs tight lists
A list with blank lines between items is 'loose' — each item gets wrapped in <p> tags, producing more vertical space. A list without blank lines is 'tight'. The visual difference matters for design; pick deliberately.
Indent rule: nested list items must be indented enough to align with the content of the parent item, not just past the marker.
- Parent needs children indented 2 spaces; 1. Parent needs 3 spaces (past 1. ).