From e91ce3409e1ce8267fc07a21784d2538621267c3 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sat, 29 Apr 2023 13:16:58 -0500 Subject: NIP-30: Custom Emoji --- 30.md | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 30.md (limited to '30.md') diff --git a/30.md b/30.md new file mode 100644 index 0000000..04689d0 --- /dev/null +++ b/30.md @@ -0,0 +1,56 @@ +NIP-30 +====== + +Custom Emoji +------------ + +`draft` `optional` `author:alexgleason` + +Custom emoji may be added to **kind 0** and **kind 1** events by including one or more `"emoji"` tags, in the form: + +``` +["emoji", , ] +``` + +Where: + +- `` is a name given for the emoji, which MUST be comprised of only alphanumeric characters. +- `` is a URL to the corresponding image file of the emoji. + +For each emoji tag, clients should parse emoji shortcodes (aka "emojify") like `:shortcode:` in the event to display custom emoji. + +Clients may allow users to add custom emoji to an event by including `:shortcode:` identifier in the event, and adding the relevant `"emoji"` tags. + +### Kind 0 events + +In kind 0 events, the `name` and `about` fields should be emojified. + +```json +{ + "kind": 0, + "content": "{\"name\":\"Alex Gleason :soapbox:\"}", + "tags": [ + ["emoji", "soapbox", "https://gleasonator.com/emoji/Gleasonator/soapbox.png"] + ], + "pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6", + "created_at": 1682790000 +} +``` + +### Kind 1 events + +In kind 1 events, the `content` should be emojified. + +```json +{ + "kind": 1, + "content": "Hello :gleasonator: 😂 :ablobcatrainbow: :disputed: yolo", + "tags": [ + ["emoji", "ablobcatrainbow", "https://gleasonator.com/emoji/blobcat/ablobcatrainbow.png"], + ["emoji", "disputed", "https://gleasonator.com/emoji/Fun/disputed.png"], + ["emoji", "gleasonator", "https://gleasonator.com/emoji/Gleasonator/gleasonator.png"] + ], + "pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6", + "created_at": 1682630000 +} +``` \ No newline at end of file -- cgit v1.2.3 From ccbdfb95c198c385595c18edac09d9c830fd9406 Mon Sep 17 00:00:00 2001 From: jiftechnify Date: Tue, 16 May 2023 21:50:04 +0900 Subject: allow underscores in an emoji shortcode --- 30.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to '30.md') diff --git a/30.md b/30.md index 04689d0..ffc5aeb 100644 --- a/30.md +++ b/30.md @@ -14,7 +14,7 @@ Custom emoji may be added to **kind 0** and **kind 1** events by including one o Where: -- `` is a name given for the emoji, which MUST be comprised of only alphanumeric characters. +- `` is a name given for the emoji, which MUST be comprised of only alphanumeric characters and underscores. - `` is a URL to the corresponding image file of the emoji. For each emoji tag, clients should parse emoji shortcodes (aka "emojify") like `:shortcode:` in the event to display custom emoji. @@ -53,4 +53,4 @@ In kind 1 events, the `content` should be emojified. "pubkey": "79c2cae114ea28a981e7559b4fe7854a473521a8d22a66bbab9fa248eb820ff6", "created_at": 1682630000 } -``` \ No newline at end of file +``` -- cgit v1.2.3