NIP-54 passa da Asciidoc a Djot per gli articoli wiki
Gli articoli wiki di NIP-54 non usano più Asciidoc. Una pull request unita alla specifica cambia il linguaggio di markup in Djot e riscrive la sintassi dei wikilink di conseguenza.
Nostr WoT Newsroom
Redatto dalla Redazione di Nostr WoT a partire dalle fonti primarie citate, e pubblicato automaticamente senza revisione umana individuale.
NIP-54 definisce articoli wiki modificabili in modo collaborativo su Nostr: eventi indirizzabili che un client può rendere come pagine in stile enciclopedico, con wikilink tra articoli. Il 2026-03-17 la PR #2242, a cura di VincenzoImp, è stata unita alla specifica e ha cambiato il linguaggio di markup in cui è scritto il campo content di un articolo wiki, da Asciidoc a Djot.
Perché un cambio di markup non è cosmetico
NIP-54 non racchiude content in un formato contenitore con un proprio campo di tipo. Dice semplicemente: questo è testo scritto in un determinato linguaggio di markup, e ci si aspetta che i client lo interpretino e lo rendano di conseguenza. Questo significa che ogni client che rende articoli NIP-54, e ogni strumento o relay che li genera, deve concordare su cosa significhi quel markup. Cambiare il linguaggio di markup cambia cosa significhi un "rendering corretto" per l'intero kind di evento, non solo per un articolo. È il tipo di cambiamento che conta per chi implementa, anche se nessun numero di kind o struttura di tag si è spostato.
Come funziona la sintassi adesso
La vecchia specifica descriveva contenuto in Asciidoc con un'estensione speciale per i wikilink con parentesi quadre doppie: [[Target Page]] collegava all'articolo su target-page, e [[target page|see this]] permetteva di impostare un testo di visualizzazione personalizzato.
Djot non ha una sintassi di wikilink con coppia di parentesi propria, quindi NIP-54 riutilizza invece i link di riferimento nativi di Djot. Un link come [cryptocurrency][] normalmente si risolve rispetto a un riferimento definito altrove nel documento; NIP-54 ora stabilisce che, quando quel riferimento non esiste, il client deve trattarlo come un wikilink e risolverlo verso l'articolo wiki il cui tag d corrisponde al testo del link normalizzato. Così [cryptocurrency][] diventa un wikilink verso l'articolo taggato cryptocurrency, mentre [Satoshi Nakamoto][] rimane un link normale se nel documento è definito un riferimento per "Satoshi Nakamoto" (ad esempio verso un npub). La PR aggiunge anche esempi concreti per scritture non latine, mostrando come la stessa sintassi di riferimento normalizzi un target di link in giapponese o cirillico.
I link nostr: definiti in NIP-21 non sono interessati: continuano a funzionare per collegarsi a profili o eventi specifici, anche se la specifica continua a raccomandare i wikilink invece di fissare un link a una versione specifica di un articolo.
Cos'altro completa la PR
Due sezioni di NIP-54 erano rimaste dei placeholder, contrassegnate [INSERT EVENT EXAMPLE], fin dalla prima stesura del NIP. La PR #2242 le completa entrambe con JSON reale:
- L'evento
kind:818di Merge Request, usato per chiedere a un'altra chiave pubblica di unire un articolo forkato di nuovo alla fonte, ha ora un esempio completo che tagga l'articolo di destinazione con un taga, la versione di base con un tage, e la versione da unire con un tageche porta il marcatoresource. - L'evento
kind:30819di Redirect, usato per far puntare un titolo di articolo a un altro (l'esempio della PR è "BTC" che reindirizza a "Bitcoin"), riceve lo stesso trattamento: un tagdcon il titolo di origine e un tagache punta all'articolo di destinazione.
Perché Djot
La PR aggiunge alla specifica una nuova sezione "Why Djot?", che sostituisce la precedente motivazione "Why Asciidoc?". Spiega la scelta in termini concreti: Djot è stato creato da John MacFarlane, autore di Pandoc e coautore di CommonMark, e a differenza di Markdown, che si divide in molti dialetti incompatibili, o di Asciidoc, la cui specifica è legata alla sua implementazione in Ruby, Djot ha una specifica chiara e indipendente. Ha già implementazioni native in JavaScript, Lua, Rust e Go, senza bisogno di un passaggio di transpilazione, e supporta le funzionalità di cui un formato wiki enciclopedico ha bisogno: apice, pedice, note a piè di pagina, tabelle, liste di definizioni e matematica. La sua sintassi resta vicina al Markdown di base, e il suo parser è progettato per girare in tempo lineare.
Contesto
Secondo il corpo della PR, la #2242 prosegue il lavoro iniziato nella #2082, la proposta che per prima ha sollevato l'idea di abbandonare Asciidoc, e si basa sulla #2177, un cambiamento unito in precedenza che ha stabilito le regole di normalizzazione del tag d per le scritture non latine, da cui dipendono direttamente i nuovi esempi di wikilink.
Il cambiamento ha toccato un solo file, 54.md, con 63 righe aggiunte e 37 rimosse.
Fonti
Ogni affermazione in questo articolo rimanda a una fonte primaria.
- NIP-54: Switch from Asciidoc to Djot — nostr-protocol/nips (17 marzo 2026)