on master help sign in
docs: remove zola internal link syntax
commitd79a54a63d768e9f44367e96117fcbf1dcd47895 authorMatilde Park <matilde@tlon.io> dateWed 16 Jun 2021, 15:16 (5 years ago) parent19f80ac
148 files changed+721−721
content/docs/_index.md+9−9 content/docs/anchors.py+1−1 content/docs/arvo/_index.md+12−12 content/docs/arvo/ames/ames-api.md+1−1 content/docs/arvo/ames/ames.md+7−7 content/docs/arvo/behn/behn.md+1−1 content/docs/arvo/clay/_index.md+7−7 content/docs/arvo/clay/architecture.md+2−2 content/docs/arvo/clay/clay.md+7−7 content/docs/arvo/clay/data-types.md+4−4 content/docs/arvo/clay/examples.md+33−33 content/docs/arvo/clay/scry.md+5−5 content/docs/arvo/clay/tasks.md+32−32 content/docs/arvo/concepts/_index.md+1−1 content/docs/arvo/dill/dill-api.md+3−3 content/docs/arvo/eyre/_index.md+3−3 content/docs/arvo/eyre/using-eyre.md+2−2 content/docs/arvo/ford/ford.md+2−2 content/docs/arvo/gall/overview.md+1−1 content/docs/arvo/jael/jael-api.md+4−4 content/docs/arvo/overview.md+19−19 content/docs/arvo/tutorials/move-trace.md+5−5 content/docs/azimuth/_index.md+3−3 content/docs/azimuth/azimuth.md+2−2 content/docs/azimuth/life-and-rift.md+3−3 content/docs/development/_index.md+5−5 content/docs/development/develop.md+16−16 content/docs/development/grants.md+4−4 content/docs/glossary/ames.md+4−4 content/docs/glossary/aqua.md+1−1 content/docs/glossary/arm.md+2−2 content/docs/glossary/arvo.md+2−2 content/docs/glossary/atom.md+3−3 content/docs/glossary/azimuth.md+3−3 content/docs/glossary/battery.md+2−2 content/docs/glossary/behn.md+1−1 content/docs/glossary/breach.md+2−2 content/docs/glossary/bridge.md+2−2 content/docs/glossary/chat.md+1−1 content/docs/glossary/clay.md+2−2 content/docs/glossary/comet.md+1−1 content/docs/glossary/core.md+2−2 content/docs/glossary/desk.md+1−1 content/docs/glossary/dill.md+1−1 content/docs/glossary/dojo.md+1−1 content/docs/glossary/door.md+2−2 content/docs/glossary/eyre.md+1−1 content/docs/glossary/ford.md+1−1 content/docs/glossary/gall.md+3−3 content/docs/glossary/gate.md+2−2 content/docs/glossary/hdwallet.md+1−1 content/docs/glossary/hoon.md+3−3 content/docs/glossary/jaque.md+1−1 content/docs/glossary/keyfile.md+1−1 content/docs/glossary/mark.md+2−2 content/docs/glossary/moon.md+2−2 content/docs/glossary/nock.md+1−1 content/docs/glossary/noun.md+3−3 content/docs/glossary/payload.md+2−2 content/docs/glossary/pier.md+2−2 content/docs/glossary/proxies.md+1−1 content/docs/glossary/replay.md+1−1 content/docs/glossary/ship.md+3−3 content/docs/glossary/sync.md+1−1 content/docs/glossary/trap.md+2−2 content/docs/glossary/vane.md+1−1 content/docs/glossary/vere.md+2−2 content/docs/hoon/_index.md+5−5 content/docs/hoon/guides/_index.md+3−3 content/docs/hoon/guides/cli-tutorial.md+5−5 content/docs/hoon/guides/parsing.md+13−13 content/docs/hoon/hoon-school/_index.md+2−2 content/docs/hoon/hoon-school/arms-and-cores.md+3−3 content/docs/hoon/hoon-school/atoms-auras-and-simple-cell-types.md+2−2 content/docs/hoon/hoon-school/bank-account.md+1−1 content/docs/hoon/hoon-school/behn.md+4−4 content/docs/hoon/hoon-school/caesar.md+9−9 content/docs/hoon/hoon-school/conditionals.md+2−2 content/docs/hoon/hoon-school/doors.md+1−1 content/docs/hoon/hoon-school/gall.md+1−1 content/docs/hoon/hoon-school/hoon-syntax.md+15−15 content/docs/hoon/hoon-school/libraries.md+2−2 content/docs/hoon/hoon-school/list-of-numbers.md+1−1 content/docs/hoon/hoon-school/lists.md+2−2 content/docs/hoon/hoon-school/molds.md+2−2 content/docs/hoon/hoon-school/nouns.md+2−2 content/docs/hoon/hoon-school/recursion.md+1−1 content/docs/hoon/hoon-school/setup.md+5−5 content/docs/hoon/hoon-school/structures-and-complex-types.md+1−1 content/docs/hoon/hoon-school/the-subject-and-its-legs.md+1−1 content/docs/hoon/hoon-school/trees-sets-and-maps.md+2−2 content/docs/hoon/hoon-school/type-polymorphism.md+1−1 content/docs/hoon/overview.md+1−1 content/docs/hoon/reference/_index.md+10−10 content/docs/hoon/reference/advanced.md+1−1 content/docs/hoon/reference/auras.md+7−7 content/docs/hoon/reference/basic.md+1−1 content/docs/hoon/reference/cheat-sheet.md+1−1 content/docs/hoon/reference/hoon-errors.md+6−6 content/docs/hoon/reference/irregular.md+18−18 content/docs/hoon/reference/limbs/_index.md+2−2 content/docs/hoon/reference/rune/_index.md+15−15 content/docs/hoon/reference/rune/bar.md+8−8 content/docs/hoon/reference/rune/buc.md+7−7 content/docs/hoon/reference/rune/cen.md+4−4 content/docs/hoon/reference/rune/ket.md+1−1 content/docs/hoon/reference/rune/tis.md+1−1 content/docs/hoon/reference/rune/wut.md+1−1 content/docs/hoon/reference/stdlib/1a.md+34−34 content/docs/hoon/reference/stdlib/1b.md+15−15 content/docs/hoon/reference/stdlib/1c.md+12−12 content/docs/hoon/reference/stdlib/2a.md+49−49 content/docs/hoon/reference/stdlib/2c.md+24−24 content/docs/hoon/reference/stdlib/2d.md+2−2 content/docs/hoon/reference/stdlib/2e.md+2−2 content/docs/hoon/reference/stdlib/2f.md+4−4 content/docs/hoon/reference/stdlib/2h.md+2−2 content/docs/hoon/reference/stdlib/2i.md+1−1 content/docs/hoon/reference/stdlib/2o.md+5−5 content/docs/hoon/reference/stdlib/2q.md+2−2 content/docs/hoon/reference/stdlib/3d.md+2−2 content/docs/hoon/reference/stdlib/3f.md+3−3 content/docs/hoon/reference/stdlib/3g.md+4−4 content/docs/hoon/reference/stdlib/4h.md+1−1 content/docs/hoon/reference/style.md+1−1 content/docs/nock/_index.md+4−4 content/docs/nock/implementations.md+1−1 content/docs/system-overview/_index.md+7−7 content/docs/system-overview/arvo.md+9−9 content/docs/system-overview/azimuth.md+2−2 content/docs/system-overview/cryptography.md+19−19 content/docs/system-overview/hoon.md+4−4 content/docs/system-overview/nock.md+5−5 content/docs/system-overview/vere.md+5−5 content/docs/userspace/_index.md+5−5 content/docs/userspace/gall/_index.md+3−3 content/docs/userspace/graph-store/_index.md+4−4 content/docs/userspace/landscape/_index.md+2−2 content/docs/userspace/landscape/overview.md+5−5 content/docs/userspace/landscape/reference/_index.md+1−1 content/docs/userspace/overview.md+3−3 content/docs/userspace/threads/_index.md+5−5 content/docs/userspace/threads/basics/_index.md+5−5 content/docs/userspace/threads/examples/_index.md+6−6 content/docs/userspace/threads/gall/_index.md+5−5 content/docs/userspace/threads/overview.md+18−18 content/docs/vere/_index.md+5−5 content/docs/vere/jetting.md+2−2
content/docs/_index.md+9−9
@@ -12,9 +12,9 @@ welcome.
1212This documentation provides a series of explainers, guides, tutorials and
1313reference material for assisting you in developing on the Urbit platform, or
1414contributing to the Urbit project. If you're looking for documentation on how to
15−*use* your Urbit ship, see our [usage docs](@/using/_index.md).
15+*use* your Urbit ship, see our [usage docs](/using/).
1616
17−### [Development](@/docs/development/_index.md)
17+### [Development](/docs/development/)
1818
1919The Development section is recommended reading for developers interested in
2020contributing to Urbit itself, or building apps on top of Urbit. It serves as a
@@ -22,35 +22,35 @@ high-level orientation to how to set up a development environment, the various
2222codebases that comprise the project, our grants program, and the precepts that
2323drive the development of Urbit.
2424
25−### [System Overview](@/docs/system-overview/_index.md)
25+### [System Overview](/docs/system-overview/)
2626
2727This section gives a high-level overview to all the major components of the
2828Urbit tech stack - namely, the operating system Arvo, the programming languages
2929Nock and Hoon, the runtime Vere, and the decentralized ID system Azimuth.
3030
31−### [Arvo (Urbit OS)](@/docs/arvo/_index.md)
31+### [Arvo (Urbit OS)](/docs/arvo/)
3232
3333This section covers the kernel of Urbit OS, called Arvo, as well as its kernel modules.
3434
35−### [Hoon (High-level Language)](@/docs/hoon/_index.md)
35+### [Hoon (High-level Language)](/docs/hoon/)
3636
3737Here is contained all official documentation on Hoon, the high-level purely
3838functional programming language in which Arvo and much of userspace is written.
3939
40−### [Nock (Low-level Language)](@/docs/nock/_index.md)
40+### [Nock (Low-level Language)](/docs/nock/)
4141
4242Official guidance on Nock, the functional assembly-level language which serves
4343as the basis for Hoon.
4444
45−### [Vere (Interpreter)](@/docs/vere/_index.md)
45+### [Vere (Interpreter)](/docs/vere/)
4646
4747Documentation on Vere, the Nock virtual machine which serves as the interface
4848between Urbit and Unix.
4949
50−### [Azimuth (Urbit ID)](@/docs/azimuth/_index.md)
50+### [Azimuth (Urbit ID)](/docs/azimuth/)
5151
5252The workings of Azimuth, the decentralized ID system utilized by Urbit.
5353
54−### [Userspace](@/docs/userspace/_index.md)
54+### [Userspace](/docs/userspace/)
5555
5656Developer guides for Gall (the vane for controlling userspace apps), Landscape (the web client by which most users interact with their ship), and Threads (transient apps for IO).
content/docs/anchors.py+1−1
@@ -35,7 +35,7 @@ def validate_entry(setting: str, file: str):
3535
3636def find_all_mds() -> List[str]:
3737 # the `insert_anchor_links` is only applicable on `_index.md` files (i.e. sections)
38− return [str(p) for p in Path('./').rglob('**/_index.md')]
38+ return [str(p) for p in Path('./').rglob('**/.md')]
3939
4040def setting_from_frontmatter(lines: List[str]) -> str:
4141 # 'insert_anchor_links = "none"' -> 'none'
content/docs/arvo/_index.md+12−12
@@ -8,47 +8,47 @@ aliases = ["/docs/learn/arvo/"]
88
99Resources about the Urbit OS.
1010
11−## [Overview](@/docs/arvo/overview.md)
11+## [Overview](/docs/arvo/overview)
1212
13−Arvo is Urbit's functional operating system, written in [Hoon](@/docs/hoon/hoon-school/_index.md). It's composed of modules called _vanes_, each of which has its own folder:
13+Arvo is Urbit's functional operating system, written in [Hoon](/docs/hoon/hoon-school/). It's composed of modules called _vanes_, each of which has its own folder:
1414
15−## [Ames](@/docs/arvo/ames/ames.md)
15+## [Ames](/docs/arvo/ames/ames)
1616
1717Ames is the name of our network and the vane that communicates over it. It's an encrypted P2P network composed of instances of the Arvo operating system.
1818
19−## [Behn](@/docs/arvo/behn/behn.md)
19+## [Behn](/docs/arvo/behn/behn)
2020
2121Behn is our timer. It allows vanes and applications to set and timer events, which are managed in a simple priority queue.
2222
23−## [Clay](@/docs/arvo/clay/clay.md)
23+## [Clay](/docs/arvo/clay/clay)
2424
2525Clay is our filesystem and revision-control system.
2626
27−## [Dill](@/docs/arvo/dill/dill.md)
27+## [Dill](/docs/arvo/dill/dill)
2828
2929Dill is our terminal driver. Unix sends keyboard events to dill from the terminal, and dill produces terminal output.
3030
31−## [Eyre](@/docs/arvo/eyre/eyre.md)
31+## [Eyre](/docs/arvo/eyre/eyre)
3232
3333Eyre is our HTTP server. Unix sends HTTP messages to `%eyre`, and `%eyre` produces HTTP messages in response.
3434
35−## [Ford](@/docs/arvo/ford/ford.md)
35+## [Ford](/docs/arvo/ford/ford)
3636
3737Ford is our build system. It handles resources and publishing.
3838
39−## [Gall](@/docs/arvo/gall/overview.md)
39+## [Gall](/docs/arvo/gall/overview)
4040
4141Gall is the vane for controlling userspace apps.
4242
43−## [Iris](@/docs/arvo/iris/iris-api.md)
43+## [Iris](/docs/arvo/iris/iris-api)
4444
4545Iris is our HTTP client.
4646
47−## [Concepts](@/docs/arvo/concepts/_index.md)
47+## [Concepts](/docs/arvo/concepts/)
4848
4949Explanations of design decisions that are pervasive throughout Arvo.
5050
51−## [Tutorials](@/docs/arvo/tutorials/_index.md)
51+## [Tutorials](/docs/arvo/tutorials/)
5252
5353Walkthroughs that teach you more about how Arvo works.
5454
content/docs/arvo/ames/ames-api.md+1−1
@@ -189,7 +189,7 @@ Ames does not `give` a `gift` in response to a `%crud` `task`, but it does
189189## `%init`
190190
191191`%init` is called a single time during the very first boot process, immediately
192−after the [larval stage](@/docs/arvo/overview.md#larval-stage-core)
192+after the [larval stage](/docs/arvo/overview#larval-stage-core)
193193is completed. This initializes the vane. Jael is initialized first, followed by
194194other vanes such as Ames.
195195
content/docs/arvo/ames/ames.md+7−7
@@ -11,7 +11,7 @@ over it. When Unix receives a packet over the correct UDP port, it pipes
1111it straight into Ames for handling. Also, all packets sent over the
1212Ames network are sent by the Ames vane. Apps and vanes may use
1313Ames to directly send messages to other ships. In general, apps use
14−[Gall](@/docs/userspace/gall/gall.md) and [Clay](@/docs/arvo/clay/clay.md)
14+[Gall](/docs/userspace/gall/gall) and [Clay](/docs/arvo/clay/clay)
1515to communicate with other ships rather than using Ames
1616directly, but this isn't a requirement. Of course, Gall and Clay use
1717Ames behind the scenes to communicate across the network. Jael is the only other
@@ -28,7 +28,7 @@ vane or app, is defined in Ames.
2828This section summarizes the design of Ames. Beyond this section are deeper
2929elaborations on the concepts presented here.
3030
31−Ames extends [Arvo's](@/docs/arvo/overview.md) `%pass`/`%give` `move` semantics across the network.
31+Ames extends [Arvo's](/docs/arvo/overview) `%pass`/`%give` `move` semantics across the network.
3232
3333Ames receives packets as Arvo events and emits packets as Arvo
3434effects. The runtime is responsible for transferring the bytes in
@@ -130,7 +130,7 @@ The 32-bit header is given by the following data, presented in order:
130130
131131 - 3 bits: Ames `protocol-version`,
132132 - 20 bits: a checksum as a truncated insecure hash of the body, done with
133− [`+mug`](@/docs/hoon/reference/stdlib/2e.md#mug),
133+ [`+mug`](/docs/hoon/reference/stdlib/2e#mug),
134134 - 2 bits: the bit width of the sender address encoded as a 2-bit enum,
135135 - 2 bits: the bit width of the receiver address encoded as a 2-bit enum,
136136 - 1 bit: whether the packet is encrypted or not,
@@ -144,7 +144,7 @@ The body is of variable length and consists of three parts in this order:
144144
145145 - The `@p` of the sending ship,
146146 - The `@p` of the receiving ship,
147− - The payload, which is the [`+jam`](@/docs/hoon/reference/stdlib/2p.md#jam) (i.e. serialization) of the noun `[origin content]`.
147+ - The payload, which is the [`+jam`](/docs/hoon/reference/stdlib/2p#jam) (i.e. serialization) of the noun `[origin content]`.
148148
149149 `origin` is the IP and port of the original sender if the packet was proxied
150150 through a relay and null otherwise. `content` is a noun that is either an encrypted ack or an
@@ -241,7 +241,7 @@ This means all re-sends of an ack packet will be bitwise identical to each other
241241Each datum in this noun is an atom with the aura `@ud` or an aura that nests
242242under `@ud`.
243243
244−Here, `our-life` refers to the [`life`](@/docs/glossary/breach.md), or revision
244+Here, `our-life` refers to the [`life`](/docs/glossary/breach), or revision
245245number, of the acking ship's networking keys, and `her-life` is the `life` of
246246the ack-receiving ship's networking keys. `bone` is an opaque number identifying
247247the flow. `message-num` denotes the number of the
@@ -367,7 +367,7 @@ using the Diffie-Hellman symmetric key that was previously computed.
367367
368368`~zod` receives the packet and reads the body. It sees that it is not the
369369intended recipient of the packet, and so gets ready to forward it to
370−`~worwel-sipnum`. First, it [`+cue`s](@/docs/hoon/reference/stdlib/2p.md#cue)
370+`~worwel-sipnum`. First, it [`+cue`s](/docs/hoon/reference/stdlib/2p#cue)
371371(deserializes) the payload and changes the `origin` to the IP and port of
372372`~bacbel-tagfeb`. Then it `+jam`s `[origin content]` to form a new payload, and
373373`+mug`s that payload to get a new checksum. It replaces the old payload and
@@ -386,7 +386,7 @@ until one of them changes their IP address, port, or networking keys.
386386
387387Urbit's functionality is split between the two binaries `urbit-worker` (sometimes
388388called the Serf) and `urbit-king` (sometimes called the King). This division of
389−labor is currently not well-documented outside of the [Vere documents](@/docs/vere/_index.md), but we summarize it here.
389+labor is currently not well-documented outside of the [Vere documents](/docs/vere/), but we summarize it here.
390390
391391In short, the Serf is the Nock runtime and so keeps track of the current state
392392of Arvo as a Nock noun and updates the state by `%poke`ing it with nouns, and
content/docs/arvo/behn/behn.md+1−1
@@ -18,4 +18,4 @@ for keeping track of time-specified file requests. `%ames` should
1818probably use `%behn` to keep track of things like network timeouts and
1919retry timing, but it currently uses its own alarm system.
2020
21−This article is a stub. For more information, see either `behn.hoon` or [Lesson 2.6 - Behn](@/docs/hoon/hoon-school/behn.md) of the Hoon tutorial.
21+This article is a stub. For more information, see either `behn.hoon` or [Lesson 2.6 - Behn](/docs/hoon/hoon-school/behn) of the Hoon tutorial.
content/docs/arvo/clay/_index.md+7−7
@@ -6,31 +6,31 @@ template = "sections/docs/chapters.html"
66insert_anchor_links = "right"
77+++
88
9−[Overview](@/docs/arvo/clay/clay.md)
9+[Overview](/docs/arvo/clay/clay)
1010
1111High-level overview of Clay.
1212
13−[Architecture](@/docs/arvo/clay/architecture.md)
13+[Architecture](/docs/arvo/clay/architecture)
1414
1515A conceptual overview of how Clay was designed.
1616
17−[Using Clay](@/docs/arvo/clay/using.md)
17+[Using Clay](/docs/arvo/clay/using)
1818
1919A quick overview of how the most common tasks involving Clay are performed:
2020reading and subscribing, syncing to Unix, and merging.
2121
22−[Data Types](@/docs/arvo/clay/data-types.md)
22+[Data Types](/docs/arvo/clay/data-types)
2323
2424Explanations of the many data types found throughout Clay.
2525
26−[Scry Reference](@/docs/arvo/clay/scry.md)
26+[Scry Reference](/docs/arvo/clay/scry)
2727
2828Reference for Clay's various scry endpoints.
2929
30−[API Reference](@/docs/arvo/clay/tasks.md)
30+[API Reference](/docs/arvo/clay/tasks)
3131
3232Details of the various `task`s you can use to interact with Clay.
3333
34−[Examples](@/docs/arvo/clay/examples.md)
34+[Examples](/docs/arvo/clay/examples)
3535
3636Example usage of the various Clay `task`s.
content/docs/arvo/clay/architecture.md+2−2
@@ -4,7 +4,7 @@ weight = 2
44template = "doc.html"
55+++
66
7−Clay is the primary filesystem for the [Arvo](@/docs/arvo/overview.md) operating system,
7+Clay is the primary filesystem for the [Arvo](/docs/arvo/overview) operating system,
88which is the [core](/docs/glossary/core/) of an urbit. The architecture of Clay is
99intrinsically connected with Arvo, but for this section we assume no knowledge of
1010either Arvo or Urbit. We will point out only those features of
@@ -54,7 +54,7 @@ definitions, apps, and so forth.
5454Traditionally, an urbit has at least a `%home` `desk` and `%kids` `desk`. The
5555`%home` `desk` has all the system software from the distribution, along with your
5656personal files. The `%home` `desk` is a fork of the `%kids` desk of whichever ship
57−you download [OTAs](@/docs/glossary/ota-updates.md) from - typically your sponsor,
57+you download [OTAs](/docs/glossary/ota-updates) from - typically your sponsor,
5858but theoretically may be any ship. You will also find references to a `%base`
5959`desk` - which is not a real `desk`, rather it just a hash associated to the
6060`desk` from which your `%home` `desk` was forked.
content/docs/arvo/clay/clay.md+7−7
@@ -25,34 +25,34 @@ foreign ships.
2525
2626### User documentation
2727
28−[Filesystem](@/using/os/filesystem.md)
28+[Filesystem](/using/os/filesystem)
2929
3030How to interact with the Clay filesystem via Dojo. This includes basics such as
3131mounting to Unix, changing directory, merging, and listing files.
3232
3333### Developer Documentation
3434
35−[Architecture](@/docs/arvo/clay/architecture.md)
35+[Architecture](/docs/arvo/clay/architecture)
3636
3737A conceptual overview of how Clay was designed.
3838
39−[Using Clay](@/docs/arvo/clay/using.md)
39+[Using Clay](/docs/arvo/clay/using)
4040
4141A quick overview of how the most common tasks involving Clay are performed:
4242reading and subscribing, syncing to Unix, and merging.
4343
44−[Data Types](@/docs/arvo/clay/data-types.md)
44+[Data Types](/docs/arvo/clay/data-types)
4545
4646Explanations of the many data types found throughout Clay.
4747
48−[Scry Reference](@/docs/arvo/clay/scry.md)
48+[Scry Reference](/docs/arvo/clay/scry)
4949
5050Reference for Clay's various scry endpoints.
5151
52−[API Reference](@/docs/arvo/clay/tasks.md)
52+[API Reference](/docs/arvo/clay/tasks)
5353
5454Details of the various `task`s you can use to interact with Clay.
5555
56−[Examples](@/docs/arvo/clay/examples.md)
56+[Examples](/docs/arvo/clay/examples)
5757
5858Example usage of the various Clay `task`s.
content/docs/arvo/clay/data-types.md+4−4
@@ -52,7 +52,7 @@ where all the "real" data we know is stored; the rest is "just
5252bookkeeping".
5353
5454`rom` is the state for all local desks. It consists of a `duct` to
55−[Dill](@/docs/arvo/dill/dill.md) and a collection of `desk`s.
55+[Dill](/docs/arvo/dill/dill) and a collection of `desk`s.
5656
5757`hoy` is the state for all foreign desks.
5858
@@ -80,7 +80,7 @@ to th pier) and `beam` is a domestic Clay directory.
8080
8181This is the representation of the filesystem of a ship on our pier.
8282
83−`hun` is the duct we use to send messages to [Dill](@/docs/arvo/dill/dill.md) to
83+`hun` is the duct we use to send messages to [Dill](/docs/arvo/dill/dill) to
8484display notifications of filesystem changes. Only `%note` `%gift`s should be
8585produced along this `duct`. This is set by the `%init` `move`.
8686
@@ -96,7 +96,7 @@ set of `desk`s on this ship, mapped to their `desk` state.
9696This is the name of a branch of the filesystem. The default `desk`s are `%home`
9797and `%kids`. More may be created by simply referencing them. `desk`s have
9898independent histories and states, and they may be
99−[merged](@/docs/arvo/clay/using.md#merging) into each other.
99+[merged](/docs/arvo/clay/using#merging) into each other.
100100
101101### `$dojo`, domestic desk state
102102
@@ -213,7 +213,7 @@ or a scry.
213213
214214`%p` produces the permissions for a directory, returned as a `[dict:clay dict:clay]`.
215215
216−`%r` requests the file in the same fashion as `%x`, but wraps the result in a `vase`.
216+`%r` requests the file in the same fashion as `%x`, but wraps the result in a `vase`.
217217
218218`%s` has miscellaneous debug endpoints.
219219
content/docs/arvo/clay/examples.md+33−33
@@ -36,7 +36,7 @@ template = "doc.html"
3636
3737# Introduction
3838
39−This document contains a number of examples of interacting with Clay using its various `task`s. Sections correspond to the general details in the [API Reference](@/docs/arvo/clay/tasks.md) document.
39+This document contains a number of examples of interacting with Clay using its various `task`s. Sections correspond to the general details in the [API Reference](/docs/arvo/clay/tasks) document.
4040
4141Most examples will either use `|pass` to just send a `task` or the following thread to send a `task` and take the resulting `gift`. You can save the following thread to the `ted` directory of your `%home` `desk`:
4242
@@ -63,7 +63,7 @@ Most examples will either use `|pass` to just send a `task` or the following thr
6363
6464# `%warp`
6565
66−See the [Read and Subscribe](@/docs/arvo/clay/tasks.md#warp) section of the [API Reference](@/docs/arvo/clay/tasks.md) document for general details.
66+See the [Read and Subscribe](/docs/arvo/clay/tasks#warp) section of the [API Reference](/docs/arvo/clay/tasks) document for general details.
6767
6868## `%sing`
6969
@@ -146,7 +146,7 @@ Now run the thread again, and this time delete the file in unix and again `|comm
146146- /~zod/home/4/foo/txt
147147```
148148
149−You can see the `riot` is just `~` due to the file being deleted.
149+You can see the `riot` is just `~` due to the file being deleted.
150150
151151Here's a breakdown of the task we sent:
152152
@@ -161,12 +161,12 @@ This thread will subscribe to `/foo/txt` with an `%x` `care` and `/bar/txt` with
161161`sub-mult.hoon`
162162
163163```hoon
164−/- spider
164+/- spider
165165/+ strandio
166−=, strand=strand:spider
167−^- thread:spider
168−|= arg=vase
169−=/ m (strand ,vase)
166+=, strand=strand:spider
167+^- thread:spider
168+|= arg=vase
169+=/ m (strand ,vase)
170170^- form:m
171171=/ files=(set (pair care:clay path))
172172 %- sy :~
@@ -220,7 +220,7 @@ This thread will subscribe to changes to your `%home` `desk` for the next three
220220`sub-many.hoon`
221221
222222```hoon
223−/- spider
223+/- spider
224224/+ strandio
225225=, strand=strand:spider
226226|%
@@ -236,10 +236,10 @@ This thread will subscribe to changes to your `%home` `desk` for the next three
236236 ~& res
237237 (pure:m ~)
238238 ==
239−--
240−^- thread:spider
241−|= arg=vase
242−=/ m (strand ,vase)
239+--
240+^- thread:spider
241+|= arg=vase
242+=/ m (strand ,vase)
243243^- form:m
244244=/ uarg !< (unit path) arg
245245?~ uarg
@@ -297,7 +297,7 @@ Now wait until the three minutes is up and try making a change, for example dele
297297- /~zod/home/263/baz/txt
298298```
299299
300−You can see that along with the normal `%writ` it's also sent a second `%writ` with a null `riot` to indicate the subscription has ended. This is because it has now passed the end of the range of `case`s to which you subscribed.
300+You can see that along with the normal `%writ` it's also sent a second `%writ` with a null `riot` to indicate the subscription has ended. This is because it has now passed the end of the range of `case`s to which you subscribed.
301301
302302Run `:spider|kill` to stop the thread.
303303
@@ -314,12 +314,12 @@ This thread will subscribe to the `%next` version of `/foo/txt`, then immediatel
314314`stop-sub.hoon`
315315
316316```hoon
317−/- spider
317+/- spider
318318/+ strandio
319−=, strand=strand:spider
320−^- thread:spider
321−|= arg=vase
322−=/ m (strand ,vase)
319+=, strand=strand:spider
320+^- thread:spider
321+|= arg=vase
322+=/ m (strand ,vase)
323323^- form:m
324324;< =bowl:strand bind:m get-bowl:strandio
325325=/ =task:clay [%warp our.bowl %home ~ %next %x da+now.bowl /foo/txt]
@@ -327,7 +327,7 @@ This thread will subscribe to the `%next` version of `/foo/txt`, then immediatel
327327;< ~ bind:m (send-raw-card:strandio card)
328328=. task [%warp our.bowl %home ~]
329329=. card [%pass /next %arvo %c task]
330−;< ~ bind:m (send-raw-card:strandio card)
330+;< ~ bind:m (send-raw-card:strandio card)
331331;< =riot:clay bind:m (take-writ:strandio /next)
332332~& riot
333333(pure:m !>(~))
@@ -351,7 +351,7 @@ Here's a breakdown of the `task` we sent:
351351
352352# `%info`
353353
354−See the [Write and Modify](@/docs/arvo/clay/tasks.md#write-and-modify) section of the [API Reference](@/docs/arvo/clay/tasks.md) document for general details.
354+See the [Write and Modify](/docs/arvo/clay/tasks#write-and-modify) section of the [API Reference](/docs/arvo/clay/tasks) document for general details.
355355
356356## `%ins`
357357
@@ -370,7 +370,7 @@ We've created the `cage` of the content like `[%txt !>(~['foo'])]`, if you want
370370
371371Here's a breakdown of the `task` we sent:
372372
373−![%ins diagram](https://media.urbit.org/docs/arvo/clay/ins.png)
373+![%ins diagram](https://media.urbit.org/docs/arvo/clay/ins.png)
374374
375375## `%del`
376376
@@ -387,7 +387,7 @@ If you have a look in the home of your pier you'll see the `foo.txt` file is now
387387
388388Here's a breakdown of the `task` we sent:
389389
390−![%del diagram](https://media.urbit.org/docs/arvo/clay/del.png)
390+![%del diagram](https://media.urbit.org/docs/arvo/clay/del.png)
391391
392392## `%mut`
393393
@@ -402,12 +402,12 @@ Since `soba` is just a `list` of `miso`, you can add a bunch of `miso` and they'
402402`multi-change.hoon`
403403
404404```hoon
405−/- spider
405+/- spider
406406/+ strandio
407−=, strand=strand:spider
408−^- thread:spider
409−|= arg=vase
410−=/ m (strand ,vase)
407+=, strand=strand:spider
408+^- thread:spider
409+|= arg=vase
410+=/ m (strand ,vase)
411411^- form:m
412412=/ soba-a :~ [/foo/txt %ins %txt !>(['foo' ~])]
413413 [/bar/txt %ins %txt !>(['bar' ~])]
@@ -436,7 +436,7 @@ Save to `ted/multi-change.hoon`, `|commit %home`, and run:
436436
437437# Manage Mounts
438438
439−See the [Manage Mounts](@/docs/arvo/clay/tasks.md#manage-mounts) section of the [API Reference](@/docs/arvo/clay/tasks.md) document for general details.
439+See the [Manage Mounts](/docs/arvo/clay/tasks#manage-mounts) section of the [API Reference](/docs/arvo/clay/tasks) document for general details.
440440
441441## `%boat`
442442
@@ -538,7 +538,7 @@ If you have the same `desk` mounted to multiple points, a committed change in on
538538
539539# Merge Desks
540540
541−See the [Merge Desks](@/docs/arvo/clay/tasks.md#merge-desks) section of the [API Reference](@/docs/arvo/clay/tasks.md) document for general details.
541+See the [Merge Desks](/docs/arvo/clay/tasks#merge-desks) section of the [API Reference](/docs/arvo/clay/tasks) document for general details.
542542
543543## `%merg`
544544
@@ -613,7 +613,7 @@ You can also specify it by revision number or label.
613613
614614# Permissions
615615
616−See the [Permissions](@/docs/arvo/clay/tasks.md#permissions) section of the [API Reference](@/docs/arvo/clay/tasks.md) document for general details.
616+See the [Permissions](/docs/arvo/clay/tasks#permissions) section of the [API Reference](/docs/arvo/clay/tasks) document for general details.
617617
618618## `%perm`
619619
@@ -693,7 +693,7 @@ As you can see it's back to the default inherited from `/`.
693693
694694Here's a breakdown of a `%perm` task:
695695
696−![perm diagram](https://media.urbit.org/docs/arvo/clay/perm-diagram.png)
696+![perm diagram](https://media.urbit.org/docs/arvo/clay/perm-diagram.png)
697697
698698## `%cred`
699699
@@ -752,7 +752,7 @@ Now we'll use the `send-task-take-gift.hoon` thread to try `%crow`:
752752
753753# Foreign Ships
754754
755−See the [Foreign Ships](@/docs/arvo/clay/tasks.md#foreign-ships) section of the [API Reference](@/docs/arvo/clay/tasks.md) document for general details.
755+See the [Foreign Ships](/docs/arvo/clay/tasks#foreign-ships) section of the [API Reference](/docs/arvo/clay/tasks) document for general details.
756756
757757## `%warp` - Remote
758758
content/docs/arvo/clay/scry.md+5−5
@@ -20,7 +20,7 @@ The various Clay scries are specified by a `care`, which is a single character c
2020- [%e](#e) - Static `mark`.
2121- [%f](#f) - Static `mark` conversion.
2222- [%p](#p) - File permissions.
23−- [%r](#r) - Vase-wrapped file data.
23+- [%r](#r) - Vase-wrapped file data.
2424- [%s](#s) - Miscellaneous scries:
2525 - [%yaki](#yaki) - `yaki:clay` of the specified commit.
2626 - [%blob](#blob) - `blob:clay` of file.
@@ -141,15 +141,15 @@ Crash!
141141
142142A scry with a `care` of `%s` is for miscellaneous internal and debug functions and is liable to change in the future.
143143
144−Rather than just a `path` to a file, the head of the `path` is tagged with one of `%yaki %blob %hash %cage %open %late %base` and the tail depends on which tag you use. We'll look at each in turn.
144+Rather than just a `path` to a file, the head of the `path` is tagged with one of `%yaki %blob %hash %cage %open %late %base` and the tail depends on which tag you use. We'll look at each in turn.
145145
146146### %yaki
147147
148−This will return the [yaki:clay](@/docs/arvo/clay/data-types.md#yaki-clay-commit) of the specified commit. It takes a [tako:clay](@/docs/arvo/clay/data-types.md#tako-clay-commit-reference).
148+This will return the [yaki:clay](/docs/arvo/clay/data-types#yaki-clay-commit) of the specified commit. It takes a [tako:clay](/docs/arvo/clay/data-types#tako-clay-commit-reference).
149149
150150Example:
151151
152−Here we scry the [dome:clay](@/docs/arvo/clay/data-types.md#dome-desk-data) for `/===`, get the latest `tako:clay` and the do a `%s` scry for the `yaki:clay` in question.
152+Here we scry the [dome:clay](/docs/arvo/clay/data-types#dome-desk-data) for `/===`, get the latest `tako:clay` and the do a `%s` scry for the `yaki:clay` in question.
153153
154154```
155155> =/ =dome:clay .^(dome:clay %cv /===)
@@ -170,7 +170,7 @@ Here we scry the [dome:clay](@/docs/arvo/clay/data-types.md#dome-desk-data) for
170170
171171### %blob
172172
173−This will return the [blob:clay](@/docs/arvo/clay/data-types.md#blob-clay-data) of some file. It takes a [lobe:clay](@/docs/arvo/clay/data-types.md#lobe-clay-data-reference).
173+This will return the [blob:clay](/docs/arvo/clay/data-types#blob-clay-data) of some file. It takes a [lobe:clay](/docs/arvo/clay/data-types#lobe-clay-data-reference).
174174
175175Example:
176176
content/docs/arvo/clay/tasks.md+32−32
@@ -33,7 +33,7 @@ template = "doc.html"
3333
3434# Introduction
3535
36−This document details all the `task`s you're likely to use to interact with Clay, as well as the `gift`s you'll receive in response. Each section has a corresponding practical example in the [Examples](@/docs/arvo/clay/examples.md) document. Many of the types referenced are detailed in the [Data Types](@/docs/arvo/clay/data-types.md) document. It may also be useful to look at the `++ clay` section of `/sys/lull.hoon` in Arvo where these `task`s, `gift`s and data structures are defined.
36+This document details all the `task`s you're likely to use to interact with Clay, as well as the `gift`s you'll receive in response. Each section has a corresponding practical example in the [Examples](/docs/arvo/clay/examples) document. Many of the types referenced are detailed in the [Data Types](/docs/arvo/clay/data-types) document. It may also be useful to look at the `++ clay` section of `/sys/lull.hoon` in Arvo where these `task`s, `gift`s and data structures are defined.
3737
3838The focus of this document is on interacting with Clay from userspace applications and threads, so it doesn't delve into the internal mechanics of Clay from a kernel development perspective.
3939
@@ -47,7 +47,7 @@ A `%warp` `task` is for reading a subscribing to files and directories.
4747[wer=ship rif=riff]
4848```
4949
50−The `wer` field is the target ship. The `(unit rave)` of the [riff](@/docs/arvo/clay/data-types.md#riff-clay-request-desist) is null to cancel an existing subscription, otherwise the [rave](@/docs/arvo/clay/data-types.md#rave-clay-general-subscription-request) is tagged with one of:
50+The `wer` field is the target ship. The `(unit rave)` of the [riff](/docs/arvo/clay/data-types#riff-clay-request-desist) is null to cancel an existing subscription, otherwise the [rave](/docs/arvo/clay/data-types#rave-clay-general-subscription-request) is tagged with one of:
5151
5252- `%sing` - Read a single file or directory.
5353- `%next` - Subscribe for the next change to a file or directory.
@@ -72,25 +72,25 @@ A `%wris` `gift` looks like:
7272[%writ p=riot] :: response
7373```
7474
75−The `unit` of the [riot](@/docs/arvo/clay/data-types.md#riot-clay-response) will be null if the target file cannot be found or if a subscription has ended (depending on context). Otherwise it will have a [rant](@/docs/arvo/clay/data-types.md#rant-clay-response-data) with a `cage` containing the data you requested. Its contents will vary depending on the kind of request and `care`.
75+The `unit` of the [riot](/docs/arvo/clay/data-types#riot-clay-response) will be null if the target file cannot be found or if a subscription has ended (depending on context). Otherwise it will have a [rant](/docs/arvo/clay/data-types#rant-clay-response-data) with a `cage` containing the data you requested. Its contents will vary depending on the kind of request and `care`.
7676
7777Now we'll look at each of the `rave` request types in turn.
7878
7979## `%sing`
8080
8181```hoon
82−[%sing =mood]
82+[%sing =mood]
8383```
8484
8585This `rave` is for reading a single file or directory immediately.
8686
87−The `care` of the [mood](@/docs/arvo/clay/data-types.md#mood-clay-single-subscription-request) will determine what you can read and what type of data will be returned. See the [care](@/docs/arvo/clay/data-types.md#care-clay-clay-submode) documentation and [scry](@/docs/arvo/clay/scry.md) documentation for details on the various `care`s.
87+The `care` of the [mood](/docs/arvo/clay/data-types#mood-clay-single-subscription-request) will determine what you can read and what type of data will be returned. See the [care](/docs/arvo/clay/data-types#care-clay-clay-submode) documentation and [scry](/docs/arvo/clay/scry) documentation for details on the various `care`s.
8888
89−The [case](@/docs/arvo/clay/data-types.md#case-specifying-a-commit) specifies the `desk` revision and you can use whichever kind you prefer. The `path` will usually be a path to a file or directory like `/gen/hood/hi/hoon` but may be something else depending on the `care`.
89+The [case](/docs/arvo/clay/data-types#case-specifying-a-commit) specifies the `desk` revision and you can use whichever kind you prefer. The `path` will usually be a path to a file or directory like `/gen/hood/hi/hoon` but may be something else depending on the `care`.
9090
9191### Example
9292
93−[See here for an example of using %sing.](@/docs/arvo/clay/examples.md#sing)
93+[See here for an example of using %sing.](/docs/arvo/clay/examples#sing)
9494
9595## `%next`
9696
@@ -98,13 +98,13 @@ The [case](@/docs/arvo/clay/data-types.md#case-specifying-a-commit) specifies th
9898[%next =mood] :: await next version
9999```
100100
101−This subscribes to the next version of the specified file. See [here](@/docs/arvo/clay/data-types.md#mood-clay-single-subscription-request) for details of the `mood` structure.
101+This subscribes to the next version of the specified file. See [here](/docs/arvo/clay/data-types#mood-clay-single-subscription-request) for details of the `mood` structure.
102102
103103If you subscribe to the current `case` of the `desk`, Clay will not respond until the file changes. If you subscribe to a previous `case` of the `desk` and the file has changed in between then and now, it will immediately return the first change it comes across in that range. For example, if you're currently at `case` `100`, subscribe to case `50` and the file in question has been modified at both `60` and `80`, clay will immediately return the version of the file at `case` `60`.
104104
105105### Example
106106
107−[See here for an example of using %next.](@/docs/arvo/clay/examples.md#next)
107+[See here for an example of using %next.](/docs/arvo/clay/examples#next)
108108
109109## `%mult`
110110
@@ -126,7 +126,7 @@ You can use a different `care` for each of the files specified by the `path` if
126126
127127### Example
128128
129−[See here for an example of using %mult.](@/docs/arvo/clay/examples.md#mult)
129+[See here for an example of using %mult.](/docs/arvo/clay/examples#mult)
130130
131131## `%many`
132132
@@ -144,9 +144,9 @@ If the `track` is `%.y` it will just return a `%writ` like:
144144
145145...that merely informs you of a change. If you want the actual data you'll have to request it separately.
146146
147−If the `track` is `%.n`, the `cage` of the `%writ` will contain a [nako](@/docs/arvo/clay/data-types.md#nako-subscription-response-data) with the relevant data for all changes to a desk between what you have and the `case` requested. It is very large and fairly complicated. The `nako` structure is defined in the `clay.hoon` source file itself rather than in `lull.hoon` or elsewhere since you're unlikely to work with it yourself.
147+If the `track` is `%.n`, the `cage` of the `%writ` will contain a [nako](/docs/arvo/clay/data-types#nako-subscription-response-data) with the relevant data for all changes to a desk between what you have and the `case` requested. It is very large and fairly complicated. The `nako` structure is defined in the `clay.hoon` source file itself rather than in `lull.hoon` or elsewhere since you're unlikely to work with it yourself.
148148
149−The `from` and `to` fields of the [moat](@/docs/arvo/clay/data-types.md#moat-clay-range-subscription-request) specify the range of `case`s for which to subscribe. The range is *inclusive*. It can be specified by date or by revision number, whichever you prefer.
149+The `from` and `to` fields of the [moat](/docs/arvo/clay/data-types#moat-clay-range-subscription-request) specify the range of `case`s for which to subscribe. The range is *inclusive*. It can be specified by date or by revision number, whichever you prefer.
150150
151151The `path` in the `moat` is a path to a file or directory. If it's `~` it refers to the root of the `desk` in question. This lets you say "only inform me of changes to the `desk` if the specified file or directory exists". If it doesn't exist, Clay will not send you anything.
152152
@@ -158,7 +158,7 @@ When you reach the end of the subscribed range of `case`s, Clay will send you a
158158
159159### Example
160160
161−[See here for an example of using %many.](@/docs/arvo/clay/examples.md#many)
161+[See here for an example of using %many.](/docs/arvo/clay/examples#many)
162162
163163## Cancel Subscription
164164
@@ -166,7 +166,7 @@ To cancel a subscription, you just send a `%warp` with a null `(unit rave)` in t
166166
167167### Example
168168
169−[See here for an example of cancelling a subscription.](@/docs/arvo/clay/examples.md#cancel-subscription)
169+[See here for an example of cancelling a subscription.](/docs/arvo/clay/examples#cancel-subscription)
170170
171171# Write and Modify
172172
@@ -180,7 +180,7 @@ To write or modify a file, we send Clay a `%info` `task`.
180180[des=desk dit=nori]
181181```
182182
183−The `%|` tag in the [nori](@/docs/arvo/clay/data-types.md#nori-clay-repository-action) is not currently supported and will crash with a `%labelling-not-implemented` if used, so you can focus on the `%&` part. The [soba](@/docs/arvo/clay/data-types.md#soba-clay-delta) in the `nori` is just a list of changes so you can make more than one change in one request. Its `path` is just the path to a file like `/gen/hood/hi/hoon` and the [miso](@/docs/arvo/clay/data-types.md#miso-clay-ankh-delta) is one of these types of requests:
183+The `%|` tag in the [nori](/docs/arvo/clay/data-types#nori-clay-repository-action) is not currently supported and will crash with a `%labelling-not-implemented` if used, so you can focus on the `%&` part. The [soba](/docs/arvo/clay/data-types#soba-clay-delta) in the `nori` is just a list of changes so you can make more than one change in one request. Its `path` is just the path to a file like `/gen/hood/hi/hoon` and the [miso](/docs/arvo/clay/data-types#miso-clay-ankh-delta) is one of these types of requests:
184184
185185- `%del` - Delete a file.
186186- `%ins` - Insert file. This will also replace an existing file.
@@ -195,10 +195,10 @@ Clay does not give any response to an `%info` `task` so don't expect a `sign` ba
195195
196196Here are examples of using each of these as well as making multiple changes in one request:
197197
198−- [%del](@/docs/arvo/clay/examples.md#del)
199−- [%ins](@/docs/arvo/clay/examples.md#ins)
200−- [%mut](@/docs/arvo/clay/examples.md#mut)
201−- [Multiple Changes](@/docs/arvo/clay/examples.md#multiple-changes)
198+- [%del](/docs/arvo/clay/examples#del)
199+- [%ins](/docs/arvo/clay/examples#ins)
200+- [%mut](/docs/arvo/clay/examples#mut)
201+- [Multiple Changes](/docs/arvo/clay/examples#multiple-changes)
202202
203203
204204# Manage Mounts
@@ -236,7 +236,7 @@ The type it returns is a `%hill` `gift`, which looks like:
236236
237237### Example
238238
239−[See here for an example of using %boat.](@/docs/arvo/clay/examples.md#boat)
239+[See here for an example of using %boat.](/docs/arvo/clay/examples#boat)
240240
241241## `%mont`
242242
@@ -263,11 +263,11 @@ Clay does not return a `gift` in response to a `%mont` `%task`.
263263
264264### Example
265265
266−[See here for an example of using %mont.](@/docs/arvo/clay/examples.md#mont)
266+[See here for an example of using %mont.](/docs/arvo/clay/examples#mont)
267267
268268## `%ogre`
269269
270−A `%ogre` `task` unmounts the specified mount.
270+A `%ogre` `task` unmounts the specified mount.
271271
272272### Accepts
273273
@@ -283,7 +283,7 @@ Clay does not return a `gift` in response to a `%ogre` `task`.
283283
284284### Example
285285
286−[See here for an example of using %ogre.](@/docs/arvo/clay/examples.md#ogre)
286+[See here for an example of using %ogre.](/docs/arvo/clay/examples#ogre)
287287
288288## `%dirk`
289289
@@ -303,7 +303,7 @@ Clay does not return a `gift` in response to a `%dirk` `task`.
303303
304304### Example
305305
306−[See here for an example of using %dirk.](@/docs/arvo/clay/examples.md#dirk)
306+[See here for an example of using %dirk.](/docs/arvo/clay/examples#dirk)
307307
308308# Merge Desks
309309
@@ -319,7 +319,7 @@ $: des=desk :: target
319319 how=germ :: method
320320==
321321```
322−The `germ` specifies the merge strategy. You can refer to the [Strategies](@/docs/arvo/clay/using.md#strategies) section of the [Using Clay](@/docs/arvo/clay/using.md) document for details of each `germ`.
322+The `germ` specifies the merge strategy. You can refer to the [Strategies](/docs/arvo/clay/using#strategies) section of the [Using Clay](/docs/arvo/clay/using) document for details of each `germ`.
323323
324324If you're merging into a new `desk` you must use `%init`, all other strategies will fail. If the desk already exists, you cannot use `%init`. Otherwise, you're free to use whichever you'd like.
325325
@@ -346,7 +346,7 @@ If the merge failed, `p` will have a head of `%.n` and then a `[term tang]` wher
346346
347347### Example
348348
349−[See here for an example of using %merg.](@/docs/arvo/clay/examples.md#merg)
349+[See here for an example of using %merg.](/docs/arvo/clay/examples#merg)
350350
351351# Permissions
352352
@@ -431,7 +431,7 @@ Clay does not return a `gift` in response to a `%perm` `task`.
431431
432432### Example
433433
434−[See here for an example of using %perm.](@/docs/arvo/clay/examples.md#perm)
434+[See here for an example of using %perm.](/docs/arvo/clay/examples#perm)
435435
436436## `%cred`
437437
@@ -455,7 +455,7 @@ Clay does not return a `gift` in response to a `%cred` `task`.
455455
456456### Example
457457
458−[See here for an example of using %cred.](@/docs/arvo/clay/examples.md#cred)
458+[See here for an example of using %cred.](/docs/arvo/clay/examples#cred)
459459
460460## `%crew`
461461
@@ -481,7 +481,7 @@ The `cez` is just a map from group name to `crew` which is just a `(set ship)`.
481481
482482### Example
483483
484−[See here for an example of using %crew.](@/docs/arvo/clay/examples.md#crew)
484+[See here for an example of using %crew.](/docs/arvo/clay/examples#crew)
485485
486486## `%crow`
487487
@@ -511,7 +511,7 @@ The `gift` you get back is a `%croz` which looks like:
511511
512512### Example
513513
514−[See here for an example of using %crow.](@/docs/arvo/clay/examples.md#crow)
514+[See here for an example of using %crow.](/docs/arvo/clay/examples#crow)
515515
516516# Foreign Ships
517517
@@ -540,7 +540,7 @@ Note that if you're reading a whole `desk` or directory, all subfolders and file
540540
541541### Example
542542
543−[See here for examples of requests to foreign ships.](@/docs/arvo/clay/examples.md#foreign-ships)
543+[See here for examples of requests to foreign ships.](/docs/arvo/clay/examples#foreign-ships)
544544
545545## `%merg` - Remote
546546
@@ -552,4 +552,4 @@ Note that all subfolders and individual files within the `desk` must permit your
552552
553553### Example
554554
555−[See here for examples of requests to foreign ships.](@/docs/arvo/clay/examples.md#foreign-ships)
555+[See here for examples of requests to foreign ships.](/docs/arvo/clay/examples#foreign-ships)
content/docs/arvo/concepts/_index.md+1−1
@@ -8,6 +8,6 @@ insert_anchor_links = "right"
88
99Other concepts related to the way Arvo works.
1010
11−## [Subscriptions](@/docs/arvo/concepts/subscriptions.md)
11+## [Subscriptions](/docs/arvo/concepts/subscriptions)
1212
1313Urbit relies heavily on subscriptions throughout the stack. We strongly prefer reactive data flow compared to querying or polling, which is why for example our equivalent to git natively supports subscriptions to its data.
content/docs/arvo/dill/dill-api.md+3−3
@@ -68,7 +68,7 @@ Dill returns no `gift` in response to a `%blew` `task`.
6868### `%boot`
6969
7070This `task` is used only once, when Arvo first enters the [adult
71−stage](@/docs/arvo/overview.md#structural-interface-core). Dill is
71+stage](/docs/arvo/overview#structural-interface-core). Dill is
7272technically the first vane to be activated, via the `%boot` `task`, which then
7373send Jael (considered the the "true" first vane) an `%init` `task`, which then goes on to
7474call `%init` `task`s for other vanes (including Dill).
@@ -176,7 +176,7 @@ This `task` is not used.
176176### `%init`
177177
178178This `task` is called only once, when Arvo first enters the [adult
179−stage](@/docs/arvo/overview.md#structural-interface-core). It performs
179+stage](/docs/arvo/overview#structural-interface-core). It performs
180180initial setup for Dill, such as setting the width of the console.
181181
182182Note that this is not actually the first `task` passed to Dill - see [%boot](#%boot).
@@ -353,7 +353,7 @@ This `task` returns no `gift`s.
353353
354354This `task` toggles verbose mode for all of Arvo, which is located here since
355355Dill is the vane that prints errors. To be precise, `%verb` toggles the laconic
356−bit `lac` in the [Arvo state](@/docs/arvo/overview.md#the-state).
356+bit `lac` in the [Arvo state](/docs/arvo/overview#the-state).
357357
358358#### Accepts
359359
content/docs/arvo/eyre/_index.md+3−3
@@ -6,11 +6,11 @@ template = "sections/docs/chapters.html"
66insert_anchor_links = "right"
77+++
88
9−## [Overview](@/docs/arvo/eyre/eyre.md)
9+## [Overview](/docs/arvo/eyre/eyre)
1010
1111A high-level overview of `eyre`, Urbit's HTTP server vane.
1212
13−## [Using Eyre](@/docs/arvo/eyre/using-eyre.md)
13+## [Using Eyre](/docs/arvo/eyre/using-eyre)
1414
15−How to use Urbit's HTTP API.
15+How to use Urbit's HTTP API.
1616
content/docs/arvo/eyre/using-eyre.md+2−2
@@ -17,13 +17,13 @@ substituting the appropriate path to your Urbit binary:
1717/path/to/urbit -p 8080 -F zod
1818```
1919
20−For the unfamiliar, this will create a folder named "zod" in your working directory, from which the ship will run. Use `/path/to/urbit -p 8080 zod` in the future. For more information on this process, see our guide on [Environment Setup](@/docs/development/environment.md).
20+For the unfamiliar, this will create a folder named "zod" in your working directory, from which the ship will run. Use `/path/to/urbit -p 8080 zod` in the future. For more information on this process, see our guide on [Environment Setup](/docs/development/environment).
2121
2222## Authentication
2323
2424We'll authenticate with a code that can be retrieved from the dojo. You can run
2525`+code` in the dojo to obtain it, but a fakezod's code is always
26−`lidlut-tabwed-pillex-ridrup`.
26+`lidlut-tabwed-pillex-ridrup`.
2727
2828Run this code in your bash terminal (requires cURL):
2929
content/docs/arvo/ford/ford.md+2−2
@@ -7,7 +7,7 @@ aliases = ["/docs/learn/arvo/ford/"]
77
88*The Ford vane was refactored so drastically in 2020 that it was completely
99 removed as a standalone vane, with its functionality merged into
10− [clay](@/docs/arvo/clay/clay.md). The following is a reproduced [blog
10+ [clay](/docs/arvo/clay/clay). The following is a reproduced [blog
1111 post](https://urbit.org/blog/ford-fusion/) that documents this transformation,
1212 which we called "Ford Fusion".*
1313
@@ -27,7 +27,7 @@ Ford Fusion has fixed the major upgrade issues of the past by guaranteeing three
2727 (dependence on previous system states) when building the new software
2828 from source.
2929- Ordered: updates must be monotonically sequenced from the system's
30− lowest layer to highest.
30+ lowest layer to highest.
3131
3232Let’s walk through them one by one.
3333
content/docs/arvo/gall/overview.md+1−1
@@ -8,4 +8,4 @@ template = "doc.html"
88
99Gall is located at `/home/sys/vane/gall.hoon` within Arvo.
1010
11−For more details, see the [userspace](@/docs/userspace/gall/gall.md) section.
11+For more details, see the [userspace](/docs/userspace/gall/gall) section.
content/docs/arvo/jael/jael-api.md+4−4
@@ -14,7 +14,7 @@ each `task` that Jael can be `%pass`ed, and which `gift`(s) Jael can `%give` in
1414
1515This `task` is called once per ship during the vane initialization
1616phase immediately following the beginning of the [adult
17−stage](@/docs/arvo/overview.md#structural-interface-core). This `task` is `%pass`ed to Jael by Dill, as Dill is the first vane to be loaded for
17+stage](/docs/arvo/overview#structural-interface-core). This `task` is `%pass`ed to Jael by Dill, as Dill is the first vane to be loaded for
1818technical reasons, though we consider Jael to be the true "first" vane. This
1919`task` is only used for ships that will join the Ames network - fake ships (i.e.
2020made with `./urbit -F zod`) use the `%fake` `task` instead.
@@ -59,7 +59,7 @@ related data and can be found in `zuse.hoon`.
5959`czar` is a map from each galaxy's `@p` to its `rift`, `life`, and public key (`pass`).
6060
6161`turf` is a `list` of DNS suffixes used by the Ames network, which for now is
62−just `arvo.network`.
62+just `arvo.network`.
6363
6464`bloq` is the number of the Ethereum block in which the ship registered its keys
6565with the Azimuth smart contract.
@@ -226,7 +226,7 @@ a `%public-keys` `task`.
226226
227227#### Returns
228228
229−Jael `%give`s a `%done` `gift` in response to a `%plea` `task`.
229+Jael `%give`s a `%done` `gift` in response to a `%plea` `task`.
230230
231231#### Passes
232232
@@ -279,7 +279,7 @@ keys kept by Jael. This `task` can originate locally or remotely.
279279If the `task` originated locally, Jael `%give`s a `%public-keys` `gift` in
280280response. If it originated remotely, Jael `%give`s a `%boon` `gift` to back
281281to Ames wrapping a `%public-keys` `gift`.
282−
282+
283283A `$public-keys-result` is the following.
284284```hoon
285285 +$ public-keys-result
content/docs/arvo/overview.md+19−19
@@ -23,12 +23,12 @@ companion to this document, and some segments are direct quotes or paraphrases,
2323The conceptual section titled [What is Arvo?](#what-is-arvo-) can be understood
2424without knowing Hoon, the Urbit programming language. The technical section
2525titled [The kernel](#the-kernel) will require Chapter One of the [Hoon
26−tutorial](@/docs/hoon/hoon-school/_index.md) for full understanding, and some
26+tutorial](/docs/hoon/hoon-school/) for full understanding, and some
2727material from Chapter Two will be helpful as well. At the bare minimum, we
2828presume that the reader has read through the [Technical
29−Overview](@/docs/system-overview/_index.md).
29+Overview](/docs/system-overview/).
3030
31−We also suggest to the reader to peruse the [glossary](@/docs/glossary/_index.md) before diving into this article. It will provide the initial scaffolding that you will be able to gradually fill in as you read this article and go deeper into the alternate universe of computing that is Urbit.
31+We also suggest to the reader to peruse the [glossary](/docs/glossary/) before diving into this article. It will provide the initial scaffolding that you will be able to gradually fill in as you read this article and go deeper into the alternate universe of computing that is Urbit.
3232
3333
3434# Table of Contents
@@ -125,7 +125,7 @@ The formal state of an Arvo instance is an event history, as a linked list of [n
125125
126126The Arvo event log is a list of every action ever performed on your ship that
127127lead up to the current state. In principle, this event log is maintained by the
128−[Nock runtime environment](@/docs/vere/_index.md), but in practice
128+[Nock runtime environment](/docs/vere/), but in practice
129129event logs become too long over time to keep, as the event log has a size of
130130O(n) where n is the number of events. Thus it is our intention to
131131implement a feature whereby periodic snapshots of the state of Arvo are taken
@@ -174,7 +174,7 @@ Typically, updates to an operating system are given via a pre-compiled binary,
174174which is why some updates will work on some systems but not on others where the
175175hardware and environment may differ. This is not so on Arvo - because it is an
176176[interpreter](#solid-state-interpreter), Arvo may update itself by receiving
177−source code from your sponsor over [Ames](@/docs/arvo/ames/ames.md), our
177+source code from your sponsor over [Ames](/docs/arvo/ames/ames), our
178178network. As Hoon compiles down to Nock, which is an axiomatic representation of
179179a deterministic computer, this code is guaranteed to run identically on your machine as it
180180would on anybody else's.
@@ -205,7 +205,7 @@ Database theory studies in precise terms the possible properties of anything tha
205205 Arvo
206206 transactions are sequential and performed by the daemon, persistence and effect application are performed
207207 in parallel by the worker; see [worker and
208− daemon](@/docs/vere/_index.md) for more detail.
208+ daemon](/docs/vere/) for more detail.
209209
210210 - Durability: Completed transactions will survive permanently. In other words,
211211 since the event log is stored on disk, if power is lost you are guaranteed
@@ -214,7 +214,7 @@ Database theory studies in precise terms the possible properties of anything tha
214214It is easy to think that "completed transaction will survive permanently"
215215along with "the state of Arvo is pure function of its event log" implies that
216216nothing can ever be deleted. This is not quite true.
217−[Clay](@/docs/arvo/clay/clay.md) is our [referentially
217+[Clay](/docs/arvo/clay/clay) is our [referentially
218218transparency](https://en.wikipedia.org/wiki/Referential_transparency)
219219file system, which could naively be thought to mean that since data must be
220220immutable, files cannot be deleted. However, Clay can replace a file with a
@@ -248,10 +248,10 @@ cooperative multitasking.
248248
249249The Arvo kernel, stored in `sys/arvo.hoon`, is about 1k lines of Hoon whose primary purpose is to implement the transition function, `+poke`. In this section we point out the most important parts of `arvo.hoon` and describe their role in the greater system. We also give brief descriptions of Arvo's kernel modules, known as vanes, and how Arvo interfaces with them.
250250
251−This section requires an understanding of Hoon of at least the level of Chapter One of the [Hoon tutorial](@/docs/hoon/hoon-school/_index.md).
251+This section requires an understanding of Hoon of at least the level of Chapter One of the [Hoon tutorial](/docs/hoon/hoon-school/).
252252
253253After concluding this section, the reader is encouraged to follow along with the
254−[move trace tutorial](@/docs/arvo/tutorials/move-trace.md),
254+[move trace tutorial](/docs/arvo/tutorials/move-trace),
255255which applies many of the concepts covered below.
256256
257257## Overall structure
@@ -264,7 +264,7 @@ which applies many of the concepts covered below.
264264 + Larval stage core
265265 + Formal interface
266266
267−See [Section 1.7](@/docs/hoon/hoon-school/arms-and-cores.md) of the Hoon tutorial for further explanation of what is meant here by "nesting". We now describe the functionality of each of these components.
267+See [Section 1.7](/docs/hoon/hoon-school/arms-and-cores) of the Hoon tutorial for further explanation of what is meant here by "nesting". We now describe the functionality of each of these components.
268268
269269### Formal interface
270270
@@ -442,7 +442,7 @@ A short summary of the purpose of each these arms are as follows:
442442 - `+poke` is the transition function that `move`s Arvo from one state to the
443443 next. It is the most fundamental arm in the entire system. It is a typed
444444 transactional message that is processed at most once. If the `+poke` causes
445− Arvo to send an message over [Ames](@/docs/arvo/ames/ames.md) Ames
445+ Arvo to send an message over [Ames](/docs/arvo/ames/ames) Ames
446446 guarantees that the message will be delivered exactly once. This is sometimes said
447447 to be impossible, and it is for standard operating systems, but that is not the case for single-level stores engaged in
448448 a permanent session, as is the case among Arvo ships.
@@ -559,14 +559,14 @@ data that directly causes the desired outcome of a `move`. This event data is co
559559
560560As of this writing, we have nine vanes, which each provide the following services:
561561
562−- [Ames](@/docs/arvo/ames/ames.md): the name of both our network and the vane that communicates over it.
563−- [Behn](@/docs/arvo/behn/behn.md): a simple timer.
564−- [Clay](@/docs/arvo/clay/clay.md): our version-controlled, referentially- transparent, and global filesystem.
565−- [Dill](@/docs/arvo/dill/dill.md): a terminal driver. Unix sends keyboard events to `%dill` from the console, and `%dill` produces terminal output.
566−- [Eyre](@/docs/arvo/eyre/eyre.md): an http server. Unix sends http messages to `%eyre`, and `%eyre` produces http messages in response.
567−- [Ford](@/docs/arvo/ford/ford.md): a build system also utilized for marks
562+- [Ames](/docs/arvo/ames/ames): the name of both our network and the vane that communicates over it.
563+- [Behn](/docs/arvo/behn/behn): a simple timer.
564+- [Clay](/docs/arvo/clay/clay): our version-controlled, referentially- transparent, and global filesystem.
565+- [Dill](/docs/arvo/dill/dill): a terminal driver. Unix sends keyboard events to `%dill` from the console, and `%dill` produces terminal output.
566+- [Eyre](/docs/arvo/eyre/eyre): an http server. Unix sends http messages to `%eyre`, and `%eyre` produces http messages in response.
567+- [Ford](/docs/arvo/ford/ford): a build system also utilized for marks
568568 (file types) and debugging.
569−- [Gall](@/docs/userspace/gall/gall.md): manages our userspace applications. `%gall` keeps state and manages subscribers.
569+- [Gall](/docs/userspace/gall/gall): manages our userspace applications. `%gall` keeps state and manages subscribers.
570570- `Iris`: an http client.
571571- `Jael`: storage for Azimuth information.
572572
@@ -574,4 +574,4 @@ As of this writing, we have nine vanes, which each provide the following service
574574
575575Now that you've learned about the nuts and bolts of the Arvo kernel, why not
576576check it out in action? An in-depth "move trace" tutorial for running a timer app
577−is available [here](@/docs/arvo/tutorials/move-trace.md).
577+is available [here](/docs/arvo/tutorials/move-trace).
content/docs/arvo/tutorials/move-trace.md+5−5
@@ -7,7 +7,7 @@ template = "doc.html"
77In this tutorial we will run a simple "move trace" and use the output to get a
88picture of what the Arvo kernel proper does during the routine task of setting a
99timer. Some level of familiarity with the kernel is required for this section,
10−which can be obtained in our [Arvo kernel tutorial](@/docs/arvo/overview.md#the-kernel).
10+which can be obtained in our [Arvo kernel tutorial](/docs/arvo/overview#the-kernel).
1111
1212## Running a move trace
1313
@@ -20,7 +20,7 @@ has elapsed.
2020To follow along yourself, boot up a fake `~zod` and enter `|verb` into the dojo
2121and press Enter to enable verbose mode (this is tracked by the laconic bit
2222introduced in the section on [the
23−state](@/docs/arvo/overview.md#the-state)) in the kernel documentation, followed by `-time ~s1`
23+state](/docs/arvo/overview#the-state)) in the kernel documentation, followed by `-time ~s1`
2424followed by Enter. Your terminal should pretty print a series of `move`s that looks something like this:
2525
2626```
@@ -105,7 +105,7 @@ arrow to Vane B, this represents either a `%pass` `note/task` sequence or a
105105`%give` `gift/sign` sequence that actually has the Arvo kernel in the middle.
106106That is to say, Vane A `%pass`es a `note` to the Arvo kernel addressed to Vane
107107B, and the Arvo kernel then `%pass`es a `task` to Vane B. For more information,
108−see the [Arvo kernel tutorial](@/docs/arvo/overview.md#the-kernel).
108+see the [Arvo kernel tutorial](/docs/arvo/overview#the-kernel).
109109
110110This simple action ends up involving four vanes - Dill, Gall, Behn, and Ford -
111111as well as four applications - hood, spider, dojo, and time.
@@ -118,7 +118,7 @@ This tells us that Unix has sent a `%belt` `card`, which corresponds to
118118terminal input (the Enter keystroke) at time `~2020.1.14..19.01.25..7556`
119119
120120Here is the line of code in `arvo.hoon`, found in the [section
121−3bE core](@/docs/arvo/overview.md#section-3be-core), that generated the output:
121+3bE core](/docs/arvo/overview#section-3be-core), that generated the output:
122122
123123```hoon
124124 ~? !lac ["" %unix -.q.ovo p.ovo now]
@@ -170,7 +170,7 @@ Here, Dill `%pass`es a `task` `card` saying to `%poke` Gall's hood app (with the
170170Enter keystroke).
171171
172172Let's glance at part of the `+jack` arm in `arvo.hoon`, located in the [section 3bE
173−core](@/docs/arvo/overview.md#section-3be-core). This arm is what the Arvo kernel uses to send `card`s,
173+core](/docs/arvo/overview#section-3be-core). This arm is what the Arvo kernel uses to send `card`s,
174174and here we look at the segment that includes `%pass` `move`s.
175175
176176```hoon
content/docs/azimuth/_index.md+3−3
@@ -7,16 +7,16 @@ insert_anchor_links = "right"
77+++
88
99
10−## [Azimuth](@/docs/azimuth/azimuth.md)
10+## [Azimuth](/docs/azimuth/azimuth)
1111
1212An overview of the Ethereum-based public key infrastructure utilized by Urbit.
1313
14−## [Life and Rift](@/docs/azimuth/azimuth.md)
14+## [Life and Rift](/docs/azimuth/azimuth)
1515
1616An explanation of how Azimuth keeps track of the most recent set of networking
1717keys necessary to communicate with a ship.
1818
19−## [Advanced Azimuth Tools](@/docs/azimuth/advanced-azimuth-tools.md)
19+## [Advanced Azimuth Tools](/docs/azimuth/advanced-azimuth-tools)
2020
2121Expert-level tooling for generating, signing, and sending Azimuth-related
2222transactions from within Urbit itself.
content/docs/azimuth/azimuth.md+2−2
@@ -6,7 +6,7 @@ aliases = ["/docs/learn/azimuth"]
66+++
77Azimuth is a general-purpose public-key infrastructure (PKI) on the Ethereum blockchain, used as a platform for _Urbit identities_. You need such an identity to use the Arvo network.
88
9−The primary way to interact with Azimuth is through our [Bridge](https://github.com/urbit/bridge) application and the node libraries that it depends on, [azimuth-js](https://github.com/urbit/azimuth-js) and [urbit-key-generation](https://github.com/urbit/urbit-key-generation). Take a look at the source and play around, or see [Getting Started](@/getting-started/_index.md).
9+The primary way to interact with Azimuth is through our [Bridge](https://github.com/urbit/bridge) application and the node libraries that it depends on, [azimuth-js](https://github.com/urbit/azimuth-js) and [urbit-key-generation](https://github.com/urbit/urbit-key-generation). Take a look at the source and play around, or see [Getting Started](/getting-started/).
1010
1111## Arvo vs. Azimuth
1212
@@ -128,7 +128,7 @@ wallet address you generated on your hardware wallet for ownership.
128128Next, login to Bridge using your hardware wallet. While Bridge supports Trezor
129129and Ledger natively, this may require using Metamask as an intermediary anyways,
130130depending on which firmware you are running. Then [accept the
131−transfer](@/using/id/using-bridge.md#accept-your-transfer). Your Azimuth
131+transfer](/using/id/using-bridge#accept-your-transfer). Your Azimuth
132132point is now stored on your hardware wallet.
133133
134134To finish the process, use Bridge to set your management, voting, and spawn
content/docs/azimuth/life-and-rift.md+3−3
@@ -7,9 +7,9 @@ template = "doc.html"
77Associated to every Azimuth point are two non-negative integers known as _life_
88and _rift_. This numbering system partition messages according to the quantity
99of networking key changes and quantity of
10−[breaches](@/using/id/guide-to-breaches.md), respectively. This is explained in
11−more detail below. These values are utilized by [Ames](@/docs/arvo/ames/ames.md)
12−and [Jael](@/docs/arvo/jael/jael-api.md) to ensure that communication between
10+[breaches](/using/id/guide-to-breaches), respectively. This is explained in
11+more detail below. These values are utilized by [Ames](/docs/arvo/ames/ames)
12+and [Jael](/docs/arvo/jael/jael-api) to ensure that communication between
1313ships is always done with the most recent set of networking keys, and that
1414networking state is appropriately reset when a breach has occurred.
1515
content/docs/development/_index.md+5−5
@@ -8,25 +8,25 @@ insert_anchor_links = "right"
88
99This section covers the development process in general.
1010
11−## [Getting Started](@/docs/development/develop.md)
11+## [Getting Started](/docs/development/develop)
1212
1313An orientation to the various development paths within the Urbit ecosystem
1414
15−## [Environment Setup](@/docs/development/environment.md)
15+## [Environment Setup](/docs/development/environment)
1616
1717How to get your development environment ready for Urbit development.
1818
19−## [Grants Program](@/docs/development/grants.md)
19+## [Grants Program](/docs/development/grants)
2020
2121An introduction to our grants program, where you can earn address space for
2222contributing to the project.
2323
24−## [Project Repositories](@/docs/development/project-repositories.md)
24+## [Project Repositories](/docs/development/project-repositories)
2525
2626A directory of official code repositories, and unofficial community-maintained
2727ones.
2828
29−## [Precepts](@/docs/development/precepts.md)
29+## [Precepts](/docs/development/precepts)
3030
3131The principles behind Urbit's architecture and continued development.
3232
content/docs/development/develop.md+16−16
@@ -13,21 +13,21 @@ contribute to. At a high level, you can:
1313- [Build clients](#clients), which use Urbit as their back-end to store data and
1414 interact with the network
1515- [Develop agents](#agents), or more precisely [*gall*
16− agents](@/docs/userspace/gall/gall.md), which are written in [Hoon](/docs/hoon/)
16+ agents](/docs/userspace/gall/gall), which are written in [Hoon](/docs/hoon/)
1717 and can best be thought of as microservices
1818- [Contribute to Urbit's core](#core), which involves contributing to Urbit
1919 itself &mdash; either the operating system
2020 ([Arvo](https://github.com/urbit/urbit/tree/master/pkg/arvo)), runtime
2121 ([Vere](https://github.com/urbit/urbit/tree/master/pkg/urbit)), or public key
2222 infrastructure ([Azimuth](https://github.com/urbit/azimuth))
23−
23+
2424Below we'll go into more detail about each of these options and do our best to
2525point you towards a number of additional helpful resources that can be found
2626throughout the docs.
2727
2828### Build Clients {#clients}
2929
30−Urbit ships with [Landscape](@/docs/userspace/landscape/overview.md), which can be thought
30+Urbit ships with [Landscape](/docs/userspace/landscape/overview), which can be thought
3131of as its flagship client. Landscape can be broken into two different technical
3232components: there's the collection of [agents](#agents) that utilize the
3333Urbit for networking and data persistence, and the JavaScript client, which is
@@ -45,32 +45,32 @@ other Urbit ships without writing any Hoon code thanks to Urbit's HTTP APIs.
4545This could be a chat client, a writing app, a game, or anything else that can
4646communicate over HTTP.
4747
48−To get started quickly with the language of your choice, see the list
48+To get started quickly with the language of your choice, see the list
4949libraries that provide HTTP interfaces to Urbit [here](https://github.com/urbit/awesome-urbit#http-apis-airlock).
5050
5151To learn more about how to work with Urbit's HTTP interface, follow [this
52−guide](@/docs/arvo/eyre/using-eyre.md).
52+guide](/docs/arvo/eyre/using-eyre).
5353
5454Alternatively, command-line interface (CLI) applications can be built using a
5555library called `shoe`, which you can learn more about
56−[here](@/docs/hoon/guides/cli-tutorial.md). This does require Hoon knowledge.
56+[here](/docs/hoon/guides/cli-tutorial). This does require Hoon knowledge.
5757
5858### Develop Agents {#agents}
5959
6060Gall agents can be best thought of as individual services with a
6161statically-typed interface and built-in database. They're written in
62−[Hoon](@/docs/hoon/overview.md) and all conform to a specific
63−[interface](@/docs/userspace/gall/gall-api.md) that's defined by the kernel vane
64−called [Gall](@/docs/userspace/gall/gall.md).
62+[Hoon](/docs/hoon/overview) and all conform to a specific
63+[interface](/docs/userspace/gall/gall-api) that's defined by the kernel vane
64+called [Gall](/docs/userspace/gall/gall).
6565
6666Applications built on Urbit utilize a collection of different agents, each of
6767which handle specific functionality. The [Landscape
68−architecture](@/docs/userspace/landscape/overview.md) is a good reference implementation
68+architecture](/docs/userspace/landscape/overview) is a good reference implementation
6969to see how this pattern works in practice.
7070
7171If you want to learn how to build gall agents, your best bet is to first [learn
72−the Hoon programming language](@/docs/hoon/hoon-school/_index.md), and then follow that
73−up with the [Gall guide](@/docs/userspace/gall/tutorial.md).
72+the Hoon programming language](/docs/hoon/hoon-school/), and then follow that
73+up with the [Gall guide](/docs/userspace/gall/tutorial).
7474
7575### Contribute to Urbit Core {#core}
7676
@@ -105,11 +105,11 @@ communication for your ideas, you can also always reach out to us directly at
105105
106106From here, you'll probably want to learn more about:
107107
108−- How to set up a [development environment](@/docs/development/environment.md)
109−- Our [grants program](@/docs/development/grants.md), where you can earn address
108+- How to set up a [development environment](/docs/development/environment)
109+- Our [grants program](/docs/development/grants), where you can earn address
110110 space for helping the project grow
111111- The different [project
112− repositories](@/docs/development/project-repositories.md), both official and
112+ repositories](/docs/development/project-repositories), both official and
113113 community-maintained
114−- Our development [Precepts](@/docs/development/precepts.md), which outline the
114+- Our development [Precepts](/docs/development/precepts), which outline the
115115 philosophies that drive Urbit development
content/docs/development/grants.md+4−4
@@ -6,7 +6,7 @@ template = "doc.html"
66
77The [Urbit Foundation](https://urbit.org/blog/first-steps-towards-urbit-org/)
88runs a [Grants program](https://grants.urbit.org), where you can earn address
9−space ([stars](@/docs/glossary/star.md)) in exchange for contributing to the
9+space ([stars](/docs/glossary/star)) in exchange for contributing to the
1010project.
1111
1212Grants come in four different flavors at present: [bounties](#bounties),
@@ -21,7 +21,7 @@ us](https://calendly.com/wolref/30min).
2121[Bounties](https://grants.urbit.org/bounties) are specific, tightly-scoped
2222pieces of work that we at the Urbit Foundation think are of high value to the
2323ecosystem at large. They're frequently development-focused, but also often
24−relate to marketing, community-building or technical writing.
24+relate to marketing, community-building or technical writing.
2525
2626Bounties are usually competitive&mdash;worker requests should provide plenty of
2727information about why the requester is right candidate for the job.
@@ -59,8 +59,8 @@ time with us [here](https://calendly.com/wolref/30min).
5959Scholarships are the newest addition to the grants program that pairs
6060contributors with core Urbit developers to tackle infrastructure projects. These
6161generally take the form of contributions to
62−[Arvo](@/docs/system-overview/arvo.md) or
63−[Vere](@/docs/system-overview/vere.md).
62+[Arvo](/docs/system-overview/arvo) or
63+[Vere](/docs/system-overview/vere).
6464
6565Tackling a scholarship requires an advanced understanding of Urbit. It's
6666expected that you've got a demonstrated command of the Hoon language or other
content/docs/glossary/ames.md+4−4
@@ -8,12 +8,12 @@ category = "arvo"
88**Ames** is the name of the Urbit network and the [vane](../vane) that communicates over it. It's an encrypted peer-to-peer network composed of instances of the [Arvo](../arvo) operating system. Each [galaxy](../galaxy), [star](../star), [planet](../planet), [moon](../moon), and [comet](../comet) communicates over the network utilizing the Ames protocol.
99
1010Your ship upgrades itself with [OTA updates](../ota-updates) via communication over Ames. The web interface, [Landscape](../landscape), of ships can be accessed by typing `sampel-palnet.arvo.network` into a browser, where `sampel-palnet` is the name of your ship.
11−
11+
1212Network continuity occasionally needs to be broken, either at an individual
1313level to fix networking issues or at a network-wide level to update Arvo beyond
1414what OTA updates are capable of doing. These events are called [breaches](../breach).
1515### Further Reading
1616
17−- [The Ames tutorial](@/docs/arvo/ames/ames.md): An in-depth technical guide to the Ames protocol.
18−- [A Guide to Breaches](@/using/id/guide-to-breaches.md): Instructions on handling continuity breaches (resets) on the Ames network.
19−- [Ship Troubleshooting](@/using/os/ship-troubleshooting.md): General instructions on getting your ship to work, which includes network connectivity issues.
17+- [The Ames tutorial](/docs/arvo/ames/ames): An in-depth technical guide to the Ames protocol.
18+- [A Guide to Breaches](/using/id/guide-to-breaches): Instructions on handling continuity breaches (resets) on the Ames network.
19+- [Ship Troubleshooting](/using/os/ship-troubleshooting): General instructions on getting your ship to work, which includes network connectivity issues.
content/docs/glossary/aqua.md+1−1
@@ -13,4 +13,4 @@ Aqua is jetted with the usual [Nock](../nock) interpreter and thus virtual ships
1313
1414### Further Reading
1515
16−- [The Gall tutorial](@/docs/userspace/gall/gall.md): A technical guide to the Gall vane.
16+- [The Gall tutorial](/docs/userspace/gall/gall): A technical guide to the Gall vane.
content/docs/glossary/arm.md+2−2
@@ -10,5 +10,5 @@ An **arm** is a Hoon expression encoded as a noun. You can find them as part of
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.7: Arms and Cores](@/docs/hoon/hoon-school/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
13+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.7: Arms and Cores](/docs/hoon/hoon-school/arms-and-cores): A Hoon Tutorial lesson that discusses cores.
content/docs/glossary/arvo.md+2−2
@@ -34,7 +34,7 @@ A ship creates its own copy of Arvo via a bootstrap sequence known as a
3434
3535### Further Reading
3636
37−- [The Arvo tutorial](@/docs/arvo/overview.md): An in-depth technical
37+- [The Arvo tutorial](/docs/arvo/overview): An in-depth technical
3838 guide to Arvo and its vanes.
39−- [The Technical Overview](@/docs/system-overview/_index.md): An
39+- [The Technical Overview](/docs/system-overview/): An
4040 overview of all of Urbit.
content/docs/glossary/atom.md+3−3
@@ -15,6 +15,6 @@ number, etc, and an optional constant. A Hoon atom type is _warm_ or _cold_ base
1515
1616### Further Reading
1717
18−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
19− - [Lesson 1.2: Nouns](@/docs/hoon/hoon-school/nouns.md): A Hoon Tutoral lesson that explains how atoms work.
20−- [The Nock explanation](@/docs/nock/explanation.md): Includes an explanation of atoms.
18+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language.
19+ - [Lesson 1.2: Nouns](/docs/hoon/hoon-school/nouns): A Hoon Tutoral lesson that explains how atoms work.
20+- [The Nock explanation](/docs/nock/explanation): Includes an explanation of atoms.
content/docs/glossary/azimuth.md+3−3
@@ -13,6 +13,6 @@ It should be noted that Azimuth isn't built just for Arvo. It can be used as an
1313
1414### Further Reading
1515
16−- [The Azimuth concepts page](@/docs/azimuth/advanced-azimuth-tools.md): A more in-depth explanation of Azimuth, including information the storage of Urbit identities.
17−- [Install instructions](@/getting-started/_index.md): Guide to installing Urbit, which includes instructions on booting with your Urbit identity.
18−- [Understanding Urbit ID](@/understanding-urbit/urbit-id.md)
16+- [The Azimuth concepts page](/docs/azimuth/advanced-azimuth-tools): A more in-depth explanation of Azimuth, including information the storage of Urbit identities.
17+- [Install instructions](/getting-started/): Guide to installing Urbit, which includes instructions on booting with your Urbit identity.
18+- [Understanding Urbit ID](/understanding-urbit/urbit-id)
content/docs/glossary/battery.md+2−2
@@ -10,5 +10,5 @@ A **battery** is a collection of Hoon expressions and the head of a [core](../co
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.7: Arms and Cores](@/docs/hoon/hoon-school/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
13+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.7: Arms and Cores](/docs/hoon/hoon-school/arms-and-cores): A Hoon Tutorial lesson that discusses cores.
content/docs/glossary/behn.md+1−1
@@ -11,4 +11,4 @@ Behn is located in `/home/sys/vane/behn.hoon` within [Arvo](../arvo).
1111
1212### Further Reading
1313
14−- [The Behn tutorial](@/docs/arvo/behn/behn.md): A technical guide to the Behn vane.
14+- [The Behn tutorial](/docs/arvo/behn/behn): A technical guide to the Behn vane.
content/docs/glossary/breach.md+2−2
@@ -23,6 +23,6 @@ it to be the final one.
2323
2424### Further Reading
2525
26−- [Guide to breaches](@/using/id/guide-to-breaches.md): A more in-depth
26+- [Guide to breaches](/using/id/guide-to-breaches): A more in-depth
2727 explanation of breaches, including how to perform a personal breach.
28−- [Ship Troubleshooting](@/using/os/ship-troubleshooting.md): General instructions on getting your ship to work, which includes network connectivity issues.
28+- [Ship Troubleshooting](/using/os/ship-troubleshooting): General instructions on getting your ship to work, which includes network connectivity issues.
content/docs/glossary/bridge.md+2−2
@@ -28,5 +28,5 @@ This function allows you to view the public information of any Urbit identity, s
2828### Further Reading
2929
3030- [bridge.urbit.org](https://bridge.urbit.org/): The Bridge website.
31−- [Using Bridge](@/using/id/using-bridge.md): A guide to starting out with Bridge.
32−- [The Azimuth concepts page](@/docs/azimuth/advanced-azimuth-tools.md): A more in-depth explanation of our identity layer.
31+- [Using Bridge](/using/id/using-bridge): A guide to starting out with Bridge.
32+- [The Azimuth concepts page](/docs/azimuth/advanced-azimuth-tools): A more in-depth explanation of our identity layer.
content/docs/glossary/chat.md+1−1
@@ -28,5 +28,5 @@ There are two "kinds" of chats:
2828### Further Reading
2929
3030- [Landscape](../landscape) includes a web interface for using Chat.
31−- [Messaging guide](@/using/os/messaging.md): A guide to
31+- [Messaging guide](/using/os/messaging): A guide to
3232 using Chat from the command line.
content/docs/glossary/clay.md+2−2
@@ -14,5 +14,5 @@ Clay is located at `/home/sys/vane/clay.hoon` within Arvo.
1414
1515### Further Reading
1616
17−- [Using Your Ship](@/using/os/filesystem.md): A user guide that includes instructions on using Clay.
18−- [The Clay tutorial](@/docs/arvo/clay/clay.md): A technical guide to the Clay vane.
17+- [Using Your Ship](/using/os/filesystem): A user guide that includes instructions on using Clay.
18+- [The Clay tutorial](/docs/arvo/clay/clay): A technical guide to the Clay vane.
content/docs/glossary/comet.md+1−1
@@ -29,4 +29,4 @@ Some groups on [Landscape](../landscape) may not allow comet membership, but thi
2929
3030### Further reading
3131
32−- [Creating a Comet](@/getting-started/_index.md): A guide to spinning up a comet of your own.
32+- [Creating a Comet](/getting-started/): A guide to spinning up a comet of your own.
content/docs/glossary/core.md+2−2
@@ -10,5 +10,5 @@ A **core** is a cell of a [battery](../battery) and a [payload](../payload). It
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.7: Arms and Cores](@/docs/hoon/hoon-school/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
13+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.7: Arms and Cores](/docs/hoon/hoon-school/arms-and-cores): A Hoon Tutorial lesson that discusses cores.
content/docs/glossary/desk.md+1−1
@@ -12,4 +12,4 @@ Traditionally a ship has at least a base desk and a home desk. The base desk has
1212
1313### Further Reading
1414
15−- [Using Your Ship](@/using/os/filesystem.md): A user guide that includes instructions for using desks.
15+- [Using Your Ship](/using/os/filesystem): A user guide that includes instructions for using desks.
content/docs/glossary/dill.md+1−1
@@ -19,4 +19,4 @@ Dill is located at `/home/sys/vane/dill.hoon` within [Arvo](../arvo).
1919
2020### Further Reading
2121
22−- [The Dill tutorial](@/docs/arvo/dill/dill.md): A technical guide to the Dill vane.
22+- [The Dill tutorial](/docs/arvo/dill/dill): A technical guide to the Dill vane.
content/docs/glossary/dojo.md+1−1
@@ -11,4 +11,4 @@ The other default command-line app is [Chat](../chat). To switch between Dojo
1111and [Chat](../chat) press Ctrl-X. The Dojo is the first thing you encounter after successfully booting your [ship](../ship).
1212
1313### Further Reading
14−- [Hoon Tutorial Lesson 1.1: Setup](@/docs/hoon/hoon-school/setup.md): A great way to get started with using Hoon in the Dojo.
14+- [Hoon Tutorial Lesson 1.1: Setup](/docs/hoon/hoon-school/setup): A great way to get started with using Hoon in the Dojo.
content/docs/glossary/door.md+2−2
@@ -10,5 +10,5 @@ A **door** is a [core](../core) the payload of which is a cell of sample and con
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.8: Doors](@/docs/hoon/hoon-school/doors.md): A Hoon Tutorial lesson that discusses doors.
13+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.8: Doors](/docs/hoon/hoon-school/doors): A Hoon Tutorial lesson that discusses doors.
content/docs/glossary/eyre.md+1−1
@@ -14,4 +14,4 @@ Eyre is located at `/home/sys/vane/eyre.hoon` within [Arvo](../arvo).
1414
1515### Further Reading
1616
17−- [The Eyre tutorial](@/docs/arvo/eyre/eyre.md): A technical guide to the Eyre vane.
17+- [The Eyre tutorial](/docs/arvo/eyre/eyre): A technical guide to the Eyre vane.
content/docs/glossary/ford.md+1−1
@@ -14,4 +14,4 @@ Ford is located at `/home/sys/vane/ford.hoon` within [Arvo](../arvo).
1414
1515### Further Reading
1616
17−- [The Ford tutorial](@/docs/arvo/ford/ford.md): A technical guide to the Ford vane.
17+- [The Ford tutorial](/docs/arvo/ford/ford): A technical guide to the Ford vane.
content/docs/glossary/gall.md+3−3
@@ -12,6 +12,6 @@ Gall is located at `/home/sys/vane/gall.hoon` within Arvo.
1212
1313### Further Reading
1414
15−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language that will give you the foundation necessary for app development.
16− - [Lesson 2.7: Gall](@/docs/hoon/hoon-school/gall.md): A Hoon Tutorial lesson that explains how to write a simple Gall app.
17−- [The Gall tutorial](@/docs/userspace/gall/gall.md): A technical guide to the Gall vane.
15+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language that will give you the foundation necessary for app development.
16+ - [Lesson 2.7: Gall](/docs/hoon/hoon-school/gall): A Hoon Tutorial lesson that explains how to write a simple Gall app.
17+- [The Gall tutorial](/docs/userspace/gall/gall): A technical guide to the Gall vane.
content/docs/glossary/gate.md+2−2
@@ -10,5 +10,5 @@ A **gate** is [core](../core) with one [arm](../arm) named $. They are often cal
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14−- [Lesson 1.4 Gates](@/docs/hoon/hoon-school/gates.md): A Hoon tutorial lesson about gates.
13+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language.
14+- [Lesson 1.4 Gates](/docs/hoon/hoon-school/gates): A Hoon tutorial lesson about gates.
content/docs/glossary/hdwallet.md+1−1
@@ -14,4 +14,4 @@ If a proxy or ownership address is compromised or has its keys lost, it can alwa
1414
1515### Further Reading
1616
17−- [The Azimuth concepts page](@/docs/azimuth/advanced-azimuth-tools.md): A more in-depth explanation of Azimuth, including information about the HD wallet.
17+- [The Azimuth concepts page](/docs/azimuth/advanced-azimuth-tools): A more in-depth explanation of Azimuth, including information about the HD wallet.
content/docs/glossary/hoon.md+3−3
@@ -10,6 +10,6 @@ The Hoon source file is located in `/home/sys/hoon.hoon` within your Urbit.
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.1: Setup](@/docs/hoon/hoon-school/nouns.md): How to set up an environment for programming in Hoon.
15−- [Why Hoon?](@/blog/why-hoon.md): A blog post that explains why Urbit uses its own programming language.
13+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.1: Setup](/docs/hoon/hoon-school/nouns): How to set up an environment for programming in Hoon.
15+- [Why Hoon?](/blog/why-hoon): A blog post that explains why Urbit uses its own programming language.
content/docs/glossary/jaque.md+1−1
@@ -12,4 +12,4 @@ The current worker utilized by Vere is written in C, while Jaque is written usin
1212
1313### Further Reading
1414
15−- [The Vere tutorial](@/docs/vere/_index.md): Learning information for Vere.
15+- [The Vere tutorial](/docs/vere/): Learning information for Vere.
content/docs/glossary/keyfile.md+1−1
@@ -12,4 +12,4 @@ The keyfile is used as an argument in the command line when booting a ship. Duri
1212
1313### Further Reading
1414
15−- [Installation Guide](@/getting-started/_index.md): Instructions on using a keyfile to boot a ship.
15+- [Installation Guide](/getting-started/): Instructions on using a keyfile to boot a ship.
content/docs/glossary/mark.md+2−2
@@ -13,5 +13,5 @@ The [Ford](../ford) [vane](../vane) converts data between marks and validates da
1313
1414### Further Reading
1515
16−- [The Clay tutorial](@/docs/arvo/clay/clay.md): A technical guide to the Clay vane.
17−- [The Ford tutorial](@/docs/arvo/ford/ford.md): A technical guide to the Ford vane.
16+- [The Clay tutorial](/docs/arvo/clay/clay): A technical guide to the Clay vane.
17+- [The Ford tutorial](/docs/arvo/ford/ford): A technical guide to the Ford vane.
content/docs/glossary/moon.md+2−2
@@ -27,8 +27,8 @@ their parent planet.
2727
2828### Further Reading
2929
30−- [Using Your Ship](@/using/os/getting-started.md#moons): The "Moons" section contains instructions for creating and managing moons.
30+- [Using Your Ship](/using/os/getting-started#moons): The "Moons" section contains instructions for creating and managing moons.
3131
32−- [Lunar Urbit and the Internet of Things](@/blog/iot.md): Blog post on the
32+- [Lunar Urbit and the Internet of Things](/blog/iot): Blog post on the
3333 past, present, and future of moons
3434
content/docs/glossary/nock.md+1−1
@@ -14,4 +14,4 @@ Code written in [Hoon](../hoon) is compiled to Nock, though it is unnecessary to
1414
1515### Further Reading
1616
17−- [The Nock Tutorial](@/docs/nock/_index.md): An-in depth technical guide.
17+- [The Nock Tutorial](/docs/nock/): An-in depth technical guide.
content/docs/glossary/noun.md+3−3
@@ -10,6 +10,6 @@ A **noun** is an [atom](../atom) or a cell, which is an ordered pair of nouns. T
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.2: Nouns](@/docs/hoon/hoon-school/nouns.md): A Hoon Tutoral lesson that explains how nouns work.
15−- [The Nock explanation](@/docs/nock/_index.md): Includes a low-level explanation of nouns.
13+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.2: Nouns](/docs/hoon/hoon-school/nouns): A Hoon Tutoral lesson that explains how nouns work.
15+- [The Nock explanation](/docs/nock/): Includes a low-level explanation of nouns.
content/docs/glossary/payload.md+2−2
@@ -10,5 +10,5 @@ A **payload** is the set of data needed to run computations in a [core](../core)
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.7: Arms and Cores](@/docs/hoon/hoon-school/arms-and-cores.md): A Hoon Tutorial lesson that discusses cores.
13+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.7: Arms and Cores](/docs/hoon/hoon-school/arms-and-cores): A Hoon Tutorial lesson that discusses cores.
content/docs/glossary/pier.md+2−2
@@ -14,5 +14,5 @@ Note that a backup should usually _not_ be taken of your pier as a means of keep
1414### Further Reading
1515
1616- [Event Log](../eventlog): The main important content of the pier directory.
17−- [A Guide to Breaches](@/using/id/guide-to-breaches.md): Instructions on handling continuity breaches (resets) on the Ames network.
18−- [Ship Troubleshooting](@/using/os/ship-troubleshooting.md): General instructions on getting your ship to work, which includes network connectivity issues.
17+- [A Guide to Breaches](/using/id/guide-to-breaches): Instructions on handling continuity breaches (resets) on the Ames network.
18+- [Ship Troubleshooting](/using/os/ship-troubleshooting): General instructions on getting your ship to work, which includes network connectivity issues.
content/docs/glossary/proxies.md+1−1
@@ -26,4 +26,4 @@ Creates new child points given Ethereum address. For [stars](../stars) and [gala
2626### Further Reading
2727
2828- [Azimuth glossary page](../azimuth): The glossary entry for Azimuth.
29−- [The Azimuth concepts page](@/docs/azimuth/advanced-azimuth-tools.md): A more in-depth explanation of Azimuth, including information the storage of Urbit identities.
29+- [The Azimuth concepts page](/docs/azimuth/advanced-azimuth-tools): A more in-depth explanation of Azimuth, including information the storage of Urbit identities.
content/docs/glossary/replay.md+1−1
@@ -10,4 +10,4 @@ category = "arvo"
1010
1111### Further Reading
1212
13−- [The Vere tutorial](@/docs/vere/_index.md): An in-depth technical guide to Vere.
13+- [The Vere tutorial](/docs/vere/): An in-depth technical guide to Vere.
content/docs/glossary/ship.md+3−3
@@ -20,7 +20,7 @@ To be able to use the Arvo network, planets, stars, and galaxies must be combine
2020
2121### Further Reading
2222
23−- [Using Bridge](@/getting-started/_index.md): A guide to installing Urbit and booting a ship.
24−- [Ship Troubleshooting](@/using/os/ship-troubleshooting.md): General instructions on getting your ship to work, which includes network connectivity issues.
25−- [Understanding Urbit ID](@/understanding-urbit/urbit-id.md)
23+- [Using Bridge](/getting-started/): A guide to installing Urbit and booting a ship.
24+- [Ship Troubleshooting](/using/os/ship-troubleshooting): General instructions on getting your ship to work, which includes network connectivity issues.
25+- [Understanding Urbit ID](/understanding-urbit/urbit-id)
2626- [Pier](../pier): The directory containing a ship's state.
content/docs/glossary/sync.md+1−1
@@ -13,4 +13,4 @@ By default, in the [galaxy](../galaxy)/[star](../star)/[planet](../planet)/[moon
1313
1414### Further Reading
1515
16−- [Using Your Ship](@/using/os/filesystem.md): A user guide that includes instructions on using Clay commands, including `|sync`.
16+- [Using Your Ship](/using/os/filesystem): A user guide that includes instructions on using Clay commands, including `|sync`.
content/docs/glossary/trap.md+2−2
@@ -10,5 +10,5 @@ A **trap** is a [core](../core) with one arm named $ and no sample. They are oft
1010
1111### Further Reading
1212
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.4.1: Walkthrough: Recursion](@/docs/hoon/hoon-school/recursion.md): A Hoon Tutorial lesson that uses traps to build recursive functions.
13+- [The Hoon Tutorial](/docs/hoon/hoon-school/): Our guide to learning the Hoon programming language.
14+ - [Lesson 1.4.1: Walkthrough: Recursion](/docs/hoon/hoon-school/recursion): A Hoon Tutorial lesson that uses traps to build recursive functions.
content/docs/glossary/vane.md+1−1
@@ -21,4 +21,4 @@ A **vane** is an [Arvo](../arvo) kernel module that performs essential system op
2121
2222### Further Reading
2323
24−- [The Arvo tutorial](@/docs/arvo/overview.md): An in-depth technical guide to Arvo and its vanes.
24+- [The Arvo tutorial](/docs/arvo/overview): An in-depth technical guide to Arvo and its vanes.
content/docs/glossary/vere.md+2−2
@@ -14,5 +14,5 @@ Vere consists of two processes that communicate via a socket: a daemon process i
1414
1515### Further Reading
1616
17−- [The Technical Overview](@/docs/system-overview/_index.md)
18−- [The Vere tutorial](@/docs/vere/_index.md): An in-depth technical guide to Vere.
17+- [The Technical Overview](/docs/system-overview/)
18+- [The Vere tutorial](/docs/vere/): An in-depth technical guide to Vere.
content/docs/hoon/_index.md+5−5
@@ -8,20 +8,20 @@ insert_anchor_links = "right"
88
99Hoon is Urbit's high-level general-purpose programming language.
1010
11−### [Overview](@/docs/hoon/overview.md)
11+### [Overview](/docs/hoon/overview)
1212
13−An overview of why [Arvo](@/docs/arvo/overview.md) was written using Hoon.
13+An overview of why [Arvo](/docs/arvo/overview) was written using Hoon.
1414
15−### [Hoon School](@/docs/hoon/hoon-school/_index.md)
15+### [Hoon School](/docs/hoon/hoon-school/)
1616
1717A series of lessons designed to get the beginner started with Hoon. This is our
1818recommended starting point for anyone who wishes to learn Hoon.
1919
20−### [Guides](@/docs/hoon/guides/_index.md)
20+### [Guides](/docs/hoon/guides/)
2121
2222Tutorials on how to do specific tasks with Hoon.
2323
24−### [Reference](@/docs/hoon/reference/_index.md)
24+### [Reference](/docs/hoon/reference/)
2525
2626Technical reference material on Hoon, including runes, the type system, and the
2727standard library.
content/docs/hoon/guides/_index.md+3−3
@@ -6,8 +6,8 @@ template = "sections/docs/chapters.html"
66insert_anchor_links = "right"
77+++
88
9−## [Writing Aqua Tests](@/docs/hoon/guides/aqua.md)
9+## [Writing Aqua Tests](/docs/hoon/guides/aqua)
1010
11−## [CLI Apps](@/docs/hoon/guides/cli-tutorial.md)
11+## [CLI Apps](/docs/hoon/guides/cli-tutorial)
1212
13−## [Parsing](@/docs/hoon/guides/parsing.md)
13+## [Parsing](/docs/hoon/guides/parsing)
content/docs/hoon/guides/cli-tutorial.md+5−5
@@ -22,7 +22,7 @@ the functionality of the `%shoe` app and then go through the code line-by-line.
2222
2323This tutorial can be
2424considered to be an application equivalent of the [Hoon school
25−lesson](@/docs/hoon/hoon-school/generators.md#ask) on `sole` and `%ask`
25+lesson](/docs/hoon/hoon-school/generators#ask) on `sole` and `%ask`
2626generators, which only covers the bare minimum necessary to write generators
2727that take user input.
2828
@@ -54,7 +54,7 @@ emitted to. An empty `sole-ids` sends the effect to all connected sessions.
5454prompt, beeping, etc. These are described in the section on the [`sole` library](#the-sole-library).
5555
5656For example, a `%shoe` `card` that causes all connected sessions to beep would
57−be `[%shoe ~ %sole %bel ~]`.
57+be `[%shoe ~ %sole %bel ~]`.
5858
5959### `shoe` core
6060
@@ -166,7 +166,7 @@ be structured as
166166## `%shoe` app walkthrough {#shoe-app-walkthrough}
167167
168168Here we explore the capabilities of the `%shoe` example app and then go through
169−the code, explaining what each line does.
169+the code, explaining what each line does.
170170
171171### Playing with `%shoe`
172172
@@ -182,7 +182,7 @@ automatically
182182change the prompt to `~zod:shoe>` and `~nus:shoe>`. Type `demo` and watch the following appear:
183183```
184184~zod ran the command
185−~zod:shoe>
185+~zod:shoe>
186186```
187187`~zod ran the command` should be displayed in bold green text, signifying that
188188the command originated locally.
@@ -336,7 +336,7 @@ Here begins the implementation of the additional arms required by the
336336`+command-parser` is of central importance - it is what is used to parse user
337337input and transform it into `command`s for the app to execute. Writing a proper
338338command parser requires understanding of the Hoon parsing functions found in the
339−standard library. How to do so may be found in the [parsing tutorial](@/docs/hoon/guides/parsing.md). For now, it is sufficient to know that this arm matches the text "demo" and
339+standard library. How to do so may be found in the [parsing tutorial](/docs/hoon/guides/parsing). For now, it is sufficient to know that this arm matches the text "demo" and
340340produces a `[? command]`-shaped noun in response. Note how the `&` signifies that the command will be run as soon as it has been entered, without waiting for the user to press return.
341341
342342
content/docs/hoon/guides/parsing.md+13−13
@@ -143,11 +143,11 @@ words, a parser.
143143
144144These functions are used to build `rule`s (i.e. parsers), and thus are often
145145called rule-builders. For a complete list of parser builders, see [4f: Parsing
146−(Rule-Builders)](@/docs/hoon/reference/stdlib/4f.md), but also the more specific
146+(Rule-Builders)](/docs/hoon/reference/stdlib/4f), but also the more specific
147147functions in [4h: Parsing (ASCII
148−Glyphs)](@/docs/hoon/reference/stdlib/4h.md), [4i: Parsing (Useful
149−Idioms)](@/docs/hoon/reference/stdlib/4i.md), [4j: Parsing (Bases and Base
150−Digits)](@/docs/hoon/reference/stdlib/4j.md), [4l: Atom Parsing](@/docs/hoon/reference/stdlib/4l.md).
148+Glyphs)](/docs/hoon/reference/stdlib/4h), [4i: Parsing (Useful
149+Idioms)](/docs/hoon/reference/stdlib/4i), [4j: Parsing (Bases and Base
150+Digits)](/docs/hoon/reference/stdlib/4j), [4l: Atom Parsing](/docs/hoon/reference/stdlib/4l).
151151
152152### `+just`
153153
@@ -243,7 +243,7 @@ is `%foo`.
243243```
244244
245245One common scenario where `+cold` sees play is when writing [command line
246−interface (CLI) apps](@/docs/hoon/guides/cli-tutorial.md). We usher the
246+interface (CLI) apps](/docs/hoon/guides/cli-tutorial). We usher the
247247reader there to find an example where `+cold` is used.
248248
249249
@@ -268,7 +268,7 @@ alongside a `rule`, and attempt to parse the input with the `rule`. If the
268268parse succeeds, it returns the result. There are crashing and unitized versions
269269of each caller, corresponding to what happens when a parse fails.
270270
271−For additional information including additional examples see [4g: Parsing (Outside Caller)](@/docs/hoon/reference/stdlib/4g.md).
271+For additional information including additional examples see [4g: Parsing (Outside Caller)](/docs/hoon/reference/stdlib/4g).
272272
273273### Parsing `tape`s
274274
@@ -298,7 +298,7 @@ need to deal directly with `nail`s except where it is ilustrative to do so.
298298
299299### Parsing atoms
300300
301−[Recall](@/docs/hoon/hoon-school/lists.md) that `cord`s are atoms with the aura
301+[Recall](/docs/hoon/hoon-school/lists) that `cord`s are atoms with the aura
302302`@t` and are typically used to represent strings internally as data, as atoms
303303are faster for the computer to work with than `tape`s, which are `list`s of
304304`@tD` atoms. `+rash` and `+rush` are for parsing atoms, with `+rash` being
@@ -310,7 +310,7 @@ similary for `+rust`.
310310
311311The standard library provides a number of gates that take a `rule` and
312312produce a new modified `rule` according to some process. We call these _parser modifiers_. These are
313−documented among the [parser builders](@/docs/hoon/reference/stdlib/4f.md).
313+documented among the [parser builders](/docs/hoon/reference/stdlib/4f).
314314
315315
316316### `+ifix`
@@ -324,7 +324,7 @@ surrounded on both sides by text that matches a pair of `rule`s, which is discar
324324```
325325`+pal` and `+par` are shorthand for `(just '(')` and `(just ')')`, respectively. All
326326ASCII glyphs have counterparts of this sort, documented
327−[here](@/docs/hoon/reference/stdlib/4h.md).
327+[here](/docs/hoon/reference/stdlib/4h).
328328
329329
330330### `+star` {#star}
@@ -353,8 +353,8 @@ and we note that the parsing ceases when it fails.
353353
354354Building complex parsers from simpler parsers is accomplished in Hoon with the
355355use of two tools: the monadic applicator rune
356−[`;~`](@/docs/hoon/reference/rune/mic.md#micsig) and [parsing
357−combinators](@/docs/hoon/reference/stdlib/4e.md). First we introduce a few
356+[`;~`](/docs/hoon/reference/rune/mic#micsig) and [parsing
357+combinators](/docs/hoon/reference/stdlib/4e). First we introduce a few
358358combinators, then we examine more closely how `;~` is used to chain them together.
359359
360360The syntax to combine `rule`s is
@@ -448,7 +448,7 @@ syntax error
448448## Parsing numbers
449449
450450Functions for parsing numbers are documented in [4j: Parsing (Bases and Base
451−Digits)](@/docs/hoon/reference/stdlib/4j.md). In particular, `dem` is a `rule`
451+Digits)](/docs/hoon/reference/stdlib/4j). In particular, `dem` is a `rule`
452452for parsing decimal numbers.
453453
454454```
@@ -593,7 +593,7 @@ and over again. Then it follows the `rule` we described above.
593593An _expression_ is either a term plus an expression or a term.
594594
595595In the case of a term plus an expression, we actually must compute what that equals. Thus we will
596−make use of [`+slug`](@/docs/hoon/reference/stdlib/4f.md#slug), which parses a
596+make use of [`+slug`](/docs/hoon/reference/stdlib/4f#slug), which parses a
597597delimited list into `tape`s separated by a given delimiter and then composes
598598them by folding with a binary gate. In this case, our delimiter is `+` and our
599599binary gate is `+add`. That is to say, we will split the input string into terms
content/docs/hoon/hoon-school/_index.md+2−2
@@ -19,8 +19,8 @@ offering a practical implementation of the concepts taught in the reading
1919before.
2020
2121If you're curious about why Urbit is written in this new language, we recommend
22−reading the [Hoon overview](@/docs/hoon/overview.md) that covers the high-level
23−design decisions behind the language.
22+reading the [Hoon overview](/docs/hoon/overview) that covers the high-level
23+design decisions behind the language.
2424
2525Chapter 1 introduces and explains the fundamental concepts you need in order to
2626understand Hoon's semantics.
content/docs/hoon/hoon-school/arms-and-cores.md+3−3
@@ -181,7 +181,7 @@ To reinforce your newfound understanding of arms and cores, let's go over the va
181181
182182### Address-Based Wings
183183
184−In the [previous lesson](@/docs/hoon/hoon-school/the-subject-and-its-legs.md), you saw how the following expressions return legs based on an address in the subject: `+n`, `.`, `-`, `+`, `+>`, `+<`, `->`, `-<`, `&`, `|` etc. When these resolve to the part of the subject containing an arm, they **don't** evaluate the arm. They simply return the indicated noun fragment of the subject, as if it were a leg.
184+In the [previous lesson](/docs/hoon/hoon-school/the-subject-and-its-legs), you saw how the following expressions return legs based on an address in the subject: `+n`, `.`, `-`, `+`, `+>`, `+<`, `->`, `-<`, `&`, `|` etc. When these resolve to the part of the subject containing an arm, they **don't** evaluate the arm. They simply return the indicated noun fragment of the subject, as if it were a leg.
185185
186186Let's use `-.c` to look at the head of `c`, i.e., the battery of the core:
187187
@@ -574,7 +574,7 @@ and so on, down to
574574 $@(~ [~ u=item])
575575--
576576```
577−This core contains the arms in parts [1a-1c of the standard library documentation](@/docs/hoon/reference/stdlib/1a.md). If you count them, there are 41 arms in the core from `++ add` down to `++ unit`. We again can see this fact reflected in the dojo by looking at the subject of `add`.
577+This core contains the arms in parts [1a-1c of the standard library documentation](/docs/hoon/reference/stdlib/1a). If you count them, there are 41 arms in the core from `++ add` down to `++ unit`. We again can see this fact reflected in the dojo by looking at the subject of `add`.
578578```
579579> ..add
580580<41.mac 1.ane $141>
@@ -582,7 +582,7 @@ This core contains the arms in parts [1a-1c of the standard library documentatio
582582Here we see that core containing `hoon-version` is in the subject of the
583583section one core.
584584
585−Next, [section two](@/docs/hoon/reference/stdlib/2a.md) starts:
585+Next, [section two](/docs/hoon/reference/stdlib/2a) starts:
586586```
587587=>
588588:: ::
content/docs/hoon/hoon-school/atoms-auras-and-simple-cell-types.md+2−2
@@ -18,7 +18,7 @@ In this lesson we'll cover (1)-(4) as they pertain to atoms and simple cell type
1818
1919## Atoms and Auras
2020
21−In [Lesson 1.2](@/docs/hoon/hoon-school/nouns.md) we defined what an atom is: any unsigned integer. In this lesson we'll expand on that discussion, going over how Hoon's type system implements auras.
21+In [Lesson 1.2](/docs/hoon/hoon-school/nouns) we defined what an atom is: any unsigned integer. In this lesson we'll expand on that discussion, going over how Hoon's type system implements auras.
2222
2323In the most straightforward sense, atoms simply are unsigned integers. But they can also be interpreted as representing signed integers, ASCII symbols, floating-point values, dates, binary numbers, hexadecimal numbers, and more. Every atom is, in and of itself, just an unsigned integer; but Hoon keeps track of type information about each atom, and this info tells Hoon how to interpret the atom in question.
2424
@@ -109,7 +109,7 @@ Aura Meaning Example Literal Syntax
109109
110110Some of these auras nest under others. For example, `@u` is for all unsigned auras. But there are other, more specific auras; `@ub` for unsigned binary numbers, `@ux` for unsigned hexadecimal numbers, etc.
111111
112−For a more complete list of auras, see [Auras](@/docs/hoon/reference/auras.md).
112+For a more complete list of auras, see [Auras](/docs/hoon/reference/auras).
113113
114114## Aura Inference in Hoon
115115
content/docs/hoon/hoon-school/bank-account.md+1−1
@@ -75,6 +75,6 @@ Each of these arms produces a gate which takes an `@ud` argument. Each of these
7575+>.$(balance (add balance amount))
7676```
7777
78−`+>` is [wing syntax](@/docs/hoon/reference/limbs/wing.md). This particular wing construction looks for the tail of the tail (the third element) in `$`, the subject of the gate we are in. The `withdraw` and `deposit` arms create gates with the entire `new-account` door as the context in their cores' `[battery sample context]`, in the "tail of the tail" slot. We change `balance` to be the result of adding `balance` and `amount` and produce the door as the result. `withdraw` functions the same way only doing subtraction instead of addition.
78+`+>` is [wing syntax](/docs/hoon/reference/limbs/wing). This particular wing construction looks for the tail of the tail (the third element) in `$`, the subject of the gate we are in. The `withdraw` and `deposit` arms create gates with the entire `new-account` door as the context in their cores' `[battery sample context]`, in the "tail of the tail" slot. We change `balance` to be the result of adding `balance` and `amount` and produce the door as the result. `withdraw` functions the same way only doing subtraction instead of addition.
7979
8080It's important to notice that the sample, `balance`, is stored as part of the door rather than existing outside of it.
content/docs/hoon/hoon-school/behn.md+4−4
@@ -6,17 +6,17 @@ template = "doc.html"
66
77In this lesson we introduce the notion of a vane, which should be thought of as a kernel module for Arvo (if you don't know what that means yet, just keep reading). We first present a primer on what vanes are and how they communicate, followed by an examination of the simplest vane, known as Behn (pronounced like "bane"), which is Arvo's timekeeper.
88
9−Following this lesson, we will introduce Gall, a vane used to build user space apps. Then we have a walkthrough where we construct an [egg timer](@/docs/hoon/hoon-school/egg-timer.md) as a Gall app that interacts with Behn.
9+Following this lesson, we will introduce Gall, a vane used to build user space apps. Then we have a walkthrough where we construct an [egg timer](/docs/hoon/hoon-school/egg-timer) as a Gall app that interacts with Behn.
1010
1111## Vanes
1212
1313In order to introduce vanes, we must first introduce the concept of a [kernel](https://en.wikipedia.org/wiki/Kernel_(operating_system)). The kernel is in some sense the "core" of an operating system, in that it has complete control over all events in the system and may perform any operation. It is the first part of the operating system to boot, and is responsible for spawning all other processes and routing their communication to one another. The tasks a kernel performs are very low level - managing memory, prioritizing processes, keeping track of time, managing hardware I/O, etc.
1414
15−Kernel code is generally kept to be as minimal as possible, and so almost anything non-trivial is put into an extension called a kernel module. **Vanes** are kernel modules for Arvo. Arvo currently has eight vanes known as Ames, Behn, Clay, Dill, Eyre, Ford, Gall, and Hall. You can read a short description of each one in [Arvo](@/docs/arvo/_index.md), along with a more thorough explanation of how vanes communicate than the following.
15+Kernel code is generally kept to be as minimal as possible, and so almost anything non-trivial is put into an extension called a kernel module. **Vanes** are kernel modules for Arvo. Arvo currently has eight vanes known as Ames, Behn, Clay, Dill, Eyre, Ford, Gall, and Hall. You can read a short description of each one in [Arvo](/docs/arvo/), along with a more thorough explanation of how vanes communicate than the following.
1616
1717Vanes communicate with one another by exchanging chunks of data known as
1818`move`s. We will get into more detail above what a `move` is in our example of
19−Behn below, (and also see [move traces](@/docs/arvo/tutorials/move-trace.md)) but at a high level one should think of a `move` as either a request from one vane to another or a response to a request. In our egg timer app, Gall and Behn will be exchanging `move`s.
19+Behn below, (and also see [move traces](/docs/arvo/tutorials/move-trace)) but at a high level one should think of a `move` as either a request from one vane to another or a response to a request. In our egg timer app, Gall and Behn will be exchanging `move`s.
2020
2121Notably, vanes are _not_ something that a user ever interacts with directly. They live in an area of the memory called "kernel space", while all user processes live in [user space](https://en.wikipedia.org/wiki/User_space). Applications in user space make _system calls_ to the kernel, which the kernel may or may not obey (for security and stability purposes). These requests could be things such as asking for the time, getting the input of a hardware device, making an http request, or moving a file. In our egg timer app, we will be making system calls to ask Behn to handle the timer aspect.
2222
@@ -62,7 +62,7 @@ A `duct` is a call stack, which is a list of `path`s that represent a step in a
6262 $% [%pass p=path q=a] :: advance
6363 [%slip p=a] :: lateral
6464 [%give p=b] :: retreat
65− ==
65+ ==
6666```
6767Here we see that `wind` produces a wet gate that takes in two molds, which for the `move` type for Behn are `note`s and `gift`s. When a vane needs to request something of another vane, it `%pass`es a `note`. When a vane produces a result that was requested, it `%gives` a `gift` to the callee.
6868
content/docs/hoon/hoon-school/caesar.md+9−9
@@ -186,7 +186,7 @@ code a little clearer.
186186`trim` is a a gate from the standard library that splits a tape at into two
187187parts at a specified position. So `=+ (trim (mod my-steps length) my-alphabet)` splits the
188188tape `my-alphabet` into two parts, `p` and `q`, which are now directly available in the subject.
189−We call the modulus operation `mod` to make sure that the point at which we split our `tape` is
189+We call the modulus operation `mod` to make sure that the point at which we split our `tape` is
190190a valid point inside of `my-alphabet` even if `my-steps` is greater than `length`, the length of
191191`my-alphabet`. Try trim in the dojo:
192192
@@ -199,7 +199,7 @@ a valid point inside of `my-alphabet` even if `my-steps` is greater than `length
199199```
200200
201201`(weld q p)` uses `weld`, which combines two strings into one. Remember that `trim` has given us
202−a split version of `my-alphabet` with `p` being the front half that was split off of `my-alphabet`
202+a split version of `my-alphabet` with `p` being the front half that was split off of `my-alphabet`
203203and `q` being the back half. Here we are welding the two parts back together, but in reverse order:
204204the second part `q` is welded to the front, and the first part `p` is welded to the back.
205205
@@ -217,15 +217,15 @@ the second part `q` is welded to the front, and the first part `p` is welded to
217217```
218218
219219The `map-maker` arm, as the name implies, takes two tapes and creates a [`map`](/docs/hoon/reference/stdlib/2o/#map) out of them.
220−A `map` is a type equivalent to a dictionary in other languages: it's a data structure that
221−associates a key with a value. If, for example, we wanted to have an association
220+A `map` is a type equivalent to a dictionary in other languages: it's a data structure that
221+associates a key with a value. If, for example, we wanted to have an association
222222between `a` and 1 and `b` and 2, we could use a `map`.
223223
224224`|= [a=tape b=tape]` builds a gate that takes two tapes, `a` and `b`, as its
225225sample.
226226
227227`^- (map @t @t)` casts the gate to a `map` with a `cord` (or `@t`) key and a `cord`
228−value.
228+value.
229229
230230You might wonder, if our gate in this arm takes `tape`s, why then are we producing
231231a map of `cord` keys and values?
@@ -233,7 +233,7 @@ a map of `cord` keys and values?
233233As we discussed earlier, a `tape` is a list of `cord`s. In this case what we are going to do
234234is map a single element of a `tape` (either our alphabet or shifted-alphabet) to an element of
235235a different `tape` (either our shifted-alphabet or our alphabet). This pair will therefore be
236−a pair of `cord`s. When we go to use this `map` to convert our incoming `msg`, we will take
236+a pair of `cord`s. When we go to use this `map` to convert our incoming `msg`, we will take
237237each element (`cord`) of our `msg` `tape`, use it as a `key` when accessing our `map` and get
238238the corresponding `value` from that position in the `map`. This is how we're going to encode
239239or decode our `msg` `tape`.
@@ -256,7 +256,7 @@ that constructs our `map`: `$(chart (~(put by chart) i.a i.b), a t.a, b t.b)`.
256256This code recursively adds an entry in our `map` where the head of the `tape` `a`
257257maps to the value of the head of `tape` `b` with `~(put by chart)`, our calling
258258of the `put` arm of the `by` map-engine core (note that `~(<wing> <door> <sample>`) is
259−a shorthand for `%~ <wing> <door> <sample>` (see the [Calls % ('cen')](@/docs/hoon/reference/rune/cen.md#censig)
259+a shorthand for `%~ <wing> <door> <sample>` (see the [Calls % ('cen')](/docs/hoon/reference/rune/cen#censig)
260260documentation for more information). The recursion also "consumes"
261261those heads with every iteration by changing `a` and `b` to their tails using `a t.a, b t.b`.
262262
@@ -301,7 +301,7 @@ In both cases, we create a gate that accepts a `@ud` named `steps`.
301301
302302In `encoder`:
303303`=/ value-tape=tape (rotation alpha steps)` creates a `value-tape` noun by calling `rotation`
304−on `alpha`. `alpha` is our arm which contains a `tape` of the entire alphabet. The
304+on `alpha`. `alpha` is our arm which contains a `tape` of the entire alphabet. The
305305`value-tape` will be the list of `value`s in our `map`.
306306
307307In `decoder`:
@@ -355,7 +355,7 @@ with a pair sample. The arm we are going to pull is `turn`. This arm
355355takes two arguments, a `list` and a `gate` to apply to each element of the
356356`list`.
357357
358−In this case, the `gate` we are applying to our `message` uses the `got` arm
358+In this case, the `gate` we are applying to our `message` uses the `got` arm
359359of the `by` door with our `shift-map` as the sample (which is either the standard alphabet
360360for keys, and the shifted alphabet for values, or the other way, depending on
361361whether we are encoding or decoding) to look up each `cord` in our `message`, one by one
content/docs/hoon/hoon-school/conditionals.md+2−2
@@ -18,7 +18,7 @@ In this lesson, we will write a generator that takes an integer and checks if it
1818==
1919```
2020
21−On the very first line, with `:- %say` we are beginning to create a generator of the `%say` variety. The result of a `%say` generator is a cell with a head of `%say` and tail that is a [gate](/docs/glossary/gate/), itself producing a `cask`, a pair of a `mark` and some data. It's not important for understanding conditionals; this is just template code. For more information about `%say` generators, see the [Generators](@/docs/hoon/hoon-school/generators.md) documentation.
21+On the very first line, with `:- %say` we are beginning to create a generator of the `%say` variety. The result of a `%say` generator is a cell with a head of `%say` and tail that is a [gate](/docs/glossary/gate/), itself producing a `cask`, a pair of a `mark` and some data. It's not important for understanding conditionals; this is just template code. For more information about `%say` generators, see the [Generators](/docs/hoon/hoon-school/generators) documentation.
2222
2323```hoon
2424|= [* [n=@ud ~] ~]
@@ -102,4 +102,4 @@ Of course, doing so would be needlessly obfuscating -- we mention this only to i
102102
103103- `?|` takes an indefinite number of children. It's the logical "or" operator. It checks if at least one of its children is true.
104104
105−To see an exhaustive list of "wut" runes, check out the [reference documentation on conditionals](@/docs/hoon/reference/rune/wut.md).
105+To see an exhaustive list of "wut" runes, check out the [reference documentation on conditionals](/docs/hoon/reference/rune/wut).
content/docs/hoon/hoon-school/doors.md+1−1
@@ -395,7 +395,7 @@ Readers with some mathematical background may notice that `~( )` expressions all
395395Thus, you may think of the `c` door as a function for making functions. Use the `~(arm c arg)` syntax -- `arm` defines which kind of gate is produced (i.e., which arm of the door is used to create the gate), and `arg` defines the value of `b` in that gate, which in turn affects the product value of the gate produced.
396396
397397The standard library provides [currying
398−functionality](@/docs/hoon/reference/stdlib/2n.md#curry) outside of the context of
398+functionality](/docs/hoon/reference/stdlib/2n#curry) outside of the context of
399399doors - see `+curr` and `+cury`.
400400
401401#### Creating Doors with a Modified Sample
content/docs/hoon/hoon-school/gall.md+1−1
@@ -7,7 +7,7 @@ aliases = ["/docs/learn/hoon/hoon-tutorial/gall/"]
77
88Gall is the Arvo vane responsible for handling user space applications. When writing a Gall application there are several things you will need to understand.
99
10−For additional information on Gall, see the [Gall docs](@/docs/arvo/gall/_index.md).
10+For additional information on Gall, see the [Gall docs](/docs/arvo/gall/).
1111
1212## bowl and moves
1313
content/docs/hoon/hoon-school/hoon-syntax.md+15−15
@@ -84,7 +84,7 @@ We start with atom literals. Each of these is a basic expression of Hoon that ev
8484~zod
8585```
8686
87−Recall from [Lesson 1.2](@/docs/hoon/hoon-school/nouns.md) that even though atoms are unsigned integers, they can be pretty-printed in different ways. The way an atom is to be represented depends on its aura. The literal syntax for each of the hard-coded auras will be explained further in [Lesson 2.1](@/docs/hoon/hoon-school/atoms-auras-and-simple-cell-types.md).
87+Recall from [Lesson 1.2](/docs/hoon/hoon-school/nouns) that even though atoms are unsigned integers, they can be pretty-printed in different ways. The way an atom is to be represented depends on its aura. The literal syntax for each of the hard-coded auras will be explained further in [Lesson 2.1](/docs/hoon/hoon-school/atoms-auras-and-simple-cell-types).
8888
8989Cell literals can be written in Hoon using `[ ]`. Cell literals are complex, because other expressions are put inside the square brackets. Examples:
9090
@@ -111,7 +111,7 @@ You can also put complex expressions inside square brackets to make a cell. Thes
111111
112112### Wings
113113
114−A wing expression is a series of limb expressions separated by `.`. A deeper explanation can be found on the [wing](@/docs/hoon/reference/limbs/wing.md) and [limb](@/docs/hoon/reference/limbs/limb.md) reference pages.
114+A wing expression is a series of limb expressions separated by `.`. A deeper explanation can be found on the [wing](/docs/hoon/reference/limbs/wing) and [limb](/docs/hoon/reference/limbs/limb) reference pages.
115115
116116Let’s start with the base case: a single limb. A limb expression is a trivial wing expression -- there is only one limb in the series. Some one-limb wings:
117117
@@ -124,7 +124,7 @@ Let’s start with the base case: a single limb. A limb expression is a trivial
124124- `add`
125125- `mul`
126126
127−As a special limb we also have `$`. This is the name of the [arm](/docs/glossary/arm/) in special one-armed [cores](/docs/glossary/core/) called “gates”. (We’ll cover the role of `$` in [Lesson 1.4](@/docs/hoon/hoon-school/gates.md).)
127+As a special limb we also have `$`. This is the name of the [arm](/docs/glossary/arm/) in special one-armed [cores](/docs/glossary/core/) called “gates”. (We’ll cover the role of `$` in [Lesson 1.4](/docs/hoon/hoon-school/gates).)
128128
129129Wing expressions with multiple limbs are complex expressions. Examples:
130130
@@ -141,7 +141,7 @@ Wing expressions with multiple limbs are complex expressions. Examples:
141141
142142Hoon is a statically typed language. You’ll learn more about the type system later in the chapter. For now, just know that Hoon’s type system uses special symbols to indicate certain fundamental types: `~` (null), `*` (noun), `@` (atom), `^` (cell), and `?` (flag). Each of these symbols can be used as a stand-alone expression of Hoon. In the case of `@` there may be a series of letters following it, to indicate an atom aura; e.g., `@s`, `@rs`, `@tas`, and `@tD`.
143143
144−They may also be put in brackets to indicate compound types, e.g., `[@ ^]`, `[@ud @sb]`, `[[? *] ^]`. (Technically these expressions don’t _always_ indicate compound types. In certain contexts they’re interpreted in a different way. We’ll address this variation of meaning in [Lesson 2.3](@/docs/hoon/hoon-school/structures-and-complex-types.md).)
144+They may also be put in brackets to indicate compound types, e.g., `[@ ^]`, `[@ud @sb]`, `[[? *] ^]`. (Technically these expressions don’t _always_ indicate compound types. In certain contexts they’re interpreted in a different way. We’ll address this variation of meaning in [Lesson 2.3](/docs/hoon/hoon-school/structures-and-complex-types).)
145145
146146### Rune Expressions
147147
@@ -151,7 +151,7 @@ Expressions with a rune at the beginning are rune expressions. Most runes are us
151151
152152Runes are classified by family (with the exceptions of `--` and `==`). The first of the two symbols indicates the family -- e.g., the `^-` rune is in the `^` family of runes, and the `|=` and `|%` runes are in the `|` family. The runes of particular family usually have related meanings. Two simple examples: the runes in the `|` family are all used to create cores, and the runes in the `:` family are all used to create cells.
153153
154−Rune expressions are usually complex, which means they usually have one or more subexpressions. The appropriate syntax varies from rune to rune; after all, they’re used for different purposes. To see the syntax rules for a particular rune, consult the [rune reference](@/docs/hoon/reference/rune/_index.md). Nevertheless, there are some general principles that hold of all rune expressions.
154+Rune expressions are usually complex, which means they usually have one or more subexpressions. The appropriate syntax varies from rune to rune; after all, they’re used for different purposes. To see the syntax rules for a particular rune, consult the [rune reference](/docs/hoon/reference/rune/). Nevertheless, there are some general principles that hold of all rune expressions.
155155
156156Runes generally do not need to be closed. In other languages you’ll see an abundance of terminators, such as opening and closing parentheses, and this way of doing this is largely absent from Urbit. That’s because all runes take a fixed number of children. Children can themselves be runes (with more children), and Hoon programs work by chaining through these series of children until a value -- not another rune -- is arrived at. This makes Hoon code nice and neat to look at.
157157
@@ -213,7 +213,7 @@ What Hoon expression does the following figure correspond to, and what does it e
213213Right. This represents the Hoon expression `:- 2 :- 3 4`,
214214and evaluates to `[2 [3 4]]`. Remember, though, that if you input this into dojo it will print as `[2 3 4]`.
215215
216−Thinking in terms of these “LEGO block” diagrams, as well as the more literal binary tree diagrams utilized in [Lesson 1.2](@/docs/hoon/hoon-school/nouns.md), can be a helpful learning and debugging tactic.
216+Thinking in terms of these “LEGO block” diagrams, as well as the more literal binary tree diagrams utilized in [Lesson 1.2](/docs/hoon/hoon-school/nouns), can be a helpful learning and debugging tactic.
217217
218218##### Exercise 1.3a
219219
@@ -279,7 +279,7 @@ The irregular `( )` gate-calling syntax is versatile -- it is also a shortcut fo
279279
280280The `( )` gate-calling syntax can be used for gates with any number of arguments.
281281
282−You can find other irregular forms in the irregular expression [reference document](@/docs/hoon/reference/irregular.md).
282+You can find other irregular forms in the irregular expression [reference document](/docs/hoon/reference/irregular).
283283
284284### Expressions That Are Only Irregular
285285
@@ -314,7 +314,7 @@ b=[16 18]
314314[16 18]
315315```
316316
317−To see other irregular expressions, check the irregular expression [reference document](@/docs/hoon/reference/irregular.md).
317+To see other irregular expressions, check the irregular expression [reference document](/docs/hoon/reference/irregular).
318318
319319
320320## The Standard Library
@@ -336,16 +336,16 @@ Standard library functions are often built with other standard library functions
336336
337337## Reference Materials
338338
339−The Hoon syntax can be intimidating for the uninitiated, so it’s good to remember where you can look up expressions. The [Reference](@/docs/hoon/reference/_index.md) section itself is a good place to find the materials that you need. These children sections are likely to be useful:
339+The Hoon syntax can be intimidating for the uninitiated, so it’s good to remember where you can look up expressions. The [Reference](/docs/hoon/reference/) section itself is a good place to find the materials that you need. These children sections are likely to be useful:
340340
341−- The [Runes](@/docs/hoon/reference/rune/_index.md) page will show you how to use any Hoon rune.
342−- The [Cheat Sheet](@/docs/hoon/reference/cheat-sheet.md) is a more compact place to look up rune expressions.
343−- The [Standard Library](@/docs/hoon/reference/stdlib/table-of-contents.md) section has its sub-pages arranged by category. So arithmetic functions, for example, are all found on the same page.
344−- The [Hoon Style Guide](@/docs/hoon/reference/style.md) will show you how to write your Hoon code so that it’s idiomatic and easily understood by others.
341+- The [Runes](/docs/hoon/reference/rune/) page will show you how to use any Hoon rune.
342+- The [Cheat Sheet](/docs/hoon/reference/cheat-sheet) is a more compact place to look up rune expressions.
343+- The [Standard Library](/docs/hoon/reference/stdlib/table-of-contents) section has its sub-pages arranged by category. So arithmetic functions, for example, are all found on the same page.
344+- The [Hoon Style Guide](/docs/hoon/reference/style) will show you how to write your Hoon code so that it’s idiomatic and easily understood by others.
345345
346346### Debugging
347347
348−When you have an error in your Hoon code, one of two things can happen. Either the code does not run at all and you get an error (such as `nest-fail`), or your code _does_ run but produces the wrong results. The [Troubleshooting](@/docs/hoon/reference/hoon-errors.md) page is a good resource for figuring out how to debug your code.
348+When you have an error in your Hoon code, one of two things can happen. Either the code does not run at all and you get an error (such as `nest-fail`), or your code _does_ run but produces the wrong results. The [Troubleshooting](/docs/hoon/reference/hoon-errors) page is a good resource for figuring out how to debug your code.
349349
350350There are a couple useful runes associated with debugging:
351351
@@ -353,4 +353,4 @@ There are a couple useful runes associated with debugging:
353353
354354`~&` (sigpam) is used to print its argument every time that argument executes. So, if you wanted to see how many times your program executed `foo`, you would write `foo bar`. Then, when your program runs, it will print `foo` on a new line of output every time the program comes across it by recursion.
355355
356−But there are more. Check out the aforementioned [Troubleshooting](@/docs/hoon/reference/hoon-errors.md) page to see other handy debugging runes and how to use them.
356+But there are more. Check out the aforementioned [Troubleshooting](/docs/hoon/reference/hoon-errors) page to see other handy debugging runes and how to use them.
content/docs/hoon/hoon-school/libraries.md+2−2
@@ -126,9 +126,9 @@ The `?+` rune is the rune to switch against a value with a default. The default
126126
127127`draw` takes two arguments: `n`, a number; and `d`, a `deck`. It's going to
128128produce a cell of two `decks`. The cell is created using `scag` and `slag`.
129−[`scag`](@/docs/hoon/reference/stdlib/2b.md#scag) is a
129+[`scag`](/docs/hoon/reference/stdlib/2b#scag) is a
130130standard-library gate produces the first `n` elements from a list, and
131−[`slag`](@/docs/hoon/reference/stdlib/2b.md#slag) is a
131+[`slag`](/docs/hoon/reference/stdlib/2b#slag) is a
132132standard-library gate that produces the remaining elements of a list starting
133133after the `n`th element. So we use `scag` to produce the drawn hand of `n` cards
134134in the head of the cell as `hand`, and `slag` to produce the remaining deck in
content/docs/hoon/hoon-school/list-of-numbers.md+1−1
@@ -107,7 +107,7 @@ $(count (add 1 count))
107107
108108The above code is, once again, a compact way of writing a rune expression. All you need to know is that this line of code restarts the program at `|-`, except with the value stored in `count` incremented by `1`. The construction of `(count (add 1 count))` tells the computer, "replace the value of `count` with `count+1`".
109109
110−You'll notice that we use an unfamiliar word here: `add`. Unlike `count` and `end`, `add` is not defined anywhere in our program. That's because it's a gate that's predefined in the Hoon **standard library**. The standard library is filled with pre-defined gates that are generally useful, and these gates can be used just like something that you defined in your own program. You can see this gate, and other mathematical operators, in [section 1a](@/docs/hoon/reference/stdlib/1a.md) of the standard library documentation.
110+You'll notice that we use an unfamiliar word here: `add`. Unlike `count` and `end`, `add` is not defined anywhere in our program. That's because it's a gate that's predefined in the Hoon **standard library**. The standard library is filled with pre-defined gates that are generally useful, and these gates can be used just like something that you defined in your own program. You can see this gate, and other mathematical operators, in [section 1a](/docs/hoon/reference/stdlib/1a) of the standard library documentation.
111111
112112## Explanation
113113
content/docs/hoon/hoon-school/lists.md+2−2
@@ -59,7 +59,7 @@ find-fork-d
5959`=>` is a reversed form of the `:` operator we've been using, meaning that `=> a b` is the
6060same as `b:a`. Here, this means we're evaluation the `?~` expression with the
6161`b=...` expression as the subject. We explore this rune in more detail in a
62−[later lesson](@/docs/hoon/hoon-school/arms-and-cores.md#cores-and-contexts).
62+[later lesson](/docs/hoon/hoon-school/arms-and-cores#cores-and-contexts).
6363
6464It's important to note that performing tests like `?~ mylist` will actually transform `mylist` into a `lest`, a non-null list. Because `lest` is a different type than `list`, performing such tests can come back to bite you later in non-obvious ways when you try to use some standard library functions meant for lists.
6565
@@ -304,7 +304,7 @@ c
304304
305305## Using `hoon.hoon` to Learn Hoon
306306
307−The Hoon standard library and compiler are written in Hoon. At this point, you know enough Hoon to be able to explore the standard library portions of `hoon.hoon` and find more functions relevant to lists. Look around in [section 2b](@/docs/hoon/reference/stdlib/2b.md) (and elsewhere).
307+The Hoon standard library and compiler are written in Hoon. At this point, you know enough Hoon to be able to explore the standard library portions of `hoon.hoon` and find more functions relevant to lists. Look around in [section 2b](/docs/hoon/reference/stdlib/2b) (and elsewhere).
308308
309309## Additional Exercises
310310
content/docs/hoon/hoon-school/molds.md+2−2
@@ -44,9 +44,9 @@ To coerce using a gate, it's good practice to use the `;;` rune, which can parse
4444`|$` implements [parametric
4545polymorphism](https://en.wikipedia.org/wiki/Parametric_polymorphism) in Hoon,
4646and as such we call gates produced with `|$` a **wet gate**. We discuss what this
47−means in further detail in the upcoming lesson on [polymorphism](@/docs/hoon/hoon-school/type-polymorphism.md).
47+means in further detail in the upcoming lesson on [polymorphism](/docs/hoon/hoon-school/type-polymorphism).
4848
49−Let's look at some examples from `hoon.hoon`.
49+Let's look at some examples from `hoon.hoon`.
5050```hoon
5151++ pair
5252 |$ [head tail]
content/docs/hoon/hoon-school/nouns.md+2−2
@@ -283,7 +283,7 @@ You can force Hoon to interpret an atom differently by using the aura symbols in
283283
284284The atoms in the examples above are all exactly the same value. Only they're interpreted and printed differently, depending on the aura.
285285
286−You'll learn more about atoms and auras in [Lesson 2.1](@/docs/hoon/hoon-school/atoms-auras-and-simple-cell-types.md).
286+You'll learn more about atoms and auras in [Lesson 2.1](/docs/hoon/hoon-school/atoms-auras-and-simple-cell-types).
287287
288288## Cells
289289
@@ -523,7 +523,7 @@ Write the following binary tree as a noun.
523523 / \
524524 / \
525525 . .
526− / \ / \
526+ / \ / \
527527 2 3 4 .
528528 / \
529529 5 .
content/docs/hoon/hoon-school/recursion.md+1−1
@@ -179,7 +179,7 @@ of. That's because a gate is just a [core](/docs/glossary/core/) with a single a
179179subject is searched depth-first, head before tail, with faces skipped, and
180180stopping on the first result. In other words, the first match found in the head
181181will be returned. If you wished to refer to the outer `$` in this context, the
182−idiomatic way would be to use [`^$`](@/docs/hoon/reference/rune/ket.md). The `^` operator
182+idiomatic way would be to use [`^$`](/docs/hoon/reference/rune/ket). The `^` operator
183183skips the first match of a name.
184184
185185### Exercises
content/docs/hoon/hoon-school/setup.md+5−5
@@ -15,9 +15,9 @@ These may not look like numbers, but they are. Each urbit name is written in a b
1515
1616## Installing Urbit
1717
18−You can install Urbit on any Mac or Unix machine; if you're just trying out Urbit or creating a development ship, you can follow the steps for creating a development ship [here](@/docs/development/environment.md). On Windows, make a virtual Linux machine using VirtualBox or a similar tool.
18+You can install Urbit on any Mac or Unix machine; if you're just trying out Urbit or creating a development ship, you can follow the steps for creating a development ship [here](/docs/development/environment). On Windows, make a virtual Linux machine using VirtualBox or a similar tool.
1919
20−Once you're finished, you can [boot your very own ship](@/getting-started/_index.md). While you can develop in Hoon on your own ship on the live network, we strongly suggest developing on a development ship first.
20+Once you're finished, you can [boot your very own ship](/getting-started/). While you can develop in Hoon on your own ship on the live network, we strongly suggest developing on a development ship first.
2121
2222## Getting started
2323
@@ -61,15 +61,15 @@ You'll see:
616117
6262```
6363
64−You asked Dojo to evaluate `17` and it echoed the number back at you. This value is a "noun". We'll talk more about [nouns](/docs/glossary/noun/) in [Lesson 1.2](@/docs/hoon/hoon-school/nouns.md), but first let's write a very basic program.
64+You asked Dojo to evaluate `17` and it echoed the number back at you. This value is a "noun". We'll talk more about [nouns](/docs/glossary/noun/) in [Lesson 1.2](/docs/hoon/hoon-school/nouns), but first let's write a very basic program.
6565
6666## Generators
6767
6868Generators are the most straightforward way to write Hoon programs. They are a concept in Arvo, and involve saving Hoon code in a `.hoon` text file. While they aren't strictly part of the Hoon language, we'll be dealing with generators throughout this tutorial.
6969
70−The simplest type of generator is the **naked generator**. All naked generators are `gates`: functions that take an argument and produce an output. Before creating a generator you need to [mount](@/getting-started/_index.md) your `desk` to Unix. To create a generator, all you need to do is write a `gate` and put it into a file in the `/home/gen/` directory of your ship as a `.hoon` file. (Assuming you've already mounted with `|mount /=home=`.) After this, you need to run `|commit %home` in Dojo and the new file will be recognized by your ship. To run a generator named `mygen.hoon`, you would type `+mygen <argument>` in your ship's Dojo.
70+The simplest type of generator is the **naked generator**. All naked generators are `gates`: functions that take an argument and produce an output. Before creating a generator you need to [mount](/getting-started/) your `desk` to Unix. To create a generator, all you need to do is write a `gate` and put it into a file in the `/home/gen/` directory of your ship as a `.hoon` file. (Assuming you've already mounted with `|mount /=home=`.) After this, you need to run `|commit %home` in Dojo and the new file will be recognized by your ship. To run a generator named `mygen.hoon`, you would type `+mygen <argument>` in your ship's Dojo.
7171
72−If this doesn't make sense yet, that's okay. In the [next lesson](@/docs/hoon/hoon-school/list-of-numbers.md), we will walk you through an example `gate` that is run as a generator.
72+If this doesn't make sense yet, that's okay. In the [next lesson](/docs/hoon/hoon-school/list-of-numbers), we will walk you through an example `gate` that is run as a generator.
7373
7474## Text editors
7575
content/docs/hoon/hoon-school/structures-and-complex-types.md+1−1
@@ -352,5 +352,5 @@ Often `$@` is used to define a type with a null or trivial case for the `@` case
352352
353353Now the `~` value is included as a possible value for `user`.
354354
355−We will see types arise again, in the context of polymorphism in [Lesson 2.5](@/docs/hoon/hoon-school/type-polymorphism.md).
355+We will see types arise again, in the context of polymorphism in [Lesson 2.5](/docs/hoon/hoon-school/type-polymorphism).
356356
content/docs/hoon/hoon-school/the-subject-and-its-legs.md+1−1
@@ -11,7 +11,7 @@ Hoon isn't an object-oriented programming language; it's a "subject-oriented" pr
1111
1212For now we can say three things about the subject: (1) every Hoon expression is evaluated relative to some subject; (2) roughly, the subject defines the environment in which a Hoon expression is evaluated; and (3) the subject is a [noun](/docs/glossary/noun/).
1313
14−In fact, you already learned about the noun address system in [Lesson 1.2](@/docs/hoon/hoon-school/nouns.md) when you used `+` to return a fragment of a noun:
14+In fact, you already learned about the noun address system in [Lesson 1.2](/docs/hoon/hoon-school/nouns) when you used `+` to return a fragment of a noun:
1515
1616```
1717> +1:[[11 22] 33]
content/docs/hoon/hoon-school/trees-sets-and-maps.md+2−2
@@ -88,7 +88,7 @@ $(hay r.hay)
8888
8989## Sets
9090
91−Use `set` to create a data structure for a set of values, e.g., `(set @)` for a set of atoms. The `in` [core](/docs/glossary/core/) in the Hoon standard library contains the various functions for operating on sets. See the standard library reference documentation for sets [here](@/docs/hoon/reference/stdlib/2h.md).
91+Use `set` to create a data structure for a set of values, e.g., `(set @)` for a set of atoms. The `in` [core](/docs/glossary/core/) in the Hoon standard library contains the various functions for operating on sets. See the standard library reference documentation for sets [here](/docs/hoon/reference/stdlib/2h).
9292
9393As with `list`s and `tree`s, there are two categories of sets: null `~`, and non-null. Hoon implements sets using trees for the underlying noun.
9494
@@ -237,7 +237,7 @@ Use `map` to create a set of key-value pairs, e.g., `(map @tas *)` for a set of
237237
238238One example use case is for storing customer information as a set of pairs: `(map [employee-name employee-data])`.
239239
240−The `by` core in the Hoon standard library contains the various functions for operating on maps. Many of these functions are similar to the set functions of the `in` core. See the standard library reference documentation for maps [here](@/docs/hoon/reference/stdlib/2i.md). As was the case with sets, the underlying noun of each map is a tree.
240+The `by` core in the Hoon standard library contains the various functions for operating on maps. Many of these functions are similar to the set functions of the `in` core. See the standard library reference documentation for maps [here](/docs/hoon/reference/stdlib/2i). As was the case with sets, the underlying noun of each map is a tree.
241241
242242Two common methods for populating a map include (1) creating it from a list of key-value cells using the `my` function, and (2) inserting items into a map using the `put` arm of the `by` core.
243243
content/docs/hoon/hoon-school/type-polymorphism.md+1−1
@@ -192,7 +192,7 @@ As is the case with dry arms, there is a type-check associated with each wet arm
192192### Parametric Polymorphism and `|$`
193193
194194We first encountered `|$` in the lesson on
195−[molds](@/docs/hoon/hoon-school/molds.md) as a wet gate that is a mold builder rune which takes in a
195+[molds](/docs/hoon/hoon-school/molds) as a wet gate that is a mold builder rune which takes in a
196196list of molds and produces a new mold. Here we take another look at this rune as
197197an implementation of **parametric polymorphism** in Hoon.
198198
content/docs/hoon/overview.md+1−1
@@ -8,7 +8,7 @@ We are often asked why Urbit was written in a new language, rather than some
88existing language like Haskell or C. This document provides the high-level
99rationale for that decision, and also covers some of the features of the
1010language that set it apart from others. If you're looking to learn Hoon, check
11−out our tutorial series called [Hoon School](@/docs/hoon/hoon-school/_index.md)
11+out our tutorial series called [Hoon School](/docs/hoon/hoon-school/)
1212below.
1313
1414### What can Hoon do that other languages can't?
content/docs/hoon/reference/_index.md+10−10
@@ -8,43 +8,43 @@ insert_anchor_links = "right"
88
99This is where you look for answers to specific technical questions.
1010
11−## [Syntax Cheat Sheet](@/docs/hoon/reference/cheat-sheet.md)
11+## [Syntax Cheat Sheet](/docs/hoon/reference/cheat-sheet)
1212
1313A quick reference guide to Hoon's syntax.
1414
15−## [Irregular Forms](@/docs/hoon/reference/irregular.md)
15+## [Irregular Forms](/docs/hoon/reference/irregular)
1616
1717Irregular syntax.
1818
19−## [Troubleshooting](@/docs/hoon/reference/hoon-errors.md)
19+## [Troubleshooting](/docs/hoon/reference/hoon-errors)
2020
2121Strategies for debugging and understanding what your Hoon code is doing.
2222
23−## [Style Guide](@/docs/hoon/reference/style.md)
23+## [Style Guide](/docs/hoon/reference/style)
2424
2525Best practices for writing Hoon code.
2626
27−## [Basic Types](@/docs/hoon/reference/basic.md)
27+## [Basic Types](/docs/hoon/reference/basic)
2828
2929A simplified explanation of Hoon's type system.
3030
31−## [Advanced Types](@/docs/hoon/reference/advanced.md)
31+## [Advanced Types](/docs/hoon/reference/advanced)
3232
3333The full story on Hoon's type system.
3434
35−## [Auras](@/docs/hoon/reference/auras.md)
35+## [Auras](/docs/hoon/reference/auras)
3636
3737A list of aura types for atoms.
3838
39−### [Runes](@/docs/hoon/reference/rune/_index.md)
39+### [Runes](/docs/hoon/reference/rune/)
4040
4141Syntax and semantics for Hoon's rune system.
4242
43−### [Limbs and Wings](@/docs/hoon/reference/limbs/_index.md)
43+### [Limbs and Wings](/docs/hoon/reference/limbs/)
4444
4545How to find data inside Hoon subjects.
4646
47−### [Standard Library](@/docs/hoon/reference/stdlib/_index.md)
47+### [Standard Library](/docs/hoon/reference/stdlib/)
4848
4949Reference material for the Hoon standard library.
5050
content/docs/hoon/reference/advanced.md+1−1
@@ -194,7 +194,7 @@ limb, we just search the type depth-first.
194194If a name is in the `p.p` `map`, it's an alias. (An alias is defined using the
195195`=*` rune.) The map contains a `(unit hoon)`; if the unit is full, the name
196196resolves to that hoon (compiled against the `q` type). If the unit is empty,
197−the name is blocked / skipped (see [limb](@/docs/hoon/reference/limbs/limb.md) for what
197+the name is blocked / skipped (see [limb](/docs/hoon/reference/limbs/limb) for what
198198this means).
199199
200200If a name is the `q.p` `term`, it's a bridge. (A bridge is defined using the
content/docs/hoon/reference/auras.md+7−7
@@ -4,20 +4,20 @@ weight = 70
44template = "doc.html"
55+++
66
7−Auras are system of nested "soft types" on [atoms](@/docs/glossary/atom.md) that
7+Auras are system of nested "soft types" on [atoms](/docs/glossary/atom) that
88are used to track metadata about how a particular atom is to be interpreted.
99This is used for type checking as well as pretty printing.
1010
11−You can learn more about auras in [Hoon school](@/docs/hoon/hoon-school/atoms-auras-and-simple-cell-types.md).
11+You can learn more about auras in [Hoon school](/docs/hoon/hoon-school/atoms-auras-and-simple-cell-types).
1212
1313### Table of Auras
1414
1515```
1616Aura Meaning Example Literal Syntax
1717-------------------------------------------------------------------------
18−@ empty aura
18+@ empty aura
1919@c Unicode codepoint ~-~45fed
20−@d date
20+@d date
2121 @da absolute date ~2018.5.14..22.31.46..1435
2222 @dr relative date (ie, timespan) ~h5.m30.s12
2323@f Loobean (for compiler, not castable) &
@@ -27,12 +27,12 @@ Aura Meaning Example Literal Syntax
2727@n nil (for compiler, not castable) ~
2828@p phonemic base (ship name) ~sorreg-namtyv
2929@q phonemic base, unscrambled .~litsyn-polbel
30−@r IEEE-754 floating-point
30+@r IEEE-754 floating-point
3131 @rh half precision (16 bits) .~~3.14
3232 @rs single precision (32 bits) .6.022141e23
3333 @rd double precision (64 bits) .~6.02214085774e23
3434 @rq quad precision (128 bits) .~~~6.02214085774e23
35−@s signed integer, sign bit low
35+@s signed integer, sign bit low
3636 @sb signed binary --0b11.1000
3737 @sd signed decimal --1.000.056
3838 @sv signed base32 -0v1df64.49beg
@@ -41,7 +41,7 @@ Aura Meaning Example Literal Syntax
4141@t UTF-8 text (cord) 'howdy'
4242 @ta ASCII text (knot) ~.howdy
4343 @tas ASCII text symbol (term) %howdy
44−@u unsigned integer
44+@u unsigned integer
4545 @ub unsigned binary 0b11.1000
4646 @ud unsigned decimal 1.000.056
4747 @uv unsigned base32 0v1df64.49beg
content/docs/hoon/reference/basic.md+1−1
@@ -32,7 +32,7 @@ including both faces and arm names. (See Chapter 1 of the Hoon tutorial for an
3232introduction to name resolution.)
3333
3434As noted, this is a simplified version of `type`. We undo and
35−explain the simplifications in the [advanced types](@/docs/hoon/reference/advanced.md)
35+explain the simplifications in the [advanced types](/docs/hoon/reference/advanced)
3636section.
3737
3838```hoon
content/docs/hoon/reference/cheat-sheet.md+1−1
@@ -12,7 +12,7 @@ hand. So above is a download link to a Hoon cheatsheet .pdf. It's missing a
1212few of the literal syntaxes, but it covers the most common ones.
1313
1414This doesn't list any of the Ford runes, although there is now at least
15−some documentation for those [here](@/docs/arvo/ford/ford.md).
15+some documentation for those [here](/docs/arvo/ford/ford).
1616
1717The following runes also exist, but are currently undocumented and not listed in
1818the cheat sheet:
content/docs/hoon/reference/hoon-errors.md+6−6
@@ -23,7 +23,7 @@ a correct Hoon file. These values are always correct.
2323Usually, the line and column tell you everything you need to
2424know. But the worst-case scenario for a syntax error is that,
2525somewhere above, you've confused Hoon's tall form by using the
26−wrong fanout for a rune. For example, `%+` ([**cenlus**](@/docs/hoon/reference/rune/cen.md#cenlus),
26+wrong fanout for a rune. For example, `%+` ([**cenlus**](/docs/hoon/reference/rune/cen#cenlus),
2727a function call whose sample is a cell) has three subhoons:
2828
2929```hoon
@@ -107,7 +107,7 @@ means you tried to pound a square peg into a round hole.
107107What was the peg and what was the hole? Hoon doesn't tell you by
108108default, because moral fiber, and also because in too many cases
109109trivial errors lead to large intimidating dumps. However, you
110−can use the `~!` rune ([**sigzap**](@/docs/hoon/reference/rune/sig.md#sigzap)) to print the type of any hoon in your stack trace.
110+can use the `~!` rune ([**sigzap**](/docs/hoon/reference/rune/sig#sigzap)) to print the type of any hoon in your stack trace.
111111
112112For instance, you wrote `(foo bar)` and got a `nest-fail`. Change
113113your code to be:
@@ -135,7 +135,7 @@ function.
135135### `mint-vain` and `mint-lost`
136136
137137These are errors caused by type inference in pattern matching.
138−`mint-vain` means this hoon is never executed. `mint-lost` means there's a case in a `?-` ([**wuthep**](@/docs/hoon/reference/rune/wut.md#wuthep)) that isn't handled.
138+`mint-vain` means this hoon is never executed. `mint-lost` means there's a case in a `?-` ([**wuthep**](/docs/hoon/reference/rune/wut#wuthep)) that isn't handled.
139139
140140## Runtime crashes
141141
@@ -149,7 +149,7 @@ infinite loop will time out either too slowly or too fast). The
149149stack trace will show what your code was doing when interrupted.
150150
151151The counterpart of `~!` for runtime crashes is `~|`
152−([**sigbar**](@/docs/hoon/reference/rune/sig.md#sigbar)):
152+([**sigbar**](/docs/hoon/reference/rune/sig#sigbar)):
153153
154154```hoon
155155~| foo
@@ -165,7 +165,7 @@ The worst possibility, of course, is that your code runs but does
165165the wrong thing. This is relatively unusual in a typed
166166functional language, but it still happens.
167167
168−`~&` ([**sigpam**](@/docs/hoon/reference/rune/sig.md#sigpam)) is Hoon's debugging printf.
168+`~&` ([**sigpam**](/docs/hoon/reference/rune/sig#sigpam)) is Hoon's debugging printf.
169169This pretty-prints its argument:
170170
171171```hoon
@@ -174,7 +174,7 @@ This pretty-prints its argument:
174174```
175175
176176will always print `foo` every time it executes. A variant is
177−`~?` ([**sigwut**](@/docs/hoon/reference/rune/sig.md#sigwut)), which prints only if a condition is
177+`~?` ([**sigwut**](/docs/hoon/reference/rune/sig#sigwut)), which prints only if a condition is
178178true:
179179
180180```hoon
content/docs/hoon/reference/irregular.md+18−18
@@ -17,7 +17,7 @@ Anything Nock can do, Hoon can do also.
1717
1818### .+ dotlus
1919
20−[docs](@/docs/hoon/reference/rune/dot.md#dotlus) \\+
20+[docs](/docs/hoon/reference/rune/dot#dotlus) \\+
2121`[%dtls p=atom]`: increment an atom with Nock 4.
2222
2323R: `.+(p)`
@@ -25,7 +25,7 @@ I: `+(p)`
2525
2626### .= dottis
2727
28−[docs](@/docs/hoon/reference/rune/dot.md#dottis) \\=
28+[docs](/docs/hoon/reference/rune/dot#dottis) \\=
2929`[%dtts p=hoon q=hoon]`: test for equality with Nock 5.
3030
3131R: `.=(p q)`
@@ -37,7 +37,7 @@ Miscellaneous useful macros.
3737
3838### ;: miccol
3939
40−[docs](@/docs/hoon/reference/rune/mic.md#miccol) \\:
40+[docs](/docs/hoon/reference/rune/mic#miccol) \\:
4141`[%mccl p=hoon q=(list hoon)]`: call a binary function as an n-ary function.
4242
4343R: `;:(p q)`
@@ -49,7 +49,7 @@ The cell runes.
4949
5050### :- colhep
5151
52−[docs](@/docs/hoon/reference/rune/col.md#colhep) \\[\\]\\^\\+\\\`\\~
52+[docs](/docs/hoon/reference/rune/col#colhep) \\[\\]\\^\\+\\\`\\~
5353`[%clhp p=hoon q=hoon]`: construct a cell (2-tuple).
5454
5555R: `:-(p q)`
@@ -72,7 +72,7 @@ Flow hoons change the subject. All non-flow hoons (except cores) pass the subjec
7272
7373### =< tisgal
7474
75−[docs](@/docs/hoon/reference/rune/tis.md#tisgal) \\:
75+[docs](/docs/hoon/reference/rune/tis#tisgal) \\:
7676`[%tsgl p=hoon q=hoon]`: compose two hoons, inverted.
7777
7878R: `=<(p q)`
@@ -80,7 +80,7 @@ I: `p:q`
8080
8181## | bar (core)
8282
83−[docs](@/docs/hoon/reference/rune/bar.md) \\$
83+[docs](/docs/hoon/reference/rune/bar) \\$
8484Core hoons are flow hoon.
8585
8686Technically not irregular syntax, but worth mentioning.
@@ -98,7 +98,7 @@ The invocation family of runes.
9898
9999### %= centis
100100
101−[docs](@/docs/hoon/reference/rune/cen.md#centis) \\(\\)
101+[docs](/docs/hoon/reference/rune/cen#centis) \\(\\)
102102`[%cnts p=wing q=(list (pair wing hoon))]`: take a wing with changes.
103103
104104R: `%=(p a 1)`
@@ -106,7 +106,7 @@ I: `p(a 1)`
106106
107107### %~ censig
108108
109−[docs](@/docs/hoon/reference/rune/cen.md#censig) \\~
109+[docs](/docs/hoon/reference/rune/cen#censig) \\~
110110`[%cnsg p=wing q=hoon r=hoon]`: call with multi-armed door.
111111
112112R: `%~(p q r)`
@@ -114,7 +114,7 @@ I: `~(p q r)`
114114
115115### %- cenhep
116116
117−[docs](@/docs/hoon/reference/rune/cen.md#cenhep) \\(\\)
117+[docs](/docs/hoon/reference/rune/cen#cenhep) \\(\\)
118118`[%cnhp p=hoon q=hoon]`: call a gate (function).
119119
120120R: `%-(p q)`
@@ -128,7 +128,7 @@ A mold is a gate (function) that helps us build simple and rigorous data structu
128128
129129### $? bucwut
130130
131−[docs](@/docs/hoon/reference/rune/buc.md#bucwut) \\?
131+[docs](/docs/hoon/reference/rune/buc#bucwut) \\?
132132`[%bcwt p=(list model)]`: mold which normalizes a general union.
133133
134134R: `$?(p)`
@@ -136,7 +136,7 @@ I: `?(p)`
136136
137137### $_ buccab
138138
139−[docs](@/docs/hoon/reference/rune/buc.md#buccab) \\_
139+[docs](/docs/hoon/reference/rune/buc#buccab) \\_
140140`[%bccb p=value]`: mold which normalizes to an example.
141141
142142R: `$_(p)`
@@ -148,7 +148,7 @@ Hoon has the usual branches and logical tests.
148148
149149### ?! wutzap
150150
151−[docs](@/docs/hoon/reference/rune/wut.md#wutzap) \\!
151+[docs](/docs/hoon/reference/rune/wut#wutzap) \\!
152152`[%wtzp p=hoon]`: logical not.
153153
154154R: `?!(p)`
@@ -156,7 +156,7 @@ I: `!(p)`
156156
157157### ?& wutpam
158158
159−[docs](@/docs/hoon/reference/rune/wut.md#wutpam) \\&
159+[docs](/docs/hoon/reference/rune/wut#wutpam) \\&
160160`[%wtpm p=(list hoon)]`: logical and.
161161
162162R: `?&(p)`
@@ -164,7 +164,7 @@ I: `&(p)`
164164
165165### ?| wutbar
166166
167−[docs](@/docs/hoon/reference/rune/wut.md#wutbar) \\|
167+[docs](/docs/hoon/reference/rune/wut#wutbar) \\|
168168`[%wtbr p=(list hoon)]`: logical or.
169169
170170R: `?|(p)`
@@ -176,7 +176,7 @@ Lets us adjust types without violating type constraints.
176176
177177### ^- kethep
178178
179−[docs](@/docs/hoon/reference/rune/ket.md#kethep) \\\`
179+[docs](/docs/hoon/reference/rune/ket#kethep) \\\`
180180`[%kthp p=model q=value]`: typecast by mold.
181181
182182R: `^-(p q)`
@@ -184,7 +184,7 @@ I: `` `p`q ``
184184
185185### ^= kettis
186186
187−[docs](@/docs/hoon/reference/rune/ket.md#kettis) \\=
187+[docs](/docs/hoon/reference/rune/ket#kettis) \\=
188188`[%ktts p=toga q=value]`: name a value.
189189
190190R: `^=(p q)`
@@ -210,7 +210,7 @@ I: `p=q`
210210- `|` loobean false.
211211- `%a` constant `a`, where `a` can be an ((ir)regularly defined) atom or a symbol.
212212
213−See [%sand](@/docs/hoon/reference/rune/constants.md#warm) for other irregular definitions of atoms.
213+See [%sand](/docs/hoon/reference/rune/constants#warm) for other irregular definitions of atoms.
214214
215215### List addressing
216216
@@ -219,7 +219,7 @@ See [%sand](@/docs/hoon/reference/rune/constants.md#warm) for other irregular de
219219
220220### Limbs
221221
222−[docs](@/docs/hoon/reference/limbs/limb.md) \\+\\.\\^
222+[docs](/docs/hoon/reference/limbs/limb) \\+\\.\\^
223223`[%limb p=(each @ud [p=@ud q=@tas])]`: attribute of subject.
224224
225225- `+15` is slot 15
content/docs/hoon/reference/limbs/_index.md+2−2
@@ -9,10 +9,10 @@ One feature Hoon lacks: a context that isn't a first-class value. Hoon has no
99concept of scope, environment, etc. An expression has exactly one data source,
1010the **subject**, a noun like any other.
1111
12−## [Limbs](@/docs/hoon/reference/limbs/limb.md)
12+## [Limbs](/docs/hoon/reference/limbs/limb)
1313
1414A limb is used to resolve to a piece of data in the subject. A wing is thus a resolution path into the subject.
1515
16−## [Wings](@/docs/hoon/reference/limbs/wing.md)
16+## [Wings](/docs/hoon/reference/limbs/wing)
1717
1818In Hoon we use 'wings' to extract information from the subject. A wing is a list of limbs (including a trivial list of one limb).
content/docs/hoon/reference/rune/_index.md+15−15
@@ -10,64 +10,64 @@ Runes are a way to form expressions in Hoon.
1010
1111## Non-Rune Expressions
1212
13−### [Constants](@/docs/hoon/reference/rune/constants.md)
13+### [Constants](/docs/hoon/reference/rune/constants)
1414
1515Hoon uses runes to form expressions, but not all expressions have runes in them. First, we have constant expressions (and also expressions that would be constant, but that they allow for interpolations).
1616
17−### [Limbs and Wings](@/docs/hoon/reference/limbs/_index.md)
17+### [Limbs and Wings](/docs/hoon/reference/limbs/)
1818
1919Limb and wing expressions also lack runes.
2020
2121## Runes Proper
2222
23−### [`. dot` (Nock)](@/docs/hoon/reference/rune/dot.md)
23+### [`. dot` (Nock)](/docs/hoon/reference/rune/dot)
2424
2525Runes used for carrying out Nock operations in Hoon.
2626
27−### [`! zap` (wild)](@/docs/hoon/reference/rune/zap.md)
27+### [`! zap` (wild)](/docs/hoon/reference/rune/zap)
2828
2929Wildcard category. Expressions that don't fit anywhere else go here.
3030
31−### [`= tis` (Subject Modification)](@/docs/hoon/reference/rune/tis.md)
31+### [`= tis` (Subject Modification)](/docs/hoon/reference/rune/tis)
3232
3333Runes used to modify the subject.
3434
35−### [`? wut` (Conditionals)](@/docs/hoon/reference/rune/wut.md)
35+### [`? wut` (Conditionals)](/docs/hoon/reference/rune/wut)
3636
3737Runes used for branching on conditionals.
3838
39−### [`| bar` (Cores)](@/docs/hoon/reference/rune/bar.md)
39+### [`| bar` (Cores)](/docs/hoon/reference/rune/bar)
4040
4141Runes used to produce cores.
4242
43−### [`+ lus` (Arms)](@/docs/hoon/reference/rune/lus.md)
43+### [`+ lus` (Arms)](/docs/hoon/reference/rune/lus)
4444
4545Runes used to define arms in a core.
4646
47−### [`: col` (Cells)](@/docs/hoon/reference/rune/col.md)
47+### [`: col` (Cells)](/docs/hoon/reference/rune/col)
4848
4949Runes used to produce cells, which are pairs of nouns.
5050
51−### [`% cen` (Calls)](@/docs/hoon/reference/rune/cen.md)
51+### [`% cen` (Calls)](/docs/hoon/reference/rune/cen)
5252
5353Runes used for making function calls in Hoon.
5454
55−### [`^ ket` (Casts)](@/docs/hoon/reference/rune/ket.md)
55+### [`^ ket` (Casts)](/docs/hoon/reference/rune/ket)
5656
5757Runes that let us adjust types without violating type constraints.
5858
59−### [`$ buc` (Structures)](@/docs/hoon/reference/rune/buc.md)
59+### [`$ buc` (Structures)](/docs/hoon/reference/rune/buc)
6060
6161Runes used for defining custom types.
6262
63−### [`; mic` (Make)](@/docs/hoon/reference/rune/mic.md)
63+### [`; mic` (Make)](/docs/hoon/reference/rune/mic)
6464
6565Miscellaneous useful macros.
6666
67−### [`~ sig` (Hints)](@/docs/hoon/reference/rune/sig.md)
67+### [`~ sig` (Hints)](/docs/hoon/reference/rune/sig)
6868
6969Runes that use Nock `11` to pass non-semantic info to the interpreter.
7070
71−### [`--`, `==` (Terminators)](@/docs/hoon/reference/rune/terminators.md)
71+### [`--`, `==` (Terminators)](/docs/hoon/reference/rune/terminators)
7272
7373Runes used to terminate expressions.
content/docs/hoon/reference/rune/bar.md+8−8
@@ -136,7 +136,7 @@ Calling a door is like calling a gate except the caller also needs
136136to specify the arm to be computed. So, for example, if you have some door `door` which contains some arm `arm`, and you want to pass some argument (i.e., input value `arg`), you would call it with `~(arm door arg)`.
137137
138138Because gates are also doors, you can call them the same way. To call the gate `foo` as a door, instead of `(foo baz)` we would write `~($ foo baz)`. This
139−is an irregular form for `%~($ foo baz)`, [%~](@/docs/hoon/reference/rune/cen.md#censig).
139+is an irregular form for `%~($ foo baz)`, [%~](/docs/hoon/reference/rune/cen#censig).
140140
141141##### Examples
142142
@@ -346,7 +346,7 @@ A more interesting trap:
346346Note that we can use `$()` to recurse back into the
347347trap, since it's a core with an `$` arm.
348348
349−> `$(...)` expands to `%=($ ...)` (["centis"](@/docs/hoon/reference/rune/cen.md#centis)).
349+> `$(...)` expands to `%=($ ...)` (["centis"](/docs/hoon/reference/rune/cen#centis)).
350350
351351### `|-` "barhep"
352352
@@ -380,7 +380,7 @@ A `|-` expression produces a core with one arm named `$` and immediately evaluat
380380
381381The `|-` rune can be thought of as a 'recursion point' or a 'loop starting point'. Since `|-` makes a `|.` (["bardot"](#bardot), a core with one arm named `$`, we can recurse back into it with `$()`.
382382
383−> `$(...)` expands to `%=($ ...)` (["centis"](@/docs/hoon/reference/rune/cen.md#centis)).
383+> `$(...)` expands to `%=($ ...)` (["centis"](/docs/hoon/reference/rune/cen#centis)).
384384
385385##### Examples
386386
@@ -493,7 +493,7 @@ A `|~` expression produces an iron gate. `a` defines the sample, and `b` define
493493
494494##### Discussion
495495
496−See [this discussion of core variance models](@/docs/hoon/reference/advanced.md)
496+See [this discussion of core variance models](/docs/hoon/reference/advanced)
497497
498498##### Examples
499499
@@ -548,7 +548,7 @@ you know what you're doing.
548548Just as with a [gate](#bartis), we can recurse back into a wet gate
549549with `$()`.
550550
551−> `$(...)` expands to `%=($ ...)` (["centis"](@/docs/hoon/reference/rune/cen.md#centis)).
551+> `$(...)` expands to `%=($ ...)` (["centis"](/docs/hoon/reference/rune/cen#centis)).
552552
553553`|*` can be used to make wet gates that produce structures, but this usage is
554554discouraged in favor of `|$`.
@@ -610,7 +610,7 @@ Dry gates are used for the vast majority of ordinary functions in Hoon.
610610
611611A gate is a core with one arm named `$`, so we can recurse back into it with `$()`.
612612
613−> `$(...)` expands to `%=($ ...)` (["centis"](@/docs/hoon/reference/rune/cen.md#centis)).
613+> `$(...)` expands to `%=($ ...)` (["centis"](/docs/hoon/reference/rune/cen#centis)).
614614
615615##### Examples
616616
@@ -663,7 +663,7 @@ A `|@` expression produces a 'wet' core whose payload is the expression's subjec
663663
664664##### Discussion
665665
666−The `|@` rune is just like the `|%` rune except that instead of producing a 'dry' core, it produces a 'wet' one. This allows for type polymorphism of its arms, using 'genericity'. See [Advanced types](@/docs/hoon/reference/advanced.md).
666+The `|@` rune is just like the `|%` rune except that instead of producing a 'dry' core, it produces a 'wet' one. This allows for type polymorphism of its arms, using 'genericity'. See [Advanced types](/docs/hoon/reference/advanced).
667667
668668### `|?` "barwut"
669669
@@ -695,7 +695,7 @@ A `|?` expression produces a lead trap (i.e., a lead core with one arm named `$`
695695
696696##### Discussion
697697
698−See this [discussion of the core variance model](@/docs/hoon/reference/advanced.md).
698+See this [discussion of the core variance model](/docs/hoon/reference/advanced).
699699
700700##### Examples
701701
content/docs/hoon/reference/rune/buc.md+7−7
@@ -11,8 +11,8 @@ these runes are used to produce `spec`s, which we call 'structures'.
1111## Overview
1212
1313Structures are abstract syntax trees for `type`s (see the documentation on
14−[basic](@/docs/hoon/reference/basic.md) and
15−[advanced](@/docs/hoon/reference/advanced.md) types for the
14+[basic](/docs/hoon/reference/basic) and
15+[advanced](/docs/hoon/reference/advanced) types for the
1616precise definition of `type`). Structures are compile-time values of `type` which
1717at runtime may be used to produce a 'mold'.
1818
@@ -112,7 +112,7 @@ rune should rarely be used, but it is extremely important when it is.
112112~zod:dojo> =foo $| (list @)
113113 |=(a=(list) (lth (lent a) 4))
114114```
115−This creates a structure `foo` whose values are `list`s with length less than 4.
115+This creates a structure `foo` whose values are `list`s with length less than 4.
116116```
117117> (foo ~[1 2 3])
118118~[1 2 3]
@@ -128,7 +128,7 @@ The definition of `+set` in `hoon.hoon` is the following:
128128 $| (tree item)
129129 |=(a=(tree) ~(apt in a))
130130```
131−Here [`|$`](@/docs/hoon/reference/rune/bar.md#barbuc) is used to
131+Here [`|$`](/docs/hoon/reference/rune/bar#barbuc) is used to
132132define a mold builder that takes in a mold (given the face `item`) and creates a
133133structure consisting of a `tree` of `item`s with `$|` that is validated with the
134134gate `|=(a=(tree) ~(apt in a))`. `in` is a door in `hoon.hoon` with functions
@@ -245,7 +245,7 @@ Irregular (structure mode): `[a b c]` is `$:(a b c)`.
245245
246246### `$<` "bucgal"
247247
248−`[%bsld p=spec q=spec]`: Filters a pre-existing mold to obtain a mold
248+`[%bsld p=spec q=spec]`: Filters a pre-existing mold to obtain a mold
249249that excludes a particular structure.
250250
251251##### Syntax
@@ -280,7 +280,7 @@ ford: %ride failed to execute:
280280
281281### `$>` "bucgar"
282282
283−`[%bsbn p=spec q=spec]`: Filters a mold to obtain a new mold
283+`[%bsbn p=spec q=spec]`: Filters a mold to obtain a new mold
284284matching a particular structure.
285285
286286##### Syntax
@@ -451,7 +451,7 @@ $~ p=hoon q=spec
451451
452452##### Discussion
453453
454−You should make sure that the product type of `p` nests under `q`. You can check the default value of some structure (custom type) `r` with `*r`. (See the [`^*` rune](@/docs/hoon/reference/rune/ket.md#kettar).)
454+You should make sure that the product type of `p` nests under `q`. You can check the default value of some structure (custom type) `r` with `*r`. (See the [`^*` rune](/docs/hoon/reference/rune/ket#kettar).)
455455
456456Do not confuse the `$~` rune with the constant type for null, `$~`. (The latter uses older Hoon syntax that is still accepted. Preferably it would be `%~`.)
457457
content/docs/hoon/reference/rune/cen.md+4−4
@@ -53,7 +53,7 @@ A `%_` expression resolves to the value of the subject at wing `a`, but modified
5353
5454`%_` is different from `%=` because `%=` can change the type of a wing with mutations. `%_` preserves the wing type.
5555
56−See [how wings are resolved](@/docs/hoon/reference/limbs/_index.md).
56+See [how wings are resolved](/docs/hoon/reference/limbs/).
5757
5858##### Examples
5959
@@ -204,8 +204,8 @@ This rune is for evaluating the `$` arm of a gate, i.e., calling a gate as a fun
204204
205205##### Discussion
206206
207−`%-` is used to call a function; `a` is the function ([`gate`](@/docs/hoon/reference/rune/bar.md#bartis),
208−`q` the argument. `%-` is a special case of [`%~` ("censig")](#censig), and a gate is a special case of a [door](@/docs/hoon/reference/rune/bar.md#barcab).
207+`%-` is used to call a function; `a` is the function ([`gate`](/docs/hoon/reference/rune/bar#bartis),
208+`q` the argument. `%-` is a special case of [`%~` ("censig")](#censig), and a gate is a special case of a [door](/docs/hoon/reference/rune/bar#barcab).
209209
210210##### Examples
211211
@@ -319,7 +319,7 @@ A `%~` expression evaluates the arm of a door (i.e., a core with a sample). `a`
319319
320320`%~` is the general case of a function call, `%-`. In both, we replace the sample (`+6`) of a core. In `%-` the core is a gate and the `$` arm is evaluated. In `%~` the core is a door and any arm may be evaluated. You must identify the arm to be run: `%~(arm door arg)`.
321321
322−See also [`|_`](@/docs/hoon/reference/rune/bar.md#barcab).
322+See also [`|_`](/docs/hoon/reference/rune/bar#barcab).
323323
324324##### Examples
325325
content/docs/hoon/reference/rune/ket.md+1−1
@@ -203,7 +203,7 @@ Regular: **1-fixed**.
203203
204204##### Discussion
205205
206−A zinc core has a read-only sample and an opaque context. See [Advanced types](@/docs/hoon/reference/advanced.md).
206+A zinc core has a read-only sample and an opaque context. See [Advanced types](/docs/hoon/reference/advanced).
207207
208208##### Examples
209209
content/docs/hoon/reference/rune/tis.md+1−1
@@ -159,7 +159,7 @@ Regular: **3-fixed**.
159159##### Discussion
160160
161161Technically the `=.` rune doesn't change the subject. It creates
162−a new subject just like the old one except for a changed value at `p`. Note that the mutation uses [`%_` ("cencab")](@/docs/hoon/reference/rune/cen.md#cencab), so the type at `p` doesn't change. Trying to change the value type results in a `nest-fail`.
162+a new subject just like the old one except for a changed value at `p`. Note that the mutation uses [`%_` ("cencab")](/docs/hoon/reference/rune/cen#cencab), so the type at `p` doesn't change. Trying to change the value type results in a `nest-fail`.
163163
164164##### Examples
165165
content/docs/hoon/reference/rune/wut.md+1−1
@@ -22,7 +22,7 @@ for expressions which expand to `?:`.
2222The test does not have to be a single `?=`; the compiler can
2323analyze arbitrary boolean logic ([`?&` ("wutpam")](#wutpam),
2424[`?|` ("wutbar")](#wutbar), [`?!` ("wutzap")](#wutzap)) with full
25−short-circuiting. Equality tests ([`.=` ("dottis")](@/docs/hoon/reference/rune/dot.md#dottis)) are **not**
25+short-circuiting. Equality tests ([`.=` ("dottis")](/docs/hoon/reference/rune/dot#dottis)) are **not**
2626analyzed.
2727
2828If the compiler detects that the branch is degenerate (only one
content/docs/hoon/reference/stdlib/1a.md+34−34
@@ -12,13 +12,13 @@ Produces the sum of `a` and `b`.
1212
1313#### Accepts
1414
15−`a` is an [`atom`](@/docs/glossary/atom.md).
15+`a` is an [`atom`](/docs/glossary/atom).
1616
17−`b` is an [`atom`](@/docs/glossary/atom.md).
17+`b` is an [`atom`](/docs/glossary/atom).
1818
1919#### Produces
2020
21−An [`atom`](@/docs/glossary/atom.md).
21+An [`atom`](/docs/glossary/atom).
2222
2323#### Source
2424
@@ -65,11 +65,11 @@ Decrements `a` by `1`.
6565
6666#### Accepts
6767
68−`a` is an [`atom`](@/docs/glossary/atom.md).
68+`a` is an [`atom`](/docs/glossary/atom).
6969
7070#### Produces
7171
72−An [`atom`](@/docs/glossary/atom.md).
72+An [`atom`](/docs/glossary/atom).
7373
7474#### Source
7575
@@ -116,13 +116,13 @@ Computes `a` divided by `b` without remainder.
116116
117117#### Accepts
118118
119−`a` is an [`atom`](@/docs/glossary/atom.md).
119+`a` is an [`atom`](/docs/glossary/atom).
120120
121−`b` is an [`atom`](@/docs/glossary/atom.md).
121+`b` is an [`atom`](/docs/glossary/atom).
122122
123123#### Produces
124124
125−An [`atom`](@/docs/glossary/atom.md).
125+An [`atom`](/docs/glossary/atom).
126126
127127#### Source
128128
@@ -171,13 +171,13 @@ Computes `a` divided by `b`, producing the quotient and the remainder.
171171
172172#### Accepts
173173
174−`a` is an [`atom`](@/docs/glossary/atom.md).
174+`a` is an [`atom`](/docs/glossary/atom).
175175
176−`b` is an [`atom`](@/docs/glossary/atom.md).
176+`b` is an [`atom`](/docs/glossary/atom).
177177
178178#### Produces
179179
180−A cell of [`atoms`](@/docs/glossary/atom.md).
180+A cell of [`atoms`](/docs/glossary/atom).
181181
182182#### Source
183183
@@ -221,9 +221,9 @@ Tests whether `a` is greater than or equal to `b`.
221221
222222#### Accepts
223223
224−`a` is an [`atom`](@/docs/glossary/atom.md).
224+`a` is an [`atom`](/docs/glossary/atom).
225225
226−`b` is an [`atom`](@/docs/glossary/atom.md).
226+`b` is an [`atom`](/docs/glossary/atom).
227227
228228#### Produces
229229
@@ -261,9 +261,9 @@ Tests whether `a` is greater than `b`.
261261
262262#### Accepts
263263
264−`a` is an [`atom`](@/docs/glossary/atom.md).
264+`a` is an [`atom`](/docs/glossary/atom).
265265
266−`b` is an [`atom`](@/docs/glossary/atom.md).
266+`b` is an [`atom`](/docs/glossary/atom).
267267
268268#### Produces
269269
@@ -302,9 +302,9 @@ Tests whether `a` is less than or equal to `b`.
302302
303303#### Accepts
304304
305−`a` is an [`atom`](@/docs/glossary/atom.md).
305+`a` is an [`atom`](/docs/glossary/atom).
306306
307−`b` is an [`atom`](@/docs/glossary/atom.md).
307+`b` is an [`atom`](/docs/glossary/atom).
308308
309309#### Produces
310310
@@ -359,9 +359,9 @@ Tests whether `a` is less than `b`.
359359
360360#### Accepts
361361
362−`a` is an [`atom`](@/docs/glossary/atom.md).
362+`a` is an [`atom`](/docs/glossary/atom).
363363
364−`b` is an [`atom`](@/docs/glossary/atom.md).
364+`b` is an [`atom`](/docs/glossary/atom).
365365
366366#### Produces
367367
@@ -417,13 +417,13 @@ Computes the greater of `a` and `b`.
417417
418418#### Accepts
419419
420−`a` is an [`atom`](@/docs/glossary/atom.md).
420+`a` is an [`atom`](/docs/glossary/atom).
421421
422−`b` is an [`atom`](@/docs/glossary/atom.md).
422+`b` is an [`atom`](/docs/glossary/atom).
423423
424424#### Produces
425425
426−An [`atom`](@/docs/glossary/atom.md).
426+An [`atom`](/docs/glossary/atom).
427427
428428#### Source
429429
@@ -473,13 +473,13 @@ Computes the lesser of `a` and `b`.
473473
474474#### Accepts
475475
476−`a` is an [`atom`](@/docs/glossary/atom.md).
476+`a` is an [`atom`](/docs/glossary/atom).
477477
478−`b` is an [`atom`](@/docs/glossary/atom.md).
478+`b` is an [`atom`](/docs/glossary/atom).
479479
480480#### Produces
481481
482−An [`atom`](@/docs/glossary/atom.md).
482+An [`atom`](/docs/glossary/atom).
483483
484484#### Source
485485
@@ -527,13 +527,13 @@ Computes the remainder of dividing `a` by `b`.
527527
528528#### Accepts
529529
530−`a` is an [`atom`](@/docs/glossary/atom.md).
530+`a` is an [`atom`](/docs/glossary/atom).
531531
532−`b` is an [`atom`](@/docs/glossary/atom.md).
532+`b` is an [`atom`](/docs/glossary/atom).
533533
534534#### Produces
535535
536−An [`atom`](@/docs/glossary/atom.md).
536+An [`atom`](/docs/glossary/atom).
537537
538538#### Source
539539
@@ -578,13 +578,13 @@ Multiplies `a` by `b`.
578578
579579#### Accepts
580580
581−`a` is an [`atom`](@/docs/glossary/atom.md).
581+`a` is an [`atom`](/docs/glossary/atom).
582582
583−`b` is an [`atom`](@/docs/glossary/atom.md).
583+`b` is an [`atom`](/docs/glossary/atom).
584584
585585#### Produces
586586
587−An [`atom`](@/docs/glossary/atom.md).
587+An [`atom`](/docs/glossary/atom).
588588
589589#### Source
590590
@@ -629,13 +629,13 @@ Subtracts `b` from `a`.
629629
630630#### Accepts
631631
632−`a` is an [`atom`](@/docs/glossary/atom.md).
632+`a` is an [`atom`](/docs/glossary/atom).
633633
634−`b` is an [`atom`](@/docs/glossary/atom.md).
634+`b` is an [`atom`](/docs/glossary/atom).
635635
636636#### Produces
637637
638−An [`atom`](@/docs/glossary/atom.md).
638+An [`atom`](/docs/glossary/atom).
639639
640640#### Source
641641
content/docs/hoon/reference/stdlib/1b.md+15−15
@@ -4,25 +4,25 @@ weight = 2
44template = "doc.html"
55+++
66
7−Check out the Nock [explanation](@/docs/nock/_index.md) for more
7+Check out the Nock [explanation](/docs/nock/) for more
88information on the tree-addressing system.
99
1010### `++cap`
1111
1212Tree head
1313
14−Tests whether the tree address `a` is in the head or the tail of a [`noun`](@/docs/glossary/noun.md).
15−Produces the constant [`atom`](@/docs/glossary/atom.md) `%2` if it is within the head (subtree `+2`), or
16−the constant [`atom`](@/docs/glossary/atom.md) `%3` if it is within the tail (subtree `+3`).
14+Tests whether the tree address `a` is in the head or the tail of a [`noun`](/docs/glossary/noun).
15+Produces the constant [`atom`](/docs/glossary/atom) `%2` if it is within the head (subtree `+2`), or
16+the constant [`atom`](/docs/glossary/atom) `%3` if it is within the tail (subtree `+3`).
1717
1818
1919#### Accepts
2020
21−`a` is an [`atom`](@/docs/glossary/atom.md).
21+`a` is an [`atom`](/docs/glossary/atom).
2222
2323#### Produces
2424
25−A constant [`atom`](@/docs/glossary/atom.md).
25+A constant [`atom`](/docs/glossary/atom).
2626
2727#### Source
2828
@@ -70,16 +70,16 @@ A constant [`atom`](@/docs/glossary/atom.md).
7070
7171Address within head/tail
7272
73−Computes the tree address of [`atom`](@/docs/glossary/atom.md) `a` within either the head (`+2`) or tail
74−(`+3`) of a [`noun`](@/docs/glossary/noun.md).
73+Computes the tree address of [`atom`](/docs/glossary/atom) `a` within either the head (`+2`) or tail
74+(`+3`) of a [`noun`](/docs/glossary/noun).
7575
7676#### Accepts
7777
78−`a` is an [`atom`](@/docs/glossary/atom.md).
78+`a` is an [`atom`](/docs/glossary/atom).
7979
8080#### Produces
8181
82−An [`atom`](@/docs/glossary/atom.md).
82+An [`atom`](/docs/glossary/atom).
8383
8484#### Source
8585
@@ -144,7 +144,7 @@ An [`atom`](@/docs/glossary/atom.md).
144144 (continues...)
145145```
146146
147−Running `(mas 7)` in the [`Dojo`](@/docs/glossary/dojo.md) will return `3`, because address `+3` is what
147+Running `(mas 7)` in the [`Dojo`](/docs/glossary/dojo) will return `3`, because address `+3` is what
148148`+7` now occupies. The tree below helps illustrate the relationship. With
149149parentheses are `a` values (if `a` is in subtree `+3`), and without parentheses
150150are the values returned with `(mas a)`.
@@ -175,13 +175,13 @@ Computes the absolute address of `b`, a relative address within the subtree
175175
176176#### Accepts
177177
178−`a` is an [`atom`](@/docs/glossary/atom.md).
178+`a` is an [`atom`](/docs/glossary/atom).
179179
180−`b` is an [`atom`](@/docs/glossary/atom.md).
180+`b` is an [`atom`](/docs/glossary/atom).
181181
182182#### Produces
183183
184−An [`atom`](@/docs/glossary/atom.md).
184+An [`atom`](/docs/glossary/atom).
185185
186186#### Source
187187
@@ -232,7 +232,7 @@ right (starting with root `+1`, head `+2`, and tail `+3`). Relative address
232232`b` is found with respect to `a`, and then its absolute address, within the
233233greater tree, is returned.
234234
235−Running `(peg 3 4)` in the [`Dojo`](@/docs/glossary/dojo.md), for example, will return `12`. Looking at
235+Running `(peg 3 4)` in the [`Dojo`](/docs/glossary/dojo), for example, will return `12`. Looking at
236236a tree diagram makes it easy to see why.
237237
238238```
content/docs/hoon/reference/stdlib/1c.md+12−12
@@ -46,7 +46,7 @@ supplied, it defaults to a value of 1.
4646
4747Blocksize
4848
49−[`Atom`](@/docs/glossary/atom.md) representing block size. A block of size `a` has a bitwidth of `2^a`.
49+[`Atom`](/docs/glossary/atom) representing block size. A block of size `a` has a bitwidth of `2^a`.
5050
5151#### Source
5252
@@ -101,7 +101,7 @@ A `bloq` of 3 has a bitwidth of 8. (2^3 bits; can represent 256 values.)
101101
102102And so on.
103103
104−See the [bit arithmetic](@/docs/hoon/reference/stdlib/2c.md) section for operations that use `bloq`s.
104+See the [bit arithmetic](/docs/hoon/reference/stdlib/2c) section for operations that use `bloq`s.
105105
106106---
107107
@@ -135,7 +135,7 @@ A mold generator. Produces a discriminated fork between two types, defaulting to
135135
136136Function
137137
138−A [`core`](@/docs/glossary/core.md) with one arm, `$`--the empty name--which transforms a sample noun into a
138+A [`core`](/docs/glossary/core) with one arm, `$`--the empty name--which transforms a sample noun into a
139139product noun. If used dryly as a type, the subject must have a sample type of
140140`*`.
141141
@@ -168,7 +168,7 @@ A `gate` is analogous to a function in other programming languages. We created
168168this new jargon because other constructs in Urbit are "functions" in the
169169mathematical sense. Any `gate` normalizes to an iron `gate`.
170170
171−See also: [`++lift`](@/docs/hoon/reference/stdlib/2a.md#lift), [`++cork`](@/docs/hoon/reference/stdlib/2n.md#cork)
171+See also: [`++lift`](/docs/hoon/reference/stdlib/2a#lift), [`++cork`](/docs/hoon/reference/stdlib/2n#cork)
172172
173173---
174174### `++list`
@@ -204,7 +204,7 @@ homogenous type.
204204```
205205#### Discussion
206206
207−See also: [`++turn`](@/docs/hoon/reference/stdlib/2b.md#turn), [`++snag`](@/docs/hoon/reference/stdlib/2b.md#snag)
207+See also: [`++turn`](/docs/hoon/reference/stdlib/2b#turn), [`++snag`](/docs/hoon/reference/stdlib/2b#snag)
208208
209209---
210210### `++lone`
@@ -267,9 +267,9 @@ A mold generator. Produces a tuple of two of the types passed in.
267267---
268268### `++pole`
269269
270−Faceless [`list`](@/docs/hoon/reference/stdlib/1c.md#list)
270+Faceless [`list`](/docs/hoon/reference/stdlib/1c#list)
271271
272−A mold generator. A [`list`](@/docs/hoon/reference/stdlib/1c.md#list) without the faces `i` and `t`.
272+A mold generator. A [`list`](/docs/hoon/reference/stdlib/1c#list) without the faces `i` and `t`.
273273
274274#### Source
275275
@@ -318,9 +318,9 @@ A mold generator. Produces a tuple of four of the types passed in.
318318---
319319### `++quip`
320320
321−Mold of pair of [`list`](@/docs/hoon/reference/stdlib/1c.md#list) and type
321+Mold of pair of [`list`](/docs/hoon/reference/stdlib/1c#list) and type
322322
323−A mold generator. Produces a tuple of a [`list`](@/docs/hoon/reference/stdlib/1c.md#list) of `a` and the mold of `b`.
323+A mold generator. Produces a tuple of a [`list`](/docs/hoon/reference/stdlib/1c#list) of `a` and the mold of `b`.
324324
325325#### Source
326326
@@ -347,9 +347,9 @@ new state. You'll often see `quip` used in Gall apps.
347347---
348348### `++trap`
349349
350−[`Core`](@/docs/glossary/core.md) with one arm `$`
350+[`Core`](/docs/glossary/core) with one arm `$`
351351
352−A trap is a [`core`](@/docs/glossary/core.md) with one arm `$`.
352+A trap is a [`core`](/docs/glossary/core) with one arm `$`.
353353
354354#### Source
355355
@@ -454,6 +454,6 @@ type that was passed in.
454454
455455Using a `unit` allows you to specify something that may not be there.
456456
457−See also: [`++bind`](@/docs/hoon/reference/stdlib/2a.md#bind)
457+See also: [`++bind`](/docs/hoon/reference/stdlib/2a#bind)
458458
459459---
content/docs/hoon/reference/stdlib/2a.md+49−49
@@ -6,20 +6,20 @@ template = "doc.html"
66
77### `++biff`
88
9−[`Unit`](@/docs/hoon/reference/stdlib/1c.md#unit) as argument
9+[`Unit`](/docs/hoon/reference/stdlib/1c#unit) as argument
1010
11−Applies a function `b` that produces a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) to the unwrapped value of [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
11+Applies a function `b` that produces a [`unit`](/docs/hoon/reference/stdlib/1c#unit) to the unwrapped value of [`unit`](/docs/hoon/reference/stdlib/1c#unit)
1212`a` (`u.a`). If `a` is empty, `~` is produced.
1313
1414#### Accepts
1515
16−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
16+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
1717
18−`b` is a function that accepts a [`noun`](@/docs/glossary/noun.md) and produces a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
18+`b` is a function that accepts a [`noun`](/docs/glossary/noun) and produces a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
1919
2020#### Produces
2121
22−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
22+A [`unit`](/docs/hoon/reference/stdlib/1c#unit).
2323
2424#### Source
2525
@@ -44,21 +44,21 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
4444---
4545### `++bind`
4646
47−Non-unit function to [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit), producing [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
47+Non-unit function to [`unit`](/docs/hoon/reference/stdlib/1c#unit), producing [`unit`](/docs/hoon/reference/stdlib/1c#unit)
4848
49−Applies a function `b` to the value (`u.a`) of a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `a`, producing
50−a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit). Used when you want a function that does not accept or produce a
51−[`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) to both accept and produce a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
49+Applies a function `b` to the value (`u.a`) of a [`unit`](/docs/hoon/reference/stdlib/1c#unit) `a`, producing
50+a [`unit`](/docs/hoon/reference/stdlib/1c#unit). Used when you want a function that does not accept or produce a
51+[`unit`](/docs/hoon/reference/stdlib/1c#unit) to both accept and produce a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
5252
5353#### Accepts
5454
55−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
55+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
5656
5757`b` is a function.
5858
5959#### Produces
6060
61−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
61+A [`unit`](/docs/hoon/reference/stdlib/1c#unit).
6262
6363#### Source
6464
@@ -87,18 +87,18 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
8787
8888Replace null
8989
90−Replaces an empty [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `b` with the product of a called [`trap`](@/docs/glossary/trap.md)
91−`a`. If the [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) is not empty, then the original [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) is produced.
90+Replaces an empty [`unit`](/docs/hoon/reference/stdlib/1c#unit) `b` with the product of a called [`trap`](/docs/glossary/trap)
91+`a`. If the [`unit`](/docs/hoon/reference/stdlib/1c#unit) is not empty, then the original [`unit`](/docs/hoon/reference/stdlib/1c#unit) is produced.
9292
9393#### Accepts
9494
95−`a` is a [`trap`](@/docs/glossary/trap.md).
95+`a` is a [`trap`](/docs/glossary/trap).
9696
97−`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
97+`b` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
9898
9999#### Produces
100100
101−Either the product of `a` or the value inside of [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `b`.
101+Either the product of `a` or the value inside of [`unit`](/docs/hoon/reference/stdlib/1c#unit) `b`.
102102
103103#### Source
104104
@@ -126,21 +126,21 @@ Either the product of `a` or the value inside of [`unit`](@/docs/hoon/reference/
126126---
127127### `++both`
128128
129−Group [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) values into pair
129+Group [`unit`](/docs/hoon/reference/stdlib/1c#unit) values into pair
130130
131131Produces `~` if either `a` or `b` are empty. Otherwise, produces a
132−[`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) whose value is a cell of the values of two input [`units`](@/docs/hoon/reference/stdlib/1c.md#unit) `a` and
132+[`unit`](/docs/hoon/reference/stdlib/1c#unit) whose value is a cell of the values of two input [`units`](/docs/hoon/reference/stdlib/1c#unit) `a` and
133133`b`.
134134
135135#### Accepts
136136
137−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
137+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
138138
139−`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
139+`b` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
140140
141141#### Produces
142142
143−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) of the two initial values.
143+A [`unit`](/docs/hoon/reference/stdlib/1c#unit) of the two initial values.
144144
145145#### Source
146146
@@ -165,22 +165,22 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) of the two initial values.
165165---
166166### `++clap`
167167
168−Apply function to two [`units`](@/docs/hoon/reference/stdlib/1c.md#unit)
168+Apply function to two [`units`](/docs/hoon/reference/stdlib/1c#unit)
169169
170170Applies a binary function `c`--which does not usually accept or produce a
171−[`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)-- to the values of two [`units`](@/docs/hoon/reference/stdlib/1c.md#unit), `a` and `b`, producing a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
171+[`unit`](/docs/hoon/reference/stdlib/1c#unit)-- to the values of two [`units`](/docs/hoon/reference/stdlib/1c#unit), `a` and `b`, producing a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
172172
173173#### Accepts
174174
175−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
175+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
176176
177−`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
177+`b` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
178178
179179`c` is a function that performs a binary operation.
180180
181181#### Produces
182182
183−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
183+A [`unit`](/docs/hoon/reference/stdlib/1c#unit).
184184
185185#### Source
186186
@@ -212,13 +212,13 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
212212---
213213### `++drop`
214214
215−[`Unit`](@/docs/hoon/reference/stdlib/1c.md#unit) to list
215+[`Unit`](/docs/hoon/reference/stdlib/1c#unit) to list
216216
217−Makes a [`++list`](@/docs/hoon/reference/stdlib/1c.md#list) of the unwrapped value (`u.a`) of a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `a`.
217+Makes a [`++list`](/docs/hoon/reference/stdlib/1c#list) of the unwrapped value (`u.a`) of a [`unit`](/docs/hoon/reference/stdlib/1c#unit) `a`.
218218
219219#### Accepts
220220
221−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
221+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
222222
223223#### Produces
224224
@@ -249,19 +249,19 @@ A list.
249249---
250250### `++fall`
251251
252−Give [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) a default value
252+Give [`unit`](/docs/hoon/reference/stdlib/1c#unit) a default value
253253
254−Produces a default value `b` for a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `a` in cases where `a` is null.
254+Produces a default value `b` for a [`unit`](/docs/hoon/reference/stdlib/1c#unit) `a` in cases where `a` is null.
255255
256256#### Accepts
257257
258−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
258+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
259259
260−`b` is a [`noun`](@/docs/glossary/noun.md) that's used as the default value.
260+`b` is a [`noun`](/docs/glossary/noun) that's used as the default value.
261261
262262#### Produces
263263
264−Either a [`noun`](@/docs/glossary/noun.md) `b` or the unwrapped value of [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `a`.
264+Either a [`noun`](/docs/glossary/noun) `b` or the unwrapped value of [`unit`](/docs/hoon/reference/stdlib/1c#unit) `a`.
265265
266266#### Source
267267
@@ -285,19 +285,19 @@ Either a [`noun`](@/docs/glossary/noun.md) `b` or the unwrapped value of [`unit`
285285
286286Curried bind
287287
288−Accepts a `++gate` `a` and produces a function that accepts [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
288+Accepts a `++gate` `a` and produces a function that accepts [`unit`](/docs/hoon/reference/stdlib/1c#unit)
289289`b` to which it applies `a`. Used when you want a function that does not accept
290−or produce a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) to both accept and produce a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
290+or produce a [`unit`](/docs/hoon/reference/stdlib/1c#unit) to both accept and produce a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
291291
292292#### Accepts
293293
294294`a` is a gate.
295295
296−`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
296+`b` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
297297
298298#### Produces
299299
300−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
300+A [`unit`](/docs/hoon/reference/stdlib/1c#unit).
301301
302302#### Source
303303
@@ -324,7 +324,7 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
324324
325325Choose
326326
327−Accepts two [`units`](@/docs/hoon/reference/stdlib/1c.md#unit) `a` and `b` whose values are expected to be
327+Accepts two [`units`](/docs/hoon/reference/stdlib/1c#unit) `a` and `b` whose values are expected to be
328328equivalent. If either is empty, then the value of the other is produced.
329329If neither are empty, it asserts that both values are the same and
330330produces that value. If the assertion fails, `++mate` crashes with
@@ -332,13 +332,13 @@ produces that value. If the assertion fails, `++mate` crashes with
332332
333333#### Accepts
334334
335−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
335+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
336336
337−`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
337+`b` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
338338
339339#### Produces
340340
341−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) or crash.
341+A [`unit`](/docs/hoon/reference/stdlib/1c#unit) or crash.
342342
343343#### Source
344344
@@ -374,13 +374,13 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) or crash.
374374---
375375### `++need`
376376
377−Unwrap [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
377+Unwrap [`unit`](/docs/hoon/reference/stdlib/1c#unit)
378378
379−Retrieve the value from a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) and crash if the [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) is null.
379+Retrieve the value from a [`unit`](/docs/hoon/reference/stdlib/1c#unit) and crash if the [`unit`](/docs/hoon/reference/stdlib/1c#unit) is null.
380380
381381#### Accepts
382382
383−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
383+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
384384
385385#### Produces
386386
@@ -415,17 +415,17 @@ Either the unwrapped value of `a` (`u.a`), or crash.
415415---
416416### `++some`
417417
418−Wrap value in a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
418+Wrap value in a [`unit`](/docs/hoon/reference/stdlib/1c#unit)
419419
420−Takes any [`noun`](@/docs/glossary/noun.md) `a` and produces a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) with the value set to `a`.
420+Takes any [`noun`](/docs/glossary/noun) `a` and produces a [`unit`](/docs/hoon/reference/stdlib/1c#unit) with the value set to `a`.
421421
422422#### Accepts
423423
424−`a` is a [`noun`](@/docs/glossary/noun.md).
424+`a` is a [`noun`](/docs/glossary/noun).
425425
426426#### Produces
427427
428−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
428+A [`unit`](/docs/hoon/reference/stdlib/1c#unit).
429429
430430#### Source
431431
content/docs/hoon/reference/stdlib/2c.md+24−24
@@ -53,7 +53,7 @@ value.
5353
5454#### Accepts
5555
56−`a` is a block size (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md)).
56+`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
5757
5858`b` is a `list` of length-value pairs, `p` and `q`.
5959
@@ -110,7 +110,7 @@ atom.
110110
111111#### Accepts
112112
113−`a` is a block size (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md)).
113+`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
114114
115115`b` is an atom.
116116
@@ -173,7 +173,7 @@ Slices `c` blocks of size `a` that are positioned `b` blocks from the end of
173173
174174#### Accepts
175175
176−`a` is a block size (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md)).
176+`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
177177
178178`b` is an atom.
179179
@@ -228,12 +228,12 @@ An atom.
228228
229229Tail
230230
231−Produces an atom by taking the last `step` blocks of size `bloq` from `b`.
231+Produces an atom by taking the last `step` blocks of size `bloq` from `b`.
232232
233233#### Accepts
234234
235−`a` is an atom slice specifier (see [`++bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
236−which is a block size (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md#bloq))
235+`a` is an atom slice specifier (see [`++bite`](/docs/hoon/reference/stdlib/1c#bite)),
236+which is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c#bloq))
237237with optional block count.
238238
239239`b` is an atom.
@@ -303,7 +303,7 @@ Produces an atom by repeating `c` for `b` blocks of size `a`.
303303
304304#### Accepts
305305
306−`a` is a block size (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md)).
306+`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
307307
308308`b` is an atom.
309309
@@ -355,8 +355,8 @@ Produces an atom by left-shifting `b` by `step` blocks of size `bloq`.
355355
356356#### Accepts
357357
358−`a` is an atom slice specifier (see [`++bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
359−which is a block size (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md#bloq))
358+`a` is an atom slice specifier (see [`++bite`](/docs/hoon/reference/stdlib/1c#bite)),
359+which is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c#bloq))
360360with optional block count.
361361
362362`b` is an atom.
@@ -410,7 +410,7 @@ Computes the number of blocks of size `a` in `b`, producing an atom.
410410
411411#### Accepts
412412
413−`a` is a block size (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md)).
413+`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
414414
415415`b` is an atom.
416416
@@ -456,7 +456,7 @@ Concatenates a list of atoms `b` using block size `a`, producing an atom.
456456
457457#### Accepts
458458
459−`a` is a block size (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md)).
459+`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
460460
461461`b` is a `list` of atoms.
462462
@@ -517,8 +517,8 @@ Produces an atom by assembling a list of atoms `b` using block size `a`.
517517
518518#### Accepts
519519
520−`a` is an atom slice specifier (see [`$bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
521−which is a block size (see [`$bloq`](@/docs/hoon/reference/stdlib/1c.md#bloq))
520+`a` is an atom slice specifier (see [`$bite`](/docs/hoon/reference/stdlib/1c#bite)),
521+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
522522with optional block count.
523523
524524`b` is a list of atoms.
@@ -594,8 +594,8 @@ Produces a list of atoms from the bits of `b` using block size `a`.
594594
595595#### Accepts
596596
597−`a` is an atom slice specifier (see [`$bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
598−which is a block size (see [`$bloq`](@/docs/hoon/reference/stdlib/1c.md#bloq))
597+`a` is an atom slice specifier (see [`$bite`](/docs/hoon/reference/stdlib/1c#bite)),
598+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
599599with optional block count.
600600
601601`b` is an atom.
@@ -659,8 +659,8 @@ Right-shifts `b` by `step` blocks of size `bloq`, producing an atom.
659659
660660#### Accepts
661661
662−`a` is an atom slice specifier (see [`$bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
663−which is a block size (see [`$bloq`](@/docs/hoon/reference/stdlib/1c.md#bloq))
662+`a` is an atom slice specifier (see [`$bite`](/docs/hoon/reference/stdlib/1c#bite)),
663+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
664664with optional block count.
665665
666666`b` is an atom.
@@ -730,8 +730,8 @@ and reassembles the results back into an atom.
730730
731731#### Accepts
732732
733−`a` is an atom slice specifier (see [`$bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
734−which is a block size (see [`$bloq`](@/docs/hoon/reference/stdlib/1c.md#bloq))
733+`a` is an atom slice specifier (see [`$bite`](/docs/hoon/reference/stdlib/1c#bite)),
734+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
735735with optional block count.
736736
737737`b` is an atom.
@@ -772,8 +772,8 @@ and assembles the results back into a.
772772
773773#### Accepts
774774
775−`a` is an atom slice specifier (see [`$bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
776−which is a block size (see [`$bloq`](@/docs/hoon/reference/stdlib/1c.md#bloq))
775+`a` is an atom slice specifier (see [`$bite`](/docs/hoon/reference/stdlib/1c#bite)),
776+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
777777with optional block count.
778778
779779`b` is an atom.
@@ -815,7 +815,7 @@ reversing the block order of `b` using block size `a`.
815815
816816#### Accepts
817817
818−`a` is a block size (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md)).
818+`a` is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c)).
819819
820820`b` is an atom.
821821
@@ -975,7 +975,7 @@ Inverts the order of the modular field.
975975
976976#### Accepts
977977
978−`b` is a `bloq`. (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md))
978+`b` is a `bloq`. (see [`++bloq`](/docs/hoon/reference/stdlib/1c))
979979
980980#### Produces
981981
@@ -1018,7 +1018,7 @@ Reverses bytes within a block.
10181018
10191019#### Accepts
10201020
1021−`b` is a `bloq`. (see [`++bloq`](@/docs/hoon/reference/stdlib/1c.md))
1021+`b` is a `bloq`. (see [`++bloq`](/docs/hoon/reference/stdlib/1c))
10221022
10231023#### Produces
10241024
content/docs/hoon/reference/stdlib/2d.md+2−2
@@ -281,7 +281,7 @@ of `c`.
281281
282282#### Accepts
283283
284−`a` is a block size (see [`bloq`](@/docs/hoon/reference/stdlib/1c.md)).
284+`a` is a block size (see [`bloq`](/docs/hoon/reference/stdlib/1c)).
285285
286286`b` is an atom.
287287
@@ -327,7 +327,7 @@ number's `0`s into `1`s, and vice versa.
327327
328328In Hoon, we ask for a little more information to use `not`, because binary
329329numbers have a number of implicit leading zeroes differently depending on on
330−their [block size](@/docs/hoon/reference/stdlib/1c.md). Decimal `7`, for example, is `0b111` in binary, and
330+their [block size](/docs/hoon/reference/stdlib/1c). Decimal `7`, for example, is `0b111` in binary, and
331331has one implicit zero in the context of a block of size `2`, which has a
332332bitwidth of 4. Let's try `not` on `7` with a single block of size `2`.
333333
content/docs/hoon/reference/stdlib/2e.md+2−2
@@ -9,7 +9,7 @@ template = "doc.html"
99FNV scrambler
1010
1111Hashes an atom with the 32-bit FNV non-cryptographic hash algorithm. Multiplies
12−`a` by the prime number 16,777,619 and then takes the [block](@/docs/hoon/reference/stdlib/2c.md) of size
12+`a` by the prime number 16,777,619 and then takes the [block](/docs/hoon/reference/stdlib/2c) of size
13135 off the product's end, producing an atom.
1414
1515#### Accepts
@@ -101,7 +101,7 @@ Standard MurmurHash3
101101Implementation of the 32-bit
102102[MurmurHash3](https://en.wikipedia.org/wiki/MurmurHash#Algorithm)
103103non-cryptographic hash algorithm. Takes `a` as the seed, `b` as the key length
104−in [blocks](@/docs/hoon/reference/stdlib/2c.md) of size 3, and `c` as the key, producing an atom.
104+in [blocks](/docs/hoon/reference/stdlib/2c) of size 3, and `c` as the key, producing an atom.
105105
106106#### Accepts
107107
content/docs/hoon/reference/stdlib/2f.md+4−4
@@ -131,7 +131,7 @@ A flag.
131131
132132#### Discussion
133133
134−If `a` and `b` are both atoms, `dor` is equivalent to [`lte`](@/docs/hoon/reference/stdlib/1a.md). If they're
134+If `a` and `b` are both atoms, `dor` is equivalent to [`lte`](/docs/hoon/reference/stdlib/1a). If they're
135135cells, `dor` recurses on the heads, and then if the heads are the same it checks
136136the tails.
137137
@@ -148,7 +148,7 @@ Computes whether of `(mug a)` and `(mug b)` are in ascending numeric order,
148148producing a flag. If the `mug` hashes are equal, `a` and `b` are compared by
149149`dor` instead.
150150
151−[`mug`](@/docs/hoon/reference/stdlib/2e.md) is the the 31-bit nonzero FNV-1a hash algorithm.
151+[`mug`](/docs/hoon/reference/stdlib/2e) is the the 31-bit nonzero FNV-1a hash algorithm.
152152
153153#### Accepts
154154
@@ -297,7 +297,7 @@ A flag.
297297#### Discussion
298298
299299Sets (+set, +in) use `hor` for their horizontal order and `vor` for their
300−vertical order. See [`apt:in`](@/docs/hoon/reference/stdlib/2h.md) to see how a set verifies its correctness.
300+vertical order. See [`apt:in`](/docs/hoon/reference/stdlib/2h) to see how a set verifies its correctness.
301301`vor` is used to verify.
302302
303303---
@@ -378,7 +378,7 @@ Computes whether the double-hashes `(mug (mug a))` and `(mug (mug b))` are in
378378ascending numeric order, producing a flag. If the double-`mug` hashes are
379379equal, `a` and `b` are compared by `dor` instead.
380380
381−[`mug`](@/docs/hoon/reference/stdlib/2e.md) is the the 31-bit nonzero FNV-1a hash algorithm.
381+[`mug`](/docs/hoon/reference/stdlib/2e) is the the 31-bit nonzero FNV-1a hash algorithm.
382382
383383
384384#### Accepts
content/docs/hoon/reference/stdlib/2h.md+2−2
@@ -166,7 +166,7 @@ A flag.
166166
167167#### Discussion
168168
169−See section [`2f`](@/docs/hoon/reference/stdlib/2f.md) for more information on noun ordering.
169+See section [`2f`](/docs/hoon/reference/stdlib/2f) for more information on noun ordering.
170170
171171---
172172### `++bif:in`
@@ -389,7 +389,7 @@ The `unit` of an atom.
389389
390390#### Discussion
391391
392−For more on the tree addressing system, see section [1b](@/docs/hoon/reference/stdlib/1b.md).
392+For more on the tree addressing system, see section [1b](/docs/hoon/reference/stdlib/1b).
393393
394394---
395395### `++gas:in`
content/docs/hoon/reference/stdlib/2i.md+1−1
@@ -180,7 +180,7 @@ A flag.
180180
181181#### Discussion
182182
183−See section [`2f`](@/docs/hoon/reference/stdlib/2f.md) for more information on noun ordering.
183+See section [`2f`](/docs/hoon/reference/stdlib/2f) for more information on noun ordering.
184184
185185### `++bif:by`
186186
content/docs/hoon/reference/stdlib/2o.md+5−5
@@ -38,7 +38,7 @@ Mold generator. A `jar` is a `map` of `list`.
3838
3939#### Discussion
4040
41−See also: [`ja`](@/docs/hoon/reference/stdlib/2j.md), [`by`](@/docs/hoon/reference/stdlib/2i.md), [`map`](@/docs/hoon/reference/stdlib/2i.md), [`list`](@/docs/hoon/reference/stdlib/2b.md)
41+See also: [`ja`](/docs/hoon/reference/stdlib/2j), [`by`](/docs/hoon/reference/stdlib/2i), [`map`](/docs/hoon/reference/stdlib/2i), [`list`](/docs/hoon/reference/stdlib/2b)
4242
4343---
4444### `++jug`
@@ -78,7 +78,7 @@ Mold generator. A `jug` is a `map` of `set`.
7878
7979#### Discussion
8080
81−See also: [`ja`](@/docs/hoon/reference/stdlib/2j.md), [`by`](@/docs/hoon/reference/stdlib/2i.md), [`set`](@/docs/hoon/reference/stdlib/2h.md)
81+See also: [`ja`](/docs/hoon/reference/stdlib/2j), [`by`](/docs/hoon/reference/stdlib/2i), [`set`](/docs/hoon/reference/stdlib/2h)
8282
8383---
8484### `++map`
@@ -111,7 +111,7 @@ key-value pairs.
111111
112112#### Discussion
113113
114−See also: [`by`](@/docs/hoon/reference/stdlib/2i.md)
114+See also: [`by`](/docs/hoon/reference/stdlib/2i)
115115
116116---
117117### `++qeu`
@@ -148,7 +148,7 @@ items.
148148
149149#### Discussion
150150
151−See also: [`qeu`](@/docs/hoon/reference/stdlib/2k.md)
151+See also: [`qeu`](/docs/hoon/reference/stdlib/2k)
152152
153153---
154154### `++set`
@@ -182,6 +182,6 @@ items.
182182
183183#### Discussion
184184
185−See also: [`in`](@/docs/hoon/reference/stdlib/2h.md)
185+See also: [`in`](/docs/hoon/reference/stdlib/2h)
186186
187187---
content/docs/hoon/reference/stdlib/2q.md+2−2
@@ -66,7 +66,7 @@ atom of UTF-8 text.
6666Aura `@t` designates a Unicode atom, little-endian: the first character
6767in the text is the least-significant byte.
6868
69−[`trip`](@/docs/hoon/reference/stdlib/4b.md) converts from `cord` to `tape`, and [`crip`](@/docs/hoon/reference/stdlib/4b.md) converts
69+[`trip`](/docs/hoon/reference/stdlib/4b) converts from `cord` to `tape`, and [`crip`](/docs/hoon/reference/stdlib/4b) converts
7070from `tape` to `cord`.
7171
7272
@@ -101,7 +101,7 @@ which is a day atom and a time.
101101
102102#### Discussion
103103
104−See also: [`year`](@/docs/hoon/reference/stdlib/3c.md), [`yore`](@/docs/hoon/reference/stdlib/3c.md)
104+See also: [`year`](/docs/hoon/reference/stdlib/3c), [`yore`](/docs/hoon/reference/stdlib/3c)
105105
106106---
107107### `++knot`
content/docs/hoon/reference/stdlib/3d.md+2−2
@@ -38,7 +38,7 @@ An atom.
3838
3939Half SHA-256
4040
41−Produces a 128-bit atom by performing the [bitwise XOR](@/docs/hoon/reference/stdlib/2d.md) on the
41+Produces a 128-bit atom by performing the [bitwise XOR](/docs/hoon/reference/stdlib/2d) on the
4242first and last halves of the 256-bit salted hash `shas`.
4343
4444#### Accepts
@@ -363,7 +363,7 @@ SHA-1 is a deprecated function; it is not considered secure.
363363
364364Salted hash
365365
366−Produces an atom by using SHA-256 plus a salt input. The [bitwise XOR](@/docs/hoon/reference/stdlib/2d.md)
366+Produces an atom by using SHA-256 plus a salt input. The [bitwise XOR](/docs/hoon/reference/stdlib/2d)
367367is performed on `sal` and the product of `ruz` hashed with SHA-256. The product
368368of that logical operation is then itself hashed with SHA-256.
369369
content/docs/hoon/reference/stdlib/3f.md+3−3
@@ -609,7 +609,7 @@ An atom.
609609
610610Reverse Feistel-like cipher
611611
612−A single round of the Feistel-like cipher `fice`. AES ([`aesc`](@/docs/hoon/reference/stdlib/3f.md)) is
612+A single round of the Feistel-like cipher `fice`. AES ([`aesc`](/docs/hoon/reference/stdlib/3f)) is
613613used as the round function. The inverse of `rund`.
614614
615615#### Accepts
@@ -651,7 +651,7 @@ A cell of two atoms.
651651
652652Reverse single Feistel-like
653653
654−A single round of the Feistel-like reverse cipher `teil`. AES ([`aesc`](@/docs/hoon/reference/stdlib/3f.md))
654+A single round of the Feistel-like reverse cipher `teil`. AES ([`aesc`](/docs/hoon/reference/stdlib/3f))
655655is used as the round function. The inverse of `rynd`.
656656
657657#### Accepts
@@ -693,7 +693,7 @@ A cell of two atoms.
693693
694694Key list
695695
696−Produces a list of arbitrary hexademical keys for use with [`aesc`](@/docs/hoon/reference/stdlib/3f.md).
696+Produces a list of arbitrary hexademical keys for use with [`aesc`](/docs/hoon/reference/stdlib/3f).
697697
698698#### Produces
699699
content/docs/hoon/reference/stdlib/3g.md+4−4
@@ -52,9 +52,9 @@ and printed using `++so` and `++co` cores.
5252
5353Aura-atom pair
5454
55−Used in `++coin`. Convenience methods [`++scot`](@/docs/hoon/reference/stdlib/4m.md) and
56−[`++scow`](@/docs/hoon/reference/stdlib/4m.md) print dimes as `++cord` and `++tape`, respectively.
57−[`++slat`](@/docs/hoon/reference/stdlib/4m.md), [`++slav`](@/docs/hoon/reference/stdlib/4m.md), and [`++slaw`](@/docs/hoon/reference/stdlib/4m.md) are used
55+Used in `++coin`. Convenience methods [`++scot`](/docs/hoon/reference/stdlib/4m) and
56+[`++scow`](/docs/hoon/reference/stdlib/4m) print dimes as `++cord` and `++tape`, respectively.
57+[`++slat`](/docs/hoon/reference/stdlib/4m), [`++slav`](/docs/hoon/reference/stdlib/4m), and [`++slaw`](/docs/hoon/reference/stdlib/4m) are used
5858to parse atoms of specific auras.
5959
6060#### Source
@@ -93,7 +93,7 @@ Parsing location metadata. Parsing location input `p` and optional result `p.q`
9393
9494#### Discussion
9595
96−See also: [Section 3g](@/docs/hoon/reference/stdlib/3g.md#rule), `++rule`
96+See also: [Section 3g](/docs/hoon/reference/stdlib/3g#rule), `++rule`
9797
9898
9999---
content/docs/hoon/reference/stdlib/4h.md+1−1
@@ -70,7 +70,7 @@ Parses ASCII character 124, the vertical bar.
7070Parse backslash
7171
7272Parses ASCII character 92, the backslash. Note the extra `\` in the calling of
73−`bas` with [`++just`](@/docs/hoon/reference/stdlib/4f.md) is to escape the escape
73+`bas` with [`++just`](/docs/hoon/reference/stdlib/4f) is to escape the escape
7474character, `\`.
7575
7676#### Source
content/docs/hoon/reference/style.md+1−1
@@ -42,7 +42,7 @@ or
4242```
4343
4444These are regular forms -- every rune can be written this way.
45−Hoon also has a variety of wide [irregular forms](@/docs/hoon/reference/irregular.md). All tall
45+Hoon also has a variety of wide [irregular forms](/docs/hoon/reference/irregular). All tall
4646forms are regular. All code within a wide form is wide.
4747Almost all code has both wide and tall forms, the exception
4848being named [cores](/docs/glossary/core/).
content/docs/nock/_index.md+4−4
@@ -10,18 +10,18 @@ insert_anchor_links = "right"
1010
1111Nock is the low-level functional programming language that is interpreted by Vere. You don't need to know Nock to write Hoon, or even to work on most parts of Vere. But if you want to understand the foundations of Urbit and are mathematically-inclined, dive right in.
1212
13−## [Nock Definition](@/docs/nock/definition.md)
13+## [Nock Definition](/docs/nock/definition)
1414
1515The Nock specification.
1616
17−## [An explanation of Nock](@/docs/nock/explanation.md)
17+## [An explanation of Nock](/docs/nock/explanation)
1818
1919A comprehensive walkthrough of the Nock spec.
2020
21−## [Nock by hand](@/docs/nock/example.md)
21+## [Nock by hand](/docs/nock/example)
2222
2323Learn Nock by example.
2424
25−## [Nock Implementations](@/docs/nock/implementations.md)
25+## [Nock Implementations](/docs/nock/implementations)
2626
2727The many ways that Nock has been implemented.
content/docs/nock/implementations.md+1−1
@@ -34,7 +34,7 @@ We use a C implementation for our Nock interpreter. But building a Nock interpre
3434
3535The actual production Nock interpreter. Note gotos for tail-call elimination,
3636and manual reference counting. More about the C environment can be found
37−in the [runtime system documentation](@/docs/vere/runtime.md).
37+in the [runtime system documentation](/docs/vere/runtime).
3838```
3939/* _n_nock_on(): produce .*(bus fol). Do not virtualize.
4040*/
content/docs/system-overview/_index.md+7−7
@@ -12,20 +12,20 @@ machine.
1212
1313The Urbit stack is primarily comprised of:
1414
15−- [Arvo](@/docs/system-overview/arvo.md): the functional operating system of
15+- [Arvo](/docs/system-overview/arvo): the functional operating system of
1616 each urbit, written in Hoon.
17−- [Hoon](@/docs/system-overview/hoon.md): a strictly typed functional
17+- [Hoon](/docs/system-overview/hoon): a strictly typed functional
1818 programming language whose standard library includes a Hoon-to-Nock compiler.
19−- [Nock](@/docs/system-overview/nock.md): a low-level combinator language whose
19+- [Nock](/docs/system-overview/nock): a low-level combinator language whose
2020 formal specification fits readably on a t-shirt.
21−- [Vere](@/docs/system-overview/vere.md): a Nock interpreter and Unix-based
21+- [Vere](/docs/system-overview/vere): a Nock interpreter and Unix-based
2222 virtual machine that mediates between each urbit and the Unix software layer.
23−- [Azimuth](@/docs/system-overview/azimuth.md): the Urbit identity layer, built
23+- [Azimuth](/docs/system-overview/azimuth): the Urbit identity layer, built
2424 on the Ethereum blockchain.
25−
25+
2626Central to the operation of Urbit are cryptographic methods. We give a
2727high-level overview on the usage of cryptography in Urbit and how it is
28−implemented [here](@/docs/system-overview/cryptography.md).
28+implemented [here](/docs/system-overview/cryptography).
2929
3030## Anatomy of a personal server
3131
content/docs/system-overview/arvo.md+9−9
@@ -16,18 +16,18 @@ appropriate OS module. The result of each Vere 'poke' is a pair of `<output
1616events, new state>`. Events are typed, and each has an explicit call-stack
1717structure indicating the event's source module in Arvo.
1818
19−For a more in-depth technical introduction, see [Arvo Overview](@/docs/arvo/overview.md).
19+For a more in-depth technical introduction, see [Arvo Overview](/docs/arvo/overview).
2020
2121Arvo modules are also called 'vanes'. Arvo's vanes are:
2222
23−- [Ames](@/docs/arvo/ames/ames.md): defines and implements Urbit's encrypted P2P network protocol, as well
23+- [Ames](/docs/arvo/ames/ames): defines and implements Urbit's encrypted P2P network protocol, as well
2424 as Urbit's identity protocol.
25−- [Behn](@/docs/arvo/behn/behn.md): manages timer events for other vanes.
26−- [Clay](@/docs/arvo/clay/clay.md): global, version-controlled, and referentially-transparent file system.
25+- [Behn](/docs/arvo/behn/behn): manages timer events for other vanes.
26+- [Clay](/docs/arvo/clay/clay): global, version-controlled, and referentially-transparent file system.
2727 Also includes our typed functional build system.
28−- [Dill](@/docs/arvo/dill/dill.md): terminal driver.
29−- [Eyre](@/docs/arvo/eyre/eyre.md): HTTP server.
30−- [Gall](@/docs/userspace/gall/gall.md): application sandbox and manager.
31−- [Iris](@/docs/arvo/iris/iris-api.md): HTTP client.
32−- [Jael](@/docs/arvo/jael/jael-api.md): Public and private key storage.
28+- [Dill](/docs/arvo/dill/dill): terminal driver.
29+- [Eyre](/docs/arvo/eyre/eyre): HTTP server.
30+- [Gall](/docs/userspace/gall/gall): application sandbox and manager.
31+- [Iris](/docs/arvo/iris/iris-api): HTTP client.
32+- [Jael](/docs/arvo/jael/jael-api): Public and private key storage.
3333
content/docs/system-overview/azimuth.md+2−2
@@ -25,9 +25,9 @@ is the neighborhood that you live in.
2525
2626## Further Reading
2727
28−* [Azimuth](@/docs/azimuth/azimuth.md): An overview of the Ethereum-based public
28+* [Azimuth](/docs/azimuth/azimuth): An overview of the Ethereum-based public
2929 key infrastructure utilized by Urbit.
30−* [Advanced Azimuth Tools](@/docs/azimuth/advanced-azimuth-tools.md):
30+* [Advanced Azimuth Tools](/docs/azimuth/advanced-azimuth-tools):
3131 Expert-level tooling for generating, signing, and sending Azimuth-related
3232 transactions from within Urbit itself.
3333
content/docs/system-overview/cryptography.md+19−19
@@ -23,42 +23,42 @@ cryptography.
2323Your Urbit ID exists as an ERC-721 non-fungible token on the Ethereum
2424blockchain, and as such is contained in a wallet whose private key you possess.
2525If you are are utilizing a [master
26−ticket](@/docs/azimuth/azimuth.md#master-ticket), this private key is derived
26+ticket](/docs/azimuth/azimuth#master-ticket), this private key is derived
2727from a seed, which is what you use to login to
28−[Bridge](@/docs/glossary/bridge.md). Otherwise, you have generated the key by
28+[Bridge](/docs/glossary/bridge). Otherwise, you have generated the key by
2929some other process, of which there are too many to list here. Besides the
3030private key which unlocks your ownership wallet address, you may have a few
3131other private keys which unlock a wallet that corresponds to your ship's
32−[proxies](@/docs/glossary/proxies.md). We refer collectively to these keys as
32+[proxies](/docs/glossary/proxies). We refer collectively to these keys as
3333your _Azimuth keys_.
3434
35−Only [planets](@/docs/glossary/planet.md), [stars](@/docs/glossary/star.md), and
36−[galaxies](@/docs/glossary/galaxy.md) have Azimuth keys.
37−[Moons](@/docs/glossary/moon.md) and [comets](@/docs/glossary/comet.md) do not,
35+Only [planets](/docs/glossary/planet), [stars](/docs/glossary/star), and
36+[galaxies](/docs/glossary/galaxy) have Azimuth keys.
37+[Moons](/docs/glossary/moon) and [comets](/docs/glossary/comet) do not,
3838as they do not exist on the Ethereum blockchain.
3939
4040It is important to note that no Azimuth keys are stored anywhere within your
41−ship's [pier](@/docs/glossary/pier.md) - Ethereum and Urbit ID are entirely
41+ship's [pier](/docs/glossary/pier) - Ethereum and Urbit ID are entirely
4242separate entities from Urbit itself, and so you lose access to your Azimuth
4343private keys there is no way to retrieve them somehow from your ship.
4444
4545For more information on the usage of these keys and the associated proxies, see
46−the [Azimuth documentation](@/docs/azimuth/azimuth.md).
46+the [Azimuth documentation](/docs/azimuth/azimuth).
4747
4848#### Networking keys
4949
50−All communications in Urbit over the [Ames](@/docs/glossary/ames.md) network
50+All communications in Urbit over the [Ames](/docs/glossary/ames) network
5151are end-to-end encrypted, and thus your ship stores its own public/private pair
5252of _networking keys_ utilized for encryption and authentication. Networking keys
53−for all ship types are stored within the ship's [Jael](@/docs/glossary/jael.md)
54−[vane](@/docs/glossary/vane.md).
53+for all ship types are stored within the ship's [Jael](/docs/glossary/jael)
54+[vane](/docs/glossary/vane).
5555
5656For planets, stars, and galaxies, your networking public key is configured on
5757the Ethereum blockchain using one of your Azimuth private keys - either the one
5858associated to the wallet which owns the ship, or the one which holds the
59−[management proxy](@/docs/glossary/proxies.md). This is typically accomplished
59+[management proxy](/docs/glossary/proxies). This is typically accomplished
6060with Bridge. Your networking private key (in the
61−[keyfile](@/docs/glossary/keyfile.md)) is a necessary input for the initial boot
61+[keyfile](/docs/glossary/keyfile)) is a necessary input for the initial boot
6262sequence of your ship (sometime called its `%dawn`), and this is also provided
6363by Bridge.
6464
@@ -86,7 +86,7 @@ limitation is slated to be implemented as of May 2021.
8686
8787### System components
8888
89−[Ames](@/docs/arvo/ames/ames.md) is Arvo's networking vane. All packets sent by
89+[Ames](/docs/arvo/ames/ames) is Arvo's networking vane. All packets sent by
9090Ames are encrypted utilizing a cryptosuite found in `zuse`. The only exception
9191to this are comet self-attestation packets utilized to transmit authentication
9292of ownership of the private networking key associated to their public key. Ames
@@ -94,22 +94,22 @@ is responsible for encryption, decryption, and authentication of all packets. By
9494default, this utilizes AES symmetric key encryption, whose shared private key is
9595got by elliptic curve Diffie-Hellman key exchange of the ships' networking keys.
9696
97−[Jael](@/docs/arvo/jael/jael-api.md) is primarily utilized for the safe storage
97+[Jael](/docs/arvo/jael/jael-api) is primarily utilized for the safe storage
9898of private networking keys and retrieval of public networking keys utilized by
9999Ames. The Jael vane of planets, stars, and galaxies are responsible for
100100distributing the public keys of their moons (ultimately via Ames).
101101
102102`zuse` is the Hoon standard library. It contains cryptographic functions which
103103are utilized by Ames. All cryptographic primitives are
104−[jetted](@/docs/vere/jetting.md) in Vere with standard vetted implementations of
104+[jetted](/docs/vere/jetting) in Vere with standard vetted implementations of
105105cryptographic libraries.
106106
107−[Vere](@/docs/vere/_index.md) is Urbit's Nock runtime system, written in C. All
107+[Vere](/docs/vere/) is Urbit's Nock runtime system, written in C. All
108108cryptographic functions implemented in Hoon are hinted to the interpreter,
109−causing it to utilize the [jet system](@/docs/vere/jetting.md) to run standard vetted cryptographic
109+causing it to utilize the [jet system](/docs/vere/jetting) to run standard vetted cryptographic
110110libraries.
111111
112−[Azimuth](@/docs/azimuth/_index.md) is an Ethereum-based public key
112+[Azimuth](/docs/azimuth/) is an Ethereum-based public key
113113infrastructure utilized by Urbit. `azimuth-tracker` obtains networking public
114114keys for planets, stars, and galaxies from this store, which are then stored in
115115Jael and utilized by Ames for end-to-end encrypted communication.
content/docs/system-overview/hoon.md+4−4
@@ -17,12 +17,12 @@ about 3000 lines of Hoon.
1717
1818## Further Reading
1919
20−* [Hoon Overview](@/docs/hoon/overview.md): Learn why we created a new language
20+* [Hoon Overview](/docs/hoon/overview): Learn why we created a new language
2121 to build Urbit in.
22−* [Hoon School](@/docs/hoon/hoon-school/_index.md): A collection of tutorials
22+* [Hoon School](/docs/hoon/hoon-school/): A collection of tutorials
2323 designed to teach you the Hoon language.
24−* [Guides](@/docs/hoon/guides/_index.md): Guides to specific Hoon tasks,
24+* [Guides](/docs/hoon/guides/): Guides to specific Hoon tasks,
2525including testing, command-line interface apps, and parsing.
26−* [Reference](@/docs/hoon/reference/_index.md): Reference material primarily
26+* [Reference](/docs/hoon/reference/): Reference material primarily
2727 intended for Hoon developers with some experience.
2828
content/docs/system-overview/nock.md+5−5
@@ -6,7 +6,7 @@ template = "doc.html"
66
77
88Nock is a low-level [homoiconic](https://en.wikipedia.org/wiki/Homoiconicity)
9−combinator language. It's so simple that its [specification](@/docs/nock/definition.md)
9+combinator language. It's so simple that its [specification](/docs/nock/definition)
1010fits on a t-shirt. In some ways Nock resembles a nano-Lisp but its ambitions
1111are more narrow. Most Lisps are one-layer: a practical language is to be
1212created by extending a theoretically simple interpreter. The abstraction is
@@ -22,11 +22,11 @@ pair of nouns. Nouns are acyclic and expose no pointer equality test.
2222
2323## Further Reading
2424
25−* [Nock Definition](@/docs/nock/definition.md): The Nock specification.
26−* [An explanation of Nock](@/docs/nock/explanation.md): A comprehensive
25+* [Nock Definition](/docs/nock/definition): The Nock specification.
26+* [An explanation of Nock](/docs/nock/explanation): A comprehensive
2727 walkthrough of the Nock spec.
28−* [Nock by hand](@/docs/nock/example.md): Learn Nock by example.
29−* [Nock Implementations](@/docs/nock/implementations.md): The many ways that
28+* [Nock by hand](/docs/nock/example): Learn Nock by example.
29+* [Nock Implementations](/docs/nock/implementations): The many ways that
3030 Nock has been implemented.
3131* [Nock for Everyday Coders](https://blog.timlucmiptev.space/part1.html): A
3232 comprehensive guide to Nock by community member `~timluc-miptev`.
content/docs/system-overview/vere.md+5−5
@@ -31,15 +31,15 @@ licensed.
3131
3232## Further Reading
3333
34−* [C runtime system](@/docs/vere/runtime.md): The Urbit interpreter is built on
34+* [C runtime system](/docs/vere/runtime): The Urbit interpreter is built on
3535a Nock runtime system written in C, `u3`. This section is a relatively complete
3636description.
37−* [c3: C in Urbit](@/docs/vere/c.md): Under `u3` is the simple `c3` layer, which
37+* [c3: C in Urbit](/docs/vere/c): Under `u3` is the simple `c3` layer, which
3838is just how we write C in Urbit.
39−* [u3: Land of nouns](@/docs/vere/nouns.md): The division between `c3` and `u3`
39+* [u3: Land of nouns](/docs/vere/nouns): The division between `c3` and `u3`
4040is that you could theoretically imagine using `c3` as just a generic C
4141environment. Anything to do with nouns is in `u3`.
42−* [u3: API overview by prefix](@/docs/vere/api.md): A walkthrough of each of the
42+* [u3: API overview by prefix](/docs/vere/api): A walkthrough of each of the
4343 `u3` modules.
44−* [How to write a jet](@/docs/vere/jetting.md): A jetting guide for new Urbit
44+* [How to write a jet](/docs/vere/jetting): A jetting guide for new Urbit
4545 developers.
content/docs/userspace/_index.md+5−5
@@ -8,23 +8,23 @@ insert_anchor_links = "right"
88
99Urbit's userspace is managed by Arvo's Gall vane.
1010
11−## [Overview](@/docs/userspace/overview.md)
11+## [Overview](/docs/userspace/overview)
1212
1313An overview of userspace in Urbit.
1414
15−## [Gall](@/docs/userspace/gall/gall.md)
15+## [Gall](/docs/userspace/gall/gall)
1616
1717Resources on Gall which manages userspace applications.
1818
19−## [Landscape](@/docs/userspace/landscape/_index.md)
19+## [Landscape](/docs/userspace/landscape/)
2020
2121Resources on the flagship web client Landcape, through which most users interact with their ship.
2222
23−## [Threads](@/docs/userspace/threads/_index.md)
23+## [Threads](/docs/userspace/threads/)
2424
2525Resources on threads - monadic functions useful for complex IO.
2626
27−## [Graph Store](@/docs/userspace/graph-store/_index.md)
27+## [Graph Store](/docs/userspace/graph-store/)
2828
2929Resources on Graph Store, a non-relational database specialized for social media applications.
3030
content/docs/userspace/gall/_index.md+3−3
@@ -8,14 +8,14 @@ insert_anchor_links = "right"
88
99Gall is the Arvo vane that manages userspace applications.
1010
11−## [Overview](@/docs/userspace/gall/gall.md)
11+## [Overview](/docs/userspace/gall/gall)
1212
1313Overview of the Gall vane.
1414
15−## [Tutorial](@/docs/userspace/gall/tutorial.md)
15+## [Tutorial](/docs/userspace/gall/tutorial)
1616
1717Tutorial for writing Gall agents.
1818
19−## [API Reference](@/docs/userspace/gall/gall-api.md)
19+## [API Reference](/docs/userspace/gall/gall-api)
2020
2121Reference information.
content/docs/userspace/graph-store/_index.md+4−4
@@ -6,18 +6,18 @@ template = "sections/docs/chapters.html"
66insert_anchor_links = "right"
77+++
88
9−## [Overview](@/docs/userspace/graph-store/overview.md)
9+## [Overview](/docs/userspace/graph-store/overview)
1010
1111Basic concepts and architectural overview of Graph Store
1212
13−## [Data Structure Overview](@/docs/userspace/graph-store/data-structure-overview.md)
13+## [Data Structure Overview](/docs/userspace/graph-store/data-structure-overview)
1414
1515A walkthrough of the various data structures and types used in Graph Store.
1616
17−## [Validator Walkthrough](@/docs/userspace/graph-store/validator-walkthrough.md)
17+## [Validator Walkthrough](/docs/userspace/graph-store/validator-walkthrough)
1818
1919A walkthrough of existing applications built using Graph Store
2020
21−## [Advanced Information](@/docs/userspace/graph-store/advanced-info.md)
21+## [Advanced Information](/docs/userspace/graph-store/advanced-info)
2222
2323Advanced information and selected implementation details about Graph Store.
content/docs/userspace/landscape/_index.md+2−2
@@ -9,10 +9,10 @@ insert_anchor_links = "right"
99While not technically part of Urbit, Landscape serves as a reference
1010implementation for how to build applications in user space.
1111
12−## [Landscape Architecture](@/docs/userspace/landscape/overview.md)
12+## [Landscape Architecture](/docs/userspace/landscape/overview)
1313
1414An overview of how Landscape, our flagship client, is structured.
1515
16−## [API Reference](@/docs/userspace/landscape/reference/_index.md)
16+## [API Reference](/docs/userspace/landscape/reference/)
1717
1818API documentation about specific agents that comprise Landscape.
content/docs/userspace/landscape/overview.md+5−5
@@ -26,7 +26,7 @@ and we hope many others emerge that build on top of the Arvo kernel. We plan on
2626making Landscape itself more extensible for user-developers in late 2021.
2727
2828Landscape is specifically a social suite of applications, meant to enable
29−communication and socializing in many forms.
29+communication and socializing in many forms.
3030
3131
3232## What is Landscape technically composed of?
@@ -37,7 +37,7 @@ Landscape is composed of two primary parts: its backend, which runs as a suite o
3737### Backend
3838
3939The Landscape backend is implemented as a collection of long-running
40−microservices known as [Gall agents](@/docs/userspace/gall/gall.md). They can be divided into the following,
40+microservices known as [Gall agents](/docs/userspace/gall/gall). They can be divided into the following,
4141though this is a simplification:
4242
4343- **Graph**: handles storing messages / posts in a non-relational database
@@ -104,7 +104,7 @@ received.
104104#### Poke-Proxy Hook
105105
106106The poke-proxy-hook conditionally forwards a poke from a foreign ship to a store
107−on the local ship if the foreign ship has permission to do so.
107+on the local ship if the foreign ship has permission to do so.
108108
109109
110110### Major Components
@@ -152,7 +152,7 @@ Pinterest equivalent, a more private version of Facebook, a decentralized
152152Reddit, or an even more distributed version of Mastodon. You can read more about
153153graph-store by [viewing the
154154source](https://github.com/urbit/urbit/blob/ac096d85ae847fcfe8786b51039c92c69abc006e/pkg/arvo/app/graph-store.hoon)
155−or reading our [API Reference](@/docs/userspace/landscape/reference/graph-store.md) documentation.
155+or reading our [API Reference](/docs/userspace/landscape/reference/graph-store) documentation.
156156
157157The `%graph-store` may be accessed from foreign ships through the use of the
158158`%graph-pull-hook` and `%graph-push-hook`.
@@ -163,7 +163,7 @@ Metadata is stored in the `%metadata-store`, and is where we store metadata
163163about resources (ex: graphs or groups). We store their display name,
164164description, a color, and the date they were added. We also store what group the
165165resource is associated with, what app the resource is associated with, and what
166−module (display mode) the resource should be used with.
166+module (display mode) the resource should be used with.
167167
168168Metadata within the broader context of the userspace application suite can best
169169be thought of as a database join between the `%group-store` and the
content/docs/userspace/landscape/reference/_index.md+1−1
@@ -6,6 +6,6 @@ template = "sections/docs/chapters.html"
66insert_anchor_links = "right"
77+++
88
9−## [Graph Store](@/docs/userspace/landscape/reference/graph-store.md)
9+## [Graph Store](/docs/userspace/landscape/reference/graph-store)
1010
1111The primary data backend utilized by Landscape.
content/docs/userspace/overview.md+3−3
@@ -6,14 +6,14 @@ template = "doc.html"
66
77Urbit's userspace is managed by Arvo's Gall vane.
88
9−## [Gall](@/docs/userspace/gall/gall.md)
9+## [Gall](/docs/userspace/gall/gall)
1010
1111Resources on Gall which manages userspace applications.
1212
13−## [Landscape](@/docs/userspace/landscape/_index.md)
13+## [Landscape](/docs/userspace/landscape/)
1414
1515Resources on the flagship web client Landcape, through which most users interact with their ship.
1616
17−## [Threads](@/docs/userspace/threads/_index.md)
17+## [Threads](/docs/userspace/threads/)
1818
1919Resources on threads - monadic functions useful for complex IO.
content/docs/userspace/threads/_index.md+5−5
@@ -6,22 +6,22 @@ template = "sections/docs/chapters.html"
66insert_anchor_links = "right"
77+++
88
9−## [Overview](@/docs/userspace/threads/overview.md)
9+## [Overview](/docs/userspace/threads/overview)
1010
1111Overview of threads.
1212
13−## [Basics](@/docs/userspace/threads/basics/_index.md)
13+## [Basics](/docs/userspace/threads/basics/)
1414
1515Tutorial and explanation of the basics of writing threads.
1616
17−## [Gall](@/docs/userspace/threads/gall/_index.md)
17+## [Gall](/docs/userspace/threads/gall/)
1818
1919Tutorial and explanation of interacting with threads from agents.
2020
21−## [Examples](@/docs/userspace/threads/examples/_index.md)
21+## [Examples](/docs/userspace/threads/examples/)
2222
2323A collection of example threads and how-tos.
2424
25−## [Reference](@/docs/userspace/threads/reference.md)
25+## [Reference](/docs/userspace/threads/reference)
2626
2727Basic reference for interacting with threads via the Gall agent Spider.
content/docs/userspace/threads/basics/_index.md+5−5
@@ -8,22 +8,22 @@ insert_anchor_links = "right"
88
99Tutorial and explanation of the basics of writing threads.
1010
11−## [Fundamentals](@/docs/userspace/threads/basics/fundamentals.md)
11+## [Fundamentals](/docs/userspace/threads/basics/fundamentals)
1212
1313Basic explanation of threads and usage of the strand arms `form` and `pure`.
1414
15−## [Bind](@/docs/userspace/threads/basics/bind.md)
15+## [Bind](/docs/userspace/threads/basics/bind)
1616
1717Using micgal (`;<`) and the strand arm `bind` to chain strands together.
1818
19−## [Input](@/docs/userspace/threads/basics/input.md)
19+## [Input](/docs/userspace/threads/basics/input)
2020
2121Information on what a strand takes.
2222
23−## [Output](@/docs/userspace/threads/basics/output.md)
23+## [Output](/docs/userspace/threads/basics/output)
2424
2525Information on what a strand produces.
2626
27−## [Summary](@/docs/userspace/threads/basics/summary.md)
27+## [Summary](/docs/userspace/threads/basics/summary)
2828
2929Summary of this information.
content/docs/userspace/threads/examples/_index.md+6−6
@@ -8,26 +8,26 @@ insert_anchor_links = "right"
88
99Collection of how-tos and examples for threads.
1010
11−## [Fetch JSON](@/docs/userspace/threads/examples/get-json.md)
11+## [Fetch JSON](/docs/userspace/threads/examples/get-json)
1212
1313Get some JSON from an external website.
1414
15−## [Child Thread](@/docs/userspace/threads/examples/child-thread.md)
15+## [Child Thread](/docs/userspace/threads/examples/child-thread)
1616
1717Spawn and manage threads from within threads.
1818
19−## [Main-loop](@/docs/userspace/threads/examples/main-loop.md)
19+## [Main-loop](/docs/userspace/threads/examples/main-loop)
2020
2121Create a loop - useful for long-running threads and for trying the same input against multiple functions.
2222
23−## [Poke Agent](@/docs/userspace/threads/examples/poke-agent.md)
23+## [Poke Agent](/docs/userspace/threads/examples/poke-agent)
2424
2525Poke an agent from a thread.
2626
27−## [Scry](@/docs/userspace/threads/examples/scry.md)
27+## [Scry](/docs/userspace/threads/examples/scry)
2828
2929Scry example.
3030
31−## [Take Fact](@/docs/userspace/threads/examples/take-fact.md)
31+## [Take Fact](/docs/userspace/threads/examples/take-fact)
3232
3333Take a fact from arvo or an agent.
content/docs/userspace/threads/gall/_index.md+5−5
@@ -8,22 +8,22 @@ insert_anchor_links = "right"
88
99Tutorial and explanation of interacting with threads from a Gall agent.
1010
11−## [Start Thread](@/docs/userspace/threads/gall/start-thread.md)
11+## [Start Thread](/docs/userspace/threads/gall/start-thread)
1212
1313Start a thread from an agent.
1414
15−## [Take Result](@/docs/userspace/threads/gall/take-result.md)
15+## [Take Result](/docs/userspace/threads/gall/take-result)
1616
1717Subscribe for thread result from an agent.
1818
19−## [Take Facts](@/docs/userspace/threads/gall/take-facts.md)
19+## [Take Facts](/docs/userspace/threads/gall/take-facts)
2020
2121Subscribe for facts sent from a running thread.
2222
23−## [Stop Thread](@/docs/userspace/threads/gall/stop-thread.md)
23+## [Stop Thread](/docs/userspace/threads/gall/stop-thread)
2424
2525Stop a thread from an agent.
2626
27−## [Poke Thread](@/docs/userspace/threads/gall/poke-thread.md)
27+## [Poke Thread](/docs/userspace/threads/gall/poke-thread)
2828
2929Poke a running thread from an agent.
content/docs/userspace/threads/overview.md+18−18
@@ -4,7 +4,7 @@ weight = 1
44template = "doc.html"
55+++
66
7−As discussed in the [Gall](@/docs/userspace/gall/gall.md) section, Urbit code lives in the following basic
7+As discussed in the [Gall](/docs/userspace/gall/gall) section, Urbit code lives in the following basic
88categories:
99
1010- Runtime (Nock interpreter, persistence engine, IO drivers, jets)
@@ -53,29 +53,29 @@ other sinks.
5353
5454These docs walk through the fundamental things you need to know to write threads. They're focused on basic thread composition so don't touch on interacting with threads from gall agents and such. The included examples can all just be run from the dojo.
5555
56−1. [Thread Fundamentals](@/docs/userspace/threads/basics/fundamentals.md) - Basic information and overview of threads, strands, `form` & `pure`.
57−2. [Micgal and Bind](@/docs/userspace/threads/basics/bind.md) - Covers using micgal and `bind` to chain strands.
58−3. [Strand Input](@/docs/userspace/threads/basics/input.md) - What strands receive as input
59−4. [Strand Output](@/docs/userspace/threads/basics/output.md) - What strands produce
60−5. [Summary](@/docs/userspace/threads/basics/summary.md)
56+1. [Thread Fundamentals](/docs/userspace/threads/basics/fundamentals) - Basic information and overview of threads, strands, `form` & `pure`.
57+2. [Micgal and Bind](/docs/userspace/threads/basics/bind) - Covers using micgal and `bind` to chain strands.
58+3. [Strand Input](/docs/userspace/threads/basics/input) - What strands receive as input
59+4. [Strand Output](/docs/userspace/threads/basics/output) - What strands produce
60+5. [Summary](/docs/userspace/threads/basics/summary)
6161
6262## Gall
6363These docs walk through the basics of interacting with threads from gall agents.
6464
65−1. [Start a thread](@/docs/userspace/threads/gall/start-thread.md)
66−2. [Subscribe for result](@/docs/userspace/threads/gall/take-result.md)
67−3. [Subscribe for facts](@/docs/userspace/threads/gall/take-facts.md)
68−4. [Stop a thread](@/docs/userspace/threads/gall/stop-thread.md)
69−5. [Poke a thread](@/docs/userspace/threads/gall/poke-thread.md)
65+1. [Start a thread](/docs/userspace/threads/gall/start-thread)
66+2. [Subscribe for result](/docs/userspace/threads/gall/take-result)
67+3. [Subscribe for facts](/docs/userspace/threads/gall/take-facts)
68+4. [Stop a thread](/docs/userspace/threads/gall/stop-thread)
69+5. [Poke a thread](/docs/userspace/threads/gall/poke-thread)
7070
7171## How-tos & Examples
7272
73−- [Grab some JSON from a URL](@/docs/userspace/threads/examples/get-json.md) - Here's an example of chaining a couple of external http requests for JSON.
74−- [Start a child thread](@/docs/userspace/threads/examples/child-thread.md) - Starting and managing child threads.
75−- [Main Loop](@/docs/userspace/threads/examples/main-loop.md) - Some notes and examples of the `strandio` function `main-loop`.
76−- [Poke an agent](@/docs/userspace/threads/examples/poke-agent.md) - Example of poking an agent from a thread.
77−- [Scry](@/docs/userspace/threads/examples/scry.md) - Scry arvo or an agent.
78−- [Take a fact](@/docs/userspace/threads/examples/take-fact.md) - Subscribe to an agent and receive a fact.
73+- [Grab some JSON from a URL](/docs/userspace/threads/examples/get-json) - Here's an example of chaining a couple of external http requests for JSON.
74+- [Start a child thread](/docs/userspace/threads/examples/child-thread) - Starting and managing child threads.
75+- [Main Loop](/docs/userspace/threads/examples/main-loop) - Some notes and examples of the `strandio` function `main-loop`.
76+- [Poke an agent](/docs/userspace/threads/examples/poke-agent) - Example of poking an agent from a thread.
77+- [Scry](/docs/userspace/threads/examples/scry) - Scry arvo or an agent.
78+- [Take a fact](/docs/userspace/threads/examples/take-fact) - Subscribe to an agent and receive a fact.
7979
80−## [Reference](@/docs/userspace/threads/reference.md)
80+## [Reference](/docs/userspace/threads/reference)
8181Basic reference information. For usage of particular `strandio` functions just refer directly to `/lib/strandio/hoon` since they're largely self-explanatory.
content/docs/vere/_index.md+5−5
@@ -12,26 +12,26 @@ Keep reading if you're planning to work on the Urbit interpreter, you're a
1212language implementation geek, or you don't really understand anything until
1313you've seen the actual structs.
1414
15−## [C runtime system](@/docs/vere/runtime.md)
15+## [C runtime system](/docs/vere/runtime)
1616
1717The Urbit interpreter is built on a Nock runtime system written
1818in C, `u3`. This section is a relatively complete description.
1919
20−## [c3: C in Urbit](@/docs/vere/c.md)
20+## [c3: C in Urbit](/docs/vere/c)
2121
2222Under `u3` is the simple `c3` layer, which is just how we write C
2323in Urbit.
2424
25−## [u3: Land of nouns](@/docs/vere/nouns.md)
25+## [u3: Land of nouns](/docs/vere/nouns)
2626
2727The division between `c3` and `u3` is that you could theoretically
2828imagine using `c3` as just a generic C environment. Anything to do
2929with nouns is in `u3`.
3030
31−## [u3: API overview by prefix](@/docs/vere/api.md)
31+## [u3: API overview by prefix](/docs/vere/api)
3232
3333A walkthrough of each of the `u3` modules.
3434
35−## [How to write a jet](@/docs/vere/jetting.md)
35+## [How to write a jet](/docs/vere/jetting)
3636
3737A jetting guide by for new Urbit developers.
content/docs/vere/jetting.md+2−2
@@ -505,7 +505,7 @@ A `u3_noun` will want to be further disassembled into atoms.
505505A `u3_atom` represents a simple number, but the implementation may or
506506may not be simple. If the value held in the atom is 31 bits or less,
507507it's stored directly in the atom. If the value is 32 bits the atom
508−holds a pointer into the loom where the actual value is stored. ( see [Nouns](@/docs/vere/nouns.md) )
508+holds a pointer into the loom where the actual value is stored. ( see [Nouns](/docs/vere/nouns) )
509509
510510You don't want to get bogged down in the details of this -- you just
511511want to get data out of your atoms.
@@ -627,7 +627,7 @@ This implies that, to create a list instead of a cell, you will need to append
627627 return(u3nt(a, b, u3_nul)); // for two atoms as a list
628628```
629629
630−Understanding the memory model, allocation, freeing, and ownership ('transfer' vs 'retain' semantics) is important. Some info is available at [Nouns](@/docs/vere/nouns.md).
630+Understanding the memory model, allocation, freeing, and ownership ('transfer' vs 'retain' semantics) is important. Some info is available at [Nouns](/docs/vere/nouns).
631631
632632## Compile the C code
633633