on master help sign in
docs: remove zola internal link syntax
d79a54aMatilde Park
content/docs/_index.md+9−9
@@ -12,9 +12,9 @@ welcome.
12This documentation provides a series of explainers, guides, tutorials and
12This documentation provides a series of explainers, guides, tutorials and
13reference material for assisting you in developing on the Urbit platform, or
13reference material for assisting you in developing on the Urbit platform, or
14contributing to the Urbit project. If you're looking for documentation on how to
14contributing 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/).
16
16
17−### [Development](@/docs/development/_index.md)
17+### [Development](/docs/development/)
18
18
19The Development section is recommended reading for developers interested in
19The Development section is recommended reading for developers interested in
20contributing to Urbit itself, or building apps on top of Urbit. It serves as a
20contributing 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
22codebases that comprise the project, our grants program, and the precepts that
22codebases that comprise the project, our grants program, and the precepts that
23drive the development of Urbit.
23drive the development of Urbit.
24
24
25−### [System Overview](@/docs/system-overview/_index.md)
25+### [System Overview](/docs/system-overview/)
26
26
27This section gives a high-level overview to all the major components of the
27This section gives a high-level overview to all the major components of the
28Urbit tech stack - namely, the operating system Arvo, the programming languages
28Urbit tech stack - namely, the operating system Arvo, the programming languages
29Nock and Hoon, the runtime Vere, and the decentralized ID system Azimuth.
29Nock and Hoon, the runtime Vere, and the decentralized ID system Azimuth.
30
30
31−### [Arvo (Urbit OS)](@/docs/arvo/_index.md)
31+### [Arvo (Urbit OS)](/docs/arvo/)
32
32
33This section covers the kernel of Urbit OS, called Arvo, as well as its kernel modules.
33This section covers the kernel of Urbit OS, called Arvo, as well as its kernel modules.
34
34
35−### [Hoon (High-level Language)](@/docs/hoon/_index.md)
35+### [Hoon (High-level Language)](/docs/hoon/)
36
36
37Here is contained all official documentation on Hoon, the high-level purely
37Here is contained all official documentation on Hoon, the high-level purely
38functional programming language in which Arvo and much of userspace is written.
38functional programming language in which Arvo and much of userspace is written.
39
39
40−### [Nock (Low-level Language)](@/docs/nock/_index.md)
40+### [Nock (Low-level Language)](/docs/nock/)
41
41
42Official guidance on Nock, the functional assembly-level language which serves
42Official guidance on Nock, the functional assembly-level language which serves
43as the basis for Hoon.
43as the basis for Hoon.
44
44
45−### [Vere (Interpreter)](@/docs/vere/_index.md)
45+### [Vere (Interpreter)](/docs/vere/)
46
46
47Documentation on Vere, the Nock virtual machine which serves as the interface
47Documentation on Vere, the Nock virtual machine which serves as the interface
48between Urbit and Unix.
48between Urbit and Unix.
49
49
50−### [Azimuth (Urbit ID)](@/docs/azimuth/_index.md)
50+### [Azimuth (Urbit ID)](/docs/azimuth/)
51
51
52The workings of Azimuth, the decentralized ID system utilized by Urbit.
52The workings of Azimuth, the decentralized ID system utilized by Urbit.
53
53
54−### [Userspace](@/docs/userspace/_index.md)
54+### [Userspace](/docs/userspace/)
55
55
56Developer 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).
56Developer 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):
35
35
36def find_all_mds() -> List[str]:
36def find_all_mds() -> List[str]:
37 # the `insert_anchor_links` is only applicable on `_index.md` files (i.e. sections)
37 # 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')]
39
39
40def setting_from_frontmatter(lines: List[str]) -> str:
40def setting_from_frontmatter(lines: List[str]) -> str:
41 # 'insert_anchor_links = "none"' -> 'none'
41 # 'insert_anchor_links = "none"' -> 'none'
content/docs/arvo/_index.md+12−12
@@ -8,47 +8,47 @@ aliases = ["/docs/learn/arvo/"]
8
8
9Resources about the Urbit OS.
9Resources about the Urbit OS.
10
10
11−## [Overview](@/docs/arvo/overview.md)
11+## [Overview](/docs/arvo/overview)
12
12
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:
14
14
15−## [Ames](@/docs/arvo/ames/ames.md)
15+## [Ames](/docs/arvo/ames/ames)
16
16
17Ames 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.
17Ames 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.
18
18
19−## [Behn](@/docs/arvo/behn/behn.md)
19+## [Behn](/docs/arvo/behn/behn)
20
20
21Behn is our timer. It allows vanes and applications to set and timer events, which are managed in a simple priority queue.
21Behn is our timer. It allows vanes and applications to set and timer events, which are managed in a simple priority queue.
22
22
23−## [Clay](@/docs/arvo/clay/clay.md)
23+## [Clay](/docs/arvo/clay/clay)
24
24
25Clay is our filesystem and revision-control system.
25Clay is our filesystem and revision-control system.
26
26
27−## [Dill](@/docs/arvo/dill/dill.md)
27+## [Dill](/docs/arvo/dill/dill)
28
28
29Dill is our terminal driver. Unix sends keyboard events to dill from the terminal, and dill produces terminal output.
29Dill is our terminal driver. Unix sends keyboard events to dill from the terminal, and dill produces terminal output.
30
30
31−## [Eyre](@/docs/arvo/eyre/eyre.md)
31+## [Eyre](/docs/arvo/eyre/eyre)
32
32
33Eyre is our HTTP server. Unix sends HTTP messages to `%eyre`, and `%eyre` produces HTTP messages in response.
33Eyre is our HTTP server. Unix sends HTTP messages to `%eyre`, and `%eyre` produces HTTP messages in response.
34
34
35−## [Ford](@/docs/arvo/ford/ford.md)
35+## [Ford](/docs/arvo/ford/ford)
36
36
37Ford is our build system. It handles resources and publishing.
37Ford is our build system. It handles resources and publishing.
38
38
39−## [Gall](@/docs/arvo/gall/overview.md)
39+## [Gall](/docs/arvo/gall/overview)
40
40
41Gall is the vane for controlling userspace apps.
41Gall is the vane for controlling userspace apps.
42
42
43−## [Iris](@/docs/arvo/iris/iris-api.md)
43+## [Iris](/docs/arvo/iris/iris-api)
44
44
45Iris is our HTTP client.
45Iris is our HTTP client.
46
46
47−## [Concepts](@/docs/arvo/concepts/_index.md)
47+## [Concepts](/docs/arvo/concepts/)
48
48
49Explanations of design decisions that are pervasive throughout Arvo.
49Explanations of design decisions that are pervasive throughout Arvo.
50
50
51−## [Tutorials](@/docs/arvo/tutorials/_index.md)
51+## [Tutorials](/docs/arvo/tutorials/)
52
52
53Walkthroughs that teach you more about how Arvo works.
53Walkthroughs that teach you more about how Arvo works.
54
54
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
189## `%init`
189## `%init`
190
190
191`%init` is called a single time during the very first boot process, immediately
191`%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)
193is completed. This initializes the vane. Jael is initialized first, followed by
193is completed. This initializes the vane. Jael is initialized first, followed by
194other vanes such as Ames.
194other vanes such as Ames.
195
195
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
11it straight into Ames for handling. Also, all packets sent over the
11it straight into Ames for handling. Also, all packets sent over the
12Ames network are sent by the Ames vane. Apps and vanes may use
12Ames network are sent by the Ames vane. Apps and vanes may use
13Ames to directly send messages to other ships. In general, apps use
13Ames 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)
15to communicate with other ships rather than using Ames
15to communicate with other ships rather than using Ames
16directly, but this isn't a requirement. Of course, Gall and Clay use
16directly, but this isn't a requirement. Of course, Gall and Clay use
17Ames behind the scenes to communicate across the network. Jael is the only other
17Ames behind the scenes to communicate across the network. Jael is the only other
@@ -28,7 +28,7 @@ vane or app, is defined in Ames.
28This section summarizes the design of Ames. Beyond this section are deeper
28This section summarizes the design of Ames. Beyond this section are deeper
29elaborations on the concepts presented here.
29elaborations on the concepts presented here.
30
30
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.
32
32
33Ames receives packets as Arvo events and emits packets as Arvo
33Ames receives packets as Arvo events and emits packets as Arvo
34effects. The runtime is responsible for transferring the bytes in
34effects. 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:
130
130
131 - 3 bits: Ames `protocol-version`,
131 - 3 bits: Ames `protocol-version`,
132 - 20 bits: a checksum as a truncated insecure hash of the body, done with
132 - 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),
134 - 2 bits: the bit width of the sender address encoded as a 2-bit enum,
134 - 2 bits: the bit width of the sender address encoded as a 2-bit enum,
135 - 2 bits: the bit width of the receiver address encoded as a 2-bit enum,
135 - 2 bits: the bit width of the receiver address encoded as a 2-bit enum,
136 - 1 bit: whether the packet is encrypted or not,
136 - 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:
144
144
145 - The `@p` of the sending ship,
145 - The `@p` of the sending ship,
146 - The `@p` of the receiving ship,
146 - 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]`.
148
148
149 `origin` is the IP and port of the original sender if the packet was proxied
149 `origin` is the IP and port of the original sender if the packet was proxied
150 through a relay and null otherwise. `content` is a noun that is either an encrypted ack or an
150 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
241Each datum in this noun is an atom with the aura `@ud` or an aura that nests
241Each datum in this noun is an atom with the aura `@ud` or an aura that nests
242under `@ud`.
242under `@ud`.
243
243
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
245number, of the acking ship's networking keys, and `her-life` is the `life` of
245number, of the acking ship's networking keys, and `her-life` is the `life` of
246the ack-receiving ship's networking keys. `bone` is an opaque number identifying
246the ack-receiving ship's networking keys. `bone` is an opaque number identifying
247the flow. `message-num` denotes the number of the
247the flow. `message-num` denotes the number of the
@@ -367,7 +367,7 @@ using the Diffie-Hellman symmetric key that was previously computed.
367
367
368`~zod` receives the packet and reads the body. It sees that it is not the
368`~zod` receives the packet and reads the body. It sees that it is not the
369intended recipient of the packet, and so gets ready to forward it to
369intended 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)
371(deserializes) the payload and changes the `origin` to the IP and port of
371(deserializes) the payload and changes the `origin` to the IP and port of
372`~bacbel-tagfeb`. Then it `+jam`s `[origin content]` to form a new payload, and
372`~bacbel-tagfeb`. Then it `+jam`s `[origin content]` to form a new payload, and
373`+mug`s that payload to get a new checksum. It replaces the old payload and
373`+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.
386
386
387Urbit's functionality is split between the two binaries `urbit-worker` (sometimes
387Urbit's functionality is split between the two binaries `urbit-worker` (sometimes
388called the Serf) and `urbit-king` (sometimes called the King). This division of
388called 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.
390
390
391In short, the Serf is the Nock runtime and so keeps track of the current state
391In short, the Serf is the Nock runtime and so keeps track of the current state
392of Arvo as a Nock noun and updates the state by `%poke`ing it with nouns, and
392of 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
18probably use `%behn` to keep track of things like network timeouts and
18probably use `%behn` to keep track of things like network timeouts and
19retry timing, but it currently uses its own alarm system.
19retry timing, but it currently uses its own alarm system.
20
20
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"
6insert_anchor_links = "right"
6insert_anchor_links = "right"
7+++
7+++
8
8
9−[Overview](@/docs/arvo/clay/clay.md)
9+[Overview](/docs/arvo/clay/clay)
10
10
11High-level overview of Clay.
11High-level overview of Clay.
12
12
13−[Architecture](@/docs/arvo/clay/architecture.md)
13+[Architecture](/docs/arvo/clay/architecture)
14
14
15A conceptual overview of how Clay was designed.
15A conceptual overview of how Clay was designed.
16
16
17−[Using Clay](@/docs/arvo/clay/using.md)
17+[Using Clay](/docs/arvo/clay/using)
18
18
19A quick overview of how the most common tasks involving Clay are performed:
19A quick overview of how the most common tasks involving Clay are performed:
20reading and subscribing, syncing to Unix, and merging.
20reading and subscribing, syncing to Unix, and merging.
21
21
22−[Data Types](@/docs/arvo/clay/data-types.md)
22+[Data Types](/docs/arvo/clay/data-types)
23
23
24Explanations of the many data types found throughout Clay.
24Explanations of the many data types found throughout Clay.
25
25
26−[Scry Reference](@/docs/arvo/clay/scry.md)
26+[Scry Reference](/docs/arvo/clay/scry)
27
27
28Reference for Clay's various scry endpoints.
28Reference for Clay's various scry endpoints.
29
29
30−[API Reference](@/docs/arvo/clay/tasks.md)
30+[API Reference](/docs/arvo/clay/tasks)
31
31
32Details of the various `task`s you can use to interact with Clay.
32Details of the various `task`s you can use to interact with Clay.
33
33
34−[Examples](@/docs/arvo/clay/examples.md)
34+[Examples](/docs/arvo/clay/examples)
35
35
36Example usage of the various Clay `task`s.
36Example usage of the various Clay `task`s.
content/docs/arvo/clay/architecture.md+2−2
@@ -4,7 +4,7 @@ weight = 2
4template = "doc.html"
4template = "doc.html"
5+++
5+++
6
6
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,
8which is the [core](/docs/glossary/core/) of an urbit. The architecture of Clay is
8which is the [core](/docs/glossary/core/) of an urbit. The architecture of Clay is
9intrinsically connected with Arvo, but for this section we assume no knowledge of
9intrinsically connected with Arvo, but for this section we assume no knowledge of
10either Arvo or Urbit. We will point out only those features of
10either Arvo or Urbit. We will point out only those features of
@@ -54,7 +54,7 @@ definitions, apps, and so forth.
54Traditionally, an urbit has at least a `%home` `desk` and `%kids` `desk`. The
54Traditionally, an urbit has at least a `%home` `desk` and `%kids` `desk`. The
55`%home` `desk` has all the system software from the distribution, along with your
55`%home` `desk` has all the system software from the distribution, along with your
56personal files. The `%home` `desk` is a fork of the `%kids` desk of whichever ship
56personal 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,
58but theoretically may be any ship. You will also find references to a `%base`
58but theoretically may be any ship. You will also find references to a `%base`
59`desk` - which is not a real `desk`, rather it just a hash associated to the
59`desk` - which is not a real `desk`, rather it just a hash associated to the
60`desk` from which your `%home` `desk` was forked.
60`desk` from which your `%home` `desk` was forked.
content/docs/arvo/clay/clay.md+7−7
@@ -25,34 +25,34 @@ foreign ships.
25
25
26### User documentation
26### User documentation
27
27
28−[Filesystem](@/using/os/filesystem.md)
28+[Filesystem](/using/os/filesystem)
29
29
30How to interact with the Clay filesystem via Dojo. This includes basics such as
30How to interact with the Clay filesystem via Dojo. This includes basics such as
31mounting to Unix, changing directory, merging, and listing files.
31mounting to Unix, changing directory, merging, and listing files.
32
32
33### Developer Documentation
33### Developer Documentation
34
34
35−[Architecture](@/docs/arvo/clay/architecture.md)
35+[Architecture](/docs/arvo/clay/architecture)
36
36
37A conceptual overview of how Clay was designed.
37A conceptual overview of how Clay was designed.
38
38
39−[Using Clay](@/docs/arvo/clay/using.md)
39+[Using Clay](/docs/arvo/clay/using)
40
40
41A quick overview of how the most common tasks involving Clay are performed:
41A quick overview of how the most common tasks involving Clay are performed:
42reading and subscribing, syncing to Unix, and merging.
42reading and subscribing, syncing to Unix, and merging.
43
43
44−[Data Types](@/docs/arvo/clay/data-types.md)
44+[Data Types](/docs/arvo/clay/data-types)
45
45
46Explanations of the many data types found throughout Clay.
46Explanations of the many data types found throughout Clay.
47
47
48−[Scry Reference](@/docs/arvo/clay/scry.md)
48+[Scry Reference](/docs/arvo/clay/scry)
49
49
50Reference for Clay's various scry endpoints.
50Reference for Clay's various scry endpoints.
51
51
52−[API Reference](@/docs/arvo/clay/tasks.md)
52+[API Reference](/docs/arvo/clay/tasks)
53
53
54Details of the various `task`s you can use to interact with Clay.
54Details of the various `task`s you can use to interact with Clay.
55
55
56−[Examples](@/docs/arvo/clay/examples.md)
56+[Examples](/docs/arvo/clay/examples)
57
57
58Example usage of the various Clay `task`s.
58Example 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
52bookkeeping".
52bookkeeping".
53
53
54`rom` is the state for all local desks. It consists of a `duct` to
54`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.
56
56
57`hoy` is the state for all foreign desks.
57`hoy` is the state for all foreign desks.
58
58
@@ -80,7 +80,7 @@ to th pier) and `beam` is a domestic Clay directory.
80
80
81This is the representation of the filesystem of a ship on our pier.
81This is the representation of the filesystem of a ship on our pier.
82
82
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
84display notifications of filesystem changes. Only `%note` `%gift`s should be
84display notifications of filesystem changes. Only `%note` `%gift`s should be
85produced along this `duct`. This is set by the `%init` `move`.
85produced along this `duct`. This is set by the `%init` `move`.
86
86
@@ -96,7 +96,7 @@ set of `desk`s on this ship, mapped to their `desk` state.
96This is the name of a branch of the filesystem. The default `desk`s are `%home`
96This is the name of a branch of the filesystem. The default `desk`s are `%home`
97and `%kids`. More may be created by simply referencing them. `desk`s have
97and `%kids`. More may be created by simply referencing them. `desk`s have
98independent histories and states, and they may be
98independent 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.
100
100
101### `$dojo`, domestic desk state
101### `$dojo`, domestic desk state
102
102
@@ -213,7 +213,7 @@ or a scry.
213
213
214`%p` produces the permissions for a directory, returned as a `[dict:clay dict:clay]`.
214`%p` produces the permissions for a directory, returned as a `[dict:clay dict:clay]`.
215
215
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`.
217
217
218`%s` has miscellaneous debug endpoints.
218`%s` has miscellaneous debug endpoints.
219
219
content/docs/arvo/clay/examples.md+33−33
@@ -36,7 +36,7 @@ template = "doc.html"
36
36
37# Introduction
37# Introduction
38
38
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.
40
40
41Most 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`:
41Most 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`:
42
42
@@ -63,7 +63,7 @@ Most examples will either use `|pass` to just send a `task` or the following thr
63
63
64# `%warp`
64# `%warp`
65
65
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.
67
67
68## `%sing`
68## `%sing`
69
69
@@ -146,7 +146,7 @@ Now run the thread again, and this time delete the file in unix and again `|comm
146- /~zod/home/4/foo/txt
146- /~zod/home/4/foo/txt
147```
147```
148
148
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.
150
150
151Here's a breakdown of the task we sent:
151Here's a breakdown of the task we sent:
152
152
@@ -161,12 +161,12 @@ This thread will subscribe to `/foo/txt` with an `%x` `care` and `/bar/txt` with
161`sub-mult.hoon`
161`sub-mult.hoon`
162
162
163```hoon
163```hoon
164−/- spider
164+/- spider
165/+ strandio
165/+ strandio
166−=, strand=strand:spider
166+=, strand=strand:spider
167−^- thread:spider
167+^- thread:spider
168−|= arg=vase
168+|= arg=vase
169−=/ m (strand ,vase)
169+=/ m (strand ,vase)
170^- form:m
170^- form:m
171=/ files=(set (pair care:clay path))
171=/ files=(set (pair care:clay path))
172 %- sy :~
172 %- sy :~
@@ -220,7 +220,7 @@ This thread will subscribe to changes to your `%home` `desk` for the next three
220`sub-many.hoon`
220`sub-many.hoon`
221
221
222```hoon
222```hoon
223−/- spider
223+/- spider
224/+ strandio
224/+ strandio
225=, strand=strand:spider
225=, strand=strand:spider
226|%
226|%
@@ -236,10 +236,10 @@ This thread will subscribe to changes to your `%home` `desk` for the next three
236 ~& res
236 ~& res
237 (pure:m ~)
237 (pure:m ~)
238 ==
238 ==
239−--
239+--
240−^- thread:spider
240+^- thread:spider
241−|= arg=vase
241+|= arg=vase
242−=/ m (strand ,vase)
242+=/ m (strand ,vase)
243^- form:m
243^- form:m
244=/ uarg !< (unit path) arg
244=/ uarg !< (unit path) arg
245?~ uarg
245?~ uarg
@@ -297,7 +297,7 @@ Now wait until the three minutes is up and try making a change, for example dele
297- /~zod/home/263/baz/txt
297- /~zod/home/263/baz/txt
298```
298```
299
299
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.
301
301
302Run `:spider|kill` to stop the thread.
302Run `:spider|kill` to stop the thread.
303
303
@@ -314,12 +314,12 @@ This thread will subscribe to the `%next` version of `/foo/txt`, then immediatel
314`stop-sub.hoon`
314`stop-sub.hoon`
315
315
316```hoon
316```hoon
317−/- spider
317+/- spider
318/+ strandio
318/+ strandio
319−=, strand=strand:spider
319+=, strand=strand:spider
320−^- thread:spider
320+^- thread:spider
321−|= arg=vase
321+|= arg=vase
322−=/ m (strand ,vase)
322+=/ m (strand ,vase)
323^- form:m
323^- form:m
324;< =bowl:strand bind:m get-bowl:strandio
324;< =bowl:strand bind:m get-bowl:strandio
325=/ =task:clay [%warp our.bowl %home ~ %next %x da+now.bowl /foo/txt]
325=/ =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
327;< ~ bind:m (send-raw-card:strandio card)
327;< ~ bind:m (send-raw-card:strandio card)
328=. task [%warp our.bowl %home ~]
328=. task [%warp our.bowl %home ~]
329=. card [%pass /next %arvo %c task]
329=. card [%pass /next %arvo %c task]
330−;< ~ bind:m (send-raw-card:strandio card)
330+;< ~ bind:m (send-raw-card:strandio card)
331;< =riot:clay bind:m (take-writ:strandio /next)
331;< =riot:clay bind:m (take-writ:strandio /next)
332~& riot
332~& riot
333(pure:m !>(~))
333(pure:m !>(~))
@@ -351,7 +351,7 @@ Here's a breakdown of the `task` we sent:
351
351
352# `%info`
352# `%info`
353
353
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.
355
355
356## `%ins`
356## `%ins`
357
357
@@ -370,7 +370,7 @@ We've created the `cage` of the content like `[%txt !>(~['foo'])]`, if you want
370
370
371Here's a breakdown of the `task` we sent:
371Here's a breakdown of the `task` we sent:
372
372
373−![%ins diagram](https://media.urbit.org/docs/arvo/clay/ins.png)
373+![%ins diagram](https://media.urbit.org/docs/arvo/clay/ins.png)
374
374
375## `%del`
375## `%del`
376
376
@@ -387,7 +387,7 @@ If you have a look in the home of your pier you'll see the `foo.txt` file is now
387
387
388Here's a breakdown of the `task` we sent:
388Here's a breakdown of the `task` we sent:
389
389
390−![%del diagram](https://media.urbit.org/docs/arvo/clay/del.png)
390+![%del diagram](https://media.urbit.org/docs/arvo/clay/del.png)
391
391
392## `%mut`
392## `%mut`
393
393
@@ -402,12 +402,12 @@ Since `soba` is just a `list` of `miso`, you can add a bunch of `miso` and they'
402`multi-change.hoon`
402`multi-change.hoon`
403
403
404```hoon
404```hoon
405−/- spider
405+/- spider
406/+ strandio
406/+ strandio
407−=, strand=strand:spider
407+=, strand=strand:spider
408−^- thread:spider
408+^- thread:spider
409−|= arg=vase
409+|= arg=vase
410−=/ m (strand ,vase)
410+=/ m (strand ,vase)
411^- form:m
411^- form:m
412=/ soba-a :~ [/foo/txt %ins %txt !>(['foo' ~])]
412=/ soba-a :~ [/foo/txt %ins %txt !>(['foo' ~])]
413 [/bar/txt %ins %txt !>(['bar' ~])]
413 [/bar/txt %ins %txt !>(['bar' ~])]
@@ -436,7 +436,7 @@ Save to `ted/multi-change.hoon`, `|commit %home`, and run:
436
436
437# Manage Mounts
437# Manage Mounts
438
438
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.
440
440
441## `%boat`
441## `%boat`
442
442
@@ -538,7 +538,7 @@ If you have the same `desk` mounted to multiple points, a committed change in on
538
538
539# Merge Desks
539# Merge Desks
540
540
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.
542
542
543## `%merg`
543## `%merg`
544
544
@@ -613,7 +613,7 @@ You can also specify it by revision number or label.
613
613
614# Permissions
614# Permissions
615
615
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.
617
617
618## `%perm`
618## `%perm`
619
619
@@ -693,7 +693,7 @@ As you can see it's back to the default inherited from `/`.
693
693
694Here's a breakdown of a `%perm` task:
694Here's a breakdown of a `%perm` task:
695
695
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)
697
697
698## `%cred`
698## `%cred`
699
699
@@ -752,7 +752,7 @@ Now we'll use the `send-task-take-gift.hoon` thread to try `%crow`:
752
752
753# Foreign Ships
753# Foreign Ships
754
754
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.
756
756
757## `%warp` - Remote
757## `%warp` - Remote
758
758
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
20- [%e](#e) - Static `mark`.
20- [%e](#e) - Static `mark`.
21- [%f](#f) - Static `mark` conversion.
21- [%f](#f) - Static `mark` conversion.
22- [%p](#p) - File permissions.
22- [%p](#p) - File permissions.
23−- [%r](#r) - Vase-wrapped file data.
23+- [%r](#r) - Vase-wrapped file data.
24- [%s](#s) - Miscellaneous scries:
24- [%s](#s) - Miscellaneous scries:
25 - [%yaki](#yaki) - `yaki:clay` of the specified commit.
25 - [%yaki](#yaki) - `yaki:clay` of the specified commit.
26 - [%blob](#blob) - `blob:clay` of file.
26 - [%blob](#blob) - `blob:clay` of file.
@@ -141,15 +141,15 @@ Crash!
141
141
142A scry with a `care` of `%s` is for miscellaneous internal and debug functions and is liable to change in the future.
142A scry with a `care` of `%s` is for miscellaneous internal and debug functions and is liable to change in the future.
143
143
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.
145
145
146### %yaki
146### %yaki
147
147
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).
149
149
150Example:
150Example:
151
151
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.
153
153
154```
154```
155> =/ =dome:clay .^(dome:clay %cv /===)
155> =/ =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
170
170
171### %blob
171### %blob
172
172
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).
174
174
175Example:
175Example:
176
176
content/docs/arvo/clay/tasks.md+32−32
@@ -33,7 +33,7 @@ template = "doc.html"
33
33
34# Introduction
34# Introduction
35
35
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.
37
37
38The 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.
38The 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.
39
39
@@ -47,7 +47,7 @@ A `%warp` `task` is for reading a subscribing to files and directories.
47[wer=ship rif=riff]
47[wer=ship rif=riff]
48```
48```
49
49
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:
51
51
52- `%sing` - Read a single file or directory.
52- `%sing` - Read a single file or directory.
53- `%next` - Subscribe for the next change to a file or directory.
53- `%next` - Subscribe for the next change to a file or directory.
@@ -72,25 +72,25 @@ A `%wris` `gift` looks like:
72[%writ p=riot] :: response
72[%writ p=riot] :: response
73```
73```
74
74
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`.
76
76
77Now we'll look at each of the `rave` request types in turn.
77Now we'll look at each of the `rave` request types in turn.
78
78
79## `%sing`
79## `%sing`
80
80
81```hoon
81```hoon
82−[%sing =mood]
82+[%sing =mood]
83```
83```
84
84
85This `rave` is for reading a single file or directory immediately.
85This `rave` is for reading a single file or directory immediately.
86
86
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.
88
88
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`.
90
90
91### Example
91### Example
92
92
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)
94
94
95## `%next`
95## `%next`
96
96
@@ -98,13 +98,13 @@ The [case](@/docs/arvo/clay/data-types.md#case-specifying-a-commit) specifies th
98[%next =mood] :: await next version
98[%next =mood] :: await next version
99```
99```
100
100
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.
102
102
103If 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`.
103If 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`.
104
104
105### Example
105### Example
106
106
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)
108
108
109## `%mult`
109## `%mult`
110
110
@@ -126,7 +126,7 @@ You can use a different `care` for each of the files specified by the `path` if
126
126
127### Example
127### Example
128
128
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)
130
130
131## `%many`
131## `%many`
132
132
@@ -144,9 +144,9 @@ If the `track` is `%.y` it will just return a `%writ` like:
144
144
145...that merely informs you of a change. If you want the actual data you'll have to request it separately.
145...that merely informs you of a change. If you want the actual data you'll have to request it separately.
146
146
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.
148
148
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.
150
150
151The `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.
151The `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.
152
152
@@ -158,7 +158,7 @@ When you reach the end of the subscribed range of `case`s, Clay will send you a
158
158
159### Example
159### Example
160
160
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)
162
162
163## Cancel Subscription
163## Cancel Subscription
164
164
@@ -166,7 +166,7 @@ To cancel a subscription, you just send a `%warp` with a null `(unit rave)` in t
166
166
167### Example
167### Example
168
168
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)
170
170
171# Write and Modify
171# Write and Modify
172
172
@@ -180,7 +180,7 @@ To write or modify a file, we send Clay a `%info` `task`.
180[des=desk dit=nori]
180[des=desk dit=nori]
181```
181```
182
182
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:
184
184
185- `%del` - Delete a file.
185- `%del` - Delete a file.
186- `%ins` - Insert file. This will also replace an existing file.
186- `%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
195
195
196Here are examples of using each of these as well as making multiple changes in one request:
196Here are examples of using each of these as well as making multiple changes in one request:
197
197
198−- [%del](@/docs/arvo/clay/examples.md#del)
198+- [%del](/docs/arvo/clay/examples#del)
199−- [%ins](@/docs/arvo/clay/examples.md#ins)
199+- [%ins](/docs/arvo/clay/examples#ins)
200−- [%mut](@/docs/arvo/clay/examples.md#mut)
200+- [%mut](/docs/arvo/clay/examples#mut)
201−- [Multiple Changes](@/docs/arvo/clay/examples.md#multiple-changes)
201+- [Multiple Changes](/docs/arvo/clay/examples#multiple-changes)
202
202
203
203
204# Manage Mounts
204# Manage Mounts
@@ -236,7 +236,7 @@ The type it returns is a `%hill` `gift`, which looks like:
236
236
237### Example
237### Example
238
238
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)
240
240
241## `%mont`
241## `%mont`
242
242
@@ -263,11 +263,11 @@ Clay does not return a `gift` in response to a `%mont` `%task`.
263
263
264### Example
264### Example
265
265
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)
267
267
268## `%ogre`
268## `%ogre`
269
269
270−A `%ogre` `task` unmounts the specified mount.
270+A `%ogre` `task` unmounts the specified mount.
271
271
272### Accepts
272### Accepts
273
273
@@ -283,7 +283,7 @@ Clay does not return a `gift` in response to a `%ogre` `task`.
283
283
284### Example
284### Example
285
285
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)
287
287
288## `%dirk`
288## `%dirk`
289
289
@@ -303,7 +303,7 @@ Clay does not return a `gift` in response to a `%dirk` `task`.
303
303
304### Example
304### Example
305
305
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)
307
307
308# Merge Desks
308# Merge Desks
309
309
@@ -319,7 +319,7 @@ $: des=desk :: target
319 how=germ :: method
319 how=germ :: method
320==
320==
321```
321```
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`.
323
323
324If 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.
324If 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.
325
325
@@ -346,7 +346,7 @@ If the merge failed, `p` will have a head of `%.n` and then a `[term tang]` wher
346
346
347### Example
347### Example
348
348
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)
350
350
351# Permissions
351# Permissions
352
352
@@ -431,7 +431,7 @@ Clay does not return a `gift` in response to a `%perm` `task`.
431
431
432### Example
432### Example
433
433
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)
435
435
436## `%cred`
436## `%cred`
437
437
@@ -455,7 +455,7 @@ Clay does not return a `gift` in response to a `%cred` `task`.
455
455
456### Example
456### Example
457
457
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)
459
459
460## `%crew`
460## `%crew`
461
461
@@ -481,7 +481,7 @@ The `cez` is just a map from group name to `crew` which is just a `(set ship)`.
481
481
482### Example
482### Example
483
483
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)
485
485
486## `%crow`
486## `%crow`
487
487
@@ -511,7 +511,7 @@ The `gift` you get back is a `%croz` which looks like:
511
511
512### Example
512### Example
513
513
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)
515
515
516# Foreign Ships
516# Foreign Ships
517
517
@@ -540,7 +540,7 @@ Note that if you're reading a whole `desk` or directory, all subfolders and file
540
540
541### Example
541### Example
542
542
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)
544
544
545## `%merg` - Remote
545## `%merg` - Remote
546
546
@@ -552,4 +552,4 @@ Note that all subfolders and individual files within the `desk` must permit your
552
552
553### Example
553### Example
554
554
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"
8
8
9Other concepts related to the way Arvo works.
9Other concepts related to the way Arvo works.
10
10
11−## [Subscriptions](@/docs/arvo/concepts/subscriptions.md)
11+## [Subscriptions](/docs/arvo/concepts/subscriptions)
12
12
13Urbit 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.
13Urbit 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`.
68### `%boot`
68### `%boot`
69
69
70This `task` is used only once, when Arvo first enters the [adult
70This `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
72technically the first vane to be activated, via the `%boot` `task`, which then
72technically the first vane to be activated, via the `%boot` `task`, which then
73send Jael (considered the the "true" first vane) an `%init` `task`, which then goes on to
73send Jael (considered the the "true" first vane) an `%init` `task`, which then goes on to
74call `%init` `task`s for other vanes (including Dill).
74call `%init` `task`s for other vanes (including Dill).
@@ -176,7 +176,7 @@ This `task` is not used.
176### `%init`
176### `%init`
177
177
178This `task` is called only once, when Arvo first enters the [adult
178This `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
180initial setup for Dill, such as setting the width of the console.
180initial setup for Dill, such as setting the width of the console.
181
181
182Note that this is not actually the first `task` passed to Dill - see [%boot](#%boot).
182Note that this is not actually the first `task` passed to Dill - see [%boot](#%boot).
@@ -353,7 +353,7 @@ This `task` returns no `gift`s.
353
353
354This `task` toggles verbose mode for all of Arvo, which is located here since
354This `task` toggles verbose mode for all of Arvo, which is located here since
355Dill is the vane that prints errors. To be precise, `%verb` toggles the laconic
355Dill 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).
357
357
358#### Accepts
358#### Accepts
359
359
content/docs/arvo/eyre/_index.md+3−3
@@ -6,11 +6,11 @@ template = "sections/docs/chapters.html"
6insert_anchor_links = "right"
6insert_anchor_links = "right"
7+++
7+++
8
8
9−## [Overview](@/docs/arvo/eyre/eyre.md)
9+## [Overview](/docs/arvo/eyre/eyre)
10
10
11A high-level overview of `eyre`, Urbit's HTTP server vane.
11A high-level overview of `eyre`, Urbit's HTTP server vane.
12
12
13−## [Using Eyre](@/docs/arvo/eyre/using-eyre.md)
13+## [Using Eyre](/docs/arvo/eyre/using-eyre)
14
14
15−How to use Urbit's HTTP API.
15+How to use Urbit's HTTP API.
16
16
content/docs/arvo/eyre/using-eyre.md+2−2
@@ -17,13 +17,13 @@ substituting the appropriate path to your Urbit binary:
17/path/to/urbit -p 8080 -F zod
17/path/to/urbit -p 8080 -F zod
18```
18```
19
19
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).
21
21
22## Authentication
22## Authentication
23
23
24We'll authenticate with a code that can be retrieved from the dojo. You can run
24We'll authenticate with a code that can be retrieved from the dojo. You can run
25`+code` in the dojo to obtain it, but a fakezod's code is always
25`+code` in the dojo to obtain it, but a fakezod's code is always
26−`lidlut-tabwed-pillex-ridrup`.
26+`lidlut-tabwed-pillex-ridrup`.
27
27
28Run this code in your bash terminal (requires cURL):
28Run this code in your bash terminal (requires cURL):
29
29
content/docs/arvo/ford/ford.md+2−2
@@ -7,7 +7,7 @@ aliases = ["/docs/learn/arvo/ford/"]
7
7
8*The Ford vane was refactored so drastically in 2020 that it was completely
8*The Ford vane was refactored so drastically in 2020 that it was completely
9 removed as a standalone vane, with its functionality merged into
9 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
11 post](https://urbit.org/blog/ford-fusion/) that documents this transformation,
11 post](https://urbit.org/blog/ford-fusion/) that documents this transformation,
12 which we called "Ford Fusion".*
12 which we called "Ford Fusion".*
13
13
@@ -27,7 +27,7 @@ Ford Fusion has fixed the major upgrade issues of the past by guaranteeing three
27 (dependence on previous system states) when building the new software
27 (dependence on previous system states) when building the new software
28 from source.
28 from source.
29- Ordered: updates must be monotonically sequenced from the system's
29- Ordered: updates must be monotonically sequenced from the system's
30− lowest layer to highest.
30+ lowest layer to highest.
31
31
32Let’s walk through them one by one.
32Let’s walk through them one by one.
33
33
content/docs/arvo/gall/overview.md+1−1
@@ -8,4 +8,4 @@ template = "doc.html"
8
8
9Gall is located at `/home/sys/vane/gall.hoon` within Arvo.
9Gall is located at `/home/sys/vane/gall.hoon` within Arvo.
10
10
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
14
14
15This `task` is called once per ship during the vane initialization
15This `task` is called once per ship during the vane initialization
16phase immediately following the beginning of the [adult
16phase 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
18technical reasons, though we consider Jael to be the true "first" vane. This
18technical reasons, though we consider Jael to be the true "first" vane. This
19`task` is only used for ships that will join the Ames network - fake ships (i.e.
19`task` is only used for ships that will join the Ames network - fake ships (i.e.
20made with `./urbit -F zod`) use the `%fake` `task` instead.
20made with `./urbit -F zod`) use the `%fake` `task` instead.
@@ -59,7 +59,7 @@ related data and can be found in `zuse.hoon`.
59`czar` is a map from each galaxy's `@p` to its `rift`, `life`, and public key (`pass`).
59`czar` is a map from each galaxy's `@p` to its `rift`, `life`, and public key (`pass`).
60
60
61`turf` is a `list` of DNS suffixes used by the Ames network, which for now is
61`turf` is a `list` of DNS suffixes used by the Ames network, which for now is
62−just `arvo.network`.
62+just `arvo.network`.
63
63
64`bloq` is the number of the Ethereum block in which the ship registered its keys
64`bloq` is the number of the Ethereum block in which the ship registered its keys
65with the Azimuth smart contract.
65with the Azimuth smart contract.
@@ -226,7 +226,7 @@ a `%public-keys` `task`.
226
226
227#### Returns
227#### Returns
228
228
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`.
230
230
231#### Passes
231#### Passes
232
232
@@ -279,7 +279,7 @@ keys kept by Jael. This `task` can originate locally or remotely.
279If the `task` originated locally, Jael `%give`s a `%public-keys` `gift` in
279If the `task` originated locally, Jael `%give`s a `%public-keys` `gift` in
280response. If it originated remotely, Jael `%give`s a `%boon` `gift` to back
280response. If it originated remotely, Jael `%give`s a `%boon` `gift` to back
281to Ames wrapping a `%public-keys` `gift`.
281to Ames wrapping a `%public-keys` `gift`.
282−
282+
283A `$public-keys-result` is the following.
283A `$public-keys-result` is the following.
284```hoon
284```hoon
285 +$ public-keys-result
285 +$ 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,
23The conceptual section titled [What is Arvo?](#what-is-arvo-) can be understood
23The conceptual section titled [What is Arvo?](#what-is-arvo-) can be understood
24without knowing Hoon, the Urbit programming language. The technical section
24without knowing Hoon, the Urbit programming language. The technical section
25titled [The kernel](#the-kernel) will require Chapter One of the [Hoon
25titled [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
27material from Chapter Two will be helpful as well. At the bare minimum, we
27material from Chapter Two will be helpful as well. At the bare minimum, we
28presume that the reader has read through the [Technical
28presume that the reader has read through the [Technical
29−Overview](@/docs/system-overview/_index.md).
29+Overview](/docs/system-overview/).
30
30
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.
32
32
33
33
34# Table of Contents
34# Table of Contents
@@ -125,7 +125,7 @@ The formal state of an Arvo instance is an event history, as a linked list of [n
125
125
126The Arvo event log is a list of every action ever performed on your ship that
126The Arvo event log is a list of every action ever performed on your ship that
127lead up to the current state. In principle, this event log is maintained by the
127lead 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
129event logs become too long over time to keep, as the event log has a size of
129event logs become too long over time to keep, as the event log has a size of
130O(n) where n is the number of events. Thus it is our intention to
130O(n) where n is the number of events. Thus it is our intention to
131implement a feature whereby periodic snapshots of the state of Arvo are taken
131implement 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,
174which is why some updates will work on some systems but not on others where the
174which is why some updates will work on some systems but not on others where the
175hardware and environment may differ. This is not so on Arvo - because it is an
175hardware and environment may differ. This is not so on Arvo - because it is an
176[interpreter](#solid-state-interpreter), Arvo may update itself by receiving
176[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
178network. As Hoon compiles down to Nock, which is an axiomatic representation of
178network. As Hoon compiles down to Nock, which is an axiomatic representation of
179a deterministic computer, this code is guaranteed to run identically on your machine as it
179a deterministic computer, this code is guaranteed to run identically on your machine as it
180would on anybody else's.
180would on anybody else's.
@@ -205,7 +205,7 @@ Database theory studies in precise terms the possible properties of anything tha
205 Arvo
205 Arvo
206 transactions are sequential and performed by the daemon, persistence and effect application are performed
206 transactions are sequential and performed by the daemon, persistence and effect application are performed
207 in parallel by the worker; see [worker and
207 in parallel by the worker; see [worker and
208− daemon](@/docs/vere/_index.md) for more detail.
208+ daemon](/docs/vere/) for more detail.
209
209
210 - Durability: Completed transactions will survive permanently. In other words,
210 - Durability: Completed transactions will survive permanently. In other words,
211 since the event log is stored on disk, if power is lost you are guaranteed
211 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
214It is easy to think that "completed transaction will survive permanently"
214It is easy to think that "completed transaction will survive permanently"
215along with "the state of Arvo is pure function of its event log" implies that
215along with "the state of Arvo is pure function of its event log" implies that
216nothing can ever be deleted. This is not quite true.
216nothing 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
218transparency](https://en.wikipedia.org/wiki/Referential_transparency)
218transparency](https://en.wikipedia.org/wiki/Referential_transparency)
219file system, which could naively be thought to mean that since data must be
219file system, which could naively be thought to mean that since data must be
220immutable, files cannot be deleted. However, Clay can replace a file with a
220immutable, files cannot be deleted. However, Clay can replace a file with a
@@ -248,10 +248,10 @@ cooperative multitasking.
248
248
249The 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.
249The 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.
250
250
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/).
252
252
253After concluding this section, the reader is encouraged to follow along with the
253After 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),
255which applies many of the concepts covered below.
255which applies many of the concepts covered below.
256
256
257## Overall structure
257## Overall structure
@@ -264,7 +264,7 @@ which applies many of the concepts covered below.
264 + Larval stage core
264 + Larval stage core
265 + Formal interface
265 + Formal interface
266
266
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.
268
268
269### Formal interface
269### Formal interface
270
270
@@ -442,7 +442,7 @@ A short summary of the purpose of each these arms are as follows:
442 - `+poke` is the transition function that `move`s Arvo from one state to the
442 - `+poke` is the transition function that `move`s Arvo from one state to the
443 next. It is the most fundamental arm in the entire system. It is a typed
443 next. It is the most fundamental arm in the entire system. It is a typed
444 transactional message that is processed at most once. If the `+poke` causes
444 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
446 guarantees that the message will be delivered exactly once. This is sometimes said
446 guarantees that the message will be delivered exactly once. This is sometimes said
447 to be impossible, and it is for standard operating systems, but that is not the case for single-level stores engaged in
447 to be impossible, and it is for standard operating systems, but that is not the case for single-level stores engaged in
448 a permanent session, as is the case among Arvo ships.
448 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
559
559
560As of this writing, we have nine vanes, which each provide the following services:
560As of this writing, we have nine vanes, which each provide the following services:
561
561
562−- [Ames](@/docs/arvo/ames/ames.md): the name of both our network and the vane that communicates over it.
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.md): a simple timer.
563+- [Behn](/docs/arvo/behn/behn): a simple timer.
564−- [Clay](@/docs/arvo/clay/clay.md): our version-controlled, referentially- transparent, and global filesystem.
564+- [Clay](/docs/arvo/clay/clay): 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.
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.md): an http server. Unix sends http messages to `%eyre`, and `%eyre` produces http messages in response.
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.md): a build system also utilized for marks
567+- [Ford](/docs/arvo/ford/ford): a build system also utilized for marks
568 (file types) and debugging.
568 (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.
570- `Iris`: an http client.
570- `Iris`: an http client.
571- `Jael`: storage for Azimuth information.
571- `Jael`: storage for Azimuth information.
572
572
@@ -574,4 +574,4 @@ As of this writing, we have nine vanes, which each provide the following service
574
574
575Now that you've learned about the nuts and bolts of the Arvo kernel, why not
575Now that you've learned about the nuts and bolts of the Arvo kernel, why not
576check it out in action? An in-depth "move trace" tutorial for running a timer app
576check 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"
7In this tutorial we will run a simple "move trace" and use the output to get a
7In this tutorial we will run a simple "move trace" and use the output to get a
8picture of what the Arvo kernel proper does during the routine task of setting a
8picture of what the Arvo kernel proper does during the routine task of setting a
9timer. Some level of familiarity with the kernel is required for this section,
9timer. 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).
11
11
12## Running a move trace
12## Running a move trace
13
13
@@ -20,7 +20,7 @@ has elapsed.
20To follow along yourself, boot up a fake `~zod` and enter `|verb` into the dojo
20To follow along yourself, boot up a fake `~zod` and enter `|verb` into the dojo
21and press Enter to enable verbose mode (this is tracked by the laconic bit
21and press Enter to enable verbose mode (this is tracked by the laconic bit
22introduced in the section on [the
22introduced 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`
24followed by Enter. Your terminal should pretty print a series of `move`s that looks something like this:
24followed by Enter. Your terminal should pretty print a series of `move`s that looks something like this:
25
25
26```
26```
@@ -105,7 +105,7 @@ arrow to Vane B, this represents either a `%pass` `note/task` sequence or a
105`%give` `gift/sign` sequence that actually has the Arvo kernel in the middle.
105`%give` `gift/sign` sequence that actually has the Arvo kernel in the middle.
106That is to say, Vane A `%pass`es a `note` to the Arvo kernel addressed to Vane
106That is to say, Vane A `%pass`es a `note` to the Arvo kernel addressed to Vane
107B, and the Arvo kernel then `%pass`es a `task` to Vane B. For more information,
107B, 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).
109
109
110This simple action ends up involving four vanes - Dill, Gall, Behn, and Ford -
110This simple action ends up involving four vanes - Dill, Gall, Behn, and Ford -
111as well as four applications - hood, spider, dojo, and time.
111as 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
118terminal input (the Enter keystroke) at time `~2020.1.14..19.01.25..7556`
118terminal input (the Enter keystroke) at time `~2020.1.14..19.01.25..7556`
119
119
120Here is the line of code in `arvo.hoon`, found in the [section
120Here 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:
122
122
123```hoon
123```hoon
124 ~? !lac ["" %unix -.q.ovo p.ovo now]
124 ~? !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
170Enter keystroke).
170Enter keystroke).
171
171
172Let's glance at part of the `+jack` arm in `arvo.hoon`, located in the [section 3bE
172Let'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,
174and here we look at the segment that includes `%pass` `move`s.
174and here we look at the segment that includes `%pass` `move`s.
175
175
176```hoon
176```hoon
content/docs/azimuth/_index.md+3−3
@@ -7,16 +7,16 @@ insert_anchor_links = "right"
7+++
7+++
8
8
9
9
10−## [Azimuth](@/docs/azimuth/azimuth.md)
10+## [Azimuth](/docs/azimuth/azimuth)
11
11
12An overview of the Ethereum-based public key infrastructure utilized by Urbit.
12An overview of the Ethereum-based public key infrastructure utilized by Urbit.
13
13
14−## [Life and Rift](@/docs/azimuth/azimuth.md)
14+## [Life and Rift](/docs/azimuth/azimuth)
15
15
16An explanation of how Azimuth keeps track of the most recent set of networking
16An explanation of how Azimuth keeps track of the most recent set of networking
17keys necessary to communicate with a ship.
17keys necessary to communicate with a ship.
18
18
19−## [Advanced Azimuth Tools](@/docs/azimuth/advanced-azimuth-tools.md)
19+## [Advanced Azimuth Tools](/docs/azimuth/advanced-azimuth-tools)
20
20
21Expert-level tooling for generating, signing, and sending Azimuth-related
21Expert-level tooling for generating, signing, and sending Azimuth-related
22transactions from within Urbit itself.
22transactions from within Urbit itself.
content/docs/azimuth/azimuth.md+2−2
@@ -6,7 +6,7 @@ aliases = ["/docs/learn/azimuth"]
6+++
6+++
7Azimuth 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.
7Azimuth 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.
8
8
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/).
10
10
11## Arvo vs. Azimuth
11## Arvo vs. Azimuth
12
12
@@ -128,7 +128,7 @@ wallet address you generated on your hardware wallet for ownership.
128Next, login to Bridge using your hardware wallet. While Bridge supports Trezor
128Next, login to Bridge using your hardware wallet. While Bridge supports Trezor
129and Ledger natively, this may require using Metamask as an intermediary anyways,
129and Ledger natively, this may require using Metamask as an intermediary anyways,
130depending on which firmware you are running. Then [accept the
130depending 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
132point is now stored on your hardware wallet.
132point is now stored on your hardware wallet.
133
133
134To finish the process, use Bridge to set your management, voting, and spawn
134To 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"
7Associated to every Azimuth point are two non-negative integers known as _life_
7Associated to every Azimuth point are two non-negative integers known as _life_
8and _rift_. This numbering system partition messages according to the quantity
8and _rift_. This numbering system partition messages according to the quantity
9of networking key changes and quantity of
9of networking key changes and quantity of
10−[breaches](@/using/id/guide-to-breaches.md), respectively. This is explained in
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.md)
11+more detail below. These values are utilized by [Ames](/docs/arvo/ames/ames)
12−and [Jael](@/docs/arvo/jael/jael-api.md) to ensure that communication between
12+and [Jael](/docs/arvo/jael/jael-api) to ensure that communication between
13ships is always done with the most recent set of networking keys, and that
13ships is always done with the most recent set of networking keys, and that
14networking state is appropriately reset when a breach has occurred.
14networking state is appropriately reset when a breach has occurred.
15
15
content/docs/development/_index.md+5−5
@@ -8,25 +8,25 @@ insert_anchor_links = "right"
8
8
9This section covers the development process in general.
9This section covers the development process in general.
10
10
11−## [Getting Started](@/docs/development/develop.md)
11+## [Getting Started](/docs/development/develop)
12
12
13An orientation to the various development paths within the Urbit ecosystem
13An orientation to the various development paths within the Urbit ecosystem
14
14
15−## [Environment Setup](@/docs/development/environment.md)
15+## [Environment Setup](/docs/development/environment)
16
16
17How to get your development environment ready for Urbit development.
17How to get your development environment ready for Urbit development.
18
18
19−## [Grants Program](@/docs/development/grants.md)
19+## [Grants Program](/docs/development/grants)
20
20
21An introduction to our grants program, where you can earn address space for
21An introduction to our grants program, where you can earn address space for
22contributing to the project.
22contributing to the project.
23
23
24−## [Project Repositories](@/docs/development/project-repositories.md)
24+## [Project Repositories](/docs/development/project-repositories)
25
25
26A directory of official code repositories, and unofficial community-maintained
26A directory of official code repositories, and unofficial community-maintained
27ones.
27ones.
28
28
29−## [Precepts](@/docs/development/precepts.md)
29+## [Precepts](/docs/development/precepts)
30
30
31The principles behind Urbit's architecture and continued development.
31The principles behind Urbit's architecture and continued development.
32
32
content/docs/development/develop.md+16−16
@@ -13,21 +13,21 @@ contribute to. At a high level, you can:
13- [Build clients](#clients), which use Urbit as their back-end to store data and
13- [Build clients](#clients), which use Urbit as their back-end to store data and
14 interact with the network
14 interact with the network
15- [Develop agents](#agents), or more precisely [*gall*
15- [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/)
17 and can best be thought of as microservices
17 and can best be thought of as microservices
18- [Contribute to Urbit's core](#core), which involves contributing to Urbit
18- [Contribute to Urbit's core](#core), which involves contributing to Urbit
19 itself &mdash; either the operating system
19 itself &mdash; either the operating system
20 ([Arvo](https://github.com/urbit/urbit/tree/master/pkg/arvo)), runtime
20 ([Arvo](https://github.com/urbit/urbit/tree/master/pkg/arvo)), runtime
21 ([Vere](https://github.com/urbit/urbit/tree/master/pkg/urbit)), or public key
21 ([Vere](https://github.com/urbit/urbit/tree/master/pkg/urbit)), or public key
22 infrastructure ([Azimuth](https://github.com/urbit/azimuth))
22 infrastructure ([Azimuth](https://github.com/urbit/azimuth))
23−
23+
24Below we'll go into more detail about each of these options and do our best to
24Below we'll go into more detail about each of these options and do our best to
25point you towards a number of additional helpful resources that can be found
25point you towards a number of additional helpful resources that can be found
26throughout the docs.
26throughout the docs.
27
27
28### Build Clients {#clients}
28### Build Clients {#clients}
29
29
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
31of as its flagship client. Landscape can be broken into two different technical
31of as its flagship client. Landscape can be broken into two different technical
32components: there's the collection of [agents](#agents) that utilize the
32components: there's the collection of [agents](#agents) that utilize the
33Urbit for networking and data persistence, and the JavaScript client, which is
33Urbit 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.
45This could be a chat client, a writing app, a game, or anything else that can
45This could be a chat client, a writing app, a game, or anything else that can
46communicate over HTTP.
46communicate over HTTP.
47
47
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
49libraries that provide HTTP interfaces to Urbit [here](https://github.com/urbit/awesome-urbit#http-apis-airlock).
49libraries that provide HTTP interfaces to Urbit [here](https://github.com/urbit/awesome-urbit#http-apis-airlock).
50
50
51To learn more about how to work with Urbit's HTTP interface, follow [this
51To 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).
53
53
54Alternatively, command-line interface (CLI) applications can be built using a
54Alternatively, command-line interface (CLI) applications can be built using a
55library called `shoe`, which you can learn more about
55library 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.
57
57
58### Develop Agents {#agents}
58### Develop Agents {#agents}
59
59
60Gall agents can be best thought of as individual services with a
60Gall agents can be best thought of as individual services with a
61statically-typed interface and built-in database. They're written in
61statically-typed interface and built-in database. They're written in
62−[Hoon](@/docs/hoon/overview.md) and all conform to a specific
62+[Hoon](/docs/hoon/overview) and all conform to a specific
63−[interface](@/docs/userspace/gall/gall-api.md) that's defined by the kernel vane
63+[interface](/docs/userspace/gall/gall-api) that's defined by the kernel vane
64−called [Gall](@/docs/userspace/gall/gall.md).
64+called [Gall](/docs/userspace/gall/gall).
65
65
66Applications built on Urbit utilize a collection of different agents, each of
66Applications built on Urbit utilize a collection of different agents, each of
67which handle specific functionality. The [Landscape
67which 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
69to see how this pattern works in practice.
69to see how this pattern works in practice.
70
70
71If you want to learn how to build gall agents, your best bet is to first [learn
71If 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
72+the Hoon programming language](/docs/hoon/hoon-school/), and then follow that
73−up with the [Gall guide](@/docs/userspace/gall/tutorial.md).
73+up with the [Gall guide](/docs/userspace/gall/tutorial).
74
74
75### Contribute to Urbit Core {#core}
75### Contribute to Urbit Core {#core}
76
76
@@ -105,11 +105,11 @@ communication for your ideas, you can also always reach out to us directly at
105
105
106From here, you'll probably want to learn more about:
106From here, you'll probably want to learn more about:
107
107
108−- How to set up a [development environment](@/docs/development/environment.md)
108+- How to set up a [development environment](/docs/development/environment)
109−- Our [grants program](@/docs/development/grants.md), where you can earn address
109+- Our [grants program](/docs/development/grants), where you can earn address
110 space for helping the project grow
110 space for helping the project grow
111- The different [project
111- The different [project
112− repositories](@/docs/development/project-repositories.md), both official and
112+ repositories](/docs/development/project-repositories), both official and
113 community-maintained
113 community-maintained
114−- Our development [Precepts](@/docs/development/precepts.md), which outline the
114+- Our development [Precepts](/docs/development/precepts), which outline the
115 philosophies that drive Urbit development
115 philosophies that drive Urbit development
content/docs/development/grants.md+4−4
@@ -6,7 +6,7 @@ template = "doc.html"
6
6
7The [Urbit Foundation](https://urbit.org/blog/first-steps-towards-urbit-org/)
7The [Urbit Foundation](https://urbit.org/blog/first-steps-towards-urbit-org/)
8runs a [Grants program](https://grants.urbit.org), where you can earn address
8runs 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
10project.
10project.
11
11
12Grants come in four different flavors at present: [bounties](#bounties),
12Grants come in four different flavors at present: [bounties](#bounties),
@@ -21,7 +21,7 @@ us](https://calendly.com/wolref/30min).
21[Bounties](https://grants.urbit.org/bounties) are specific, tightly-scoped
21[Bounties](https://grants.urbit.org/bounties) are specific, tightly-scoped
22pieces of work that we at the Urbit Foundation think are of high value to the
22pieces of work that we at the Urbit Foundation think are of high value to the
23ecosystem at large. They're frequently development-focused, but also often
23ecosystem 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.
25
25
26Bounties are usually competitive&mdash;worker requests should provide plenty of
26Bounties are usually competitive&mdash;worker requests should provide plenty of
27information about why the requester is right candidate for the job.
27information about why the requester is right candidate for the job.
@@ -59,8 +59,8 @@ time with us [here](https://calendly.com/wolref/30min).
59Scholarships are the newest addition to the grants program that pairs
59Scholarships are the newest addition to the grants program that pairs
60contributors with core Urbit developers to tackle infrastructure projects. These
60contributors with core Urbit developers to tackle infrastructure projects. These
61generally take the form of contributions to
61generally take the form of contributions to
62−[Arvo](@/docs/system-overview/arvo.md) or
62+[Arvo](/docs/system-overview/arvo) or
63−[Vere](@/docs/system-overview/vere.md).
63+[Vere](/docs/system-overview/vere).
64
64
65Tackling a scholarship requires an advanced understanding of Urbit. It's
65Tackling a scholarship requires an advanced understanding of Urbit. It's
66expected that you've got a demonstrated command of the Hoon language or other
66expected 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"
8**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.
8**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.
9
9
10Your 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.
10Your 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+
12Network continuity occasionally needs to be broken, either at an individual
12Network continuity occasionally needs to be broken, either at an individual
13level to fix networking issues or at a network-wide level to update Arvo beyond
13level to fix networking issues or at a network-wide level to update Arvo beyond
14what OTA updates are capable of doing. These events are called [breaches](../breach).
14what OTA updates are capable of doing. These events are called [breaches](../breach).
15### Further Reading
15### Further Reading
16
16
17−- [The Ames tutorial](@/docs/arvo/ames/ames.md): An in-depth technical guide to the Ames protocol.
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.md): Instructions on handling continuity breaches (resets) on the Ames network.
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.md): General instructions on getting your ship to work, which includes network connectivity issues.
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
13
13
14### Further Reading
14### Further Reading
15
15
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
10
10
11### Further Reading
11### Further Reading
12
12
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
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.md): A Hoon Tutorial lesson that discusses cores.
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
34
34
35### Further Reading
35### Further Reading
36
36
37−- [The Arvo tutorial](@/docs/arvo/overview.md): An in-depth technical
37+- [The Arvo tutorial](/docs/arvo/overview): An in-depth technical
38 guide to Arvo and its vanes.
38 guide to Arvo and its vanes.
39−- [The Technical Overview](@/docs/system-overview/_index.md): An
39+- [The Technical Overview](/docs/system-overview/): An
40 overview of all of Urbit.
40 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
15
15
16### Further Reading
16### Further Reading
17
17
18−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
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.md): A Hoon Tutoral lesson that explains how atoms work.
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.md): Includes an explanation of atoms.
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
13
13
14### Further Reading
14### Further Reading
15
15
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.
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/_index.md): Guide to installing Urbit, which includes instructions on booting with your Urbit identity.
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.md)
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
10
10
11### Further Reading
11### Further Reading
12
12
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
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.md): A Hoon Tutorial lesson that discusses cores.
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).
11
11
12### Further Reading
12### Further Reading
13
13
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.
23
23
24### Further Reading
24### Further Reading
25
25
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
27 explanation of breaches, including how to perform a personal breach.
27 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
28### Further Reading
28### Further Reading
29
29
30- [bridge.urbit.org](https://bridge.urbit.org/): The Bridge website.
30- [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.
31+- [Using Bridge](/using/id/using-bridge): 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.
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:
28### Further Reading
28### Further Reading
29
29
30- [Landscape](../landscape) includes a web interface for using Chat.
30- [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
32 using Chat from the command line.
32 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.
14
14
15### Further Reading
15### Further Reading
16
16
17−- [Using Your Ship](@/using/os/filesystem.md): A user guide that includes instructions on using Clay.
17+- [Using Your Ship](/using/os/filesystem): 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.
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
29
29
30### Further reading
30### Further reading
31
31
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
10
10
11### Further Reading
11### Further Reading
12
12
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
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.md): A Hoon Tutorial lesson that discusses cores.
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
12
12
13### Further Reading
13### Further Reading
14
14
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).
19
19
20### Further Reading
20### Further Reading
21
21
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
11and [Chat](../chat) press Ctrl-X. The Dojo is the first thing you encounter after successfully booting your [ship](../ship).
11and [Chat](../chat) press Ctrl-X. The Dojo is the first thing you encounter after successfully booting your [ship](../ship).
12
12
13### Further Reading
13### 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
10
10
11### Further Reading
11### Further Reading
12
12
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
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.md): A Hoon Tutorial lesson that discusses doors.
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).
14
14
15### Further Reading
15### Further Reading
16
16
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).
14
14
15### Further Reading
15### Further Reading
16
16
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.
12
12
13### Further Reading
13### Further Reading
14
14
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.
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.md): A Hoon Tutorial lesson that explains how to write a simple Gall app.
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.md): A technical guide to the Gall vane.
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
10
10
11### Further Reading
11### Further Reading
12
12
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
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.md): A Hoon tutorial lesson about gates.
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
14
14
15### Further Reading
15### Further Reading
16
16
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.
10
10
11### Further Reading
11### Further Reading
12
12
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon 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.md): How to set up an environment for programming in Hoon.
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.md): A blog post that explains why Urbit uses its own programming language.
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
12
12
13### Further Reading
13### Further Reading
14
14
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
12
12
13### Further Reading
13### Further Reading
14
14
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
13
13
14### Further Reading
14### Further Reading
15
15
16−- [The Clay tutorial](@/docs/arvo/clay/clay.md): A technical guide to the Clay vane.
16+- [The Clay tutorial](/docs/arvo/clay/clay): A technical guide to the Clay vane.
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/moon.md+2−2
@@ -27,8 +27,8 @@ their parent planet.
27
27
28### Further Reading
28### Further Reading
29
29
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.
31
31
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
33 past, present, and future of moons
33 past, present, and future of moons
34
34
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
14
14
15### Further Reading
15### Further Reading
16
16
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
10
10
11### Further Reading
11### Further Reading
12
12
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
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.md): A Hoon Tutoral lesson that explains how nouns work.
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/_index.md): Includes a low-level explanation of nouns.
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)
10
10
11### Further Reading
11### Further Reading
12
12
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
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.md): A Hoon Tutorial lesson that discusses cores.
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
14### Further Reading
14### Further Reading
15
15
16- [Event Log](../eventlog): The main important content of the pier directory.
16- [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.
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.md): General instructions on getting your ship to work, which includes network connectivity issues.
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
26### Further Reading
26### Further Reading
27
27
28- [Azimuth glossary page](../azimuth): The glossary entry for Azimuth.
28- [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"
10
10
11### Further Reading
11### Further Reading
12
12
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
20
20
21### Further Reading
21### Further Reading
22
22
23−- [Using Bridge](@/getting-started/_index.md): A guide to installing Urbit and booting a ship.
23+- [Using Bridge](/getting-started/): 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.
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.md)
25+- [Understanding Urbit ID](/understanding-urbit/urbit-id)
26- [Pier](../pier): The directory containing a ship's state.
26- [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
13
13
14### Further Reading
14### Further Reading
15
15
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
10
10
11### Further Reading
11### Further Reading
12
12
13−- [The Hoon Tutorial](@/docs/hoon/hoon-school/_index.md): Our guide to learning the Hoon programming language.
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.md): A Hoon Tutorial lesson that uses traps to build recursive functions.
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
21
21
22### Further Reading
22### Further Reading
23
23
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
14
14
15### Further Reading
15### Further Reading
16
16
17−- [The Technical Overview](@/docs/system-overview/_index.md)
17+- [The Technical Overview](/docs/system-overview/)
18−- [The Vere tutorial](@/docs/vere/_index.md): An in-depth technical guide to Vere.
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"
8
8
9Hoon is Urbit's high-level general-purpose programming language.
9Hoon is Urbit's high-level general-purpose programming language.
10
10
11−### [Overview](@/docs/hoon/overview.md)
11+### [Overview](/docs/hoon/overview)
12
12
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.
14
14
15−### [Hoon School](@/docs/hoon/hoon-school/_index.md)
15+### [Hoon School](/docs/hoon/hoon-school/)
16
16
17A series of lessons designed to get the beginner started with Hoon. This is our
17A series of lessons designed to get the beginner started with Hoon. This is our
18recommended starting point for anyone who wishes to learn Hoon.
18recommended starting point for anyone who wishes to learn Hoon.
19
19
20−### [Guides](@/docs/hoon/guides/_index.md)
20+### [Guides](/docs/hoon/guides/)
21
21
22Tutorials on how to do specific tasks with Hoon.
22Tutorials on how to do specific tasks with Hoon.
23
23
24−### [Reference](@/docs/hoon/reference/_index.md)
24+### [Reference](/docs/hoon/reference/)
25
25
26Technical reference material on Hoon, including runes, the type system, and the
26Technical reference material on Hoon, including runes, the type system, and the
27standard library.
27standard library.
content/docs/hoon/guides/_index.md+3−3
@@ -6,8 +6,8 @@ template = "sections/docs/chapters.html"
6insert_anchor_links = "right"
6insert_anchor_links = "right"
7+++
7+++
8
8
9−## [Writing Aqua Tests](@/docs/hoon/guides/aqua.md)
9+## [Writing Aqua Tests](/docs/hoon/guides/aqua)
10
10
11−## [CLI Apps](@/docs/hoon/guides/cli-tutorial.md)
11+## [CLI Apps](/docs/hoon/guides/cli-tutorial)
12
12
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.
22
22
23This tutorial can be
23This tutorial can be
24considered to be an application equivalent of the [Hoon school
24considered 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`
26generators, which only covers the bare minimum necessary to write generators
26generators, which only covers the bare minimum necessary to write generators
27that take user input.
27that take user input.
28
28
@@ -54,7 +54,7 @@ emitted to. An empty `sole-ids` sends the effect to all connected sessions.
54prompt, beeping, etc. These are described in the section on the [`sole` library](#the-sole-library).
54prompt, beeping, etc. These are described in the section on the [`sole` library](#the-sole-library).
55
55
56For example, a `%shoe` `card` that causes all connected sessions to beep would
56For example, a `%shoe` `card` that causes all connected sessions to beep would
57−be `[%shoe ~ %sole %bel ~]`.
57+be `[%shoe ~ %sole %bel ~]`.
58
58
59### `shoe` core
59### `shoe` core
60
60
@@ -166,7 +166,7 @@ be structured as
166## `%shoe` app walkthrough {#shoe-app-walkthrough}
166## `%shoe` app walkthrough {#shoe-app-walkthrough}
167
167
168Here we explore the capabilities of the `%shoe` example app and then go through
168Here 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.
170
170
171### Playing with `%shoe`
171### Playing with `%shoe`
172
172
@@ -182,7 +182,7 @@ automatically
182change the prompt to `~zod:shoe>` and `~nus:shoe>`. Type `demo` and watch the following appear:
182change the prompt to `~zod:shoe>` and `~nus:shoe>`. Type `demo` and watch the following appear:
183```
183```
184~zod ran the command
184~zod ran the command
185−~zod:shoe>
185+~zod:shoe>
186```
186```
187`~zod ran the command` should be displayed in bold green text, signifying that
187`~zod ran the command` should be displayed in bold green text, signifying that
188the command originated locally.
188the command originated locally.
@@ -336,7 +336,7 @@ Here begins the implementation of the additional arms required by the
336`+command-parser` is of central importance - it is what is used to parse user
336`+command-parser` is of central importance - it is what is used to parse user
337input and transform it into `command`s for the app to execute. Writing a proper
337input and transform it into `command`s for the app to execute. Writing a proper
338command parser requires understanding of the Hoon parsing functions found in the
338command 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
340produces 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.
340produces 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.
341
341
342
342
content/docs/hoon/guides/parsing.md+13−13
@@ -143,11 +143,11 @@ words, a parser.
143
143
144These functions are used to build `rule`s (i.e. parsers), and thus are often
144These functions are used to build `rule`s (i.e. parsers), and thus are often
145called rule-builders. For a complete list of parser builders, see [4f: Parsing
145called 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
147functions in [4h: Parsing (ASCII
147functions in [4h: Parsing (ASCII
148−Glyphs)](@/docs/hoon/reference/stdlib/4h.md), [4i: Parsing (Useful
148+Glyphs)](/docs/hoon/reference/stdlib/4h), [4i: Parsing (Useful
149−Idioms)](@/docs/hoon/reference/stdlib/4i.md), [4j: Parsing (Bases and Base
149+Idioms)](/docs/hoon/reference/stdlib/4i), [4j: Parsing (Bases and Base
150−Digits)](@/docs/hoon/reference/stdlib/4j.md), [4l: Atom Parsing](@/docs/hoon/reference/stdlib/4l.md).
150+Digits)](/docs/hoon/reference/stdlib/4j), [4l: Atom Parsing](/docs/hoon/reference/stdlib/4l).
151
151
152### `+just`
152### `+just`
153
153
@@ -243,7 +243,7 @@ is `%foo`.
243```
243```
244
244
245One common scenario where `+cold` sees play is when writing [command line
245One 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
247reader there to find an example where `+cold` is used.
247reader there to find an example where `+cold` is used.
248
248
249
249
@@ -268,7 +268,7 @@ alongside a `rule`, and attempt to parse the input with the `rule`. If the
268parse succeeds, it returns the result. There are crashing and unitized versions
268parse succeeds, it returns the result. There are crashing and unitized versions
269of each caller, corresponding to what happens when a parse fails.
269of each caller, corresponding to what happens when a parse fails.
270
270
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).
272
272
273### Parsing `tape`s
273### Parsing `tape`s
274
274
@@ -298,7 +298,7 @@ need to deal directly with `nail`s except where it is ilustrative to do so.
298
298
299### Parsing atoms
299### Parsing atoms
300
300
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
302`@t` and are typically used to represent strings internally as data, as atoms
302`@t` and are typically used to represent strings internally as data, as atoms
303are faster for the computer to work with than `tape`s, which are `list`s of
303are faster for the computer to work with than `tape`s, which are `list`s of
304`@tD` atoms. `+rash` and `+rush` are for parsing atoms, with `+rash` being
304`@tD` atoms. `+rash` and `+rush` are for parsing atoms, with `+rash` being
@@ -310,7 +310,7 @@ similary for `+rust`.
310
310
311The standard library provides a number of gates that take a `rule` and
311The standard library provides a number of gates that take a `rule` and
312produce a new modified `rule` according to some process. We call these _parser modifiers_. These are
312produce 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).
314
314
315
315
316### `+ifix`
316### `+ifix`
@@ -324,7 +324,7 @@ surrounded on both sides by text that matches a pair of `rule`s, which is discar
324```
324```
325`+pal` and `+par` are shorthand for `(just '(')` and `(just ')')`, respectively. All
325`+pal` and `+par` are shorthand for `(just '(')` and `(just ')')`, respectively. All
326ASCII glyphs have counterparts of this sort, documented
326ASCII glyphs have counterparts of this sort, documented
327−[here](@/docs/hoon/reference/stdlib/4h.md).
327+[here](/docs/hoon/reference/stdlib/4h).
328
328
329
329
330### `+star` {#star}
330### `+star` {#star}
@@ -353,8 +353,8 @@ and we note that the parsing ceases when it fails.
353
353
354Building complex parsers from simpler parsers is accomplished in Hoon with the
354Building complex parsers from simpler parsers is accomplished in Hoon with the
355use of two tools: the monadic applicator rune
355use of two tools: the monadic applicator rune
356−[`;~`](@/docs/hoon/reference/rune/mic.md#micsig) and [parsing
356+[`;~`](/docs/hoon/reference/rune/mic#micsig) and [parsing
357−combinators](@/docs/hoon/reference/stdlib/4e.md). First we introduce a few
357+combinators](/docs/hoon/reference/stdlib/4e). First we introduce a few
358combinators, then we examine more closely how `;~` is used to chain them together.
358combinators, then we examine more closely how `;~` is used to chain them together.
359
359
360The syntax to combine `rule`s is
360The syntax to combine `rule`s is
@@ -448,7 +448,7 @@ syntax error
448## Parsing numbers
448## Parsing numbers
449
449
450Functions for parsing numbers are documented in [4j: Parsing (Bases and Base
450Functions 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`
452for parsing decimal numbers.
452for parsing decimal numbers.
453
453
454```
454```
@@ -593,7 +593,7 @@ and over again. Then it follows the `rule` we described above.
593An _expression_ is either a term plus an expression or a term.
593An _expression_ is either a term plus an expression or a term.
594
594
595In the case of a term plus an expression, we actually must compute what that equals. Thus we will
595In 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
597delimited list into `tape`s separated by a given delimiter and then composes
597delimited list into `tape`s separated by a given delimiter and then composes
598them by folding with a binary gate. In this case, our delimiter is `+` and our
598them by folding with a binary gate. In this case, our delimiter is `+` and our
599binary gate is `+add`. That is to say, we will split the input string into terms
599binary 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
19before.
19before.
20
20
21If you're curious about why Urbit is written in this new language, we recommend
21If 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
22+reading the [Hoon overview](/docs/hoon/overview) that covers the high-level
23−design decisions behind the language.
23+design decisions behind the language.
24
24
25Chapter 1 introduces and explains the fundamental concepts you need in order to
25Chapter 1 introduces and explains the fundamental concepts you need in order to
26understand Hoon's semantics.
26understand 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
181
181
182### Address-Based Wings
182### Address-Based Wings
183
183
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.
185
185
186Let's use `-.c` to look at the head of `c`, i.e., the battery of the core:
186Let's use `-.c` to look at the head of `c`, i.e., the battery of the core:
187
187
@@ -574,7 +574,7 @@ and so on, down to
574 $@(~ [~ u=item])
574 $@(~ [~ u=item])
575--
575--
576```
576```
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`.
578```
578```
579> ..add
579> ..add
580<41.mac 1.ane $141>
580<41.mac 1.ane $141>
@@ -582,7 +582,7 @@ This core contains the arms in parts [1a-1c of the standard library documentatio
582Here we see that core containing `hoon-version` is in the subject of the
582Here we see that core containing `hoon-version` is in the subject of the
583section one core.
583section one core.
584
584
585−Next, [section two](@/docs/hoon/reference/stdlib/2a.md) starts:
585+Next, [section two](/docs/hoon/reference/stdlib/2a) starts:
586```
586```
587=>
587=>
588:: ::
588:: ::
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
18
18
19## Atoms and Auras
19## Atoms and Auras
20
20
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.
22
22
23In 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.
23In 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.
24
24
@@ -109,7 +109,7 @@ Aura Meaning Example Literal Syntax
109
109
110Some 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.
110Some 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.
111
111
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).
113
113
114## Aura Inference in Hoon
114## Aura Inference in Hoon
115
115
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
75+>.$(balance (add balance amount))
75+>.$(balance (add balance amount))
76```
76```
77
77
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.
79
79
80It's important to notice that the sample, `balance`, is stored as part of the door rather than existing outside of it.
80It'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"
6
6
7In 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.
7In 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.
8
8
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.
10
10
11## Vanes
11## Vanes
12
12
13In 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.
13In 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.
14
14
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.
16
16
17Vanes communicate with one another by exchanging chunks of data known as
17Vanes communicate with one another by exchanging chunks of data known as
18`move`s. We will get into more detail above what a `move` is in our example of
18`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.
20
20
21Notably, 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.
21Notably, 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.
22
22
@@ -62,7 +62,7 @@ A `duct` is a call stack, which is a list of `path`s that represent a step in a
62 $% [%pass p=path q=a] :: advance
62 $% [%pass p=path q=a] :: advance
63 [%slip p=a] :: lateral
63 [%slip p=a] :: lateral
64 [%give p=b] :: retreat
64 [%give p=b] :: retreat
65− ==
65+ ==
66```
66```
67Here 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.
67Here 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.
68
68
content/docs/hoon/hoon-school/caesar.md+9−9
@@ -186,7 +186,7 @@ code a little clearer.
186`trim` is a a gate from the standard library that splits a tape at into two
186`trim` is a a gate from the standard library that splits a tape at into two
187parts at a specified position. So `=+ (trim (mod my-steps length) my-alphabet)` splits the
187parts at a specified position. So `=+ (trim (mod my-steps length) my-alphabet)` splits the
188tape `my-alphabet` into two parts, `p` and `q`, which are now directly available in the subject.
188tape `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
190a valid point inside of `my-alphabet` even if `my-steps` is greater than `length`, the length of
190a valid point inside of `my-alphabet` even if `my-steps` is greater than `length`, the length of
191`my-alphabet`. Try trim in the dojo:
191`my-alphabet`. Try trim in the dojo:
192
192
@@ -199,7 +199,7 @@ a valid point inside of `my-alphabet` even if `my-steps` is greater than `length
199```
199```
200
200
201`(weld q p)` uses `weld`, which combines two strings into one. Remember that `trim` has given us
201`(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`
203and `q` being the back half. Here we are welding the two parts back together, but in reverse order:
203and `q` being the back half. Here we are welding the two parts back together, but in reverse order:
204the second part `q` is welded to the front, and the first part `p` is welded to the back.
204the second part `q` is welded to the front, and the first part `p` is welded to the back.
205
205
@@ -217,15 +217,15 @@ the second part `q` is welded to the front, and the first part `p` is welded to
217```
217```
218
218
219The `map-maker` arm, as the name implies, takes two tapes and creates a [`map`](/docs/hoon/reference/stdlib/2o/#map) out of them.
219The `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
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
221+associates a key with a value. If, for example, we wanted to have an association
222between `a` and 1 and `b` and 2, we could use a `map`.
222between `a` and 1 and `b` and 2, we could use a `map`.
223
223
224`|= [a=tape b=tape]` builds a gate that takes two tapes, `a` and `b`, as its
224`|= [a=tape b=tape]` builds a gate that takes two tapes, `a` and `b`, as its
225sample.
225sample.
226
226
227`^- (map @t @t)` casts the gate to a `map` with a `cord` (or `@t`) key and a `cord`
227`^- (map @t @t)` casts the gate to a `map` with a `cord` (or `@t`) key and a `cord`
228−value.
228+value.
229
229
230You might wonder, if our gate in this arm takes `tape`s, why then are we producing
230You might wonder, if our gate in this arm takes `tape`s, why then are we producing
231a map of `cord` keys and values?
231a map of `cord` keys and values?
@@ -233,7 +233,7 @@ a map of `cord` keys and values?
233As we discussed earlier, a `tape` is a list of `cord`s. In this case what we are going to do
233As we discussed earlier, a `tape` is a list of `cord`s. In this case what we are going to do
234is map a single element of a `tape` (either our alphabet or shifted-alphabet) to an element of
234is map a single element of a `tape` (either our alphabet or shifted-alphabet) to an element of
235a different `tape` (either our shifted-alphabet or our alphabet). This pair will therefore be
235a 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
237each element (`cord`) of our `msg` `tape`, use it as a `key` when accessing our `map` and get
237each element (`cord`) of our `msg` `tape`, use it as a `key` when accessing our `map` and get
238the corresponding `value` from that position in the `map`. This is how we're going to encode
238the corresponding `value` from that position in the `map`. This is how we're going to encode
239or decode our `msg` `tape`.
239or 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)`.
256This code recursively adds an entry in our `map` where the head of the `tape` `a`
256This code recursively adds an entry in our `map` where the head of the `tape` `a`
257maps to the value of the head of `tape` `b` with `~(put by chart)`, our calling
257maps to the value of the head of `tape` `b` with `~(put by chart)`, our calling
258of the `put` arm of the `by` map-engine core (note that `~(<wing> <door> <sample>`) is
258of 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)
260documentation for more information). The recursion also "consumes"
260documentation for more information). The recursion also "consumes"
261those heads with every iteration by changing `a` and `b` to their tails using `a t.a, b t.b`.
261those heads with every iteration by changing `a` and `b` to their tails using `a t.a, b t.b`.
262
262
@@ -301,7 +301,7 @@ In both cases, we create a gate that accepts a `@ud` named `steps`.
301
301
302In `encoder`:
302In `encoder`:
303`=/ value-tape=tape (rotation alpha steps)` creates a `value-tape` noun by calling `rotation`
303`=/ 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
305`value-tape` will be the list of `value`s in our `map`.
305`value-tape` will be the list of `value`s in our `map`.
306
306
307In `decoder`:
307In `decoder`:
@@ -355,7 +355,7 @@ with a pair sample. The arm we are going to pull is `turn`. This arm
355takes two arguments, a `list` and a `gate` to apply to each element of the
355takes two arguments, a `list` and a `gate` to apply to each element of the
356`list`.
356`list`.
357
357
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
359of the `by` door with our `shift-map` as the sample (which is either the standard alphabet
359of the `by` door with our `shift-map` as the sample (which is either the standard alphabet
360for keys, and the shifted alphabet for values, or the other way, depending on
360for keys, and the shifted alphabet for values, or the other way, depending on
361whether we are encoding or decoding) to look up each `cord` in our `message`, one by one
361whether 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
18==
18==
19```
19```
20
20
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.
22
22
23```hoon
23```hoon
24|= [* [n=@ud ~] ~]
24|= [* [n=@ud ~] ~]
@@ -102,4 +102,4 @@ Of course, doing so would be needlessly obfuscating -- we mention this only to i
102
102
103- `?|` takes an indefinite number of children. It's the logical "or" operator. It checks if at least one of its children is true.
103- `?|` takes an indefinite number of children. It's the logical "or" operator. It checks if at least one of its children is true.
104
104
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
395Thus, 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.
395Thus, 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.
396
396
397The standard library provides [currying
397The 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
399doors - see `+curr` and `+cury`.
399doors - see `+curr` and `+cury`.
400
400
401#### Creating Doors with a Modified Sample
401#### 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/"]
7
7
8Gall is the Arvo vane responsible for handling user space applications. When writing a Gall application there are several things you will need to understand.
8Gall is the Arvo vane responsible for handling user space applications. When writing a Gall application there are several things you will need to understand.
9
9
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/).
11
11
12## bowl and moves
12## bowl and moves
13
13
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
84~zod
84~zod
85```
85```
86
86
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).
88
88
89Cell literals can be written in Hoon using `[ ]`. Cell literals are complex, because other expressions are put inside the square brackets. Examples:
89Cell literals can be written in Hoon using `[ ]`. Cell literals are complex, because other expressions are put inside the square brackets. Examples:
90
90
@@ -111,7 +111,7 @@ You can also put complex expressions inside square brackets to make a cell. Thes
111
111
112### Wings
112### Wings
113
113
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.
115
115
116Let’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:
116Let’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:
117
117
@@ -124,7 +124,7 @@ Let’s start with the base case: a single limb. A limb expression is a trivial
124- `add`
124- `add`
125- `mul`
125- `mul`
126
126
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).)
128
128
129Wing expressions with multiple limbs are complex expressions. Examples:
129Wing expressions with multiple limbs are complex expressions. Examples:
130
130
@@ -141,7 +141,7 @@ Wing expressions with multiple limbs are complex expressions. Examples:
141
141
142Hoon 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`.
142Hoon 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`.
143
143
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).)
145
145
146### Rune Expressions
146### Rune Expressions
147
147
@@ -151,7 +151,7 @@ Expressions with a rune at the beginning are rune expressions. Most runes are us
151
151
152Runes 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.
152Runes 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.
153
153
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.
155
155
156Runes 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.
156Runes 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.
157
157
@@ -213,7 +213,7 @@ What Hoon expression does the following figure correspond to, and what does it e
213Right. This represents the Hoon expression `:- 2 :- 3 4`,
213Right. This represents the Hoon expression `:- 2 :- 3 4`,
214and evaluates to `[2 [3 4]]`. Remember, though, that if you input this into dojo it will print as `[2 3 4]`.
214and evaluates to `[2 [3 4]]`. Remember, though, that if you input this into dojo it will print as `[2 3 4]`.
215
215
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.
217
217
218##### Exercise 1.3a
218##### Exercise 1.3a
219
219
@@ -279,7 +279,7 @@ The irregular `( )` gate-calling syntax is versatile -- it is also a shortcut fo
279
279
280The `( )` gate-calling syntax can be used for gates with any number of arguments.
280The `( )` gate-calling syntax can be used for gates with any number of arguments.
281
281
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).
283
283
284### Expressions That Are Only Irregular
284### Expressions That Are Only Irregular
285
285
@@ -314,7 +314,7 @@ b=[16 18]
314[16 18]
314[16 18]
315```
315```
316
316
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).
318
318
319
319
320## The Standard Library
320## The Standard Library
@@ -336,16 +336,16 @@ Standard library functions are often built with other standard library functions
336
336
337## Reference Materials
337## Reference Materials
338
338
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:
340
340
341−- The [Runes](@/docs/hoon/reference/rune/_index.md) page will show you how to use any Hoon rune.
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.md) is a more compact place to look up rune expressions.
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.md) section has its sub-pages arranged by category. So arithmetic functions, for example, are all found on the same page.
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.md) will show you how to write your Hoon code so that it’s idiomatic and easily understood by others.
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.
345
345
346### Debugging
346### Debugging
347
347
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.
349
349
350There are a couple useful runes associated with debugging:
350There are a couple useful runes associated with debugging:
351
351
@@ -353,4 +353,4 @@ There are a couple useful runes associated with debugging:
353
353
354`~&` (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.
354`~&` (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.
355
355
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
126
126
127`draw` takes two arguments: `n`, a number; and `d`, a `deck`. It's going to
127`draw` takes two arguments: `n`, a number; and `d`, a `deck`. It's going to
128produce a cell of two `decks`. The cell is created using `scag` and `slag`.
128produce 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
130standard-library gate produces the first `n` elements from a list, and
130standard-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
132standard-library gate that produces the remaining elements of a list starting
132standard-library gate that produces the remaining elements of a list starting
133after the `n`th element. So we use `scag` to produce the drawn hand of `n` cards
133after the `n`th element. So we use `scag` to produce the drawn hand of `n` cards
134in the head of the cell as `hand`, and `slag` to produce the remaining deck in
134in 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))
107
107
108The 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`".
108The 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`".
109
109
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.
111
111
112## Explanation
112## Explanation
113
113
content/docs/hoon/hoon-school/lists.md+2−2
@@ -59,7 +59,7 @@ find-fork-d
59`=>` is a reversed form of the `:` operator we've been using, meaning that `=> a b` is the
59`=>` is a reversed form of the `:` operator we've been using, meaning that `=> a b` is the
60same as `b:a`. Here, this means we're evaluation the `?~` expression with the
60same as `b:a`. Here, this means we're evaluation the `?~` expression with the
61`b=...` expression as the subject. We explore this rune in more detail in a
61`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).
63
63
64It'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.
64It'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.
65
65
@@ -304,7 +304,7 @@ c
304
304
305## Using `hoon.hoon` to Learn Hoon
305## Using `hoon.hoon` to Learn Hoon
306
306
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).
308
308
309## Additional Exercises
309## Additional Exercises
310
310
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
44`|$` implements [parametric
44`|$` implements [parametric
45polymorphism](https://en.wikipedia.org/wiki/Parametric_polymorphism) in Hoon,
45polymorphism](https://en.wikipedia.org/wiki/Parametric_polymorphism) in Hoon,
46and as such we call gates produced with `|$` a **wet gate**. We discuss what this
46and 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).
48
48
49−Let's look at some examples from `hoon.hoon`.
49+Let's look at some examples from `hoon.hoon`.
50```hoon
50```hoon
51++ pair
51++ pair
52 |$ [head tail]
52 |$ [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
283
283
284The atoms in the examples above are all exactly the same value. Only they're interpreted and printed differently, depending on the aura.
284The atoms in the examples above are all exactly the same value. Only they're interpreted and printed differently, depending on the aura.
285
285
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).
287
287
288## Cells
288## Cells
289
289
@@ -523,7 +523,7 @@ Write the following binary tree as a noun.
523 / \
523 / \
524 / \
524 / \
525 . .
525 . .
526− / \ / \
526+ / \ / \
527 2 3 4 .
527 2 3 4 .
528 / \
528 / \
529 5 .
529 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
179subject is searched depth-first, head before tail, with faces skipped, and
179subject is searched depth-first, head before tail, with faces skipped, and
180stopping on the first result. In other words, the first match found in the head
180stopping on the first result. In other words, the first match found in the head
181will be returned. If you wished to refer to the outer `$` in this context, the
181will 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
183skips the first match of a name.
183skips the first match of a name.
184
184
185### Exercises
185### 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
15
15
16## Installing Urbit
16## Installing Urbit
17
17
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.
19
19
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.
21
21
22## Getting started
22## Getting started
23
23
@@ -61,15 +61,15 @@ You'll see:
6117
6117
62```
62```
63
63
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.
65
65
66## Generators
66## Generators
67
67
68Generators 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.
68Generators 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.
69
69
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.
71
71
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.
73
73
74## Text editors
74## Text editors
75
75
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
352
352
353Now the `~` value is included as a possible value for `user`.
353Now the `~` value is included as a possible value for `user`.
354
354
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).
356
356
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
11
11
12For 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/).
12For 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/).
13
13
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:
15
15
16```
16```
17> +1:[[11 22] 33]
17> +1:[[11 22] 33]
content/docs/hoon/hoon-school/trees-sets-and-maps.md+2−2
@@ -88,7 +88,7 @@ $(hay r.hay)
88
88
89## Sets
89## Sets
90
90
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).
92
92
93As 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.
93As 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.
94
94
@@ -237,7 +237,7 @@ Use `map` to create a set of key-value pairs, e.g., `(map @tas *)` for a set of
237
237
238One example use case is for storing customer information as a set of pairs: `(map [employee-name employee-data])`.
238One example use case is for storing customer information as a set of pairs: `(map [employee-name employee-data])`.
239
239
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.
241
241
242Two 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.
242Two 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.
243
243
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
192### Parametric Polymorphism and `|$`
192### Parametric Polymorphism and `|$`
193
193
194We first encountered `|$` in the lesson on
194We 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
196list of molds and produces a new mold. Here we take another look at this rune as
196list of molds and produces a new mold. Here we take another look at this rune as
197an implementation of **parametric polymorphism** in Hoon.
197an implementation of **parametric polymorphism** in Hoon.
198
198
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
8existing language like Haskell or C. This document provides the high-level
8existing language like Haskell or C. This document provides the high-level
9rationale for that decision, and also covers some of the features of the
9rationale for that decision, and also covers some of the features of the
10language that set it apart from others. If you're looking to learn Hoon, check
10language 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/)
12below.
12below.
13
13
14### What can Hoon do that other languages can't?
14### 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"
8
8
9This is where you look for answers to specific technical questions.
9This is where you look for answers to specific technical questions.
10
10
11−## [Syntax Cheat Sheet](@/docs/hoon/reference/cheat-sheet.md)
11+## [Syntax Cheat Sheet](/docs/hoon/reference/cheat-sheet)
12
12
13A quick reference guide to Hoon's syntax.
13A quick reference guide to Hoon's syntax.
14
14
15−## [Irregular Forms](@/docs/hoon/reference/irregular.md)
15+## [Irregular Forms](/docs/hoon/reference/irregular)
16
16
17Irregular syntax.
17Irregular syntax.
18
18
19−## [Troubleshooting](@/docs/hoon/reference/hoon-errors.md)
19+## [Troubleshooting](/docs/hoon/reference/hoon-errors)
20
20
21Strategies for debugging and understanding what your Hoon code is doing.
21Strategies for debugging and understanding what your Hoon code is doing.
22
22
23−## [Style Guide](@/docs/hoon/reference/style.md)
23+## [Style Guide](/docs/hoon/reference/style)
24
24
25Best practices for writing Hoon code.
25Best practices for writing Hoon code.
26
26
27−## [Basic Types](@/docs/hoon/reference/basic.md)
27+## [Basic Types](/docs/hoon/reference/basic)
28
28
29A simplified explanation of Hoon's type system.
29A simplified explanation of Hoon's type system.
30
30
31−## [Advanced Types](@/docs/hoon/reference/advanced.md)
31+## [Advanced Types](/docs/hoon/reference/advanced)
32
32
33The full story on Hoon's type system.
33The full story on Hoon's type system.
34
34
35−## [Auras](@/docs/hoon/reference/auras.md)
35+## [Auras](/docs/hoon/reference/auras)
36
36
37A list of aura types for atoms.
37A list of aura types for atoms.
38
38
39−### [Runes](@/docs/hoon/reference/rune/_index.md)
39+### [Runes](/docs/hoon/reference/rune/)
40
40
41Syntax and semantics for Hoon's rune system.
41Syntax and semantics for Hoon's rune system.
42
42
43−### [Limbs and Wings](@/docs/hoon/reference/limbs/_index.md)
43+### [Limbs and Wings](/docs/hoon/reference/limbs/)
44
44
45How to find data inside Hoon subjects.
45How to find data inside Hoon subjects.
46
46
47−### [Standard Library](@/docs/hoon/reference/stdlib/_index.md)
47+### [Standard Library](/docs/hoon/reference/stdlib/)
48
48
49Reference material for the Hoon standard library.
49Reference material for the Hoon standard library.
50
50
content/docs/hoon/reference/advanced.md+1−1
@@ -194,7 +194,7 @@ limb, we just search the type depth-first.
194If a name is in the `p.p` `map`, it's an alias. (An alias is defined using the
194If a name is in the `p.p` `map`, it's an alias. (An alias is defined using the
195`=*` rune.) The map contains a `(unit hoon)`; if the unit is full, the name
195`=*` rune.) The map contains a `(unit hoon)`; if the unit is full, the name
196resolves to that hoon (compiled against the `q` type). If the unit is empty,
196resolves 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
198this means).
198this means).
199
199
200If a name is the `q.p` `term`, it's a bridge. (A bridge is defined using the
200If 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
4template = "doc.html"
4template = "doc.html"
5+++
5+++
6
6
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
8are used to track metadata about how a particular atom is to be interpreted.
8are used to track metadata about how a particular atom is to be interpreted.
9This is used for type checking as well as pretty printing.
9This is used for type checking as well as pretty printing.
10
10
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).
12
12
13### Table of Auras
13### Table of Auras
14
14
15```
15```
16Aura Meaning Example Literal Syntax
16Aura Meaning Example Literal Syntax
17-------------------------------------------------------------------------
17-------------------------------------------------------------------------
18−@ empty aura
18+@ empty aura
19@c Unicode codepoint ~-~45fed
19@c Unicode codepoint ~-~45fed
20−@d date
20+@d date
21 @da absolute date ~2018.5.14..22.31.46..1435
21 @da absolute date ~2018.5.14..22.31.46..1435
22 @dr relative date (ie, timespan) ~h5.m30.s12
22 @dr relative date (ie, timespan) ~h5.m30.s12
23@f Loobean (for compiler, not castable) &
23@f Loobean (for compiler, not castable) &
@@ -27,12 +27,12 @@ Aura Meaning Example Literal Syntax
27@n nil (for compiler, not castable) ~
27@n nil (for compiler, not castable) ~
28@p phonemic base (ship name) ~sorreg-namtyv
28@p phonemic base (ship name) ~sorreg-namtyv
29@q phonemic base, unscrambled .~litsyn-polbel
29@q phonemic base, unscrambled .~litsyn-polbel
30−@r IEEE-754 floating-point
30+@r IEEE-754 floating-point
31 @rh half precision (16 bits) .~~3.14
31 @rh half precision (16 bits) .~~3.14
32 @rs single precision (32 bits) .6.022141e23
32 @rs single precision (32 bits) .6.022141e23
33 @rd double precision (64 bits) .~6.02214085774e23
33 @rd double precision (64 bits) .~6.02214085774e23
34 @rq quad precision (128 bits) .~~~6.02214085774e23
34 @rq quad precision (128 bits) .~~~6.02214085774e23
35−@s signed integer, sign bit low
35+@s signed integer, sign bit low
36 @sb signed binary --0b11.1000
36 @sb signed binary --0b11.1000
37 @sd signed decimal --1.000.056
37 @sd signed decimal --1.000.056
38 @sv signed base32 -0v1df64.49beg
38 @sv signed base32 -0v1df64.49beg
@@ -41,7 +41,7 @@ Aura Meaning Example Literal Syntax
41@t UTF-8 text (cord) 'howdy'
41@t UTF-8 text (cord) 'howdy'
42 @ta ASCII text (knot) ~.howdy
42 @ta ASCII text (knot) ~.howdy
43 @tas ASCII text symbol (term) %howdy
43 @tas ASCII text symbol (term) %howdy
44−@u unsigned integer
44+@u unsigned integer
45 @ub unsigned binary 0b11.1000
45 @ub unsigned binary 0b11.1000
46 @ud unsigned decimal 1.000.056
46 @ud unsigned decimal 1.000.056
47 @uv unsigned base32 0v1df64.49beg
47 @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
32introduction to name resolution.)
32introduction to name resolution.)
33
33
34As noted, this is a simplified version of `type`. We undo and
34As 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)
36section.
36section.
37
37
38```hoon
38```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
12few of the literal syntaxes, but it covers the most common ones.
12few of the literal syntaxes, but it covers the most common ones.
13
13
14This doesn't list any of the Ford runes, although there is now at least
14This 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).
16
16
17The following runes also exist, but are currently undocumented and not listed in
17The following runes also exist, but are currently undocumented and not listed in
18the cheat sheet:
18the cheat sheet:
content/docs/hoon/reference/hoon-errors.md+6−6
@@ -23,7 +23,7 @@ a correct Hoon file. These values are always correct.
23Usually, the line and column tell you everything you need to
23Usually, the line and column tell you everything you need to
24know. But the worst-case scenario for a syntax error is that,
24know. But the worst-case scenario for a syntax error is that,
25somewhere above, you've confused Hoon's tall form by using the
25somewhere 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),
27a function call whose sample is a cell) has three subhoons:
27a function call whose sample is a cell) has three subhoons:
28
28
29```hoon
29```hoon
@@ -107,7 +107,7 @@ means you tried to pound a square peg into a round hole.
107What was the peg and what was the hole? Hoon doesn't tell you by
107What was the peg and what was the hole? Hoon doesn't tell you by
108default, because moral fiber, and also because in too many cases
108default, because moral fiber, and also because in too many cases
109trivial errors lead to large intimidating dumps. However, you
109trivial 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.
111
111
112For instance, you wrote `(foo bar)` and got a `nest-fail`. Change
112For instance, you wrote `(foo bar)` and got a `nest-fail`. Change
113your code to be:
113your code to be:
@@ -135,7 +135,7 @@ function.
135### `mint-vain` and `mint-lost`
135### `mint-vain` and `mint-lost`
136
136
137These are errors caused by type inference in pattern matching.
137These 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.
139
139
140## Runtime crashes
140## Runtime crashes
141
141
@@ -149,7 +149,7 @@ infinite loop will time out either too slowly or too fast). The
149stack trace will show what your code was doing when interrupted.
149stack trace will show what your code was doing when interrupted.
150
150
151The counterpart of `~!` for runtime crashes is `~|`
151The counterpart of `~!` for runtime crashes is `~|`
152−([**sigbar**](@/docs/hoon/reference/rune/sig.md#sigbar)):
152+([**sigbar**](/docs/hoon/reference/rune/sig#sigbar)):
153
153
154```hoon
154```hoon
155~| foo
155~| foo
@@ -165,7 +165,7 @@ The worst possibility, of course, is that your code runs but does
165the wrong thing. This is relatively unusual in a typed
165the wrong thing. This is relatively unusual in a typed
166functional language, but it still happens.
166functional language, but it still happens.
167
167
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.
169This pretty-prints its argument:
169This pretty-prints its argument:
170
170
171```hoon
171```hoon
@@ -174,7 +174,7 @@ This pretty-prints its argument:
174```
174```
175
175
176will always print `foo` every time it executes. A variant is
176will 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
178true:
178true:
179
179
180```hoon
180```hoon
content/docs/hoon/reference/irregular.md+18−18
@@ -17,7 +17,7 @@ Anything Nock can do, Hoon can do also.
17
17
18### .+ dotlus
18### .+ dotlus
19
19
20−[docs](@/docs/hoon/reference/rune/dot.md#dotlus) \\+
20+[docs](/docs/hoon/reference/rune/dot#dotlus) \\+
21`[%dtls p=atom]`: increment an atom with Nock 4.
21`[%dtls p=atom]`: increment an atom with Nock 4.
22
22
23R: `.+(p)`
23R: `.+(p)`
@@ -25,7 +25,7 @@ I: `+(p)`
25
25
26### .= dottis
26### .= dottis
27
27
28−[docs](@/docs/hoon/reference/rune/dot.md#dottis) \\=
28+[docs](/docs/hoon/reference/rune/dot#dottis) \\=
29`[%dtts p=hoon q=hoon]`: test for equality with Nock 5.
29`[%dtts p=hoon q=hoon]`: test for equality with Nock 5.
30
30
31R: `.=(p q)`
31R: `.=(p q)`
@@ -37,7 +37,7 @@ Miscellaneous useful macros.
37
37
38### ;: miccol
38### ;: miccol
39
39
40−[docs](@/docs/hoon/reference/rune/mic.md#miccol) \\:
40+[docs](/docs/hoon/reference/rune/mic#miccol) \\:
41`[%mccl p=hoon q=(list hoon)]`: call a binary function as an n-ary function.
41`[%mccl p=hoon q=(list hoon)]`: call a binary function as an n-ary function.
42
42
43R: `;:(p q)`
43R: `;:(p q)`
@@ -49,7 +49,7 @@ The cell runes.
49
49
50### :- colhep
50### :- colhep
51
51
52−[docs](@/docs/hoon/reference/rune/col.md#colhep) \\[\\]\\^\\+\\\`\\~
52+[docs](/docs/hoon/reference/rune/col#colhep) \\[\\]\\^\\+\\\`\\~
53`[%clhp p=hoon q=hoon]`: construct a cell (2-tuple).
53`[%clhp p=hoon q=hoon]`: construct a cell (2-tuple).
54
54
55R: `:-(p q)`
55R: `:-(p q)`
@@ -72,7 +72,7 @@ Flow hoons change the subject. All non-flow hoons (except cores) pass the subjec
72
72
73### =< tisgal
73### =< tisgal
74
74
75−[docs](@/docs/hoon/reference/rune/tis.md#tisgal) \\:
75+[docs](/docs/hoon/reference/rune/tis#tisgal) \\:
76`[%tsgl p=hoon q=hoon]`: compose two hoons, inverted.
76`[%tsgl p=hoon q=hoon]`: compose two hoons, inverted.
77
77
78R: `=<(p q)`
78R: `=<(p q)`
@@ -80,7 +80,7 @@ I: `p:q`
80
80
81## | bar (core)
81## | bar (core)
82
82
83−[docs](@/docs/hoon/reference/rune/bar.md) \\$
83+[docs](/docs/hoon/reference/rune/bar) \\$
84Core hoons are flow hoon.
84Core hoons are flow hoon.
85
85
86Technically not irregular syntax, but worth mentioning.
86Technically not irregular syntax, but worth mentioning.
@@ -98,7 +98,7 @@ The invocation family of runes.
98
98
99### %= centis
99### %= centis
100
100
101−[docs](@/docs/hoon/reference/rune/cen.md#centis) \\(\\)
101+[docs](/docs/hoon/reference/rune/cen#centis) \\(\\)
102`[%cnts p=wing q=(list (pair wing hoon))]`: take a wing with changes.
102`[%cnts p=wing q=(list (pair wing hoon))]`: take a wing with changes.
103
103
104R: `%=(p a 1)`
104R: `%=(p a 1)`
@@ -106,7 +106,7 @@ I: `p(a 1)`
106
106
107### %~ censig
107### %~ censig
108
108
109−[docs](@/docs/hoon/reference/rune/cen.md#censig) \\~
109+[docs](/docs/hoon/reference/rune/cen#censig) \\~
110`[%cnsg p=wing q=hoon r=hoon]`: call with multi-armed door.
110`[%cnsg p=wing q=hoon r=hoon]`: call with multi-armed door.
111
111
112R: `%~(p q r)`
112R: `%~(p q r)`
@@ -114,7 +114,7 @@ I: `~(p q r)`
114
114
115### %- cenhep
115### %- cenhep
116
116
117−[docs](@/docs/hoon/reference/rune/cen.md#cenhep) \\(\\)
117+[docs](/docs/hoon/reference/rune/cen#cenhep) \\(\\)
118`[%cnhp p=hoon q=hoon]`: call a gate (function).
118`[%cnhp p=hoon q=hoon]`: call a gate (function).
119
119
120R: `%-(p q)`
120R: `%-(p q)`
@@ -128,7 +128,7 @@ A mold is a gate (function) that helps us build simple and rigorous data structu
128
128
129### $? bucwut
129### $? bucwut
130
130
131−[docs](@/docs/hoon/reference/rune/buc.md#bucwut) \\?
131+[docs](/docs/hoon/reference/rune/buc#bucwut) \\?
132`[%bcwt p=(list model)]`: mold which normalizes a general union.
132`[%bcwt p=(list model)]`: mold which normalizes a general union.
133
133
134R: `$?(p)`
134R: `$?(p)`
@@ -136,7 +136,7 @@ I: `?(p)`
136
136
137### $_ buccab
137### $_ buccab
138
138
139−[docs](@/docs/hoon/reference/rune/buc.md#buccab) \\_
139+[docs](/docs/hoon/reference/rune/buc#buccab) \\_
140`[%bccb p=value]`: mold which normalizes to an example.
140`[%bccb p=value]`: mold which normalizes to an example.
141
141
142R: `$_(p)`
142R: `$_(p)`
@@ -148,7 +148,7 @@ Hoon has the usual branches and logical tests.
148
148
149### ?! wutzap
149### ?! wutzap
150
150
151−[docs](@/docs/hoon/reference/rune/wut.md#wutzap) \\!
151+[docs](/docs/hoon/reference/rune/wut#wutzap) \\!
152`[%wtzp p=hoon]`: logical not.
152`[%wtzp p=hoon]`: logical not.
153
153
154R: `?!(p)`
154R: `?!(p)`
@@ -156,7 +156,7 @@ I: `!(p)`
156
156
157### ?& wutpam
157### ?& wutpam
158
158
159−[docs](@/docs/hoon/reference/rune/wut.md#wutpam) \\&
159+[docs](/docs/hoon/reference/rune/wut#wutpam) \\&
160`[%wtpm p=(list hoon)]`: logical and.
160`[%wtpm p=(list hoon)]`: logical and.
161
161
162R: `?&(p)`
162R: `?&(p)`
@@ -164,7 +164,7 @@ I: `&(p)`
164
164
165### ?| wutbar
165### ?| wutbar
166
166
167−[docs](@/docs/hoon/reference/rune/wut.md#wutbar) \\|
167+[docs](/docs/hoon/reference/rune/wut#wutbar) \\|
168`[%wtbr p=(list hoon)]`: logical or.
168`[%wtbr p=(list hoon)]`: logical or.
169
169
170R: `?|(p)`
170R: `?|(p)`
@@ -176,7 +176,7 @@ Lets us adjust types without violating type constraints.
176
176
177### ^- kethep
177### ^- kethep
178
178
179−[docs](@/docs/hoon/reference/rune/ket.md#kethep) \\\`
179+[docs](/docs/hoon/reference/rune/ket#kethep) \\\`
180`[%kthp p=model q=value]`: typecast by mold.
180`[%kthp p=model q=value]`: typecast by mold.
181
181
182R: `^-(p q)`
182R: `^-(p q)`
@@ -184,7 +184,7 @@ I: `` `p`q ``
184
184
185### ^= kettis
185### ^= kettis
186
186
187−[docs](@/docs/hoon/reference/rune/ket.md#kettis) \\=
187+[docs](/docs/hoon/reference/rune/ket#kettis) \\=
188`[%ktts p=toga q=value]`: name a value.
188`[%ktts p=toga q=value]`: name a value.
189
189
190R: `^=(p q)`
190R: `^=(p q)`
@@ -210,7 +210,7 @@ I: `p=q`
210- `|` loobean false.
210- `|` loobean false.
211- `%a` constant `a`, where `a` can be an ((ir)regularly defined) atom or a symbol.
211- `%a` constant `a`, where `a` can be an ((ir)regularly defined) atom or a symbol.
212
212
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.
214
214
215### List addressing
215### List addressing
216
216
@@ -219,7 +219,7 @@ See [%sand](@/docs/hoon/reference/rune/constants.md#warm) for other irregular de
219
219
220### Limbs
220### Limbs
221
221
222−[docs](@/docs/hoon/reference/limbs/limb.md) \\+\\.\\^
222+[docs](/docs/hoon/reference/limbs/limb) \\+\\.\\^
223`[%limb p=(each @ud [p=@ud q=@tas])]`: attribute of subject.
223`[%limb p=(each @ud [p=@ud q=@tas])]`: attribute of subject.
224
224
225- `+15` is slot 15
225- `+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
9concept of scope, environment, etc. An expression has exactly one data source,
9concept of scope, environment, etc. An expression has exactly one data source,
10the **subject**, a noun like any other.
10the **subject**, a noun like any other.
11
11
12−## [Limbs](@/docs/hoon/reference/limbs/limb.md)
12+## [Limbs](/docs/hoon/reference/limbs/limb)
13
13
14A limb is used to resolve to a piece of data in the subject. A wing is thus a resolution path into the subject.
14A limb is used to resolve to a piece of data in the subject. A wing is thus a resolution path into the subject.
15
15
16−## [Wings](@/docs/hoon/reference/limbs/wing.md)
16+## [Wings](/docs/hoon/reference/limbs/wing)
17
17
18In Hoon we use 'wings' to extract information from the subject. A wing is a list of limbs (including a trivial list of one limb).
18In 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.
10
10
11## Non-Rune Expressions
11## Non-Rune Expressions
12
12
13−### [Constants](@/docs/hoon/reference/rune/constants.md)
13+### [Constants](/docs/hoon/reference/rune/constants)
14
14
15Hoon 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).
15Hoon 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).
16
16
17−### [Limbs and Wings](@/docs/hoon/reference/limbs/_index.md)
17+### [Limbs and Wings](/docs/hoon/reference/limbs/)
18
18
19Limb and wing expressions also lack runes.
19Limb and wing expressions also lack runes.
20
20
21## Runes Proper
21## Runes Proper
22
22
23−### [`. dot` (Nock)](@/docs/hoon/reference/rune/dot.md)
23+### [`. dot` (Nock)](/docs/hoon/reference/rune/dot)
24
24
25Runes used for carrying out Nock operations in Hoon.
25Runes used for carrying out Nock operations in Hoon.
26
26
27−### [`! zap` (wild)](@/docs/hoon/reference/rune/zap.md)
27+### [`! zap` (wild)](/docs/hoon/reference/rune/zap)
28
28
29Wildcard category. Expressions that don't fit anywhere else go here.
29Wildcard category. Expressions that don't fit anywhere else go here.
30
30
31−### [`= tis` (Subject Modification)](@/docs/hoon/reference/rune/tis.md)
31+### [`= tis` (Subject Modification)](/docs/hoon/reference/rune/tis)
32
32
33Runes used to modify the subject.
33Runes used to modify the subject.
34
34
35−### [`? wut` (Conditionals)](@/docs/hoon/reference/rune/wut.md)
35+### [`? wut` (Conditionals)](/docs/hoon/reference/rune/wut)
36
36
37Runes used for branching on conditionals.
37Runes used for branching on conditionals.
38
38
39−### [`| bar` (Cores)](@/docs/hoon/reference/rune/bar.md)
39+### [`| bar` (Cores)](/docs/hoon/reference/rune/bar)
40
40
41Runes used to produce cores.
41Runes used to produce cores.
42
42
43−### [`+ lus` (Arms)](@/docs/hoon/reference/rune/lus.md)
43+### [`+ lus` (Arms)](/docs/hoon/reference/rune/lus)
44
44
45Runes used to define arms in a core.
45Runes used to define arms in a core.
46
46
47−### [`: col` (Cells)](@/docs/hoon/reference/rune/col.md)
47+### [`: col` (Cells)](/docs/hoon/reference/rune/col)
48
48
49Runes used to produce cells, which are pairs of nouns.
49Runes used to produce cells, which are pairs of nouns.
50
50
51−### [`% cen` (Calls)](@/docs/hoon/reference/rune/cen.md)
51+### [`% cen` (Calls)](/docs/hoon/reference/rune/cen)
52
52
53Runes used for making function calls in Hoon.
53Runes used for making function calls in Hoon.
54
54
55−### [`^ ket` (Casts)](@/docs/hoon/reference/rune/ket.md)
55+### [`^ ket` (Casts)](/docs/hoon/reference/rune/ket)
56
56
57Runes that let us adjust types without violating type constraints.
57Runes that let us adjust types without violating type constraints.
58
58
59−### [`$ buc` (Structures)](@/docs/hoon/reference/rune/buc.md)
59+### [`$ buc` (Structures)](/docs/hoon/reference/rune/buc)
60
60
61Runes used for defining custom types.
61Runes used for defining custom types.
62
62
63−### [`; mic` (Make)](@/docs/hoon/reference/rune/mic.md)
63+### [`; mic` (Make)](/docs/hoon/reference/rune/mic)
64
64
65Miscellaneous useful macros.
65Miscellaneous useful macros.
66
66
67−### [`~ sig` (Hints)](@/docs/hoon/reference/rune/sig.md)
67+### [`~ sig` (Hints)](/docs/hoon/reference/rune/sig)
68
68
69Runes that use Nock `11` to pass non-semantic info to the interpreter.
69Runes that use Nock `11` to pass non-semantic info to the interpreter.
70
70
71−### [`--`, `==` (Terminators)](@/docs/hoon/reference/rune/terminators.md)
71+### [`--`, `==` (Terminators)](/docs/hoon/reference/rune/terminators)
72
72
73Runes used to terminate expressions.
73Runes 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
136to 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)`.
136to 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)`.
137
137
138Because 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
138Because 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).
140
140
141##### Examples
141##### Examples
142
142
@@ -346,7 +346,7 @@ A more interesting trap:
346Note that we can use `$()` to recurse back into the
346Note that we can use `$()` to recurse back into the
347trap, since it's a core with an `$` arm.
347trap, since it's a core with an `$` arm.
348
348
349−> `$(...)` expands to `%=($ ...)` (["centis"](@/docs/hoon/reference/rune/cen.md#centis)).
349+> `$(...)` expands to `%=($ ...)` (["centis"](/docs/hoon/reference/rune/cen#centis)).
350
350
351### `|-` "barhep"
351### `|-` "barhep"
352
352
@@ -380,7 +380,7 @@ A `|-` expression produces a core with one arm named `$` and immediately evaluat
380
380
381The `|-` 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 `$()`.
381The `|-` 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 `$()`.
382
382
383−> `$(...)` expands to `%=($ ...)` (["centis"](@/docs/hoon/reference/rune/cen.md#centis)).
383+> `$(...)` expands to `%=($ ...)` (["centis"](/docs/hoon/reference/rune/cen#centis)).
384
384
385##### Examples
385##### Examples
386
386
@@ -493,7 +493,7 @@ A `|~` expression produces an iron gate. `a` defines the sample, and `b` define
493
493
494##### Discussion
494##### Discussion
495
495
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)
497
497
498##### Examples
498##### Examples
499
499
@@ -548,7 +548,7 @@ you know what you're doing.
548Just as with a [gate](#bartis), we can recurse back into a wet gate
548Just as with a [gate](#bartis), we can recurse back into a wet gate
549with `$()`.
549with `$()`.
550
550
551−> `$(...)` expands to `%=($ ...)` (["centis"](@/docs/hoon/reference/rune/cen.md#centis)).
551+> `$(...)` expands to `%=($ ...)` (["centis"](/docs/hoon/reference/rune/cen#centis)).
552
552
553`|*` can be used to make wet gates that produce structures, but this usage is
553`|*` can be used to make wet gates that produce structures, but this usage is
554discouraged in favor of `|$`.
554discouraged in favor of `|$`.
@@ -610,7 +610,7 @@ Dry gates are used for the vast majority of ordinary functions in Hoon.
610
610
611A gate is a core with one arm named `$`, so we can recurse back into it with `$()`.
611A gate is a core with one arm named `$`, so we can recurse back into it with `$()`.
612
612
613−> `$(...)` expands to `%=($ ...)` (["centis"](@/docs/hoon/reference/rune/cen.md#centis)).
613+> `$(...)` expands to `%=($ ...)` (["centis"](/docs/hoon/reference/rune/cen#centis)).
614
614
615##### Examples
615##### Examples
616
616
@@ -663,7 +663,7 @@ A `|@` expression produces a 'wet' core whose payload is the expression's subjec
663
663
664##### Discussion
664##### Discussion
665
665
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).
667
667
668### `|?` "barwut"
668### `|?` "barwut"
669
669
@@ -695,7 +695,7 @@ A `|?` expression produces a lead trap (i.e., a lead core with one arm named `$`
695
695
696##### Discussion
696##### Discussion
697
697
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).
699
699
700##### Examples
700##### Examples
701
701
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'.
11## Overview
11## Overview
12
12
13Structures are abstract syntax trees for `type`s (see the documentation on
13Structures are abstract syntax trees for `type`s (see the documentation on
14−[basic](@/docs/hoon/reference/basic.md) and
14+[basic](/docs/hoon/reference/basic) and
15−[advanced](@/docs/hoon/reference/advanced.md) types for the
15+[advanced](/docs/hoon/reference/advanced) types for the
16precise definition of `type`). Structures are compile-time values of `type` which
16precise definition of `type`). Structures are compile-time values of `type` which
17at runtime may be used to produce a 'mold'.
17at runtime may be used to produce a 'mold'.
18
18
@@ -112,7 +112,7 @@ rune should rarely be used, but it is extremely important when it is.
112~zod:dojo> =foo $| (list @)
112~zod:dojo> =foo $| (list @)
113 |=(a=(list) (lth (lent a) 4))
113 |=(a=(list) (lth (lent a) 4))
114```
114```
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.
116```
116```
117> (foo ~[1 2 3])
117> (foo ~[1 2 3])
118~[1 2 3]
118~[1 2 3]
@@ -128,7 +128,7 @@ The definition of `+set` in `hoon.hoon` is the following:
128 $| (tree item)
128 $| (tree item)
129 |=(a=(tree) ~(apt in a))
129 |=(a=(tree) ~(apt in a))
130```
130```
131−Here [`|$`](@/docs/hoon/reference/rune/bar.md#barbuc) is used to
131+Here [`|$`](/docs/hoon/reference/rune/bar#barbuc) is used to
132define a mold builder that takes in a mold (given the face `item`) and creates a
132define a mold builder that takes in a mold (given the face `item`) and creates a
133structure consisting of a `tree` of `item`s with `$|` that is validated with the
133structure consisting of a `tree` of `item`s with `$|` that is validated with the
134gate `|=(a=(tree) ~(apt in a))`. `in` is a door in `hoon.hoon` with functions
134gate `|=(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)`.
245
245
246### `$<` "bucgal"
246### `$<` "bucgal"
247
247
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
249that excludes a particular structure.
249that excludes a particular structure.
250
250
251##### Syntax
251##### Syntax
@@ -280,7 +280,7 @@ ford: %ride failed to execute:
280
280
281### `$>` "bucgar"
281### `$>` "bucgar"
282
282
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
284matching a particular structure.
284matching a particular structure.
285
285
286##### Syntax
286##### Syntax
@@ -451,7 +451,7 @@ $~ p=hoon q=spec
451
451
452##### Discussion
452##### Discussion
453
453
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).)
455
455
456Do not confuse the `$~` rune with the constant type for null, `$~`. (The latter uses older Hoon syntax that is still accepted. Preferably it would be `%~`.)
456Do not confuse the `$~` rune with the constant type for null, `$~`. (The latter uses older Hoon syntax that is still accepted. Preferably it would be `%~`.)
457
457
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
53
53
54`%_` is different from `%=` because `%=` can change the type of a wing with mutations. `%_` preserves the wing type.
54`%_` is different from `%=` because `%=` can change the type of a wing with mutations. `%_` preserves the wing type.
55
55
56−See [how wings are resolved](@/docs/hoon/reference/limbs/_index.md).
56+See [how wings are resolved](/docs/hoon/reference/limbs/).
57
57
58##### Examples
58##### Examples
59
59
@@ -204,8 +204,8 @@ This rune is for evaluating the `$` arm of a gate, i.e., calling a gate as a fun
204
204
205##### Discussion
205##### Discussion
206
206
207−`%-` is used to call a function; `a` is the function ([`gate`](@/docs/hoon/reference/rune/bar.md#bartis),
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.md#barcab).
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).
209
209
210##### Examples
210##### Examples
211
211
@@ -319,7 +319,7 @@ A `%~` expression evaluates the arm of a door (i.e., a core with a sample). `a`
319
319
320`%~` 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)`.
320`%~` 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)`.
321
321
322−See also [`|_`](@/docs/hoon/reference/rune/bar.md#barcab).
322+See also [`|_`](/docs/hoon/reference/rune/bar#barcab).
323
323
324##### Examples
324##### Examples
325
325
content/docs/hoon/reference/rune/ket.md+1−1
@@ -203,7 +203,7 @@ Regular: **1-fixed**.
203
203
204##### Discussion
204##### Discussion
205
205
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).
207
207
208##### Examples
208##### Examples
209
209
content/docs/hoon/reference/rune/tis.md+1−1
@@ -159,7 +159,7 @@ Regular: **3-fixed**.
159##### Discussion
159##### Discussion
160
160
161Technically the `=.` rune doesn't change the subject. It creates
161Technically 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`.
163
163
164##### Examples
164##### Examples
165
165
content/docs/hoon/reference/rune/wut.md+1−1
@@ -22,7 +22,7 @@ for expressions which expand to `?:`.
22The test does not have to be a single `?=`; the compiler can
22The test does not have to be a single `?=`; the compiler can
23analyze arbitrary boolean logic ([`?&` ("wutpam")](#wutpam),
23analyze arbitrary boolean logic ([`?&` ("wutpam")](#wutpam),
24[`?|` ("wutbar")](#wutbar), [`?!` ("wutzap")](#wutzap)) with full
24[`?|` ("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**
26analyzed.
26analyzed.
27
27
28If the compiler detects that the branch is degenerate (only one
28If 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`.
12
12
13#### Accepts
13#### Accepts
14
14
15−`a` is an [`atom`](@/docs/glossary/atom.md).
15+`a` is an [`atom`](/docs/glossary/atom).
16
16
17−`b` is an [`atom`](@/docs/glossary/atom.md).
17+`b` is an [`atom`](/docs/glossary/atom).
18
18
19#### Produces
19#### Produces
20
20
21−An [`atom`](@/docs/glossary/atom.md).
21+An [`atom`](/docs/glossary/atom).
22
22
23#### Source
23#### Source
24
24
@@ -65,11 +65,11 @@ Decrements `a` by `1`.
65
65
66#### Accepts
66#### Accepts
67
67
68−`a` is an [`atom`](@/docs/glossary/atom.md).
68+`a` is an [`atom`](/docs/glossary/atom).
69
69
70#### Produces
70#### Produces
71
71
72−An [`atom`](@/docs/glossary/atom.md).
72+An [`atom`](/docs/glossary/atom).
73
73
74#### Source
74#### Source
75
75
@@ -116,13 +116,13 @@ Computes `a` divided by `b` without remainder.
116
116
117#### Accepts
117#### Accepts
118
118
119−`a` is an [`atom`](@/docs/glossary/atom.md).
119+`a` is an [`atom`](/docs/glossary/atom).
120
120
121−`b` is an [`atom`](@/docs/glossary/atom.md).
121+`b` is an [`atom`](/docs/glossary/atom).
122
122
123#### Produces
123#### Produces
124
124
125−An [`atom`](@/docs/glossary/atom.md).
125+An [`atom`](/docs/glossary/atom).
126
126
127#### Source
127#### Source
128
128
@@ -171,13 +171,13 @@ Computes `a` divided by `b`, producing the quotient and the remainder.
171
171
172#### Accepts
172#### Accepts
173
173
174−`a` is an [`atom`](@/docs/glossary/atom.md).
174+`a` is an [`atom`](/docs/glossary/atom).
175
175
176−`b` is an [`atom`](@/docs/glossary/atom.md).
176+`b` is an [`atom`](/docs/glossary/atom).
177
177
178#### Produces
178#### Produces
179
179
180−A cell of [`atoms`](@/docs/glossary/atom.md).
180+A cell of [`atoms`](/docs/glossary/atom).
181
181
182#### Source
182#### Source
183
183
@@ -221,9 +221,9 @@ Tests whether `a` is greater than or equal to `b`.
221
221
222#### Accepts
222#### Accepts
223
223
224−`a` is an [`atom`](@/docs/glossary/atom.md).
224+`a` is an [`atom`](/docs/glossary/atom).
225
225
226−`b` is an [`atom`](@/docs/glossary/atom.md).
226+`b` is an [`atom`](/docs/glossary/atom).
227
227
228#### Produces
228#### Produces
229
229
@@ -261,9 +261,9 @@ Tests whether `a` is greater than `b`.
261
261
262#### Accepts
262#### Accepts
263
263
264−`a` is an [`atom`](@/docs/glossary/atom.md).
264+`a` is an [`atom`](/docs/glossary/atom).
265
265
266−`b` is an [`atom`](@/docs/glossary/atom.md).
266+`b` is an [`atom`](/docs/glossary/atom).
267
267
268#### Produces
268#### Produces
269
269
@@ -302,9 +302,9 @@ Tests whether `a` is less than or equal to `b`.
302
302
303#### Accepts
303#### Accepts
304
304
305−`a` is an [`atom`](@/docs/glossary/atom.md).
305+`a` is an [`atom`](/docs/glossary/atom).
306
306
307−`b` is an [`atom`](@/docs/glossary/atom.md).
307+`b` is an [`atom`](/docs/glossary/atom).
308
308
309#### Produces
309#### Produces
310
310
@@ -359,9 +359,9 @@ Tests whether `a` is less than `b`.
359
359
360#### Accepts
360#### Accepts
361
361
362−`a` is an [`atom`](@/docs/glossary/atom.md).
362+`a` is an [`atom`](/docs/glossary/atom).
363
363
364−`b` is an [`atom`](@/docs/glossary/atom.md).
364+`b` is an [`atom`](/docs/glossary/atom).
365
365
366#### Produces
366#### Produces
367
367
@@ -417,13 +417,13 @@ Computes the greater of `a` and `b`.
417
417
418#### Accepts
418#### Accepts
419
419
420−`a` is an [`atom`](@/docs/glossary/atom.md).
420+`a` is an [`atom`](/docs/glossary/atom).
421
421
422−`b` is an [`atom`](@/docs/glossary/atom.md).
422+`b` is an [`atom`](/docs/glossary/atom).
423
423
424#### Produces
424#### Produces
425
425
426−An [`atom`](@/docs/glossary/atom.md).
426+An [`atom`](/docs/glossary/atom).
427
427
428#### Source
428#### Source
429
429
@@ -473,13 +473,13 @@ Computes the lesser of `a` and `b`.
473
473
474#### Accepts
474#### Accepts
475
475
476−`a` is an [`atom`](@/docs/glossary/atom.md).
476+`a` is an [`atom`](/docs/glossary/atom).
477
477
478−`b` is an [`atom`](@/docs/glossary/atom.md).
478+`b` is an [`atom`](/docs/glossary/atom).
479
479
480#### Produces
480#### Produces
481
481
482−An [`atom`](@/docs/glossary/atom.md).
482+An [`atom`](/docs/glossary/atom).
483
483
484#### Source
484#### Source
485
485
@@ -527,13 +527,13 @@ Computes the remainder of dividing `a` by `b`.
527
527
528#### Accepts
528#### Accepts
529
529
530−`a` is an [`atom`](@/docs/glossary/atom.md).
530+`a` is an [`atom`](/docs/glossary/atom).
531
531
532−`b` is an [`atom`](@/docs/glossary/atom.md).
532+`b` is an [`atom`](/docs/glossary/atom).
533
533
534#### Produces
534#### Produces
535
535
536−An [`atom`](@/docs/glossary/atom.md).
536+An [`atom`](/docs/glossary/atom).
537
537
538#### Source
538#### Source
539
539
@@ -578,13 +578,13 @@ Multiplies `a` by `b`.
578
578
579#### Accepts
579#### Accepts
580
580
581−`a` is an [`atom`](@/docs/glossary/atom.md).
581+`a` is an [`atom`](/docs/glossary/atom).
582
582
583−`b` is an [`atom`](@/docs/glossary/atom.md).
583+`b` is an [`atom`](/docs/glossary/atom).
584
584
585#### Produces
585#### Produces
586
586
587−An [`atom`](@/docs/glossary/atom.md).
587+An [`atom`](/docs/glossary/atom).
588
588
589#### Source
589#### Source
590
590
@@ -629,13 +629,13 @@ Subtracts `b` from `a`.
629
629
630#### Accepts
630#### Accepts
631
631
632−`a` is an [`atom`](@/docs/glossary/atom.md).
632+`a` is an [`atom`](/docs/glossary/atom).
633
633
634−`b` is an [`atom`](@/docs/glossary/atom.md).
634+`b` is an [`atom`](/docs/glossary/atom).
635
635
636#### Produces
636#### Produces
637
637
638−An [`atom`](@/docs/glossary/atom.md).
638+An [`atom`](/docs/glossary/atom).
639
639
640#### Source
640#### Source
641
641
content/docs/hoon/reference/stdlib/1b.md+15−15
@@ -4,25 +4,25 @@ weight = 2
4template = "doc.html"
4template = "doc.html"
5+++
5+++
6
6
7−Check out the Nock [explanation](@/docs/nock/_index.md) for more
7+Check out the Nock [explanation](/docs/nock/) for more
8information on the tree-addressing system.
8information on the tree-addressing system.
9
9
10### `++cap`
10### `++cap`
11
11
12Tree head
12Tree head
13
13
14−Tests whether the tree address `a` is in the head or the tail of a [`noun`](@/docs/glossary/noun.md).
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.md) `%2` if it is within the head (subtree `+2`), or
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.md) `%3` if it is within the tail (subtree `+3`).
16+the constant [`atom`](/docs/glossary/atom) `%3` if it is within the tail (subtree `+3`).
17
17
18
18
19#### Accepts
19#### Accepts
20
20
21−`a` is an [`atom`](@/docs/glossary/atom.md).
21+`a` is an [`atom`](/docs/glossary/atom).
22
22
23#### Produces
23#### Produces
24
24
25−A constant [`atom`](@/docs/glossary/atom.md).
25+A constant [`atom`](/docs/glossary/atom).
26
26
27#### Source
27#### Source
28
28
@@ -70,16 +70,16 @@ A constant [`atom`](@/docs/glossary/atom.md).
70
70
71Address within head/tail
71Address within head/tail
72
72
73−Computes the tree address of [`atom`](@/docs/glossary/atom.md) `a` within either the head (`+2`) or tail
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.md).
74+(`+3`) of a [`noun`](/docs/glossary/noun).
75
75
76#### Accepts
76#### Accepts
77
77
78−`a` is an [`atom`](@/docs/glossary/atom.md).
78+`a` is an [`atom`](/docs/glossary/atom).
79
79
80#### Produces
80#### Produces
81
81
82−An [`atom`](@/docs/glossary/atom.md).
82+An [`atom`](/docs/glossary/atom).
83
83
84#### Source
84#### Source
85
85
@@ -144,7 +144,7 @@ An [`atom`](@/docs/glossary/atom.md).
144 (continues...)
144 (continues...)
145```
145```
146
146
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
148`+7` now occupies. The tree below helps illustrate the relationship. With
148`+7` now occupies. The tree below helps illustrate the relationship. With
149parentheses are `a` values (if `a` is in subtree `+3`), and without parentheses
149parentheses are `a` values (if `a` is in subtree `+3`), and without parentheses
150are the values returned with `(mas a)`.
150are the values returned with `(mas a)`.
@@ -175,13 +175,13 @@ Computes the absolute address of `b`, a relative address within the subtree
175
175
176#### Accepts
176#### Accepts
177
177
178−`a` is an [`atom`](@/docs/glossary/atom.md).
178+`a` is an [`atom`](/docs/glossary/atom).
179
179
180−`b` is an [`atom`](@/docs/glossary/atom.md).
180+`b` is an [`atom`](/docs/glossary/atom).
181
181
182#### Produces
182#### Produces
183
183
184−An [`atom`](@/docs/glossary/atom.md).
184+An [`atom`](/docs/glossary/atom).
185
185
186#### Source
186#### Source
187
187
@@ -232,7 +232,7 @@ right (starting with root `+1`, head `+2`, and tail `+3`). Relative address
232`b` is found with respect to `a`, and then its absolute address, within the
232`b` is found with respect to `a`, and then its absolute address, within the
233greater tree, is returned.
233greater tree, is returned.
234
234
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
236a tree diagram makes it easy to see why.
236a tree diagram makes it easy to see why.
237
237
238```
238```
content/docs/hoon/reference/stdlib/1c.md+12−12
@@ -46,7 +46,7 @@ supplied, it defaults to a value of 1.
46
46
47Blocksize
47Blocksize
48
48
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`.
50
50
51#### Source
51#### Source
52
52
@@ -101,7 +101,7 @@ A `bloq` of 3 has a bitwidth of 8. (2^3 bits; can represent 256 values.)
101
101
102And so on.
102And so on.
103
103
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.
105
105
106---
106---
107
107
@@ -135,7 +135,7 @@ A mold generator. Produces a discriminated fork between two types, defaulting to
135
135
136Function
136Function
137
137
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
139product noun. If used dryly as a type, the subject must have a sample type of
139product noun. If used dryly as a type, the subject must have a sample type of
140`*`.
140`*`.
141
141
@@ -168,7 +168,7 @@ A `gate` is analogous to a function in other programming languages. We created
168this new jargon because other constructs in Urbit are "functions" in the
168this new jargon because other constructs in Urbit are "functions" in the
169mathematical sense. Any `gate` normalizes to an iron `gate`.
169mathematical sense. Any `gate` normalizes to an iron `gate`.
170
170
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)
172
172
173---
173---
174### `++list`
174### `++list`
@@ -204,7 +204,7 @@ homogenous type.
204```
204```
205#### Discussion
205#### Discussion
206
206
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)
208
208
209---
209---
210### `++lone`
210### `++lone`
@@ -267,9 +267,9 @@ A mold generator. Produces a tuple of two of the types passed in.
267---
267---
268### `++pole`
268### `++pole`
269
269
270−Faceless [`list`](@/docs/hoon/reference/stdlib/1c.md#list)
270+Faceless [`list`](/docs/hoon/reference/stdlib/1c#list)
271
271
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`.
273
273
274#### Source
274#### Source
275
275
@@ -318,9 +318,9 @@ A mold generator. Produces a tuple of four of the types passed in.
318---
318---
319### `++quip`
319### `++quip`
320
320
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
322
322
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`.
324
324
325#### Source
325#### Source
326
326
@@ -347,9 +347,9 @@ new state. You'll often see `quip` used in Gall apps.
347---
347---
348### `++trap`
348### `++trap`
349
349
350−[`Core`](@/docs/glossary/core.md) with one arm `$`
350+[`Core`](/docs/glossary/core) with one arm `$`
351
351
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 `$`.
353
353
354#### Source
354#### Source
355
355
@@ -454,6 +454,6 @@ type that was passed in.
454
454
455Using a `unit` allows you to specify something that may not be there.
455Using a `unit` allows you to specify something that may not be there.
456
456
457−See also: [`++bind`](@/docs/hoon/reference/stdlib/2a.md#bind)
457+See also: [`++bind`](/docs/hoon/reference/stdlib/2a#bind)
458
458
459---
459---
content/docs/hoon/reference/stdlib/2a.md+49−49
@@ -6,20 +6,20 @@ template = "doc.html"
6
6
7### `++biff`
7### `++biff`
8
8
9−[`Unit`](@/docs/hoon/reference/stdlib/1c.md#unit) as argument
9+[`Unit`](/docs/hoon/reference/stdlib/1c#unit) as argument
10
10
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)
12`a` (`u.a`). If `a` is empty, `~` is produced.
12`a` (`u.a`). If `a` is empty, `~` is produced.
13
13
14#### Accepts
14#### Accepts
15
15
16−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
16+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
17
17
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).
19
19
20#### Produces
20#### Produces
21
21
22−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
22+A [`unit`](/docs/hoon/reference/stdlib/1c#unit).
23
23
24#### Source
24#### Source
25
25
@@ -44,21 +44,21 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
44---
44---
45### `++bind`
45### `++bind`
46
46
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)
48
48
49−Applies a function `b` to the value (`u.a`) of a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `a`, producing
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.md#unit). Used when you want a function that does not accept or produce a
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.md#unit) to both accept and produce a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
51+[`unit`](/docs/hoon/reference/stdlib/1c#unit) to both accept and produce a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
52
52
53#### Accepts
53#### Accepts
54
54
55−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
55+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
56
56
57`b` is a function.
57`b` is a function.
58
58
59#### Produces
59#### Produces
60
60
61−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
61+A [`unit`](/docs/hoon/reference/stdlib/1c#unit).
62
62
63#### Source
63#### Source
64
64
@@ -87,18 +87,18 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
87
87
88Replace null
88Replace null
89
89
90−Replaces an empty [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) `b` with the product of a called [`trap`](@/docs/glossary/trap.md)
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.md#unit) is not empty, then the original [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) is produced.
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.
92
92
93#### Accepts
93#### Accepts
94
94
95−`a` is a [`trap`](@/docs/glossary/trap.md).
95+`a` is a [`trap`](/docs/glossary/trap).
96
96
97−`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
97+`b` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
98
98
99#### Produces
99#### Produces
100
100
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`.
102
102
103#### Source
103#### Source
104
104
@@ -126,21 +126,21 @@ Either the product of `a` or the value inside of [`unit`](@/docs/hoon/reference/
126---
126---
127### `++both`
127### `++both`
128
128
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
130
130
131Produces `~` if either `a` or `b` are empty. Otherwise, produces a
131Produces `~` 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
133`b`.
133`b`.
134
134
135#### Accepts
135#### Accepts
136
136
137−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
137+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
138
138
139−`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
139+`b` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
140
140
141#### Produces
141#### Produces
142
142
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.
144
144
145#### Source
145#### Source
146
146
@@ -165,22 +165,22 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) of the two initial values.
165---
165---
166### `++clap`
166### `++clap`
167
167
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)
169
169
170Applies a binary function `c`--which does not usually accept or produce a
170Applies 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).
172
172
173#### Accepts
173#### Accepts
174
174
175−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
175+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
176
176
177−`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
177+`b` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
178
178
179`c` is a function that performs a binary operation.
179`c` is a function that performs a binary operation.
180
180
181#### Produces
181#### Produces
182
182
183−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
183+A [`unit`](/docs/hoon/reference/stdlib/1c#unit).
184
184
185#### Source
185#### Source
186
186
@@ -212,13 +212,13 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
212---
212---
213### `++drop`
213### `++drop`
214
214
215−[`Unit`](@/docs/hoon/reference/stdlib/1c.md#unit) to list
215+[`Unit`](/docs/hoon/reference/stdlib/1c#unit) to list
216
216
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`.
218
218
219#### Accepts
219#### Accepts
220
220
221−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
221+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
222
222
223#### Produces
223#### Produces
224
224
@@ -249,19 +249,19 @@ A list.
249---
249---
250### `++fall`
250### `++fall`
251
251
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
253
253
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.
255
255
256#### Accepts
256#### Accepts
257
257
258−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
258+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
259
259
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.
261
261
262#### Produces
262#### Produces
263
263
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`.
265
265
266#### Source
266#### Source
267
267
@@ -285,19 +285,19 @@ Either a [`noun`](@/docs/glossary/noun.md) `b` or the unwrapped value of [`unit`
285
285
286Curried bind
286Curried bind
287
287
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)
289`b` to which it applies `a`. Used when you want a function that does not accept
289`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).
291
291
292#### Accepts
292#### Accepts
293
293
294`a` is a gate.
294`a` is a gate.
295
295
296−`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
296+`b` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
297
297
298#### Produces
298#### Produces
299
299
300−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
300+A [`unit`](/docs/hoon/reference/stdlib/1c#unit).
301
301
302#### Source
302#### Source
303
303
@@ -324,7 +324,7 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
324
324
325Choose
325Choose
326
326
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
328equivalent. If either is empty, then the value of the other is produced.
328equivalent. If either is empty, then the value of the other is produced.
329If neither are empty, it asserts that both values are the same and
329If neither are empty, it asserts that both values are the same and
330produces that value. If the assertion fails, `++mate` crashes with
330produces that value. If the assertion fails, `++mate` crashes with
@@ -332,13 +332,13 @@ produces that value. If the assertion fails, `++mate` crashes with
332
332
333#### Accepts
333#### Accepts
334
334
335−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
335+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
336
336
337−`b` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
337+`b` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
338
338
339#### Produces
339#### Produces
340
340
341−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) or crash.
341+A [`unit`](/docs/hoon/reference/stdlib/1c#unit) or crash.
342
342
343#### Source
343#### Source
344
344
@@ -374,13 +374,13 @@ A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit) or crash.
374---
374---
375### `++need`
375### `++need`
376
376
377−Unwrap [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit)
377+Unwrap [`unit`](/docs/hoon/reference/stdlib/1c#unit)
378
378
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.
380
380
381#### Accepts
381#### Accepts
382
382
383−`a` is a [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
383+`a` is a [`unit`](/docs/hoon/reference/stdlib/1c#unit).
384
384
385#### Produces
385#### Produces
386
386
@@ -415,17 +415,17 @@ Either the unwrapped value of `a` (`u.a`), or crash.
415---
415---
416### `++some`
416### `++some`
417
417
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)
419
419
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`.
421
421
422#### Accepts
422#### Accepts
423
423
424−`a` is a [`noun`](@/docs/glossary/noun.md).
424+`a` is a [`noun`](/docs/glossary/noun).
425
425
426#### Produces
426#### Produces
427
427
428−A [`unit`](@/docs/hoon/reference/stdlib/1c.md#unit).
428+A [`unit`](/docs/hoon/reference/stdlib/1c#unit).
429
429
430#### Source
430#### Source
431
431
content/docs/hoon/reference/stdlib/2c.md+24−24
@@ -53,7 +53,7 @@ value.
53
53
54#### Accepts
54#### Accepts
55
55
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)).
57
57
58`b` is a `list` of length-value pairs, `p` and `q`.
58`b` is a `list` of length-value pairs, `p` and `q`.
59
59
@@ -110,7 +110,7 @@ atom.
110
110
111#### Accepts
111#### Accepts
112
112
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)).
114
114
115`b` is an atom.
115`b` is an atom.
116
116
@@ -173,7 +173,7 @@ Slices `c` blocks of size `a` that are positioned `b` blocks from the end of
173
173
174#### Accepts
174#### Accepts
175
175
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)).
177
177
178`b` is an atom.
178`b` is an atom.
179
179
@@ -228,12 +228,12 @@ An atom.
228
228
229Tail
229Tail
230
230
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`.
232
232
233#### Accepts
233#### Accepts
234
234
235−`a` is an atom slice specifier (see [`++bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
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.md#bloq))
236+which is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c#bloq))
237with optional block count.
237with optional block count.
238
238
239`b` is an atom.
239`b` is an atom.
@@ -303,7 +303,7 @@ Produces an atom by repeating `c` for `b` blocks of size `a`.
303
303
304#### Accepts
304#### Accepts
305
305
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)).
307
307
308`b` is an atom.
308`b` is an atom.
309
309
@@ -355,8 +355,8 @@ Produces an atom by left-shifting `b` by `step` blocks of size `bloq`.
355
355
356#### Accepts
356#### Accepts
357
357
358−`a` is an atom slice specifier (see [`++bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
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.md#bloq))
359+which is a block size (see [`++bloq`](/docs/hoon/reference/stdlib/1c#bloq))
360with optional block count.
360with optional block count.
361
361
362`b` is an atom.
362`b` is an atom.
@@ -410,7 +410,7 @@ Computes the number of blocks of size `a` in `b`, producing an atom.
410
410
411#### Accepts
411#### Accepts
412
412
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)).
414
414
415`b` is an atom.
415`b` is an atom.
416
416
@@ -456,7 +456,7 @@ Concatenates a list of atoms `b` using block size `a`, producing an atom.
456
456
457#### Accepts
457#### Accepts
458
458
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)).
460
460
461`b` is a `list` of atoms.
461`b` is a `list` of atoms.
462
462
@@ -517,8 +517,8 @@ Produces an atom by assembling a list of atoms `b` using block size `a`.
517
517
518#### Accepts
518#### Accepts
519
519
520−`a` is an atom slice specifier (see [`$bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
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.md#bloq))
521+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
522with optional block count.
522with optional block count.
523
523
524`b` is a list of atoms.
524`b` is a list of atoms.
@@ -594,8 +594,8 @@ Produces a list of atoms from the bits of `b` using block size `a`.
594
594
595#### Accepts
595#### Accepts
596
596
597−`a` is an atom slice specifier (see [`$bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
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.md#bloq))
598+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
599with optional block count.
599with optional block count.
600
600
601`b` is an atom.
601`b` is an atom.
@@ -659,8 +659,8 @@ Right-shifts `b` by `step` blocks of size `bloq`, producing an atom.
659
659
660#### Accepts
660#### Accepts
661
661
662−`a` is an atom slice specifier (see [`$bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
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.md#bloq))
663+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
664with optional block count.
664with optional block count.
665
665
666`b` is an atom.
666`b` is an atom.
@@ -730,8 +730,8 @@ and reassembles the results back into an atom.
730
730
731#### Accepts
731#### Accepts
732
732
733−`a` is an atom slice specifier (see [`$bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
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.md#bloq))
734+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
735with optional block count.
735with optional block count.
736
736
737`b` is an atom.
737`b` is an atom.
@@ -772,8 +772,8 @@ and assembles the results back into a.
772
772
773#### Accepts
773#### Accepts
774
774
775−`a` is an atom slice specifier (see [`$bite`](@/docs/hoon/reference/stdlib/1c.md#bite)),
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.md#bloq))
776+which is a block size (see [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq))
777with optional block count.
777with optional block count.
778
778
779`b` is an atom.
779`b` is an atom.
@@ -815,7 +815,7 @@ reversing the block order of `b` using block size `a`.
815
815
816#### Accepts
816#### Accepts
817
817
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)).
819
819
820`b` is an atom.
820`b` is an atom.
821
821
@@ -975,7 +975,7 @@ Inverts the order of the modular field.
975
975
976#### Accepts
976#### Accepts
977
977
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))
979
979
980#### Produces
980#### Produces
981
981
@@ -1018,7 +1018,7 @@ Reverses bytes within a block.
1018
1018
1019#### Accepts
1019#### Accepts
1020
1020
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))
1022
1022
1023#### Produces
1023#### Produces
1024
1024
content/docs/hoon/reference/stdlib/2d.md+2−2
@@ -281,7 +281,7 @@ of `c`.
281
281
282#### Accepts
282#### Accepts
283
283
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)).
285
285
286`b` is an atom.
286`b` is an atom.
287
287
@@ -327,7 +327,7 @@ number's `0`s into `1`s, and vice versa.
327
327
328In Hoon, we ask for a little more information to use `not`, because binary
328In Hoon, we ask for a little more information to use `not`, because binary
329numbers have a number of implicit leading zeroes differently depending on on
329numbers 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
331has one implicit zero in the context of a block of size `2`, which has a
331has one implicit zero in the context of a block of size `2`, which has a
332bitwidth of 4. Let's try `not` on `7` with a single block of size `2`.
332bitwidth of 4. Let's try `not` on `7` with a single block of size `2`.
333
333
content/docs/hoon/reference/stdlib/2e.md+2−2
@@ -9,7 +9,7 @@ template = "doc.html"
9FNV scrambler
9FNV scrambler
10
10
11Hashes an atom with the 32-bit FNV non-cryptographic hash algorithm. Multiplies
11Hashes 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
135 off the product's end, producing an atom.
135 off the product's end, producing an atom.
14
14
15#### Accepts
15#### Accepts
@@ -101,7 +101,7 @@ Standard MurmurHash3
101Implementation of the 32-bit
101Implementation of the 32-bit
102[MurmurHash3](https://en.wikipedia.org/wiki/MurmurHash#Algorithm)
102[MurmurHash3](https://en.wikipedia.org/wiki/MurmurHash#Algorithm)
103non-cryptographic hash algorithm. Takes `a` as the seed, `b` as the key length
103non-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.
105
105
106#### Accepts
106#### Accepts
107
107
content/docs/hoon/reference/stdlib/2f.md+4−4
@@ -131,7 +131,7 @@ A flag.
131
131
132#### Discussion
132#### Discussion
133
133
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
135cells, `dor` recurses on the heads, and then if the heads are the same it checks
135cells, `dor` recurses on the heads, and then if the heads are the same it checks
136the tails.
136the tails.
137
137
@@ -148,7 +148,7 @@ Computes whether of `(mug a)` and `(mug b)` are in ascending numeric order,
148producing a flag. If the `mug` hashes are equal, `a` and `b` are compared by
148producing a flag. If the `mug` hashes are equal, `a` and `b` are compared by
149`dor` instead.
149`dor` instead.
150
150
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.
152
152
153#### Accepts
153#### Accepts
154
154
@@ -297,7 +297,7 @@ A flag.
297#### Discussion
297#### Discussion
298
298
299Sets (+set, +in) use `hor` for their horizontal order and `vor` for their
299Sets (+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.
301`vor` is used to verify.
301`vor` is used to verify.
302
302
303---
303---
@@ -378,7 +378,7 @@ Computes whether the double-hashes `(mug (mug a))` and `(mug (mug b))` are in
378ascending numeric order, producing a flag. If the double-`mug` hashes are
378ascending numeric order, producing a flag. If the double-`mug` hashes are
379equal, `a` and `b` are compared by `dor` instead.
379equal, `a` and `b` are compared by `dor` instead.
380
380
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.
382
382
383
383
384#### Accepts
384#### Accepts
content/docs/hoon/reference/stdlib/2h.md+2−2
@@ -166,7 +166,7 @@ A flag.
166
166
167#### Discussion
167#### Discussion
168
168
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.
170
170
171---
171---
172### `++bif:in`
172### `++bif:in`
@@ -389,7 +389,7 @@ The `unit` of an atom.
389
389
390#### Discussion
390#### Discussion
391
391
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).
393
393
394---
394---
395### `++gas:in`
395### `++gas:in`
content/docs/hoon/reference/stdlib/2i.md+1−1
@@ -180,7 +180,7 @@ A flag.
180
180
181#### Discussion
181#### Discussion
182
182
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.
184
184
185### `++bif:by`
185### `++bif:by`
186
186
content/docs/hoon/reference/stdlib/2o.md+5−5
@@ -38,7 +38,7 @@ Mold generator. A `jar` is a `map` of `list`.
38
38
39#### Discussion
39#### Discussion
40
40
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)
42
42
43---
43---
44### `++jug`
44### `++jug`
@@ -78,7 +78,7 @@ Mold generator. A `jug` is a `map` of `set`.
78
78
79#### Discussion
79#### Discussion
80
80
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)
82
82
83---
83---
84### `++map`
84### `++map`
@@ -111,7 +111,7 @@ key-value pairs.
111
111
112#### Discussion
112#### Discussion
113
113
114−See also: [`by`](@/docs/hoon/reference/stdlib/2i.md)
114+See also: [`by`](/docs/hoon/reference/stdlib/2i)
115
115
116---
116---
117### `++qeu`
117### `++qeu`
@@ -148,7 +148,7 @@ items.
148
148
149#### Discussion
149#### Discussion
150
150
151−See also: [`qeu`](@/docs/hoon/reference/stdlib/2k.md)
151+See also: [`qeu`](/docs/hoon/reference/stdlib/2k)
152
152
153---
153---
154### `++set`
154### `++set`
@@ -182,6 +182,6 @@ items.
182
182
183#### Discussion
183#### Discussion
184
184
185−See also: [`in`](@/docs/hoon/reference/stdlib/2h.md)
185+See also: [`in`](/docs/hoon/reference/stdlib/2h)
186
186
187---
187---
content/docs/hoon/reference/stdlib/2q.md+2−2
@@ -66,7 +66,7 @@ atom of UTF-8 text.
66Aura `@t` designates a Unicode atom, little-endian: the first character
66Aura `@t` designates a Unicode atom, little-endian: the first character
67in the text is the least-significant byte.
67in the text is the least-significant byte.
68
68
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
70from `tape` to `cord`.
70from `tape` to `cord`.
71
71
72
72
@@ -101,7 +101,7 @@ which is a day atom and a time.
101
101
102#### Discussion
102#### Discussion
103
103
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)
105
105
106---
106---
107### `++knot`
107### `++knot`
content/docs/hoon/reference/stdlib/3d.md+2−2
@@ -38,7 +38,7 @@ An atom.
38
38
39Half SHA-256
39Half SHA-256
40
40
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
42first and last halves of the 256-bit salted hash `shas`.
42first and last halves of the 256-bit salted hash `shas`.
43
43
44#### Accepts
44#### Accepts
@@ -363,7 +363,7 @@ SHA-1 is a deprecated function; it is not considered secure.
363
363
364Salted hash
364Salted hash
365
365
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)
367is performed on `sal` and the product of `ruz` hashed with SHA-256. The product
367is performed on `sal` and the product of `ruz` hashed with SHA-256. The product
368of that logical operation is then itself hashed with SHA-256.
368of that logical operation is then itself hashed with SHA-256.
369
369
content/docs/hoon/reference/stdlib/3f.md+3−3
@@ -609,7 +609,7 @@ An atom.
609
609
610Reverse Feistel-like cipher
610Reverse Feistel-like cipher
611
611
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
613used as the round function. The inverse of `rund`.
613used as the round function. The inverse of `rund`.
614
614
615#### Accepts
615#### Accepts
@@ -651,7 +651,7 @@ A cell of two atoms.
651
651
652Reverse single Feistel-like
652Reverse single Feistel-like
653
653
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))
655is used as the round function. The inverse of `rynd`.
655is used as the round function. The inverse of `rynd`.
656
656
657#### Accepts
657#### Accepts
@@ -693,7 +693,7 @@ A cell of two atoms.
693
693
694Key list
694Key list
695
695
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).
697
697
698#### Produces
698#### Produces
699
699
content/docs/hoon/reference/stdlib/3g.md+4−4
@@ -52,9 +52,9 @@ and printed using `++so` and `++co` cores.
52
52
53Aura-atom pair
53Aura-atom pair
54
54
55−Used in `++coin`. Convenience methods [`++scot`](@/docs/hoon/reference/stdlib/4m.md) and
55+Used in `++coin`. Convenience methods [`++scot`](/docs/hoon/reference/stdlib/4m) and
56−[`++scow`](@/docs/hoon/reference/stdlib/4m.md) print dimes as `++cord` and `++tape`, respectively.
56+[`++scow`](/docs/hoon/reference/stdlib/4m) 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
57+[`++slat`](/docs/hoon/reference/stdlib/4m), [`++slav`](/docs/hoon/reference/stdlib/4m), and [`++slaw`](/docs/hoon/reference/stdlib/4m) are used
58to parse atoms of specific auras.
58to parse atoms of specific auras.
59
59
60#### Source
60#### Source
@@ -93,7 +93,7 @@ Parsing location metadata. Parsing location input `p` and optional result `p.q`
93
93
94#### Discussion
94#### Discussion
95
95
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`
97
97
98
98
99---
99---
content/docs/hoon/reference/stdlib/4h.md+1−1
@@ -70,7 +70,7 @@ Parses ASCII character 124, the vertical bar.
70Parse backslash
70Parse backslash
71
71
72Parses ASCII character 92, the backslash. Note the extra `\` in the calling of
72Parses 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
74character, `\`.
74character, `\`.
75
75
76#### Source
76#### Source
content/docs/hoon/reference/style.md+1−1
@@ -42,7 +42,7 @@ or
42```
42```
43
43
44These are regular forms -- every rune can be written this way.
44These 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
46forms are regular. All code within a wide form is wide.
46forms are regular. All code within a wide form is wide.
47Almost all code has both wide and tall forms, the exception
47Almost all code has both wide and tall forms, the exception
48being named [cores](/docs/glossary/core/).
48being named [cores](/docs/glossary/core/).
content/docs/nock/_index.md+4−4
@@ -10,18 +10,18 @@ insert_anchor_links = "right"
10
10
11Nock 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.
11Nock 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.
12
12
13−## [Nock Definition](@/docs/nock/definition.md)
13+## [Nock Definition](/docs/nock/definition)
14
14
15The Nock specification.
15The Nock specification.
16
16
17−## [An explanation of Nock](@/docs/nock/explanation.md)
17+## [An explanation of Nock](/docs/nock/explanation)
18
18
19A comprehensive walkthrough of the Nock spec.
19A comprehensive walkthrough of the Nock spec.
20
20
21−## [Nock by hand](@/docs/nock/example.md)
21+## [Nock by hand](/docs/nock/example)
22
22
23Learn Nock by example.
23Learn Nock by example.
24
24
25−## [Nock Implementations](@/docs/nock/implementations.md)
25+## [Nock Implementations](/docs/nock/implementations)
26
26
27The many ways that Nock has been implemented.
27The 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
34
34
35The actual production Nock interpreter. Note gotos for tail-call elimination,
35The actual production Nock interpreter. Note gotos for tail-call elimination,
36and manual reference counting. More about the C environment can be found
36and 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).
38```
38```
39/* _n_nock_on(): produce .*(bus fol). Do not virtualize.
39/* _n_nock_on(): produce .*(bus fol). Do not virtualize.
40*/
40*/
content/docs/system-overview/_index.md+7−7
@@ -12,20 +12,20 @@ machine.
12
12
13The Urbit stack is primarily comprised of:
13The Urbit stack is primarily comprised of:
14
14
15−- [Arvo](@/docs/system-overview/arvo.md): the functional operating system of
15+- [Arvo](/docs/system-overview/arvo): the functional operating system of
16 each urbit, written in Hoon.
16 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
18 programming language whose standard library includes a Hoon-to-Nock compiler.
18 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
20 formal specification fits readably on a t-shirt.
20 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
22 virtual machine that mediates between each urbit and the Unix software layer.
22 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
24 on the Ethereum blockchain.
24 on the Ethereum blockchain.
25−
25+
26Central to the operation of Urbit are cryptographic methods. We give a
26Central to the operation of Urbit are cryptographic methods. We give a
27high-level overview on the usage of cryptography in Urbit and how it is
27high-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).
29
29
30## Anatomy of a personal server
30## Anatomy of a personal server
31
31
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
16events, new state>`. Events are typed, and each has an explicit call-stack
16events, new state>`. Events are typed, and each has an explicit call-stack
17structure indicating the event's source module in Arvo.
17structure indicating the event's source module in Arvo.
18
18
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).
20
20
21Arvo modules are also called 'vanes'. Arvo's vanes are:
21Arvo modules are also called 'vanes'. Arvo's vanes are:
22
22
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
24 as Urbit's identity protocol.
24 as Urbit's identity protocol.
25−- [Behn](@/docs/arvo/behn/behn.md): manages timer events for other vanes.
25+- [Behn](/docs/arvo/behn/behn): manages timer events for other vanes.
26−- [Clay](@/docs/arvo/clay/clay.md): global, version-controlled, and referentially-transparent file system.
26+- [Clay](/docs/arvo/clay/clay): global, version-controlled, and referentially-transparent file system.
27 Also includes our typed functional build system.
27 Also includes our typed functional build system.
28−- [Dill](@/docs/arvo/dill/dill.md): terminal driver.
28+- [Dill](/docs/arvo/dill/dill): terminal driver.
29−- [Eyre](@/docs/arvo/eyre/eyre.md): HTTP server.
29+- [Eyre](/docs/arvo/eyre/eyre): HTTP server.
30−- [Gall](@/docs/userspace/gall/gall.md): application sandbox and manager.
30+- [Gall](/docs/userspace/gall/gall): application sandbox and manager.
31−- [Iris](@/docs/arvo/iris/iris-api.md): HTTP client.
31+- [Iris](/docs/arvo/iris/iris-api): HTTP client.
32−- [Jael](@/docs/arvo/jael/jael-api.md): Public and private key storage.
32+- [Jael](/docs/arvo/jael/jael-api): Public and private key storage.
33
33
content/docs/system-overview/azimuth.md+2−2
@@ -25,9 +25,9 @@ is the neighborhood that you live in.
25
25
26## Further Reading
26## Further Reading
27
27
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
29 key infrastructure utilized by Urbit.
29 key infrastructure utilized by Urbit.
30−* [Advanced Azimuth Tools](@/docs/azimuth/advanced-azimuth-tools.md):
30+* [Advanced Azimuth Tools](/docs/azimuth/advanced-azimuth-tools):
31 Expert-level tooling for generating, signing, and sending Azimuth-related
31 Expert-level tooling for generating, signing, and sending Azimuth-related
32 transactions from within Urbit itself.
32 transactions from within Urbit itself.
33
33
content/docs/system-overview/cryptography.md+19−19
@@ -23,42 +23,42 @@ cryptography.
23Your Urbit ID exists as an ERC-721 non-fungible token on the Ethereum
23Your Urbit ID exists as an ERC-721 non-fungible token on the Ethereum
24blockchain, and as such is contained in a wallet whose private key you possess.
24blockchain, and as such is contained in a wallet whose private key you possess.
25If you are are utilizing a [master
25If 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
27from a seed, which is what you use to login to
27from 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
29some other process, of which there are too many to list here. Besides the
29some other process, of which there are too many to list here. Besides the
30private key which unlocks your ownership wallet address, you may have a few
30private key which unlocks your ownership wallet address, you may have a few
31other private keys which unlock a wallet that corresponds to your ship's
31other 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
33your _Azimuth keys_.
33your _Azimuth keys_.
34
34
35−Only [planets](@/docs/glossary/planet.md), [stars](@/docs/glossary/star.md), and
35+Only [planets](/docs/glossary/planet), [stars](/docs/glossary/star), and
36−[galaxies](@/docs/glossary/galaxy.md) have Azimuth keys.
36+[galaxies](/docs/glossary/galaxy) have Azimuth keys.
37−[Moons](@/docs/glossary/moon.md) and [comets](@/docs/glossary/comet.md) do not,
37+[Moons](/docs/glossary/moon) and [comets](/docs/glossary/comet) do not,
38as they do not exist on the Ethereum blockchain.
38as they do not exist on the Ethereum blockchain.
39
39
40It is important to note that no Azimuth keys are stored anywhere within your
40It 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
42separate entities from Urbit itself, and so you lose access to your Azimuth
42separate entities from Urbit itself, and so you lose access to your Azimuth
43private keys there is no way to retrieve them somehow from your ship.
43private keys there is no way to retrieve them somehow from your ship.
44
44
45For more information on the usage of these keys and the associated proxies, see
45For 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).
47
47
48#### Networking keys
48#### Networking keys
49
49
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
51are end-to-end encrypted, and thus your ship stores its own public/private pair
51are end-to-end encrypted, and thus your ship stores its own public/private pair
52of _networking keys_ utilized for encryption and authentication. Networking keys
52of _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)
53+for all ship types are stored within the ship's [Jael](/docs/glossary/jael)
54−[vane](@/docs/glossary/vane.md).
54+[vane](/docs/glossary/vane).
55
55
56For planets, stars, and galaxies, your networking public key is configured on
56For planets, stars, and galaxies, your networking public key is configured on
57the Ethereum blockchain using one of your Azimuth private keys - either the one
57the Ethereum blockchain using one of your Azimuth private keys - either the one
58associated to the wallet which owns the ship, or the one which holds the
58associated 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
60with Bridge. Your networking private key (in the
60with 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
62sequence of your ship (sometime called its `%dawn`), and this is also provided
62sequence of your ship (sometime called its `%dawn`), and this is also provided
63by Bridge.
63by Bridge.
64
64
@@ -86,7 +86,7 @@ limitation is slated to be implemented as of May 2021.
86
86
87### System components
87### System components
88
88
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
90Ames are encrypted utilizing a cryptosuite found in `zuse`. The only exception
90Ames are encrypted utilizing a cryptosuite found in `zuse`. The only exception
91to this are comet self-attestation packets utilized to transmit authentication
91to this are comet self-attestation packets utilized to transmit authentication
92of ownership of the private networking key associated to their public key. Ames
92of 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
94default, this utilizes AES symmetric key encryption, whose shared private key is
94default, this utilizes AES symmetric key encryption, whose shared private key is
95got by elliptic curve Diffie-Hellman key exchange of the ships' networking keys.
95got by elliptic curve Diffie-Hellman key exchange of the ships' networking keys.
96
96
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
98of private networking keys and retrieval of public networking keys utilized by
98of private networking keys and retrieval of public networking keys utilized by
99Ames. The Jael vane of planets, stars, and galaxies are responsible for
99Ames. The Jael vane of planets, stars, and galaxies are responsible for
100distributing the public keys of their moons (ultimately via Ames).
100distributing the public keys of their moons (ultimately via Ames).
101
101
102`zuse` is the Hoon standard library. It contains cryptographic functions which
102`zuse` is the Hoon standard library. It contains cryptographic functions which
103are utilized by Ames. All cryptographic primitives are
103are 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
105cryptographic libraries.
105cryptographic libraries.
106
106
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
108cryptographic functions implemented in Hoon are hinted to the interpreter,
108cryptographic 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
110libraries.
110libraries.
111
111
112−[Azimuth](@/docs/azimuth/_index.md) is an Ethereum-based public key
112+[Azimuth](/docs/azimuth/) is an Ethereum-based public key
113infrastructure utilized by Urbit. `azimuth-tracker` obtains networking public
113infrastructure utilized by Urbit. `azimuth-tracker` obtains networking public
114keys for planets, stars, and galaxies from this store, which are then stored in
114keys for planets, stars, and galaxies from this store, which are then stored in
115Jael and utilized by Ames for end-to-end encrypted communication.
115Jael 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.
17
17
18## Further Reading
18## Further Reading
19
19
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
21 to build Urbit in.
21 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
23 designed to teach you the Hoon language.
23 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,
25including testing, command-line interface apps, and parsing.
25including 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
27 intended for Hoon developers with some experience.
27 intended for Hoon developers with some experience.
28
28
content/docs/system-overview/nock.md+5−5
@@ -6,7 +6,7 @@ template = "doc.html"
6
6
7
7
8Nock is a low-level [homoiconic](https://en.wikipedia.org/wiki/Homoiconicity)
8Nock 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)
10fits on a t-shirt. In some ways Nock resembles a nano-Lisp but its ambitions
10fits on a t-shirt. In some ways Nock resembles a nano-Lisp but its ambitions
11are more narrow. Most Lisps are one-layer: a practical language is to be
11are more narrow. Most Lisps are one-layer: a practical language is to be
12created by extending a theoretically simple interpreter. The abstraction is
12created 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.
22
22
23## Further Reading
23## Further Reading
24
24
25−* [Nock Definition](@/docs/nock/definition.md): The Nock specification.
25+* [Nock Definition](/docs/nock/definition): The Nock specification.
26−* [An explanation of Nock](@/docs/nock/explanation.md): A comprehensive
26+* [An explanation of Nock](/docs/nock/explanation): A comprehensive
27 walkthrough of the Nock spec.
27 walkthrough of the Nock spec.
28−* [Nock by hand](@/docs/nock/example.md): Learn Nock by example.
28+* [Nock by hand](/docs/nock/example): Learn Nock by example.
29−* [Nock Implementations](@/docs/nock/implementations.md): The many ways that
29+* [Nock Implementations](/docs/nock/implementations): The many ways that
30 Nock has been implemented.
30 Nock has been implemented.
31* [Nock for Everyday Coders](https://blog.timlucmiptev.space/part1.html): A
31* [Nock for Everyday Coders](https://blog.timlucmiptev.space/part1.html): A
32 comprehensive guide to Nock by community member `~timluc-miptev`.
32 comprehensive guide to Nock by community member `~timluc-miptev`.
content/docs/system-overview/vere.md+5−5
@@ -31,15 +31,15 @@ licensed.
31
31
32## Further Reading
32## Further Reading
33
33
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
35a Nock runtime system written in C, `u3`. This section is a relatively complete
35a Nock runtime system written in C, `u3`. This section is a relatively complete
36description.
36description.
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
38is just how we write C in Urbit.
38is 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`
40is that you could theoretically imagine using `c3` as just a generic C
40is that you could theoretically imagine using `c3` as just a generic C
41environment. Anything to do with nouns is in `u3`.
41environment. 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
43 `u3` modules.
43 `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
45 developers.
45 developers.
content/docs/userspace/_index.md+5−5
@@ -8,23 +8,23 @@ insert_anchor_links = "right"
8
8
9Urbit's userspace is managed by Arvo's Gall vane.
9Urbit's userspace is managed by Arvo's Gall vane.
10
10
11−## [Overview](@/docs/userspace/overview.md)
11+## [Overview](/docs/userspace/overview)
12
12
13An overview of userspace in Urbit.
13An overview of userspace in Urbit.
14
14
15−## [Gall](@/docs/userspace/gall/gall.md)
15+## [Gall](/docs/userspace/gall/gall)
16
16
17Resources on Gall which manages userspace applications.
17Resources on Gall which manages userspace applications.
18
18
19−## [Landscape](@/docs/userspace/landscape/_index.md)
19+## [Landscape](/docs/userspace/landscape/)
20
20
21Resources on the flagship web client Landcape, through which most users interact with their ship.
21Resources on the flagship web client Landcape, through which most users interact with their ship.
22
22
23−## [Threads](@/docs/userspace/threads/_index.md)
23+## [Threads](/docs/userspace/threads/)
24
24
25Resources on threads - monadic functions useful for complex IO.
25Resources on threads - monadic functions useful for complex IO.
26
26
27−## [Graph Store](@/docs/userspace/graph-store/_index.md)
27+## [Graph Store](/docs/userspace/graph-store/)
28
28
29Resources on Graph Store, a non-relational database specialized for social media applications.
29Resources on Graph Store, a non-relational database specialized for social media applications.
30
30
content/docs/userspace/gall/_index.md+3−3
@@ -8,14 +8,14 @@ insert_anchor_links = "right"
8
8
9Gall is the Arvo vane that manages userspace applications.
9Gall is the Arvo vane that manages userspace applications.
10
10
11−## [Overview](@/docs/userspace/gall/gall.md)
11+## [Overview](/docs/userspace/gall/gall)
12
12
13Overview of the Gall vane.
13Overview of the Gall vane.
14
14
15−## [Tutorial](@/docs/userspace/gall/tutorial.md)
15+## [Tutorial](/docs/userspace/gall/tutorial)
16
16
17Tutorial for writing Gall agents.
17Tutorial for writing Gall agents.
18
18
19−## [API Reference](@/docs/userspace/gall/gall-api.md)
19+## [API Reference](/docs/userspace/gall/gall-api)
20
20
21Reference information.
21Reference information.
content/docs/userspace/graph-store/_index.md+4−4
@@ -6,18 +6,18 @@ template = "sections/docs/chapters.html"
6insert_anchor_links = "right"
6insert_anchor_links = "right"
7+++
7+++
8
8
9−## [Overview](@/docs/userspace/graph-store/overview.md)
9+## [Overview](/docs/userspace/graph-store/overview)
10
10
11Basic concepts and architectural overview of Graph Store
11Basic concepts and architectural overview of Graph Store
12
12
13−## [Data Structure Overview](@/docs/userspace/graph-store/data-structure-overview.md)
13+## [Data Structure Overview](/docs/userspace/graph-store/data-structure-overview)
14
14
15A walkthrough of the various data structures and types used in Graph Store.
15A walkthrough of the various data structures and types used in Graph Store.
16
16
17−## [Validator Walkthrough](@/docs/userspace/graph-store/validator-walkthrough.md)
17+## [Validator Walkthrough](/docs/userspace/graph-store/validator-walkthrough)
18
18
19A walkthrough of existing applications built using Graph Store
19A walkthrough of existing applications built using Graph Store
20
20
21−## [Advanced Information](@/docs/userspace/graph-store/advanced-info.md)
21+## [Advanced Information](/docs/userspace/graph-store/advanced-info)
22
22
23Advanced information and selected implementation details about Graph Store.
23Advanced information and selected implementation details about Graph Store.
content/docs/userspace/landscape/_index.md+2−2
@@ -9,10 +9,10 @@ insert_anchor_links = "right"
9While not technically part of Urbit, Landscape serves as a reference
9While not technically part of Urbit, Landscape serves as a reference
10implementation for how to build applications in user space.
10implementation for how to build applications in user space.
11
11
12−## [Landscape Architecture](@/docs/userspace/landscape/overview.md)
12+## [Landscape Architecture](/docs/userspace/landscape/overview)
13
13
14An overview of how Landscape, our flagship client, is structured.
14An overview of how Landscape, our flagship client, is structured.
15
15
16−## [API Reference](@/docs/userspace/landscape/reference/_index.md)
16+## [API Reference](/docs/userspace/landscape/reference/)
17
17
18API documentation about specific agents that comprise Landscape.
18API 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
26making Landscape itself more extensible for user-developers in late 2021.
26making Landscape itself more extensible for user-developers in late 2021.
27
27
28Landscape is specifically a social suite of applications, meant to enable
28Landscape is specifically a social suite of applications, meant to enable
29−communication and socializing in many forms.
29+communication and socializing in many forms.
30
30
31
31
32## What is Landscape technically composed of?
32## 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
37### Backend
37### Backend
38
38
39The Landscape backend is implemented as a collection of long-running
39The 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,
41though this is a simplification:
41though this is a simplification:
42
42
43- **Graph**: handles storing messages / posts in a non-relational database
43- **Graph**: handles storing messages / posts in a non-relational database
@@ -104,7 +104,7 @@ received.
104#### Poke-Proxy Hook
104#### Poke-Proxy Hook
105
105
106The poke-proxy-hook conditionally forwards a poke from a foreign ship to a store
106The 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.
108
108
109
109
110### Major Components
110### Major Components
@@ -152,7 +152,7 @@ Pinterest equivalent, a more private version of Facebook, a decentralized
152Reddit, or an even more distributed version of Mastodon. You can read more about
152Reddit, or an even more distributed version of Mastodon. You can read more about
153graph-store by [viewing the
153graph-store by [viewing the
154source](https://github.com/urbit/urbit/blob/ac096d85ae847fcfe8786b51039c92c69abc006e/pkg/arvo/app/graph-store.hoon)
154source](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.
156
156
157The `%graph-store` may be accessed from foreign ships through the use of the
157The `%graph-store` may be accessed from foreign ships through the use of the
158`%graph-pull-hook` and `%graph-push-hook`.
158`%graph-pull-hook` and `%graph-push-hook`.
@@ -163,7 +163,7 @@ Metadata is stored in the `%metadata-store`, and is where we store metadata
163about resources (ex: graphs or groups). We store their display name,
163about resources (ex: graphs or groups). We store their display name,
164description, a color, and the date they were added. We also store what group the
164description, a color, and the date they were added. We also store what group the
165resource is associated with, what app the resource is associated with, and what
165resource 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.
167
167
168Metadata within the broader context of the userspace application suite can best
168Metadata within the broader context of the userspace application suite can best
169be thought of as a database join between the `%group-store` and the
169be 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"
6insert_anchor_links = "right"
6insert_anchor_links = "right"
7+++
7+++
8
8
9−## [Graph Store](@/docs/userspace/landscape/reference/graph-store.md)
9+## [Graph Store](/docs/userspace/landscape/reference/graph-store)
10
10
11The primary data backend utilized by Landscape.
11The primary data backend utilized by Landscape.
content/docs/userspace/overview.md+3−3
@@ -6,14 +6,14 @@ template = "doc.html"
6
6
7Urbit's userspace is managed by Arvo's Gall vane.
7Urbit's userspace is managed by Arvo's Gall vane.
8
8
9−## [Gall](@/docs/userspace/gall/gall.md)
9+## [Gall](/docs/userspace/gall/gall)
10
10
11Resources on Gall which manages userspace applications.
11Resources on Gall which manages userspace applications.
12
12
13−## [Landscape](@/docs/userspace/landscape/_index.md)
13+## [Landscape](/docs/userspace/landscape/)
14
14
15Resources on the flagship web client Landcape, through which most users interact with their ship.
15Resources on the flagship web client Landcape, through which most users interact with their ship.
16
16
17−## [Threads](@/docs/userspace/threads/_index.md)
17+## [Threads](/docs/userspace/threads/)
18
18
19Resources on threads - monadic functions useful for complex IO.
19Resources 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"
6insert_anchor_links = "right"
6insert_anchor_links = "right"
7+++
7+++
8
8
9−## [Overview](@/docs/userspace/threads/overview.md)
9+## [Overview](/docs/userspace/threads/overview)
10
10
11Overview of threads.
11Overview of threads.
12
12
13−## [Basics](@/docs/userspace/threads/basics/_index.md)
13+## [Basics](/docs/userspace/threads/basics/)
14
14
15Tutorial and explanation of the basics of writing threads.
15Tutorial and explanation of the basics of writing threads.
16
16
17−## [Gall](@/docs/userspace/threads/gall/_index.md)
17+## [Gall](/docs/userspace/threads/gall/)
18
18
19Tutorial and explanation of interacting with threads from agents.
19Tutorial and explanation of interacting with threads from agents.
20
20
21−## [Examples](@/docs/userspace/threads/examples/_index.md)
21+## [Examples](/docs/userspace/threads/examples/)
22
22
23A collection of example threads and how-tos.
23A collection of example threads and how-tos.
24
24
25−## [Reference](@/docs/userspace/threads/reference.md)
25+## [Reference](/docs/userspace/threads/reference)
26
26
27Basic reference for interacting with threads via the Gall agent Spider.
27Basic 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"
8
8
9Tutorial and explanation of the basics of writing threads.
9Tutorial and explanation of the basics of writing threads.
10
10
11−## [Fundamentals](@/docs/userspace/threads/basics/fundamentals.md)
11+## [Fundamentals](/docs/userspace/threads/basics/fundamentals)
12
12
13Basic explanation of threads and usage of the strand arms `form` and `pure`.
13Basic explanation of threads and usage of the strand arms `form` and `pure`.
14
14
15−## [Bind](@/docs/userspace/threads/basics/bind.md)
15+## [Bind](/docs/userspace/threads/basics/bind)
16
16
17Using micgal (`;<`) and the strand arm `bind` to chain strands together.
17Using micgal (`;<`) and the strand arm `bind` to chain strands together.
18
18
19−## [Input](@/docs/userspace/threads/basics/input.md)
19+## [Input](/docs/userspace/threads/basics/input)
20
20
21Information on what a strand takes.
21Information on what a strand takes.
22
22
23−## [Output](@/docs/userspace/threads/basics/output.md)
23+## [Output](/docs/userspace/threads/basics/output)
24
24
25Information on what a strand produces.
25Information on what a strand produces.
26
26
27−## [Summary](@/docs/userspace/threads/basics/summary.md)
27+## [Summary](/docs/userspace/threads/basics/summary)
28
28
29Summary of this information.
29Summary of this information.
content/docs/userspace/threads/examples/_index.md+6−6
@@ -8,26 +8,26 @@ insert_anchor_links = "right"
8
8
9Collection of how-tos and examples for threads.
9Collection of how-tos and examples for threads.
10
10
11−## [Fetch JSON](@/docs/userspace/threads/examples/get-json.md)
11+## [Fetch JSON](/docs/userspace/threads/examples/get-json)
12
12
13Get some JSON from an external website.
13Get some JSON from an external website.
14
14
15−## [Child Thread](@/docs/userspace/threads/examples/child-thread.md)
15+## [Child Thread](/docs/userspace/threads/examples/child-thread)
16
16
17Spawn and manage threads from within threads.
17Spawn and manage threads from within threads.
18
18
19−## [Main-loop](@/docs/userspace/threads/examples/main-loop.md)
19+## [Main-loop](/docs/userspace/threads/examples/main-loop)
20
20
21Create a loop - useful for long-running threads and for trying the same input against multiple functions.
21Create a loop - useful for long-running threads and for trying the same input against multiple functions.
22
22
23−## [Poke Agent](@/docs/userspace/threads/examples/poke-agent.md)
23+## [Poke Agent](/docs/userspace/threads/examples/poke-agent)
24
24
25Poke an agent from a thread.
25Poke an agent from a thread.
26
26
27−## [Scry](@/docs/userspace/threads/examples/scry.md)
27+## [Scry](/docs/userspace/threads/examples/scry)
28
28
29Scry example.
29Scry example.
30
30
31−## [Take Fact](@/docs/userspace/threads/examples/take-fact.md)
31+## [Take Fact](/docs/userspace/threads/examples/take-fact)
32
32
33Take a fact from arvo or an agent.
33Take a fact from arvo or an agent.
content/docs/userspace/threads/gall/_index.md+5−5
@@ -8,22 +8,22 @@ insert_anchor_links = "right"
8
8
9Tutorial and explanation of interacting with threads from a Gall agent.
9Tutorial and explanation of interacting with threads from a Gall agent.
10
10
11−## [Start Thread](@/docs/userspace/threads/gall/start-thread.md)
11+## [Start Thread](/docs/userspace/threads/gall/start-thread)
12
12
13Start a thread from an agent.
13Start a thread from an agent.
14
14
15−## [Take Result](@/docs/userspace/threads/gall/take-result.md)
15+## [Take Result](/docs/userspace/threads/gall/take-result)
16
16
17Subscribe for thread result from an agent.
17Subscribe for thread result from an agent.
18
18
19−## [Take Facts](@/docs/userspace/threads/gall/take-facts.md)
19+## [Take Facts](/docs/userspace/threads/gall/take-facts)
20
20
21Subscribe for facts sent from a running thread.
21Subscribe for facts sent from a running thread.
22
22
23−## [Stop Thread](@/docs/userspace/threads/gall/stop-thread.md)
23+## [Stop Thread](/docs/userspace/threads/gall/stop-thread)
24
24
25Stop a thread from an agent.
25Stop a thread from an agent.
26
26
27−## [Poke Thread](@/docs/userspace/threads/gall/poke-thread.md)
27+## [Poke Thread](/docs/userspace/threads/gall/poke-thread)
28
28
29Poke a running thread from an agent.
29Poke a running thread from an agent.
content/docs/userspace/threads/overview.md+18−18
@@ -4,7 +4,7 @@ weight = 1
4template = "doc.html"
4template = "doc.html"
5+++
5+++
6
6
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
8categories:
8categories:
9
9
10- Runtime (Nock interpreter, persistence engine, IO drivers, jets)
10- Runtime (Nock interpreter, persistence engine, IO drivers, jets)
@@ -53,29 +53,29 @@ other sinks.
53
53
54These 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.
54These 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.
55
55
56−1. [Thread Fundamentals](@/docs/userspace/threads/basics/fundamentals.md) - Basic information and overview of threads, strands, `form` & `pure`.
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.md) - Covers using micgal and `bind` to chain strands.
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.md) - What strands receive as input
58+3. [Strand Input](/docs/userspace/threads/basics/input) - What strands receive as input
59−4. [Strand Output](@/docs/userspace/threads/basics/output.md) - What strands produce
59+4. [Strand Output](/docs/userspace/threads/basics/output) - What strands produce
60−5. [Summary](@/docs/userspace/threads/basics/summary.md)
60+5. [Summary](/docs/userspace/threads/basics/summary)
61
61
62## Gall
62## Gall
63These docs walk through the basics of interacting with threads from gall agents.
63These docs walk through the basics of interacting with threads from gall agents.
64
64
65−1. [Start a thread](@/docs/userspace/threads/gall/start-thread.md)
65+1. [Start a thread](/docs/userspace/threads/gall/start-thread)
66−2. [Subscribe for result](@/docs/userspace/threads/gall/take-result.md)
66+2. [Subscribe for result](/docs/userspace/threads/gall/take-result)
67−3. [Subscribe for facts](@/docs/userspace/threads/gall/take-facts.md)
67+3. [Subscribe for facts](/docs/userspace/threads/gall/take-facts)
68−4. [Stop a thread](@/docs/userspace/threads/gall/stop-thread.md)
68+4. [Stop a thread](/docs/userspace/threads/gall/stop-thread)
69−5. [Poke a thread](@/docs/userspace/threads/gall/poke-thread.md)
69+5. [Poke a thread](/docs/userspace/threads/gall/poke-thread)
70
70
71## How-tos & Examples
71## How-tos & Examples
72
72
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.
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.md) - Starting and managing child threads.
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.md) - Some notes and examples of the `strandio` function `main-loop`.
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.md) - Example of poking an agent from a thread.
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.md) - Scry arvo or an agent.
77+- [Scry](/docs/userspace/threads/examples/scry) - Scry arvo or an agent.
78−- [Take a fact](@/docs/userspace/threads/examples/take-fact.md) - Subscribe to an agent and receive a fact.
78+- [Take a fact](/docs/userspace/threads/examples/take-fact) - Subscribe to an agent and receive a fact.
79
79
80−## [Reference](@/docs/userspace/threads/reference.md)
80+## [Reference](/docs/userspace/threads/reference)
81Basic reference information. For usage of particular `strandio` functions just refer directly to `/lib/strandio/hoon` since they're largely self-explanatory.
81Basic 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
12language implementation geek, or you don't really understand anything until
12language implementation geek, or you don't really understand anything until
13you've seen the actual structs.
13you've seen the actual structs.
14
14
15−## [C runtime system](@/docs/vere/runtime.md)
15+## [C runtime system](/docs/vere/runtime)
16
16
17The Urbit interpreter is built on a Nock runtime system written
17The Urbit interpreter is built on a Nock runtime system written
18in C, `u3`. This section is a relatively complete description.
18in C, `u3`. This section is a relatively complete description.
19
19
20−## [c3: C in Urbit](@/docs/vere/c.md)
20+## [c3: C in Urbit](/docs/vere/c)
21
21
22Under `u3` is the simple `c3` layer, which is just how we write C
22Under `u3` is the simple `c3` layer, which is just how we write C
23in Urbit.
23in Urbit.
24
24
25−## [u3: Land of nouns](@/docs/vere/nouns.md)
25+## [u3: Land of nouns](/docs/vere/nouns)
26
26
27The division between `c3` and `u3` is that you could theoretically
27The division between `c3` and `u3` is that you could theoretically
28imagine using `c3` as just a generic C environment. Anything to do
28imagine using `c3` as just a generic C environment. Anything to do
29with nouns is in `u3`.
29with nouns is in `u3`.
30
30
31−## [u3: API overview by prefix](@/docs/vere/api.md)
31+## [u3: API overview by prefix](/docs/vere/api)
32
32
33A walkthrough of each of the `u3` modules.
33A walkthrough of each of the `u3` modules.
34
34
35−## [How to write a jet](@/docs/vere/jetting.md)
35+## [How to write a jet](/docs/vere/jetting)
36
36
37A jetting guide by for new Urbit developers.
37A 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.
505A `u3_atom` represents a simple number, but the implementation may or
505A `u3_atom` represents a simple number, but the implementation may or
506may not be simple. If the value held in the atom is 31 bits or less,
506may not be simple. If the value held in the atom is 31 bits or less,
507it's stored directly in the atom. If the value is 32 bits the atom
507it'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) )
509
509
510You don't want to get bogged down in the details of this -- you just
510You don't want to get bogged down in the details of this -- you just
511want to get data out of your atoms.
511want 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
627 return(u3nt(a, b, u3_nul)); // for two atoms as a list
627 return(u3nt(a, b, u3_nul)); // for two atoms as a list
628```
628```
629
629
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).
631
631
632## Compile the C code
632## Compile the C code
633
633