upleb.uk

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

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoji Shidara <dara@shidara.net>2025-08-19 02:18:08 +0900
committerGitHub <noreply@github.com>2025-08-18 10:18:08 -0700
commitb3334342233f216cfb2ea1396803388daeb8f258 (patch)
tree6949eb46365619d444e05411b355d49be0eddfc7
parentb1720f4fdc2680db845fae1870981fc29b2a99b4 (diff)
NIP-54: Fix heading levels (#2021)
-rw-r--r--54.md26
1 files changed, 11 insertions, 15 deletions
diff --git a/54.md b/54.md
index 3a02150..b23e8bd 100644
--- a/54.md
+++ b/54.md
@@ -10,7 +10,7 @@ This NIP defines `kind:30818` (an _addressable event_) for descriptions (or ency
10 10
11Articles are identified by lowercase, normalized ascii `d` tags. 11Articles are identified by lowercase, normalized ascii `d` tags.
12 12
13### Articles 13## Articles
14```json 14```json
15{ 15{
16 "content": "A wiki is a hypertext publication collaboratively edited and managed by its own audience.", 16 "content": "A wiki is a hypertext publication collaboratively edited and managed by its own audience.",
@@ -21,12 +21,12 @@ Articles are identified by lowercase, normalized ascii `d` tags.
21} 21}
22``` 22```
23 23
24### `d` tag normalization rules 24## `d` tag normalization rules
25 25
26- Any non-letter character MUST be converted to a `-`. 26- Any non-letter character MUST be converted to a `-`.
27- All letters MUST be converted to lowercase. 27- All letters MUST be converted to lowercase.
28 28
29### Content 29## Content
30 30
31The `content` should be Asciidoc with two extra functionalities: **wikilinks** and **nostr:...** links. 31The `content` should be Asciidoc with two extra functionalities: **wikilinks** and **nostr:...** links.
32 32
@@ -39,26 +39,25 @@ Wikilinks can take these two forms:
39 39
40`nostr:...` links, as per [NIP-21](21.md), should link to profiles or arbitrary Nostr events. Although it is not recommended to link to specific versions of articles -- instead the _wikilink_ syntax should be preferred, since it should be left to the reader and their client to decide what version of any given article they want to read. 40`nostr:...` links, as per [NIP-21](21.md), should link to profiles or arbitrary Nostr events. Although it is not recommended to link to specific versions of articles -- instead the _wikilink_ syntax should be preferred, since it should be left to the reader and their client to decide what version of any given article they want to read.
41 41
42### Optional extra tags 42## Optional extra tags
43 43
44 - `title`: for when the display title should be different from the `d` tag. 44 - `title`: for when the display title should be different from the `d` tag.
45 - `summary`: for display in lists. 45 - `summary`: for display in lists.
46 - `a` and `e`: for referencing the original event a wiki article was forked from. 46 - `a` and `e`: for referencing the original event a wiki article was forked from.
47 47
48### Merge Requests 48## Merge Requests
49 49
50Event `kind:818` represents a request to merge from a forked article into the source. It is directed to a pubkey and references the original article and the modified event. 50Event `kind:818` represents a request to merge from a forked article into the source. It is directed to a pubkey and references the original article and the modified event.
51 51
52[INSERT EVENT EXAMPLE] 52[INSERT EVENT EXAMPLE]
53 53
54### Redirects 54## Redirects
55 55
56Event `kind:30819` is also defined to stand for "wiki redirects", i.e. if one thinks `Shell structure` should redirect to `Thin-shell structure` they can issue one of these events instead of replicating the content. These events can be used for automatically redirecting between articles on a client, but also for generating crowdsourced "disambiguation" pages ([common in Wikipedia](https://en.wikipedia.org/wiki/Help:Disambiguation)). 56Event `kind:30819` is also defined to stand for "wiki redirects", i.e. if one thinks `Shell structure` should redirect to `Thin-shell structure` they can issue one of these events instead of replicating the content. These events can be used for automatically redirecting between articles on a client, but also for generating crowdsourced "disambiguation" pages ([common in Wikipedia](https://en.wikipedia.org/wiki/Help:Disambiguation)).
57 57
58[INSERT EVENT EXAMPLE] 58[INSERT EVENT EXAMPLE]
59 59
60How to decide what article to display 60## How to decide what article to display
61-------------------------------------
62 61
63As there could be many articles for each given name, some kind of prioritization must be done by clients. Criteria for this should vary between users and clients, but some means that can be used are described below: 62As there could be many articles for each given name, some kind of prioritization must be done by clients. Criteria for this should vary between users and clients, but some means that can be used are described below:
64 63
@@ -78,26 +77,23 @@ As there could be many articles for each given name, some kind of prioritization
78 77
79[NIP-51](51.md) lists can also be used to create a list of users that are trusted only in the context of wiki authorship or wiki curationship. 78[NIP-51](51.md) lists can also be used to create a list of users that are trusted only in the context of wiki authorship or wiki curationship.
80 79
81Forks 80## Forks
82---------
83Wiki-events can tag other wiki-events with a `fork` marker to specify that this event came from a different version. Both `a` and `e` tags SHOULD be used and have the `fork` marker applied, to identify the exact version it was forked from. 81Wiki-events can tag other wiki-events with a `fork` marker to specify that this event came from a different version. Both `a` and `e` tags SHOULD be used and have the `fork` marker applied, to identify the exact version it was forked from.
84 82
85Deference 83## Deference
86---------
87Wiki-events can tag other wiki-events with a `defer` marker to indicate that it considers someone else's entry as a "better" version of itself. If using a `defer` marker both `a` and `e` tags SHOULD be used. 84Wiki-events can tag other wiki-events with a `defer` marker to indicate that it considers someone else's entry as a "better" version of itself. If using a `defer` marker both `a` and `e` tags SHOULD be used.
88 85
89This is a stronger signal of trust than a `+` reaction. 86This is a stronger signal of trust than a `+` reaction.
90 87
91This marker is useful when a user edits someone else's entry; if the original author includes the editor's changes and the editor doesn't want to keep/maintain an independent version, the `link` tag could effectively be a considered a "deletion" of the editor's version and putting that pubkey's WoT weight behind the original author's version. 88This marker is useful when a user edits someone else's entry; if the original author includes the editor's changes and the editor doesn't want to keep/maintain an independent version, the `link` tag could effectively be a considered a "deletion" of the editor's version and putting that pubkey's WoT weight behind the original author's version.
92 89
93Why Asciidoc? 90## Why Asciidoc?
94-------------
95 91
96Wikitext is [garbage](nostr:nevent1qqsqt0gcggry60n72uglhuhypdlmr2dm6swjj69jex5v530gcpazlzsprpmhxue69uhhyetvv9ujumn0wdmksetjv5hxxmmdqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hsygpm7rrrljungc6q0tuh5hj7ue863q73qlheu4vywtzwhx42a7j9n5ueneex) and Markdown is not powerful enough (besides being too freeform and unspecified and prone to generate incompatibilities in the future). 92Wikitext is [garbage](nostr:nevent1qqsqt0gcggry60n72uglhuhypdlmr2dm6swjj69jex5v530gcpazlzsprpmhxue69uhhyetvv9ujumn0wdmksetjv5hxxmmdqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hsygpm7rrrljungc6q0tuh5hj7ue863q73qlheu4vywtzwhx42a7j9n5ueneex) and Markdown is not powerful enough (besides being too freeform and unspecified and prone to generate incompatibilities in the future).
97 93
98Asciidoc has a strict spec, multiple implementations in many languages, and support for features that are very much necessary in a wiki article, like _sidebars_, _tables_ (with rich markup inside cells), many levels of _headings_, _footnotes_, _superscript_ and _subscript_ markup and _description lists_. It is also arguably easier to read in its plaintext format than Markdown (and certainly much better than Wikitext). 94Asciidoc has a strict spec, multiple implementations in many languages, and support for features that are very much necessary in a wiki article, like _sidebars_, _tables_ (with rich markup inside cells), many levels of _headings_, _footnotes_, _superscript_ and _subscript_ markup and _description lists_. It is also arguably easier to read in its plaintext format than Markdown (and certainly much better than Wikitext).
99 95
100# Appendix 1: Merge requests 96## Appendix 1: Merge requests
101Users can request other users to get their entries merged into someone else's entry by creating a `kind:818` event. 97Users can request other users to get their entries merged into someone else's entry by creating a `kind:818` event.
102 98
103```json 99```json