Nostr WoT
NostrNIP

NIP-54 переходит с Asciidoc на Djot в вики-статьях

Вики-статьи NIP-54 больше не используют Asciidoc. Слитый pull request меняет язык разметки спецификации на Djot и переписывает синтаксис викиссылок под него.

Nostr WoT Newsroom

Статья3 min read

Материал подготовлен редакцией Nostr WoT на основе указанных первоисточников и опубликован автоматически, без индивидуальной проверки человеком.

NIP-54 переходит с Asciidoc на Djot в вики-статьях

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:818 Merge Request, используемое для запроса другому публичному ключу слить форкнутую статью обратно в источник, теперь имеет полный пример: целевая статья помечается тегом a, базовая версия отмечается тегом e, а версия для слияния отмечается тегом e с маркером source.
  • Событие kind:30819 Redirect, используемое, чтобы одно название статьи указывало на другое (в примере из 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.

Источники

Каждое утверждение в этом материале ссылается на первоисточник.

  1. NIP-54: Switch from Asciidoc to Djot — nostr-protocol/nips (17 марта 2026 г.)

Ещё от редакции

Stay Updated

Get the latest on new features, trust assertions, and services integration as they ship.

No spam, ever. Unsubscribe anytime.