draft
optional
このNIPではkind:30023
(アドレス指定可能 (addressable) なイベント) で長文投稿、一般的に「記事」や「ブログ投稿」と呼ばれるものを定義する。kind:30024
はkind:30023
と同じ構造を持ち、下書きを保存するために用いられる。
kind:1
を主に取り扱うソーシャルクライアント (マイクロブログ系クライアント) に、このNIPの実装は強制されない。
長文投稿の.content
は、Markdown構文の文字列テキストでなければならない。異なるクライアントやデバイス間の互換性と可読性を最大化するために、長文投稿を作成する各クライアントは以下の制約に従う必要がある。
-
80カラム境界で改行するといった様な、段落の強制改行をしてはならない (MUST NOT) 。
-
MarkdownへのHTMLの追加をサポートしてはならない (MUST NOT)。
最終更新日については.created_at
フィールドを使用し、タグ/ハッシュタグ、(つまり、その記事が関連するトピック) についてはt
タグを含めることが望ましい。
その他メタデータフィールドは、必要に応じてイベントにタグを追加できる。ここでは有用と思われる4つのタグを標準化する(厳密に任意)。
"title"
, 記事のタイトル"image"
, トップ画像のURL"summary"
, 記事の要約"published_at"
, 初版公開時刻の(文字列化された)UNIX秒タイムスタンプ
長文投稿は編集する可能性を意図しているため、記事の識別子を持つd
タグを含める必要がある。各クライアントは、d
タグを実装したイベントのみをリレーに発行し、読み取るように注意すべきだ。また同じ記事の古い版を非表示にすることにも注意すべきだ。
NIP-19で定義されたnaddr
コード (a
タグを含む) を使って記事をリンクできる。
他の投稿・記事・プロフィールへの参照はNIP-27に沿って行わなければならない。つまり、NIP-21で定義されたnostr:…
リンクを使用し、また任意でそのリンクに対応したタグを追加する (下記イベント例を参照) 。
{
"kind": 30023,
"created_at": 1675642635,
"content": "Lorem [ipsum][nostr:nevent1qqst8cujky046negxgwwm5ynqwn53t8aqjr6afd8g59nfqwxpdhylpcpzamhxue69uhhyetvv9ujuetcv9khqmr99e3k7mg8arnc9] dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n\nRead more at nostr:naddr1qqzkjurnw4ksz9thwden5te0wfjkccte9ehx7um5wghx7un8qgs2d90kkcq3nk2jry62dyf50k0h36rhpdtd594my40w9pkal876jxgrqsqqqa28pccpzu.",
"tags": [
["d", "lorem-ipsum"],
["title", "Lorem Ipsum"],
["published_at", "1296962229"],
["t", "placeholder"],
["e", "b3e392b11f5d4f28321cedd09303a748acfd0487aea5a7450b3481c60b6e4f87", "wss://relay.example.com"],
["a", "30023:a695f6b60119d9521934a691347d9f78e8770b56da16bb255ee286ddf9fda919:ipsum", "wss://relay.nostr.org"]
],
"pubkey": "...",
"id": "..."
}