Merge pull request #198 from urbit/mp/redo-glossary

build: generate glossary during site build
This commit is contained in:
matildepark 2022-10-19 13:23:43 -07:00 committed by GitHub
commit 9ac2a2f1fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
192 changed files with 8930 additions and 9729 deletions

View File

@ -14,7 +14,6 @@ class Search extends Component {
this.searchEndpoint = this.searchEndpoint.bind(this);
this.onInputValueChange = this.onInputValueChange.bind(this);
this.onSelect = this.onSelect.bind(this);
this.glossarySearch = this.glossarySearch.bind(this);
this.patpSearch = this.patpSearch.bind(this);
this.urbitOrgSearch = this.urbitOrgSearch.bind(this);
this.opsSearch = this.opsSearch.bind(this);
@ -24,10 +23,6 @@ class Search extends Component {
return `/api/search?q=${query}`;
}
glossarySearch(query) {
return `/api/glossary?q=${encodeURIComponent(query)}`;
}
opsSearch(query) {
return `/api/ops-search?q=${query}`;
}
@ -45,28 +40,35 @@ class Search extends Component {
}
onSelect(item) {
if (item.slug) {
this.props.router.push(item.slug);
}
this.setState({
query: "",
results: [],
});
this.props.closeSearch();
if (item.url) {
this.props.router.push(`${item.url}${item?.slug ? item.slug : ""}`);
return this.props.closeSearch();
}
if (item.slug) {
this.props.router.push(item.slug);
return this.props.closeSearch();
}
}
onInputValueChange = debounce(async (query) => {
if (query.length) {
const search = fetch(this.searchEndpoint(query))
const search = fetch(this.searchEndpoint(encodeURIComponent(query)))
.then((res) => res.json())
.then(async (res) => {
// Wrap results in an object which will tell React what component to use to render results.
return res.results.map((item) => ({
return [...res.glossary.map((item) => ({
type: "GLOSSARY_RESULT",
content: item
})), ...res.results.map((item) => ({
type: "RESULT",
content: item,
}));
}))];
});
const patp = this.patpSearch(query)
@ -77,53 +79,54 @@ class Search extends Component {
const patpResult = this.patpSearch(query)
? [
{
type: "PATP",
content: {
patp: patp,
slug: `https://urbit.org/ids/${patp}`,
},
{
type: "PATP",
content: {
patp: patp,
slug: `https://urbit.org/ids/${patp}`,
},
]
},
]
: [];
const urbitOrgSearch = fetch(this.urbitOrgSearch(query))
const urbitOrgSearch = fetch(this.urbitOrgSearch(encodeURIComponent(query)))
.then((res) => res.json())
.then((res) => {
return res.results.map((item) => ({
return [...res.glossary.map((item) => ({
type: "GLOSSARY_RESULT",
content: item
})), ...res.results.map((item) => ({
type: "URBIT_ORG_RESULT",
content: item,
}));
}))];
});
const glossarySearch = fetch(this.glossarySearch(query))
const opsSearch = fetch(this.opsSearch(encodeURIComponent(query)))
.then((res) => res.json())
.then((res) => {
return res.results.map((item) => ({
return [...res.glossary.map((item) => ({
type: "GLOSSARY_RESULT",
content: item,
}));
});
const opsSearch = fetch(this.opsSearch(query))
.then((res) => res.json())
.then((res) => {
return res.results.map((item) => ({
content: item
})), ...res.results.map((item) => ({
type: "OPS_RESULT",
content: item,
}));
}))];
});
const [glossaryResults, results, urbitOrgResults, opsResults] =
await Promise.all([glossarySearch, search, urbitOrgSearch, opsSearch]);
const [results, urbitOrgResults, opsResults] =
await Promise.all([search, urbitOrgSearch, opsSearch]);
const list = [
...glossaryResults,
...patpResult,
...results,
...urbitOrgResults,
...opsResults,
];
]
.sort((a, b) => {
const aNum = a?.type === "GLOSSARY_RESULT" ? 1 : -1;
const bNum = b?.type === "GLOSSARY_RESULT" ? 1 : -1;
return bNum - aNum;
});
this.setState({ results: list });
} else {
this.setState({ results: [] });
@ -182,209 +185,195 @@ class Search extends Component {
<ul {...getMenuProps()} className="overflow-y-scroll">
{isOpen
? state.results.map((item, index) => {
const selected = highlightedIndex === index;
if (item.type === "PATP") {
return (
<li
className={`cursor-pointer p-2 flex space-x-2 items-center text-left w-full ${
selected ? "bg-green-400" : ""
const selected = highlightedIndex === index;
if (item.type === "PATP") {
return (
<li
className={`cursor-pointer p-2 flex space-x-2 items-center text-left w-full ${selected ? "bg-green-400" : ""
}`}
{...getItemProps({
key: item.content.slug + "-" + index,
index,
item: item.content,
selected: highlightedIndex === index,
})}
>
<div className="rounded-md overflow-hidden">
<Sigil
patp={item.content.patp}
size={25}
icon
/>
</div>
<p className="font-mono">{item.content.patp}</p>
</li>
);
}
if (item.type === "GLOSSARY_RESULT") {
return (
<li
className={`cursor-pointer flex text-left w-full ${
selected ? "bg-green-400" : ""
{...getItemProps({
key: item.content.slug + "-" + index,
index,
item: item.content,
selected: highlightedIndex === index,
})}
>
<div className="rounded-md overflow-hidden">
<Sigil
patp={item.content.patp}
size={25}
icon
/>
</div>
<p className="font-mono">{item.content.patp}</p>
</li>
);
}
if (item.type === "GLOSSARY_RESULT") {
return (
<li
className={`cursor-pointer flex text-left w-full ${selected ? "bg-green-400" : ""
}`}
{...getItemProps({
key: item.content.slug + "-" + index,
index,
item: item.content,
selected: highlightedIndex === index,
})}
>
<div className="font-semibold p-3">
<p
className={`text-base ${
selected ? "text-white" : "text-wall-600"
{...getItemProps({
key: item.content.slug + "-" + index,
index,
item: item.content,
selected: highlightedIndex === index,
})}
>
<div className="font-semibold p-3">
<p
className={`text-base ${selected ? "text-white" : "text-wall-600"
}`}
>
{item.content.symbol.length > 0 && (
<code
className={`mr-1 rounded px-1 py-0.5 ${
selected
? "bg-washedWhite"
: "bg-wall-100"
>
{item.content.symbol.length > 0 && (
<code
className={`mr-1 rounded px-1 py-0.5 ${selected
? "bg-washedWhite"
: "bg-wall-100"
}`}
>
{item.content.symbol}
</code>
)}
{item.content.name}
</p>
<p
className={`font-normal text-base mt-1 ${
selected ? "text-white" : "text-wall-600"
>
{item.content.symbol}
</code>
)}
{item.content.name}
</p>
<p
className={`font-normal text-base mt-1 ${selected ? "text-white" : "text-wall-600"
}`}
dangerouslySetInnerHTML={{
__html: item.content.desc,
}}
></p>
</div>
</li>
);
}
if (item.type === "RESULT") {
return (
<li
className={`cursor-pointer flex text-left w-full ${
selected ? "bg-green-400" : ""
dangerouslySetInnerHTML={{
__html: item.content.desc,
}}
></p>
</div>
</li>
);
}
if (item.type === "RESULT") {
return (
<li
className={`cursor-pointer flex text-left w-full ${selected ? "bg-green-400" : ""
}`}
{...getItemProps({
key: item.content.link + "-" + index,
index,
item: item.content,
selected,
})}
>
<div className="p-3">
<p
className={`font-medium text-base ${
selected ? "text-white" : "text-wall-600"
{...getItemProps({
key: item.content.link + "-" + index,
index,
item: item.content,
selected,
})}
>
<div className="p-3">
<p
className={`font-medium text-base ${selected ? "text-white" : "text-wall-600"
}`}
>
>
{item.content.parent !== "Content"
? `${item.content.parent} /`
: ""}{" "}
{item.content.title}
</p>
<p
className={`text-base font-regular text-small ${selected ? "text-midWhite" : "text-wall-500"
}`}
>
{item.content.content}
{item?.content?.foundOnPage && (
<span className="italic block">
Found in page content
</span>
)}
</p>
</div>
</li>
);
}
if (item.type === "URBIT_ORG_RESULT") {
const urbOrgItem = Object.assign({}, item.content);
urbOrgItem[
"slug"
] = `https://urbit.org${item.content.slug}`;
return (
<li
className={`cursor-pointer flex text-left w-full ${selected ? "bg-green-400" : ""
}`}
{...getItemProps({
key: item.content.link + "-" + index,
index,
item: urbOrgItem,
selected,
})}
>
<div className="p-3">
<p
className={`font-medium text-base ${selected ? "text-white" : "text-wall-600"
}`}
>
<span className="text-wall-400">
{item.content.parent !== "Content"
? `${item.content.parent} /`
: ""}{" "}
{item.content.title}
</p>
<p
className={`text-base font-regular text-small ${
selected ? "text-midWhite" : "text-wall-500"
? `urbit.org / ${item.content.parent} /`
: "urbit.org /"}{" "}
</span>
{item.content.title}
</p>
<p
className={`text-base font-regular text-small ${selected ? "text-midWhite" : "text-wall-500"
}`}
>
{item.content.content}
{item?.content?.foundOnPage && (
<span className="italic block">
Found in page content
</span>
)}
</p>
</div>
</li>
);
}
if (item.type === "URBIT_ORG_RESULT") {
const urbOrgItem = Object.assign({}, item.content);
urbOrgItem[
"slug"
] = `https://urbit.org${item.content.slug}`;
return (
<li
className={`cursor-pointer flex text-left w-full ${
selected ? "bg-green-400" : ""
}`}
{...getItemProps({
key: item.content.link + "-" + index,
index,
item: urbOrgItem,
selected,
})}
>
<div className="p-3">
<p
className={`font-medium text-base ${
selected ? "text-white" : "text-wall-600"
}`}
>
<span className="text-wall-400">
{item.content.parent !== "Content"
? `urbit.org / ${item.content.parent} /`
: "urbit.org /"}{" "}
>
{item.content.content}
{item?.content?.foundOnPage && (
<span className="italic block">
Found in page content
</span>
{item.content.title}
</p>
<p
className={`text-base font-regular text-small ${
selected ? "text-midWhite" : "text-wall-500"
}`}
>
{item.content.content}
{item?.content?.foundOnPage && (
<span className="italic block">
Found in page content
</span>
)}
</p>
</div>
</li>
);
}
if (item.type === "OPS_RESULT") {
const opsItem = Object.assign({}, item.content);
opsItem[
"slug"
] = `https://operators.urbit.org${item.content.slug}`;
return (
<li
className={`cursor-pointer flex text-left w-full ${
selected ? "bg-green-400" : ""
)}
</p>
</div>
</li>
);
}
if (item.type === "OPS_RESULT") {
const opsItem = Object.assign({}, item.content);
opsItem[
"slug"
] = `https://operators.urbit.org${item.content.slug}`;
return (
<li
className={`cursor-pointer flex text-left w-full ${selected ? "bg-green-400" : ""
}`}
{...getItemProps({
key: item.content.link + "-" + index,
index,
item: opsItem,
selected,
})}
>
<div className="p-3">
<p
className={`font-medium text-base ${
selected ? "text-white" : "text-wall-600"
{...getItemProps({
key: item.content.link + "-" + index,
index,
item: opsItem,
selected,
})}
>
<div className="p-3">
<p
className={`font-medium text-base ${selected ? "text-white" : "text-wall-600"
}`}
>
<span className="text-wall-400">
{item.content.parent !== "Content"
? `operators.urbit.org / ${item.content.parent} /`
: "operators.urbit.org /"}{" "}
>
<span className="text-wall-400">
{item.content.parent !== "Content"
? `operators.urbit.org / ${item.content.parent} /`
: "operators.urbit.org /"}{" "}
</span>
{item.content.title}
</p>
<p
className={`text-base font-regular text-small ${selected ? "text-midWhite" : "text-wall-500"
}`}
>
{item.content.content}
{item?.content?.foundOnPage && (
<span className="italic block">
Found in page content
</span>
{item.content.title}
</p>
<p
className={`text-base font-regular text-small ${
selected ? "text-midWhite" : "text-wall-500"
}`}
>
{item.content.content}
{item?.content?.foundOnPage && (
<span className="italic block">
Found in page content
</span>
)}
</p>
</div>
</li>
);
}
return null;
})
)}
</p>
</div>
</li>
);
}
return null;
})
: null}
</ul>
</div>

View File

@ -1,5 +1,12 @@
+++
title = "Agent"
[glossaryEntry.agent]
name = "agent"
symbol = ""
usage = "Arvo"
desc = "A userspace application managed by Gall."
+++
**Agents** are the main kind of userspace application on Urbit. They have a

View File

@ -1,7 +1,15 @@
+++
title = "Ames"
[extra]
category = "arvo"
[glossaryEntry.ames]
name = "ames"
symbol = ""
usage = "Arvo"
desc = "The name of the Urbit network and the vane that communicates over it."
+++
**Ames** is the name of the Urbit network and the

View File

@ -1,5 +1,12 @@
+++
title = "API"
[glossaryEntry.API]
name = "API"
symbol = ""
usage = "Arvo"
desc = "An application programming interface."
+++
**API** stands for "application programming interface". It refers to the

View File

@ -1,7 +1,15 @@
+++
title = "Aqua"
[extra]
category = "arvo"
[glossaryEntry.aqua]
name = "aqua"
symbol = ""
usage = "Arvo"
desc = "A virtualization tool whose primary purpose is testing and development."
+++
**Aqua** is something like Docker but for Urbit; it is a virtualization tool whose primary purpose is testing and development.

View File

@ -3,6 +3,13 @@ title = "Arm"
[extra]
category = "hoon-nock"
[glossaryEntry.arm]
name = "arm"
symbol = ""
usage = "arm"
desc = "A Hoon expression encoded as a noun. Part of a core."
+++
An **arm** is a named Hoon expression in a [core](/reference/glossary/core). A

View File

@ -1,5 +1,12 @@
+++
title = "Arvo"
[glossaryEntry.arvo]
name = "arvo"
symbol = ""
usage = "Arvo"
desc = "The Urbit operating system and kernel."
+++
**Arvo** is the Urbit operating system and kernel. Arvo's state is a pure

View File

@ -1,7 +1,15 @@
+++
title = "Atom"
[extra]
category = "hoon-nock"
[glossaryEntry.atom]
name = "atom"
symbol = ""
usage = "hoon-nock"
desc = "The most basic data type in Hoon and Nock, a non-negative integer of any size."
+++
An **atom** is any non-negative integer of any size. The atom is the most basic data type in [Nock](/reference/glossary/nock) and [Hoon](/reference/glossary/hoon).

View File

@ -1,5 +1,12 @@
+++
title = "Aura"
[glossaryEntry.aura]
name = "aura"
symbol = ""
usage = "hoon-nock"
desc = "Types for atoms."
+++
**Auras** are types of [atoms](/reference/glossary/atom). A generic atom (`@`)

View File

@ -1,5 +1,12 @@
+++
title = "Aural ASCII"
[glossaryEntry."aural ASCII"]
name = "aural ASCII"
symbol = ""
usage = "hoon-nock"
desc = "Short names for special characters in hoon."
+++
The [Hoon](/reference/glossary/hoon) language makes extensive use of

View File

@ -1,5 +1,12 @@
+++
title = "Azimuth"
[glossaryEntry.azimuth]
name = "azimuth"
symbol = ""
usage = "azimuth"
desc = "Urbit's identity layer, built as a suite of smart contracts on the Ethereum blockchain."
+++
**Azimuth** is Urbit's identity layer, built as a suite of smart contracts on

View File

@ -3,6 +3,13 @@ title = "Battery"
[extra]
category = "hoon-nock"
[glossaryEntry.battery]
name = "battery"
symbol = ""
usage = "battery"
desc = "A collection of Hoon expressions stored at the head of a core."
+++
A **battery** is a collection of Hoon expressions and the head of a [core](/reference/glossary/core).

View File

@ -1,7 +1,15 @@
+++
title = "Behn"
[extra]
category = "arvo"
[glossaryEntry.behn]
name = "behn"
symbol = ""
usage = "arvo"
desc = "Timing vane of Arvo. Allows for applications to schedule events."
+++
**Behn** is the timing [vane](/reference/glossary/vane) (kernel module).

View File

@ -1,5 +1,12 @@
+++
title = "Bowl"
[glossaryEntry.bowl]
name = "bowl"
symbol = ""
usage = "arvo"
desc = "Useful data given to a Gall agent or thread."
+++
The **bowl** contains useful data about the current

View File

@ -1,7 +1,15 @@
+++
title = "Bridge"
[extra]
category = "azimuth"
[glossaryEntry.bridge]
name = "bridge"
symbol = ""
usage = "azimuth"
desc = "A client made for interacting with Azimuth."
+++
**Bridge** is a client made for interacting with

View File

@ -1,5 +1,12 @@
+++
title = "Bunt"
[glossaryEntry.bunt]
name = "bunt"
symbol = ""
usage = "hoon-nock"
desc = "Produce the default/example value of a mold"
+++
In [Hoon](/reference/glossary/hoon), **bunting** a

View File

@ -1,7 +1,15 @@
+++
title = "Card"
[extra]
category = "hoon-nock"
[glossaryEntry.card]
name = "card"
symbol = ""
usage = "hoon-nock"
desc = "The type of effects produced by agents and threads."
+++
A **card** is the data type for effects produced by

View File

@ -3,6 +3,13 @@ title = "Case"
[extra]
category = "arvo"
[glossaryEntry.case]
name = "case"
symbol = ""
usage = "arvo"
desc = "A reference to a commit in Clay"
+++
[Clay](/reference/glossary/clay) is [Arvo's](/reference/glossary/arvo)

View File

@ -3,6 +3,13 @@ title = "Cask"
[extra]
category = "hoon-nock"
[glossaryEntry.cask]
name = "cask"
symbol = ""
usage = "hoon-nock"
desc = "A cell of a mark and a noun. Similar to a cage but with a simple noun rather than a vase in the tail."
+++
A **cask** is a [cell](/reference/glossary/cell) whose head is a

View File

@ -3,6 +3,13 @@ title = "Cell"
[extra]
category = "hoon-nock"
[glossaryEntry.cell]
name = "cell"
symbol = ""
usage = "hoon-nock"
desc = "An ordered pair of nouns in Hoon and Nock."
+++
A **cell** is an ordered pair of [nouns](/reference/glossary/noun). It is a

View File

@ -1,7 +1,15 @@
+++
title = "Censures"
[extra]
category = "azimuth"
[glossaryEntry.censure]
name = "censure"
symbol = ""
usage = "azimuth"
desc = "Allows stars and galaxies to assign negative reputation information to other points of equal or lower rank."
+++
The **Censures** [Azimuth](/reference/glossary/azimuth) contract allows [stars](/reference/glossary/star) and [galaxies](/reference/glossary/galaxy) to assign negative reputation information to other points of equal or lower rank. This information is publicly visible and is intended to create an economic deterrent to bad behavior.

View File

@ -3,6 +3,13 @@ title = "Claims"
[extra]
category = "azimuth"
[glossaryEntry.claims]
name = "claims"
symbol = ""
usage = "azimuth"
desc = "Allows Urbit identities to make publicly visible assertions about their owner."
+++
The **Claims** [Azimuth](/reference/glossary/azimuth) contract allows Urbit identities to make publicly visible assertions about their owner. Such assertions are most commonly about the owner's identity, real-world or otherwise. A claim has three fields: the claim itself, the _protocol_, and the _dossier_.

View File

@ -3,6 +3,13 @@ title = "Clay"
[extra]
category = "arvo"
[glossaryEntry.clay]
name = "clay"
symbol = ""
usage = "arvo"
desc = "The filesystem and typed revision-control vane of Arvo."
+++
**Clay** is the typed, revision-controlled filesystem

View File

@ -1,7 +1,15 @@
+++
title = "Cold atom"
[extra]
category = "hoon-nock"
[glossaryEntry."cold atom"]
name = "cold atom"
symbol = ""
usage = "hoon-nock"
desc = "An atom whose type is an exact value rather than a general aura."
+++
A **cold atom** is an [atom](/reference/glossary/atom) whose type is an exact

View File

@ -1,7 +1,15 @@
+++
title = "Comet"
[extra]
category = "arvo"
[glossaryEntry.comet]
name = "comet"
symbol = ""
usage = "arvo"
desc = "A type of ship on the Urbit network."
+++
A **comet** is a kind of [ship](/reference/glossary/ship) on the [Ames](/reference/glossary/ames) network which

View File

@ -3,6 +3,13 @@ title = "Commit"
[extra]
category = "arvo"
[glossaryEntry.commit]
name = "commit"
symbol = ""
usage = "arvo"
desc = "A revision to a desk in the Clay filesystem."
+++
[Clay](/reference/glossary/clay) is [Arvo's](/reference/glossary/arvo)

View File

@ -3,6 +3,13 @@ title = "Cons"
[extra]
category = "hoon-nock"
[glossaryEntry.cons]
name = "cons"
symbol = ""
usage = "hoon-nock"
desc = "An ordered pair of values in Lisp, analogous to a cell in Hoon."
+++
A **cons** (or cons-cell) is an ordered pair of values in the Lisp family of

View File

@ -3,6 +3,13 @@ title = "Context"
[extra]
category = "hoon-nock"
[glossaryEntry.context]
name = "context"
symbol = ""
usage = "hoon-nock"
desc = "The symbols and values reachable from a point in some code."
+++
**Context** refers to the execution context of a program, which is the symbols

View File

@ -3,6 +3,13 @@ title = "Cord"
[extra]
category = "hoon-nock"
[glossaryEntry.cord]
name = "cord"
symbol = ""
usage = "hoon-nock"
desc = "An atom aura for a little-endian UTF-8 string."
+++
A **cord** is an [atom](/reference/glossary/atom)

View File

@ -3,6 +3,13 @@ title = "Core"
[extra]
category = "hoon-nock"
[glossaryEntry.core]
name = "core"
symbol = ""
usage = "core"
desc = "A cell of battery and payload."
+++
A **core** is a cell of a [`battery`](/reference/glossary/battery) and a

View File

@ -3,6 +3,13 @@ title = "Delegated Sending"
[extra]
category = "azimuth"
[glossaryEntry."delegated sending"]
name = "delegated sending"
symbol = ""
usage = "azimuth"
desc = "A method by which a star can distribute planets, assigning them to a delegated planet."
+++
The **Delegated Sending** [Azimuth](/reference/glossary/azimuth) contract is a way that a [star](/reference/glossary/star ) distributes [L1](/reference/glossary/azimuth) [planets](/reference/glossary/planet). After a star configures the Delegated Sending contract as its [spawn proxy](/reference/glossary/proxies) it can give invites to planets, and those invitees can subsequently send additional planets from that star to their friends, and pass on this invite power indefinitely. This contract keeps track of those operations in the form of the [Invite Tree](/reference/glossary/invite-tree), so the relationship between inviters and invitees is publicly known.

View File

@ -3,6 +3,13 @@ title = "Desk"
[extra]
category = "arvo"
[glossaryEntry.desk]
name = "desk"
symbol = ""
usage = "arvo"
desc = "A revision-controlled branch of the Clay filesystem."
+++
A **desk** is an independently revision-controlled branch of a [ship](/reference/glossary/ship) that uses the [Clay](/reference/glossary/clay) filesystem. Each desk contains its own apps, [mark](/reference/glossary/mark) definitions, files, and so forth.

View File

@ -3,6 +3,13 @@ title = "Dill"
[extra]
category = "arvo"
[glossaryEntry.dill]
name = "dill"
symbol = ""
usage = "arvo"
desc = "The terminal-driver vane of Arvo."
+++
**Dill** is the terminal-driver [vane](/reference/glossary/vane). You run

View File

@ -3,6 +3,13 @@ title = "Document Proposal"
[extra]
category = "azimuth"
[glossaryEntry."document vote"]
name = "document vote"
symbol = ""
usage = "azimuth"
desc = "A voting action taken by the Galactic Senate over Azimuth."
+++
A **document proposal** is a type of [vote](/reference/glossary/voting) action

View File

@ -3,6 +3,13 @@ title = "Door"
[extra]
category = "hoon-nock"
[glossaryEntry.door]
name = "door"
symbol = ""
usage = "door"
desc = "A core the payload of which is a cell of sample and context."
+++
A **door** is a [core](/reference/glossary/core) the `payload` of which is a cell of `sample` and `context`.

View File

@ -3,6 +3,13 @@ title = "Double-boot"
[extra]
category = "arvo"
[glossaryEntry.double-boot]
name = "double-boot"
symbol = ""
usage = "arvo"
desc = "When you boot an old copy of your pier on the live network."
+++
**Double-booting** is when you have a second, older copy of your

View File

@ -3,6 +3,13 @@ title = "Dry Gate"
[extra]
category = "hoon-nock"
[glossaryEntry."dry gate"]
name = "dry gate"
symbol = ""
usage = "hoon-nock"
desc = "A gate that only accepts an argument of the type it specified."
+++
A **dry gate** is a [gate](/reference/glossary/gate) that only accepts an

View File

@ -1,7 +1,15 @@
+++
title = "Duct"
[extra]
category = "arvo"
[glossaryEntry.duct]
name = "duct"
symbol = ""
usage = "arvo"
desc = "A causal event chain for routing inter-vane messages in Arvo."
+++
[Arvo](/reference/glossary/arvo) is designed to avoid the usual state of complex

View File

@ -3,6 +3,13 @@ title = "Ecliptic"
[extra]
category = "azimuth"
[glossaryEntry.ecliptic]
name = "ecliptic"
symbol = ""
usage = "azimuth"
desc = "A contract that sets the rules for what is and is not possible on Azimuth."
+++
The **Ecliptic** contract sets the rules for what is and is not possible on Azimuth. It's the point of entry for interacting with the [Azimuth](/reference/glossary/azimuth) ledger data; the Azimuth contract itself is just data, and the Ecliptic contract is the logic for controlling that data. Examples of such logic include verifying permissions of the person asking to access their data, and ensuring a requested change is actually valid.

View File

@ -1,5 +1,12 @@
+++
title = "Entropy"
[glossaryEntry.entropy]
name = "entropy"
symbol = ""
usage = "arvo"
desc = "Randomness used for things like cryptography by software."
+++
**Entropy** is the randomness collected by an operating system or application for

View File

@ -3,6 +3,13 @@ title = "Event Log"
[extra]
category = "arvo"
[glossaryEntry."event log"]
name = "event log"
symbol = ""
usage = "arvo"
desc = "A totally ordered list of every single Arvo event a ship has undergone. A ship's state is a pure function of its event log."
+++
The **event log** of a [ship](/reference/glossary/ship) is a totally ordered list of every single [Arvo](/reference/glossary/arvo) event that ship has undergone. The state of a ship is a pure function of the event log.

View File

@ -3,6 +3,13 @@ title = "Eyre"
[extra]
category = "arvo"
[glossaryEntry.eyre]
name = "eyre"
symbol = ""
usage = "arvo"
desc = "The web-server vane of Arvo. Handles all HTTP messages."
+++
**Eyre** is the web-server [vane](/reference/glossary/vane) (kernel module) that

View File

@ -3,6 +3,13 @@ title = "Face"
[extra]
category = "hoon-nock"
[glossaryEntry.face]
name = "face"
symbol = ""
usage = "hoon-nock"
desc = "A 'variable name' in Hoon."
+++
A **face** is a name for a value, type or expression in

View File

@ -3,6 +3,13 @@ title = "Fact"
[extra]
category = "arvo"
[glossaryEntry.fact]
name = "fact"
symbol = ""
usage = "arvo"
desc = "An update sent to subscribers by a Gall agent."
+++
A **%fact** is a [gift](/reference/glossary/gift) given to subscribers by a

View File

@ -3,6 +3,13 @@ title = "Foo Bar Baz"
[extra]
category = "hoon-nock"
[glossaryEntry."foo bar baz"]
name = "foo bar baz"
symbol = ""
usage = "hoon-nock"
desc = "These are just arbitrary placeholder words used in examples."
+++
"foo", "bar" and "baz" are conventional placeholders used in programming

View File

@ -3,6 +3,13 @@ title = "Galaxy"
[extra]
category = "arvo"
[glossaryEntry.galaxy]
name = "galaxy"
symbol = ""
usage = "arvo"
desc = "8-bit Urbit addresses, sitting at the top of the identity hierarchy, that vote on network changes and act as infrastructural nodes."
+++
A **galaxy** can be one of two related things:

View File

@ -3,6 +3,13 @@ title = "Gall"
[extra]
category = "arvo"
[glossaryEntry.gall]
name = "gall"
symbol = ""
usage = "arvo"
desc = "The application-management vane of Arvo. Userspace applications are stopped, started, and sandboxed by Gall."
+++
**Gall** is the application-management [vane](/reference/glossary/vane) (kernel

View File

@ -3,6 +3,13 @@ title = "Garden"
[extra]
category = "arvo"
[glossaryEntry.garden]
name = "garden"
symbol = ""
usage = "arvo"
desc = "The desk that serves Landscape, manages app front-ends and handles notifications."
+++
`%garden` is the [desk](/reference/glossary/desk) in

View File

@ -3,6 +3,13 @@ title = "Gate"
[extra]
category = "hoon-nock"
[glossaryEntry.gate]
name = "gate"
symbol = ""
usage = "gate"
desc = "A core with one arm named $. The Hoon equivalent of a function."
+++
A **gate** is [core](/reference/glossary/core) with one [arm](/reference/glossary/arm)

View File

@ -3,6 +3,13 @@ title = "Generator"
[extra]
category = "arvo"
[glossaryEntry.generator]
name = "generator"
symbol = ""
usage = "arvo"
desc = "A generator is kind of Hoon script you can run from the dojo."
+++
A **generator** is something like a script in [Arvo](/reference/glossary/arvo).

View File

@ -3,6 +3,13 @@ title = "Gift"
[extra]
category = "arvo"
[glossaryEntry.gift]
name = "gift"
symbol = ""
usage = "arvo"
desc = "A gift is an effect produced by agents and threads in response to a request from another agent or vane."
+++
A `%gift` [card](/reference/glossary/card) is an effect produced by

View File

@ -3,6 +3,13 @@ title = "Glob"
[extra]
category = "arvo"
[glossaryEntry.glob]
name = "glob"
symbol = ""
usage = "arvo"
desc = "A bundle of front-end resources for an app."
+++
A **glob** is a bundle of front-end resources for an app which is served to a

View File

@ -3,6 +3,13 @@ title = "HD Wallet"
[extra]
category = "azimuth"
[glossaryEntry."hd wallet"]
name = "hd wallet"
symbol = ""
usage = "azimuth"
desc = "A system of related Ethereum addresses that store and manage an Urbit identity, each a proxy with different permissions over its management."
+++
The **Urbit HD Wallet** (_Hierarchical Deterministic_ Wallet) is a system of related Ethereum addresses that's used to store and manage an Urbit identity. Each of these Ethereum addresses have different powers over the same identity, from setting networking keys for communicating in the [Arvo](/reference/glossary/arvo) network to transferring ownership of identities.

View File

@ -3,6 +3,13 @@ title = "Helm"
[extra]
category = "arvo"
[glossaryEntry.helm]
name = "helm"
symbol = ""
usage = "arvo"
desc = "A library and set of generators to manage system settings and get reports."
+++
The [hood](/reference/glossary/hood) [agent](/reference/glossary/agent) is

View File

@ -3,6 +3,13 @@ title = "Hood"
[extra]
category = "arvo"
[glossaryEntry.hood]
name = "hood"
symbol = ""
usage = "arvo"
desc = "The system app: comprised of Kiln, Drum and Helm."
+++
**Hood** is the "system app", it controls various basic functions of Arvo and

View File

@ -1,6 +1,12 @@
+++
title = "Hoon"
[glossaryEntry.hoon]
name = "hoon"
symbol = ""
usage = "arvo"
desc = "A strict, higher-order typed functional programming language that compiles to Nock."
+++
Hoon is a strict, higher-order typed functional programming language that compiles itself to [Nock](/reference/glossary/nock). As a result Hoon code is effectively implemented by the interpreter [Vere](/reference/glossary/vere). Programs for the Urbit operating system and kernel, [Arvo](/reference/glossary/arvo), are written in Hoon.

View File

@ -3,6 +3,13 @@ title = "Invite Tree"
[extra]
category = "azimuth"
[glossaryEntry."invite tree"]
name = "invite tree"
symbol = ""
usage = "azimuth"
desc = "The state stored by the delegated sending contract, recording who gave a planet to whom under a specific star."
+++
The **Invite Tree** is the state stored by the [Delegated Sending](/reference/glossary/delegated-sending) contract on [Azimuth](/reference/glossary/azimuth), and is a record of who gave a [planet](/reference/glossary/planet) to whom. This allows for community applications, such as a chat channel for all distantly related planets.

View File

@ -3,6 +3,13 @@ title = "Iris"
[extra]
category = "arvo"
[glossaryEntry.iris]
name = "iris"
symbol = ""
usage = "arvo"
desc = "The server-side HTTP vane of Arvo. Its client-facing counterpart is Eyre."
+++
**Iris** is the web client [vane](/reference/glossary/vane) that handles HTTP

View File

@ -1,7 +1,15 @@
+++
title = "Jael"
[extra]
category = "arvo"
[glossaryEntry.jael]
name = "jael"
symbol = ""
usage = "arvo"
desc = "Security and encryption vane of Arvo."
+++
**Jael** is the [vane](/reference/glossary/vane) that keeps track of

View File

@ -3,6 +3,13 @@ title = "Jet"
[extra]
category = "arvo"
[glossaryEntry.jet]
name = "jet"
symbol = ""
usage = "arvo"
desc = "A fast, external implementation of some Hoon/Nock which the runtime can use instead of the native code."
+++
[Hoon](/reference/glossary/hoon) is compiled to

View File

@ -1,7 +1,15 @@
+++
title = "Kelvin versioning"
[extra]
category = "hoon-nock"
[glossaryEntry."kelvin versioning"]
name = "kelvin versioning"
symbol = ""
usage = "hoon-nock"
desc = "A software versioning system that counts downwards to zero, at which point it will be permanently fixed and final."
+++
Typical software versioning schemes (e.g. v3.1.45) count ever upwards with each

View File

@ -1,7 +1,15 @@
+++
title = "Kelvin versioning"
[extra]
category = "arvo"
[glossaryEntry.kernel]
name = "kernel"
symbol = ""
usage = "arvo"
desc = "The core components of an operating system; Arvo and its vanes in Urbit."
+++
The **kernel** is the core, fundamental components of an operating system. In

View File

@ -3,6 +3,13 @@ title = "Keyfile"
[extra]
category = "azimuth"
[glossaryEntry.keyfile]
name = "keyfile"
symbol = ""
usage = "azimuth"
desc = "A piece of information used to associate a ship with an Urbit identity."
+++
A **keyfile** is a piece of information used to associate a [ship](/reference/glossary/ship) with an Urbit identity so that the ship can use the [Arvo](/reference/glossary/arvo) network. A keyfile is dependent upon the [networking keys](/reference/glossary/bridge) that have been set for the identity; we recommend using [Bridge](/reference/glossary/bridge) to set the networking keys and to generate the corresponding keyfile.

View File

@ -1,7 +1,15 @@
+++
title = "Keywords"
[extra]
category = "hoon-nock"
[glossaryEntry.keywords]
name = "keywords"
symbol = ""
usage = "hoon-nock"
desc = "Reserved words in a programming language."
+++
In programming languages, a **keyword** is a predefined, reserved word with

View File

@ -3,6 +3,13 @@ title = "Kiln"
[extra]
category = "arvo"
[glossaryEntry.kiln]
name = "kiln"
symbol = ""
usage = "arvo"
desc = "Kiln is the Hood sub-app that controls desk installation and updates."
+++
The [hood](/reference/glossary/hood) [agent](/reference/glossary/agent) is

View File

@ -3,6 +3,13 @@ title = "Landscape"
[extra]
category = "arvo"
[glossaryEntry.landscape]
name = "landscape"
symbol = ""
usage = "arvo"
desc = "A front-end user interface for Urbit."
+++
**Landscape** is a graphical web interface for your

View File

@ -3,6 +3,13 @@ title = "Leg"
[extra]
category = "hoon-nock"
[glossaryEntry.leg]
name = "leg"
symbol = ""
usage = "hoon-nock"
desc = "A piece of data in the subject, one of the two types of wing."
+++
A **leg** is a piece of data in the [subject](/reference/glossary/subject). Legs

View File

@ -3,6 +3,13 @@ title = "List"
[extra]
category = "hoon-nock"
[glossaryEntry.list]
name = "list"
symbol = ""
usage = "hoon-nock"
desc = "A list is a basic datastructure in Hoon, similar to an array in other languages."
+++
A **list** is a basic data structure in [Hoon](/reference/glossary/hoon),

View File

@ -3,6 +3,13 @@ title = "Loobean"
[extra]
category = "hoon-nock"
[glossaryEntry.loobean]
name = "loobean"
symbol = ""
usage = "hoon-nock"
desc = "Like boolean but 0 is True and 1 is False."
+++
*Boolean* is 1=True, 0=False. In [Hoon](/reference/glossary/hoon) and

View File

@ -1,7 +1,15 @@
+++
title = "Lull"
[extra]
category = "arvo"
[glossaryEntry.lull]
name = "lull"
symbol = ""
usage = "arvo"
desc = "Data types and interface definitions for vanes."
+++
**`lull.hoon`** is a library in the `/sys` folder of the `%base`

View File

@ -3,6 +3,13 @@ title = "Mark"
[extra]
category = "arvo"
[glossaryEntry.mark]
name = "mark"
symbol = ""
usage = "arvo"
desc = "A file type in the Clay filesystem."
+++
A **mark** is a file-type in the [Clay](/reference/glossary/clay) filesystem. A

View File

@ -3,6 +3,13 @@ title = "Metals"
[extra]
category = "hoon-nock"
[glossaryEntry.metals]
name = "metals"
symbol = ""
usage = "hoon-nock"
desc = "Core type variance."
+++
"Variance" describes the four possible relationships that type rules for

View File

@ -1,7 +1,15 @@
+++
title = "Mold"
[extra]
category = "hoon-nock"
[glossaryEntry.mold]
name = "mold"
symbol = ""
usage = "hoon-nock"
desc = "Data types in Hoon."
+++
**Molds** are data types in [Hoon](/reference/glossary/hoon).

View File

@ -1,7 +1,15 @@
+++
title = "Monad"
[extra]
category = "hoon-nock"
[glossaryEntry.monad]
name = "monad"
symbol = ""
usage = "hoon-nock"
desc = "A software design pattern in functional languages where functions wrap results in types that require additional computation."
+++
In functional programming languages, a **monad** is a pattern where functions

View File

@ -1,7 +1,15 @@
+++
title = "Moon"
[extra]
category = "arvo"
[glossaryEntry.moon]
name = "moon"
symbol = ""
usage = "arvo"
desc = "A kind of ship on the Arvo network, issued by planets."
+++
A **moon** is a kind of [ship](/reference/glossary/ship) on the [Arvo](/reference/glossary/arvo) network. Moons

View File

@ -1,7 +1,15 @@
+++
title = "Move"
[extra]
category = "arvo"
[glossaryEntry.move]
name = "move"
symbol = ""
usage = "arvo"
desc = "A kernel-level inter-vane message sent over ducts by Arvo."
+++
**Moves** are kernel-level inter-vane messages sent over

View File

@ -1,6 +1,12 @@
+++
title = "Nock"
[glossaryEntry.nock]
name = "nock"
symbol = ""
usage = "hoon-nock"
desc = "A purely functional typeless programming language, and Urbit's lowest-level language."
+++
**Nock** is a purely functional typeless programming language and acts as

View File

@ -3,6 +3,13 @@ title = "Noun"
[extra]
category = "hoon-nock"
[glossaryEntry.noun]
name = "noun"
symbol = ""
usage = "hoon-nock"
desc = "An atom or a cell. The basic data structure in Nock."
+++
A **noun** is an [atom](/reference/glossary/atom) or a cell, which is an ordered pair of nouns. This definition is recursive and ultimately means that a noun is a finite size binary tree whose leaves are atoms. A noun is the basic data structure in [Nock](/reference/glossary/nock).

View File

@ -3,6 +3,13 @@ title = "~"
[extra]
category = "hoon-nock"
[glossaryEntry."~"]
name = "~"
symbol = ""
usage = "hoon-nock"
desc = "The ~ symbol means null in Hoon."
+++
The **`~`** symbol ("sig") represents *null* in

View File

@ -3,6 +3,13 @@ title = "OTA Updates"
[extra]
category = "arvo"
[glossaryEntry.OTA]
name = "OTA"
symbol = ""
usage = "arvo"
desc = "Ships have the ability to upgrade themselves over the air. They receive updates from a sponsor star or galaxy."
+++
[Ships](/reference/glossary/ship) have the ability to upgrade themselves **over

View File

@ -3,6 +3,13 @@ title = "Path Prefix"
[extra]
category = "arvo"
[glossaryEntry."path prefix"]
name = "path prefix"
symbol = ""
usage = "arvo"
desc = "The first three elements of a Clay file path denoting ship, desk and case (revision number)."
+++
A **path prefix** is the first three elements of a

View File

@ -3,6 +3,13 @@ title = "Path"
[extra]
category = "hoon-nock"
[glossaryEntry.path]
name = "path"
symbol = ""
usage = "hoon-nock"
desc = "A data type in Hoon that resembles a file path and is a list of @ta text strings."
+++
A **path** is a data type in [Hoon](/reference/glossary/hoon). It is a

View File

@ -3,6 +3,13 @@ title = "@p"
[extra]
category = "hoon-nock"
[glossaryEntry."@p"]
name = "@p"
symbol = ""
usage = "hoon-nock"
desc = "An atom aura in Hoon used for ship names like ~sampel-palnet."
+++
A **`@p`** (pronounced "pat P") is an [atom](/reference/glossary/atom)

View File

@ -3,6 +3,13 @@ title = "Payload"
[extra]
category = "hoon-nock"
[glossaryEntry.payload]
name = "payload"
symbol = ""
usage = "payload"
desc = "The set of data needed to run computations in a core."
+++
A **payload** is the [subject](/reference/glossary/subject) of a

View File

@ -3,6 +3,13 @@ title = "Peek"
[extra]
category = "hoon-nock"
[glossaryEntry.peek]
name = "peek"
symbol = ""
usage = "hoon-nock"
desc = "A scry; a read-only request to the namespace of a local vane or agent."
+++
**Peek** is another word for a [scry](/reference/glossary/scry), which is a

View File

@ -3,6 +3,13 @@ title = "pH"
[extra]
category = "arvo"
[glossaryEntry.pH]
name = "pH"
symbol = ""
usage = "arvo"
desc = "A Gall app that is a framework for fleet testing using Aqua."
+++
**pH** is a framework for writing [Aqua](/reference/glossary/aqua) test [threads](/reference/glossary/thread). pH comes with a number of default tests, as well as tools for building and executing custom tests.

View File

@ -1,7 +1,15 @@
+++
title = "Pier"
[extra]
category = "arvo"
[glossaryEntry.pier]
name = "pier"
symbol = ""
usage = "arvo"
desc = "The stored state of an Urbit ship on disk."
+++
A **pier** is the directory which contains the state of an Urbit

View File

@ -3,6 +3,13 @@ title = "Pill"
[extra]
category = "arvo"
[glossaryEntry.pill]
name = "pill"
symbol = ""
usage = "arvo"
desc = "A bootstrap sequence to launch an Urbit ship for the first time."
+++
A **Pill** is a bootstrap sequence to launch an Urbit ship for the first time. The [event log](/reference/glossary/eventlog) begins with the bootstrap sequence of a Pill.

View File

@ -3,6 +3,13 @@ title = "Planet"
[extra]
category = "arvo"
[glossaryEntry.planet]
name = "planet"
symbol = ""
usage = "arvo"
desc = "An Urbit identity at the bottom of the identity hierarchy. Issued by stars."
+++
A **planet** is can be one of two related things:

View File

@ -3,6 +3,13 @@ title = "Poke"
[extra]
category = "arvo"
[glossaryEntry.poke]
name = "poke"
symbol = ""
usage = "arvo"
desc = "A one-off request/action passed from one Gall agent to another."
+++
A **poke** is a kind of `note` passed from one

View File

@ -3,6 +3,13 @@ title = "Proxies"
[extra]
category = "azimuth"
[glossaryEntry.proxies]
name = "proxies"
symbol = ""
usage = "azimuth"
desc = "Ethereum addresses in the Urbit HD Wallet that have limited powers."
+++
**Proxies** are Ethereum addresses in the [Urbit ID](/reference/glossary/azimuth)

View File

@ -3,6 +3,13 @@ title = "Replay"
[extra]
category = "arvo"
[glossaryEntry.replay]
name = "replay"
symbol = ""
usage = "arvo"
desc = "How Vere computes the state of a ship's Arvo instance from an event log."
+++
**Replay** is how [Vere](/reference/glossary/vere) computes the state of a ship's [Arvo](/reference/glossary/arvo) instance from the [event log](/reference/glossary/eventlog) after a ship reboots. In order to avoid replaying the entire event log, Replay takes a snapshot of the current state of the ship approximately once every ten minutes. Then when a ship reboots, Replay loads the most recent snapshot and replays events from the event log up to the most recent event.

View File

@ -1,7 +1,15 @@
+++
title = "Roller"
[extra]
category = "azimuth"
[glossaryEntry.roller]
name = "roller"
symbol = ""
usage = "azimuth"
desc = "A service that batches L2 transactions and submits them to Azimuth on the Ethereum blockchain"
+++
A **roller** is a service that can be run on a [ship](/reference/glossary/ship)

View File

@ -1,7 +1,15 @@
+++
title = "Rune"
[extra]
category = "hoon-nock"
[glossaryEntry.rune]
name = "rune"
symbol = ""
usage = "hoon-nock"
desc = "Runes are the fundamental operators in the Hoon language."
+++
**Runes** are the fundamental operators/functions in the

View File

@ -3,6 +3,13 @@ title = "Runtime"
[extra]
category = "arvo"
[glossaryEntry.runtime]
name = "runtime"
symbol = ""
usage = "arvo"
desc = "The binary you run your ship with in the terminal."
+++
The **runtime** is the `urbit` or `urbit.exe` binary you run your ship with in

View File

@ -3,6 +3,13 @@ title = "Sail"
[extra]
category = "arvo"
[glossaryEntry.sail]
name = "sail"
symbol = ""
usage = "arvo"
desc = "A domain specific language for Hoon. Expresses XML data structures to render webpages."
+++
**Sail** is a domain specific language for Hoon.

View File

@ -3,6 +3,13 @@ title = "Sample"
[extra]
category = "hoon-nock"
[glossaryEntry.sample]
name = "sample"
symbol = ""
usage = "hoon-nock"
desc = "The argument taken by a function in Hoon."
+++
The **sample** is the argument taken by a function (specifically a

View File

@ -3,6 +3,13 @@ title = "Scry"
[extra]
category = "hoon-nock"
[glossaryEntry.scry]
name = "scry"
symbol = ""
usage = "hoon-nock"
desc = "A scry is a read-only request to the namespace of a local vane or agent."
+++
A **scry** is a read-only request to the namespace of a local

View File

@ -3,6 +3,13 @@ title = "Senate"
[extra]
category = "azimuth"
[glossaryEntry.senate]
name = "senate"
symbol = ""
usage = "azimuth"
desc = "The body of all galaxies that govern Azimuth by majority vote."
+++
The **Galactic Senate** is the body of all [galaxies](/reference/glossary/galaxy) that governs

View File

@ -3,6 +3,13 @@ title = "Ship"
[extra]
category = "arvo"
[glossaryEntry.ship]
name = "ship"
symbol = ""
usage = "arvo"
desc = "An instance of an Urbit computer that is a peer on the network."
+++
A **ship** is an instance of an Urbit computer that is a peer on the [Arvo](/reference/glossary/arvo) network.

Some files were not shown because too many files have changed in this diff Show More