on master help sign in
clean up broken links preventing build
63f2f6eJosh Lehman
_index.md+47−1
@@ -1,6 +1,52 @@
1+++
1+++
2title = "Docs"
2title = "Docs"
3+weight = 1
3template = "sections/docs.html"
4template = "sections/docs.html"
4+++
5+++
5
6
6−Should this just redirect to introduction?
7+Welcome to the documentation for the Urbit project. This documentation is maintained by [Tlon](https://tlon.io) in a public [Github repository](https://github.com/urbit/docs). Issues and contributions are welcome.
8+
9+If you already know what you're looking for, the easiest way to find it is with the search box located on the left.
10+
11+### [Development](@/docs/development/_index.md)
12+
13+The Development section is recommended reading for developers interested in
14+contributing to Urbit itself, or building apps on top of Urbit. It serves as a
15+high-level orientation to how to set up a development environment, how to
16+interact with Urbit from outside protocols, community projects, and precepts
17+that drive the development of Urbit.
18+
19+### [System Overview](@/docs/systemoverview/_index.md)
20+
21+This section gives a high-level overview to all the major components of the
22+Urbit tech stack - namely, the operating system Arvo, the programming languages
23+Nock and Hoon, the runtime Vere, the decentralized ID system Azimuth, and Tlon's
24+flagship client Landscape.
25+
26+### [Arvo (Urbit OS)](@/docs/arvo/_index.md)
27+
28+This section covers the kernel of Urbit OS, called Arvo, as well as its kernel modules.
29+
30+### [Hoon (High-level Language)](@/docs/hoon/_index.md)
31+
32+Here is contained all official documentation on Hoon, the high-level purely
33+functional programming language in which Arvo and much of userspace is written.
34+
35+### [Nock (Low-level Language)](@/docs/nock/_index.md)
36+
37+Official guidance on Nock, the functional assembly-level language which serves
38+as the basis for Hoon.
39+
40+### [Vere (Interpreter)](@/docs/vere/_index.md)
41+
42+Documentation on Vere, the Nock virtual machine which serves as the interface
43+between Urbit and Unix.
44+
45+### [Azimuth (Urbit ID)](@/docs/azimuth/_index.md)
46+
47+The workings of Azimuth, the decentralized ID system utilized by Urbit.
48+
49+### [Landscape (Web Client)](@/docs/landscape/_index.md)
50+
51+Developer guides to Landscape, the web client by which most users interact
52+with their ship.
glossary/atom.md+1−1
@@ -16,5 +16,5 @@ number, etc, and an optional constant. A Hoon atom type is _warm_ or _cold_ base
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/_index.md): Our guide to learning the Hoon programming language.
19− - [Lesson 1.2: Nouns](@/docs//hoon/hoon-school/nouns.md): A Hoon Tutoral lesson that explains how atoms work.
19+ - [Lesson 1.2: Nouns](@/docs/hoon/hoon-school/nouns.md): A Hoon Tutoral lesson that explains how atoms work.
20- [The Nock explanation](@/docs/nock/explanation.md): Includes an explanation of atoms.
20- [The Nock explanation](@/docs/nock/explanation.md): Includes an explanation of atoms.
glossary/hoon.md+1−1
@@ -11,5 +11,5 @@ The Hoon source file is located in `/home/sys/hoon.hoon` within your Urbit.
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/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.1: Setup](@/docs//hoon/hoon-school/nouns.md): How to set up an environment for programming in Hoon.
14+ - [Lesson 1.1: Setup](@/docs/hoon/hoon-school/nouns.md): How to set up an environment for programming in Hoon.
15- [Why Hoon?](@/blog/why-hoon.md): A blog post that explains why Urbit uses its own programming language.
15- [Why Hoon?](@/blog/why-hoon.md): A blog post that explains why Urbit uses its own programming language.
glossary/noun.md+1−1
@@ -11,5 +11,5 @@ A **noun** is an [atom](../atom) or a cell, which is an ordered pair of nouns. T
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/_index.md): Our guide to learning the Hoon programming language.
14− - [Lesson 1.2: Nouns](@/docs//hoon/hoon-school/nouns.md): A Hoon Tutoral lesson that explains how nouns work.
14+ - [Lesson 1.2: Nouns](@/docs/hoon/hoon-school/nouns.md): A Hoon Tutoral lesson that explains how nouns work.
15- [The Nock explanation](@/docs/nock/_index.md): Includes a low-level explanation of nouns.
15- [The Nock explanation](@/docs/nock/_index.md): Includes a low-level explanation of nouns.
hoon/_index.md+4
@@ -4,3 +4,7 @@ weight = 400
4sort_by = "weight"
4sort_by = "weight"
5template = "sections/docs/chapters.html"
5template = "sections/docs/chapters.html"
6+++
6+++
7+
8+## Content
9+
10+There should be some here.
hoon/hoon-school/atoms-auras-and-simple-cell-types.md+1−1
@@ -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.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.
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
hoon/hoon-school/hoon-syntax.md+1−1
@@ -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.md), can be a helpful learning and debugging tactic.
217
217
218##### Exercise 1.3a
218##### Exercise 1.3a
219
219
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/#scag) is a
129+[`scag`](@/docs/hoon/reference/stdlib/2b.md#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/#slag) is a
131+[`slag`](@/docs/hoon/reference/stdlib/2b.md#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
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.md) when you used `+` to return a fragment of a noun:
15
15
16```
16```
17> +1:[[11 22] 33]
17> +1:[[11 22] 33]
hoon/reference/rune/_index.md+1−1
@@ -13,7 +13,7 @@ Runes are a way to form expressions in Hoon.
13
13
14Hoon 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).
14Hoon 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).
15
15
16−### [Limbs and Wings](@/docs/hoon/reference/limb/_index.md)
16+### [Limbs and Wings](@/docs/hoon/reference/limbs/_index.md)
17
17
18Limb and wing expressions also lack runes.
18Limb and wing expressions also lack runes.
19
19
hoon/reference/rune/cen.md+1−1
@@ -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/limb/_index.md).
56+See [how wings are resolved](@/docs/hoon/reference/limbs/_index.md).
57
57
58##### Examples
58##### Examples
59
59
introduction.mddeleted−52
@@ -1,52 +0,0 @@
1−+++
2−title = "Docs"
3−weight = 1
4−template = "sections/docs.html"
5−+++
6−
7−Welcome to the documentation for the Urbit project. This documentation is maintained by [Tlon](https://tlon.io) in a public [Github repository](https://github.com/urbit/docs). Issues and contributions are welcome.
8−
9−If you already know what you're looking for, the easiest way to find it is with the search box located on the left.
10−
11−### [Development](@/docs/development/_index.md)
12−
13−The Development section is recommended reading for developers interested in
14−contributing to Urbit itself, or building apps on top of Urbit. It serves as a
15−high-level orientation to how to set up a development environment, how to
16−interact with Urbit from outside protocols, community projects, and precepts
17−that drive the development of Urbit.
18−
19−### [System Overview](@/docs/systemoverview/_index.md)
20−
21−This section gives a high-level overview to all the major components of the
22−Urbit tech stack - namely, the operating system Arvo, the programming languages
23−Nock and Hoon, the runtime Vere, the decentralized ID system Azimuth, and Tlon's
24−flagship client Landscape.
25−
26−### [Arvo (Urbit OS)](@/docs/arvo/_index.md)
27−
28−This section covers the kernel of Urbit OS, called Arvo, as well as its kernel modules.
29−
30−### [Hoon](@/docs/hoon/_index.md)
31−
32−Here is contained all official documentation on Hoon, the high-level purely
33−functional programming language in which Arvo and much of userspace is written.
34−
35−### [Nock](@/docs/nock/_index.md)
36−
37−Official guidance on Nock, the functional assembly-level language which serves
38−as the basis for Hoon.
39−
40−### [Vere](@/docs/vere/_index.md)
41−
42−Documentation on Vere, the Nock virtual machine which serves as the interface
43−between Urbit and Unix.
44−
45−### [Azimuth (Urbit ID)](@/docs/azimuth/_index.md)
46−
47−The workings of Azimuth, the decentralized ID system utilized by Urbit.
48−
49−### [Landscape](@/docs/landscape/_index.md)
50−
51−Developer guides to Landscape, the web client by which most users interact
52−with their ship.
vere/_index.md+1−1
@@ -21,7 +21,7 @@ in C, `u3`. This section is a relatively complete description.
21Under `u3` is the simple `c3` layer, which is just how we write C
21Under `u3` is the simple `c3` layer, which is just how we write C
22in Urbit.
22in Urbit.
23
23
24−## [u3: Land of nouns](@/docs//vere/nouns.md)
24+## [u3: Land of nouns](@/docs/vere/nouns.md)
25
25
26The division between `c3` and `u3` is that you could theoretically
26The division between `c3` and `u3` is that you could theoretically
27imagine using `c3` as just a generic C environment. Anything to do
27imagine using `c3` as just a generic C environment. Anything to do
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.md) )
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.md).
631
631
632## Compile the C code
632## Compile the C code
633
633