NIP-54 переходит с Asciidoc на Djot в вики-статьях
Вики-статьи NIP-54 больше не используют Asciidoc. Слитый pull request меняет язык разметки спецификации на Djot и переписывает синтаксис викиссылок под него.
Nostr WoT Newsroom
Материал подготовлен редакцией Nostr WoT на основе указанных первоисточников и опубликован автоматически, без индивидуальной проверки человеком.
NIP-54 определяет совместно редактируемые вики-статьи в Nostr: адресуемые события, которые клиент может отобразить как страницы в стиле энциклопедии, с викиссылками между статьями. 2026-03-17 PR #2242, автором которого стал VincenzoImp, был слит в спецификацию и изменил язык разметки, на котором пишется поле content вики-статьи, с Asciidoc на Djot.
Почему смена разметки не является косметическим изменением
NIP-54 не оборачивает content в контейнерный формат с собственным полем типа. В нём просто сказано: это текст на определённом языке разметки, и от клиентов ожидается, что они будут интерпретировать и отображать его соответствующим образом. Это значит, что каждый клиент, отображающий статьи NIP-54, и каждый инструмент или relay, который их генерирует, должны согласиться в том, что означает эта разметка. Смена языка разметки меняет представление о "корректном отображении" для всего kind события целиком, а не только для одной статьи. Это тот тип изменений, который важен для разработчиков, даже если ни один номер kind и ни одна структура тегов при этом не сдвинулись.
Как теперь выглядит синтаксис
Прежняя спецификация описывала содержимое в Asciidoc со специальным расширением для викиссылок через двойные квадратные скобки: [[Target Page]] вело на статью target-page, а [[target page|see this]] позволяло задать собственный текст отображения.
У Djot нет собственного синтаксиса викиссылок с парой скобок, поэтому NIP-54 вместо этого использует нативные ссылки-ссылки Djot. Ссылка вида [cryptocurrency][] обычно разрешается относительно ссылки-определения, заданной где-то ещё в документе; теперь NIP-54 указывает, что если такого определения нет, клиент должен трактовать её как викиссылку и разрешать на вики-статью, чей тег d совпадает с нормализованным текстом ссылки. Так [cryptocurrency][] становится викиссылкой на статью с тегом cryptocurrency, а [Satoshi Nakamoto][] остаётся обычной ссылкой, если в документе определена ссылка для "Satoshi Nakamoto" (например, указывающая на npub). PR также добавляет разобранные примеры для нелатинских письменностей, показывая, как тот же синтаксис ссылок-определений нормализует цель ссылки на японском или кириллице.
Ссылки nostr:, определённые в NIP-21, не затронуты: они по-прежнему работают для ссылок на профили или конкретные события, хотя спецификация продолжает рекомендовать викиссылки вместо привязки ссылки к одной конкретной версии статьи.
Что ещё дополняет PR
Два раздела NIP-54 оставались заполнителями, отмеченными [INSERT EVENT EXAMPLE], с момента первой редакции NIP. PR #2242 заполняет оба реальным JSON:
- Событие
kind:818Merge Request, используемое для запроса другому публичному ключу слить форкнутую статью обратно в источник, теперь имеет полный пример: целевая статья помечается тегомa, базовая версия отмечается тегомe, а версия для слияния отмечается тегомeс маркеромsource. - Событие
kind:30819Redirect, используемое, чтобы одно название статьи указывало на другое (в примере из PR "BTC" перенаправляется на "Bitcoin"), получает такую же обработку: тегdс исходным названием и тегa, указывающий на целевую статью.
Почему Djot
PR добавляет в спецификацию новый раздел "Why Djot?", заменяющий прежнее обоснование "Why Asciidoc?". Он объясняет выбор конкретными доводами: Djot создан Джоном Макфарлейном, автором Pandoc и соавтором CommonMark, и, в отличие от Markdown, распадающегося на множество несовместимых диалектов, или Asciidoc, чья спецификация привязана к реализации на Ruby, у Djot есть чёткая, самостоятельная спецификация. У него уже есть нативные реализации на JavaScript, Lua, Rust и Go без этапа транспиляции, и он поддерживает функции, нужные энциклопедическому вики-формату: верхний и нижний индекс, сноски, таблицы, списки определений и математику. Его синтаксис остаётся близким к базовому Markdown, а парсер спроектирован для работы за линейное время.
Контекст
Согласно тексту PR, #2242 продолжает работу, начатую в предложении #2082, которое первым подняло вопрос об отказе от Asciidoc, и опирается на #2177, ранее слитое изменение, установившее правила нормализации тега d для нелатинских письменностей, от которых напрямую зависят новые примеры викиссылок.
Изменение затронуло один файл, 54.md: добавлено 63 строки, удалено 37.
Источники
Каждое утверждение в этом материале ссылается на первоисточник.
- NIP-54: Switch from Asciidoc to Djot — nostr-protocol/nips (17 марта 2026 г.)