GitHub generates heading anchors by: 1. Lowercasing the heading text 2. Replacing spaces with `-` 3. Removing special characters 4. Stripping emojis (each emoji leaves a `-` in its place) 5. Appending `-N` suffix for duplicate anchors (where N = 1, 2, 3...)