Set `idprefix` and `idseparator` so Asciidoctor emits IDs like
`#repository-identity` instead of `#_repository_identity`.
This applies to every RIP that includes `_metadata.adoc`,
so the convention only needs to be configured in this file.
A natural cross-reference matches a section title exactly, including its
case, and Asciidoctor emits the target text as a literal anchor when it
cannot match. Four references therefore pointed at anchors that do not
exist, which is silent in the source and only shows up once the document
is rendered and its links are checked.
Correct the case of "The repository", "The authority" and
"Future work" to match the sections they refer to.
Join the reference `<<The Query,query>>` that was split across a line
break, which made it resolve to "TheQuery".
Convert the existing RIPs from markdown to AsciiDoc.
Post conversion steps taken were:
- Re-order headers, reducing each level by 1
- Remove the hand crafted Table of Contents in favour of `:toc:`
- Change each from `Draft` to `Final`
- Add the type `Standard` to each
Introduce [lychee] link checking in the flake.nix checks.
Since `nix flake check` is limited by sandboxing, it only checks for
internal links.
Running `lychee` from the directory will check external links.
In the future, this can be done via git hooks.
[lychee]: https://github.com/lycheeverse/lychee
Building on the work that Lorenz Leutgeb did in patch
rad:z3trNYnLWS11cJWC6BbxDs5niGo82/patch/19ba16634fbde97156255ed97069d0aa3ab2bf12,
the URI scheme is brought to a final RIP document, with full ABNF and Nearley
grammars as well as examples, and a couple of scripts to extract and test those
grammars against those examples.
Compared to the URL scheme in RIP 3, this RIP brings a subtly different URL form,
while also supporting the RIP 3 scheme (now considered legacy). In short, these
two forms are supported by this RIP:
- rad://{rid}/{nid} (considered legacy)
- rad://{rad-auth}/{rid}[/{namespace}][/{resource-type-and-identifier}]
(rad-auth is the authority part, which can take the form of {nid}@{host-and-port}
or parts thereof)
This works, because the {rid} and the {nid} are distinguishable, as a {nid} always
starts with z6Mk, while a {rid} does start with a z, but never with z6Mk, and they
have different lengths (a {rid} is always 28 or 29 characters long, which a {nid}
is always 48 characters long).
Co-authored-by: Fintan Halpenny <fintan.halpenn@gmail.com>
Co-authored-by: Lorenz Leutgeb <lorenz.leutgeb@radicle.dev>