NIP-54 Switches Wiki Articles from Asciidoc to Djot
NIP-54 wiki articles no longer use Asciidoc. A merged pull request switches the spec's markup language to Djot and rewrites the wikilink syntax to match.
Nostr WoT Newsroom
Assembled by the Nostr WoT Newsroom from the cited primary sources, and published automatically without individual human review.
NIP-54 defines wiki-style, collaboratively editable articles on Nostr: addressable events that a client can render as encyclopedia-style pages, complete with wikilinks between articles. On 2026-03-17, PR #2242, authored by VincenzoImp, merged into the spec and changed the markup language that the content field of a wiki article is written in, from Asciidoc to Djot.
Why a markup change is not cosmetic
NIP-54 doesn't wrap content in a container format with its own type field. It just says: this is prose in a particular markup language, and clients are expected to parse and render it that way. That means every client that renders NIP-54 articles, and every relay or tool that generates them, has to agree on what the markup means. Swapping the markup language changes what "correct rendering" looks like for the entire event kind, not just for one article. It's the kind of change that matters to implementers even though no event kind number or tag structure moved.
What the syntax looks like now
The old spec described Asciidoc content with a special wikilink extension using double brackets: [[Target Page]] linked to the article at target-page, and [[target page|see this]] let you set custom display text.
Djot doesn't have a bracket-pair wikilink syntax of its own, so NIP-54 repurposes Djot's native reference-style links instead. A link like [cryptocurrency][] normally resolves to a reference defined elsewhere in the document; NIP-54 now says that when no such reference exists, the client should treat it as a wikilink and resolve it to the wiki article whose d tag matches the normalized link text. So [cryptocurrency][] becomes a wikilink to the article tagged cryptocurrency, while [Satoshi Nakamoto][] stays a normal link if a reference for "Satoshi Nakamoto" is defined in the document (for instance, pointing at an npub). The PR also adds worked examples for non-Latin scripts, showing how the same reference-style syntax normalizes a Japanese or Cyrillic link target.
nostr: links as defined in NIP-21 are unaffected: they still work for linking to profiles or specific events, though the spec continues to recommend wikilinks over pinning a link to one version of an article.
What else the PR fills in
Two sections of NIP-54 had been left as placeholders, marked [INSERT EVENT EXAMPLE], since the NIP was first drafted. PR #2242 fills both in with real JSON:
- The
kind:818Merge Request event, used to ask another pubkey to merge a forked article back into the source, now has a complete example tagging the destination article with anatag, the base version with anetag, and the version to merge with anetag carrying asourcemarker. - The
kind:30819Redirect event, used to point one article title at another (the PR's example is "BTC" redirecting to "Bitcoin"), gets the same treatment: adtag naming the source title and anatag pointing at the target article.
Why Djot
The PR adds a new "Why Djot?" section to the spec, replacing the previous "Why Asciidoc?" rationale. It explains the choice in a few concrete terms: Djot was created by John MacFarlane, the author of Pandoc and a co-author of CommonMark, and unlike Markdown, which splits into many incompatible dialects, or Asciidoc, whose spec is tied to its Ruby implementation, Djot has a clear, standalone specification. It already has native implementations in JavaScript, Lua, Rust and Go, with no transpilation step needed, and it supports the features an encyclopedic wiki format needs: superscript, subscript, footnotes, tables, definition lists and math. Its syntax stays close to basic Markdown, and its parser is designed to run in linear time.
Context
According to the PR body, #2242 continues work started in #2082, the proposal that first raised switching away from Asciidoc, and builds on #2177, an earlier merged change establishing d tag normalization rules for non-Latin scripts, which the new wikilink examples rely on directly.
The change touched a single file, 54.md, with 63 lines added and 37 removed.
Sources
Every claim in this piece links to a primary source.
- NIP-54: Switch from Asciidoc to Djot — nostr-protocol/nips (March 17, 2026)