mirror of
https://github.com/nostr-protocol/nips.git
synced 2025-09-27 03:56:39 +02:00
NIP-54: Fix heading levels (#2021)
This commit is contained in:
26
54.md
26
54.md
@@ -10,7 +10,7 @@ This NIP defines `kind:30818` (an _addressable event_) for descriptions (or ency
|
||||
|
||||
Articles are identified by lowercase, normalized ascii `d` tags.
|
||||
|
||||
### Articles
|
||||
## Articles
|
||||
```json
|
||||
{
|
||||
"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.
|
||||
}
|
||||
```
|
||||
|
||||
### `d` tag normalization rules
|
||||
## `d` tag normalization rules
|
||||
|
||||
- Any non-letter character MUST be converted to a `-`.
|
||||
- All letters MUST be converted to lowercase.
|
||||
|
||||
### Content
|
||||
## Content
|
||||
|
||||
The `content` should be Asciidoc with two extra functionalities: **wikilinks** and **nostr:...** links.
|
||||
|
||||
@@ -39,26 +39,25 @@ Wikilinks can take these two forms:
|
||||
|
||||
`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.
|
||||
|
||||
### Optional extra tags
|
||||
## Optional extra tags
|
||||
|
||||
- `title`: for when the display title should be different from the `d` tag.
|
||||
- `summary`: for display in lists.
|
||||
- `a` and `e`: for referencing the original event a wiki article was forked from.
|
||||
|
||||
### Merge Requests
|
||||
## Merge Requests
|
||||
|
||||
Event `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.
|
||||
|
||||
[INSERT EVENT EXAMPLE]
|
||||
|
||||
### Redirects
|
||||
## Redirects
|
||||
|
||||
Event `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)).
|
||||
|
||||
[INSERT EVENT EXAMPLE]
|
||||
|
||||
How to decide what article to display
|
||||
-------------------------------------
|
||||
## How to decide what article to display
|
||||
|
||||
As 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:
|
||||
|
||||
@@ -78,26 +77,23 @@ As there could be many articles for each given name, some kind of prioritization
|
||||
|
||||
[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.
|
||||
|
||||
Forks
|
||||
---------
|
||||
## Forks
|
||||
Wiki-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.
|
||||
|
||||
Deference
|
||||
---------
|
||||
## Deference
|
||||
Wiki-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.
|
||||
|
||||
This is a stronger signal of trust than a `+` reaction.
|
||||
|
||||
This 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.
|
||||
|
||||
Why Asciidoc?
|
||||
-------------
|
||||
## Why Asciidoc?
|
||||
|
||||
Wikitext is [garbage](nostr:nevent1qqsqt0gcggry60n72uglhuhypdlmr2dm6swjj69jex5v530gcpazlzsprpmhxue69uhhyetvv9ujumn0wdmksetjv5hxxmmdqy28wumn8ghj7un9d3shjtnyv9kh2uewd9hsygpm7rrrljungc6q0tuh5hj7ue863q73qlheu4vywtzwhx42a7j9n5ueneex) and Markdown is not powerful enough (besides being too freeform and unspecified and prone to generate incompatibilities in the future).
|
||||
|
||||
Asciidoc 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).
|
||||
|
||||
# Appendix 1: Merge requests
|
||||
## Appendix 1: Merge requests
|
||||
Users can request other users to get their entries merged into someone else's entry by creating a `kind:818` event.
|
||||
|
||||
```json
|
||||
|
Reference in New Issue
Block a user