# Markdown on shithub shithub renders user-authored markdown — issue bodies, PR descriptions, comments, READMEs — through one canonical pipeline. This page documents what's supported and what's deliberately not. ## Supported ### CommonMark + GFM The full CommonMark spec plus the curated GFM additions: - Headings (`# Title` through `###### h6`) with auto-generated anchor IDs (`
` with no
highlighting.
### shithub-specific inline patterns
| You write | We render |
| --------------------- | ---------------------------------------------------- |
| `@alice` | Link to `/alice` if the user exists |
| `#42` | Link to issue/PR #42 in the current repo, if visible |
| `alice/proj#42` | Cross-repo issue/PR link, if visible to you |
| `abc1234` | Commit link in the current repo (7+ hex chars) |
| `:rocket:` / `:+1:` | Emoji from a curated set (~150 shortcodes) |
These patterns *do not match inside code blocks or inline code* —
`` `#42` `` stays literal.
If a reference can't be resolved (the issue doesn't exist, the
user doesn't exist, the cross-repo target isn't visible to you),
we render the text as-is. No broken links, no "deleted" labels,
no existence leaks.
### Safe HTML (allowlisted)
These tags pass through unchanged:
- `` / `` (collapsible sections)
- `` (keyboard markers)
- ``, `` (superscript / subscript)
- README presentation attributes GitHub commonly allows:
`align="left|center|right"` on paragraphs / headings / divs,
and `width` / `height` on images.
- Standard text formatting tags Goldmark emits (em, strong, code,
pre, blockquote, ul, ol, li, table family).
## Not supported
We deliberately do **not** match GitHub's looser markdown surface:
| Feature | Why |
| ------------------------ | --------------------------------------------------- |
| Raw HTML beyond allowlist | XSS prevention. Anything outside the list is stripped. |
| `data:` URIs | Avoids tracking pixels and decompression bombs. |
| `javascript:` URLs | Always XSS. |
| `