generated at
NIP-27

> Text Note References

テキスト投稿内における参照

文書中に含まれる nprofile nevent などの取り扱い方法

仕様の翻訳

この文書は .content に含まれる他のイベントやプロフィールのインライン参照の取り扱い方法を標準化する。
これは .content に人の読めるテキストを持つイベント(kind 1(テキスト投稿)や30023(長文投稿, NIP-23))が対象となる。

イベント生成時、クライアントはNIP-21コードを使用して .content に含まれる他のプロフィールや他のイベントに対する参照を含めるようにすべきである。(例: nostr:nprofile1qqsw3dy8cpu...6x2argwghx6egsqstvg

それぞれの参照に対してNIP-10形式のタグ( ["e", <hex-id>, <relay-url>, <marker>] )を含めるかどうかは任意であるが、言及したプロフィールに通知することをユーザが望むか、ユーザの言及したイベントをリプライとして認識させることを望むときにはいつでも含めるべきである。

.content 内に nostr:... 形式の言及を含むイベントを受け取ったクライアントは、処理で必要なコンテキストの補強(context augmentation)を行うことができる(例えば、プロフィールへのリンクや言及されたイベントの内容のプレビュー)。そのような言及をリンクとして表示する場合、内部リンクやNIP-21形式のリンク、参照を扱えるWebクライアントへの直接リンクとなるだろう。

@ を入力したときに検索・自動補完機能を行うクライアントで、ボブがテキスト投稿を書いていると想定する。
ボブが こんにちは @mat と入力すると、クライアントは写真と名前を表示すると共にmattn氏のプロフィールを自動補完するかどうかを尋ねることができる。
ボブがEnterキーを押すと、 こんにちは @mattn と投稿内容が表示される。 @mattn はメンションであることを示すためにハイライトされる。
内部的には こんにちは nostr:nprofile... のようなテキストになる(代わりに nostr:npub... URLであるかもしれない)
ボブがこのイベントを投稿してキャロルがそれを読むとき、クライアントは最初は .content をそのまま表示しても良いが、その後で content を解析し、 nostr: URLがある場合はデコードして公開鍵(リレーヒントも含むかもしれない)を抽出し、そして完全なURLを名前 @mattn に置換し、そのプロフィールの内部ページビューへのリンクに置換する。

上記の例は非常に具体的だが、クライアントが同様に実装しなければならないというわけではない。自動補完に全く対応せず、代わりにユーザにNIP-19コードを本文にペーストしてもらい、投稿の前に nostr: を先頭に追加するクライアントもあるだろう。
イベントの参照に対する処理も同様である。ユーザが note1 nevent1 コードをペーストすると、クライアントが nostr:note1 nostr:nevent1 に変換する。参照を含む投稿を表示するときは、クライアントはイベントをプレビューボックス等に表示しても良い。あるいは何もしなくても良い。
他の表示処理を使うこともできる。例えば、 kind:1 テキスト投稿だけを取り扱うように設計されているクライアントが例えば kind:30023 nostr:naddr1 URL参照を .content 内に見つけた時には、例えばそのようなイベントを取り扱うことのできるハードコードされたWebアプリへのリンクに変換することができる。
クライアントはユーザに言及したイベントやプロフィールについて、タグを含めるかどうかを選択させるかもしれない。もし誰かが mattn を本人に通知することなく言及し、しかし、投稿内にプロフィールへの補強可能・クリック可能な良いリンクを含めたい場合、ユーザはクライアントにその言及について ["p", ...] タグを含めないことを指示できる。
同様に投稿を参照したいが、その投稿に対するリプライと一緒に表示してほしくない場合、 .content 内の nostr:nevent1 URLに対応する ["e", ...] タグを含めないことを選ぶことができる。クライアントは、このような高度な機能にユーザに公開するか、常に一定の処理を行うようにするかを選んでもよい。

nostr-toolsにパーサーが追加された