upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Casarin <jb55@jb55.com>2022-05-26 09:34:42 -0700
committerGitHub <noreply@github.com>2022-05-26 09:34:42 -0700
commitf168799dea965c31011a5568ba42aca2637afd88 (patch)
tree418a108ccdadd8a33c9f4eae0f26c48aa9ba6ee7
parenta4aea5337fe6b93e55f9dae1974ead962c1997e8 (diff)
parent387ce5dbd59047463788b2f101aa3130bf68abce (diff)
Merge pull request #9 from unclebob/nip10
Nip10
-rw-r--r--10.md61
-rw-r--r--14.md19
2 files changed, 58 insertions, 22 deletions
diff --git a/10.md b/10.md
index 1802044..dc32410 100644
--- a/10.md
+++ b/10.md
@@ -2,42 +2,59 @@ NIP-10
2====== 2======
3 3
4 4
5On `e` and `p` tags in Text Events (kind 1). 5On "e" and "p" tags in Text Events (kind 1).
6-------------------------------------------- 6--------------------------------------------
7 7
8`draft` `optional` `author:unclebobmartin` 8`draft` `optional` `author:unclebobmartin`
9 9
10### A Conventional use of `e` and `p` tags within clients. 10## Abstract
11This NIP describes how to use "e" and "p" tags in text events, especially those that are replies to other text events. It helps clients thread the replies into a tree rooted at the original event.
11 12
12The following seems to be the conventions that are used by `Branle`, `Damus`, and `more-speech` for referencing 13##Positional "e" tags (DEPRECATED)
13events and authors when building a reply. These conventions help clients build event threads, and alert authors of 14>This scheme is in common use; but should be considered deprecated.
14replies.
15 15
16### Definitions: 16`["e", <event-id> <relay-url>]` as per NIP-01.
17 * A reply chain is the list of events from the root event to a specific reply.
18 * A reply thread is the tree of events consisting of all replies beginning at the root.
19 * An event id is a 32 byte number in lower-case hexidecimal.
20 17
21### The `e` tag 18Where:
22Used in a text event contains a single event id. ["e", "`hex-number`"]
23 19
24 * No `e` tag: 20 * `<event-id>` is the id of the event being referenced.
25This event is not a reply to, nor does it refer to, any other event. 21 * `<relay-url>` is the URL of a recommended relay associated with the reference. Many clients treat this field as optional.
22
23**The positions of the "e" tags within the event denote specific meanings as follows**:
26 24
27 * One `e` tag: ["e",`id`]: 25 * No "e" tag: <br>
28The id of the event to which this event is a reply. 26 This event is not a reply to, nor does it refer to, any other event.
29 27
30 * Two `e` tags: ["e",`root-id`], ["e",`reply-id`] 28 * One "e" tag: <br>
31'root-id' is the `id` of the event at the root of the reply chain. `reply-id` is the id of the article to which this event is a reply. 29 `["e",<id>]`: The id of the event to which this event is a reply.
32 30
33 * Many `e` tags: ["e",`root-id`] ["e",`mention-id`], ..., ["e",`reply-id`] 31 * Two "e" tags: `["e",<root-id>]`, `["e",<reply-id>]` <br>
34There may be any number of `mention-ids`. These are the ids of events which may, or may not be in the reply chain. 32 `<root-id>` is the id of the event at the root of the reply chain. `<reply-id>` is the id of the article to which this event is a reply.
33
34 * Many "e" tags: `["e",<root-id>]` `["e",<mention-id>]`, ..., `["e",<reply-id>]`<br>
35There may be any number of `<mention-ids>`. These are the ids of events which may, or may not be in the reply chain.
35They are citings from this event. `root-id` and `reply-id` are as above. 36They are citings from this event. `root-id` and `reply-id` are as above.
36 37
37### The `p` tag 38>This scheme is deprecated because it creates ambiguities that are difficult, or impossible to resolve when an event references another but is not a reply.
39
40## Marked "e" tags (PREFERRED)
41`["e", <event-id> <relay-url> <marker>]`
42
43Where:
44
45 * `<event-id>` is the id of the event being referenced.
46 * `<relay-url>` is the URL of a recommended relay associated with the reference. It is NOT optional.
47 * `<marker>` is optional and if present is one of `"reply"` or `"root"`
48
49**The order of marked "e" tags is not relevant.** Those marked with `"reply"` denote the `<reply-id>`. Those marked with `"root"` denote the root id of the reply thread.
50
51>This scheme is preferred because it allows events to mention others without confusing them with `<relay-id>` or `<root-id>`.
52
53
54## The "p" tag
38Used in a text event contains a list of pubkeys used to record who is involved in a reply thread. 55Used in a text event contains a list of pubkeys used to record who is involved in a reply thread.
39 56
40When replying to a text event E with `p` tags P, the replying event's `p` tags should contain P as well as the pubkey of the of the event being replied to. 57When replying to a text event E the reply event's "p" tags should contain all of E's "p" tags as well as the `"pubkey"` of the of the event being replied to.
41 58
42Example: Given a text event authored by a1 with `p` tags [`p1`, `p2`, `p3`] then the `p` tags of the reply should be [`a1`, `p1`, `p2`, `p3`] 59Example: Given a text event authored by `a1` with "p" tags [`p1`, `p2`, `p3`] then the "p" tags of the reply should be [`a1`, `p1`, `p2`, `p3`]
43in no particular order. 60in no particular order.
diff --git a/14.md b/14.md
new file mode 100644
index 0000000..0b37e8a
--- /dev/null
+++ b/14.md
@@ -0,0 +1,19 @@
1NIP-14
2======
3
4Subject tag in Text events.
5---------------------------
6
7`draft` `optional` `author:unclebobmartin`
8
9This NIP defines the use of the "subject" tag in text (kind: 1) events.
10(implemented in more-speech)
11
12`["subject": <string>]`
13
14Browsers often display threaded lists of messages. The contents of the subject tag can be used in such lists, instead of the more ad hoc approach of using the first few words of the message. This is very similar to the way email browsers display lists of incoming emails by subject rather than by contents.
15
16When replying to a message with a subject, clients SHOULD replicate the subject tag. Clients MAY adorn the subject to denote
17that it is a reply. e.g. by prepending "Re:".
18
19Subjects should generally be shorter than 80 chars. Long subjects will likely be trimmed by clients.