Nostr MarkDown
Shared content format for Nostr events that use Markdown. Extends standard Markdown with three Nostr-specific features: nostr: URI links, custom emoji shortcodes, and wikilinks — while keeping the base syntax compatible with any standard Markdown renderer.
Nostr URIs
In inline text or in Markdown links, nostr: URIs refer to Nostr entities. Resolve and display per "Nostr URI".
| Scheme | Refers to |
|--------|-----------|
| nostr:npub1… | Profile (pubkey) |
| nostr:nprofile1… | Profile (pubkey + relays) |
| nostr:note1… / nostr:nevent1… | Event |
| nostr:naddr1… | Addressable event (kind + pubkey + d) |
Example: See nostr:npub1… for details or [Author](nostr:npub1…).
Custom Emoji
:shortcode: is interpreted as custom emoji when the client has a mapping. If no mapping exists, display the shortcode as-is or leave unmodified.
Example: :sats: or :nostr:.
Wikilinks
"target" and "label" link to addressable content by a normalized identifier. The target is normalized: lowercase, non-letters replaced by -. The client resolves "target" by querying for events whose d tag equals the normalized target.
-
"Page Name"→ link topage-name, display "Page Name" -
"click here"→ link topage-name, display "click here"
When a spec uses wikilinks it MUST define which event kinds and d semantics apply (e.g. "Wiki"). In this repo, spec pages use d tags with a nostr- prefix (e.g. nostr-markdown, nostr-wiki); link to them as "Nostr Markdown", "Wiki", etc.
Base Syntax
Clients MUST support the following. All syntax is standard Markdown.
| Feature | Syntax |
|---------|--------|
| Headings | # H1, H2, # H3, … (up to 6 levels) |
| Bold | text or text |
| Italic | text or text |
| Unordered list | - item or * item |
| Ordered list | 1. item, 2. item, … |
| Link | [label](url) — url may be nostr:… |
| Image |  |
| Inline code | |
| Fenced code block | Opening ` code ` ` with optional language, code lines, closing ` ` ` |
| Blockquote | > quoted line (nest with multiple >) |
| Table | Header row + \|---|---| separator + body rows |
Other features (e.g. footnotes, strikethrough) are optional.
See Also
-
"Nostr URI" —
nostr:URI scheme -
"Wiki" — wiki articles using wikilinks
-
"Task" — task descriptions in Nostr Markdown