on master help sign in
Add glossary to documentation, navigation, and site search (#317)
1adb7bfmatildepark
content/docs+1−1

Submodule changed.

static/runes.js → static/glossary.jsrenamed+374−1
@@ -1,4 +1,5 @@
1−var runes = [
1+var glossary = [
2+ // runes
2 {
3 {
3 "name": "dot",
4 "name": "dot",
4 "symbol": ".",
5 "symbol": ".",
@@ -978,5 +979,377 @@ var runes = [
978 "usage": "Ford",
979 "usage": "Ford",
979 "link": "/docs/tutorials/arvo/ford/#fascen",
980 "link": "/docs/tutorials/arvo/ford/#fascen",
980 "desc": "Ford rune. Propagate extra arguments into renderers."
981 "desc": "Ford rune. Propagate extra arguments into renderers."
982+ },
983+ // glossary starts here
984+ {
985+ "name": "ames",
986+ "symbol": "",
987+ "usage": "Arvo",
988+ "link": "/docs/glossary/ames/",
989+ "desc": "The name of the Urbit network and the vane that communicates over it."
990+ },
991+ {
992+ "name": "aqua",
993+ "symbol": "",
994+ "usage": "Arvo",
995+ "link": "/docs/glossary/aqua/",
996+ "desc": "A virtualization tool whose primary purpose is testing and development."
997+ },
998+ {
999+ "name": "arvo",
1000+ "symbol": "",
1001+ "usage": "Arvo",
1002+ "link": "/docs/glossary/arvo/",
1003+ "desc": "The Urbit operating system and kernel."
1004+ },
1005+ {
1006+ "name": "atom",
1007+ "symbol": "",
1008+ "usage": "hoon-nock",
1009+ "link": "/docs/glossary/atom/",
1010+ "desc": "The most basic data type in Hoon and Nock, a non-negative integer of any size."
1011+ },
1012+ {
1013+ "name": "azimuth",
1014+ "symbol": "",
1015+ "usage": "azimuth",
1016+ "link": "/docs/glossary/azimuth/",
1017+ "desc": "Urbit's identity layer, built as a suite of smart contracts on the Ethereum blockchain."
1018+ },
1019+ {
1020+ "name": "behn",
1021+ "symbol": "",
1022+ "usage": "arvo",
1023+ "link": "/docs/glossary/behn/",
1024+ "desc": "Timing vane of Arvo. Allows for applications to schedule events."
1025+ },
1026+ {
1027+ "name": "bridge",
1028+ "symbol": "",
1029+ "usage": "azimuth",
1030+ "link": "/docs/glossary/bridge/",
1031+ "desc": "A client made for interacting with Azimuth."
1032+ },
1033+ {
1034+ "name": "censure",
1035+ "symbol": "",
1036+ "usage": "azimuth",
1037+ "link": "/docs/glossary/censure/",
1038+ "desc": "Allows stars and galaxies to assign negative reputation information to other points of equal or lower rank."
1039+ },
1040+ {
1041+ "name": "ceremony",
1042+ "symbol": "",
1043+ "usage": "azimuth",
1044+ "link": "/docs/glossary/ceremony/",
1045+ "desc": "The event that transferred custody of Azimuth identities from a centralized ledger to the Ethereum blockchain."
1046+ },
1047+ {
1048+ "name": "chat",
1049+ "symbol": "",
1050+ "usage": "arvo",
1051+ "link": "/docs/glossary/chat/",
1052+ "desc": "An application that handles communication between ships."
1053+ },
1054+ {
1055+ "name": "claims",
1056+ "symbol": "",
1057+ "usage": "azimuth",
1058+ "link": "/docs/glossary/claims/",
1059+ "desc": "Allows Urbit identities to make publicly visible assertions about their owner."
1060+ },
1061+ {
1062+ "name": "clay",
1063+ "symbol": "",
1064+ "usage": "arvo",
1065+ "link": "/docs/glossary/clay/",
1066+ "desc": "The filesystem and typed revision-control vane of Arvo."
1067+ },
1068+ {
1069+ "name": "comet",
1070+ "symbol": "",
1071+ "usage": "arvo",
1072+ "link": "/docs/glossary/comet/",
1073+ "desc": "A type of ship on the Urbit network."
1074+ },
1075+ {
1076+ "name": "delegated sending",
1077+ "symbol": "",
1078+ "usage": "azimuth",
1079+ "link": "/docs/glossary/delegated-sending/",
1080+ "desc": "A method by which a star can distribute planets, assigning them to a delegated planet."
1081+ },
1082+ {
1083+ "name": "desk",
1084+ "symbol": "",
1085+ "usage": "arvo",
1086+ "link": "/docs/glossary/desk/",
1087+ "desc": "A revision-controlled branch of the Clay filesystem."
1088+ },
1089+ {
1090+ "name": "dill",
1091+ "symbol": "",
1092+ "usage": "arvo",
1093+ "link": "/docs/glossary/dill/",
1094+ "desc": "The terminal-driver vane of Arvo."
1095+ },
1096+ {
1097+ "name": "document vote",
1098+ "symbol": "",
1099+ "usage": "azimuth",
1100+ "link": "/docs/glossary/docvote/",
1101+ "desc": "A voting action taken by the Galactic Senate over Azimuth."
1102+ },
1103+ {
1104+ "name": "ecliptic",
1105+ "symbol": "",
1106+ "usage": "azimuth",
1107+ "link": "/docs/glossary/ecliptic/",
1108+ "desc": "A contract that sets the rules for what is and is not possible on Azimuth."
1109+ },
1110+ {
1111+ "name": "event log",
1112+ "symbol": "",
1113+ "usage": "arvo",
1114+ "link": "/docs/glossary/eventlog/",
1115+ "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."
1116+ },
1117+ {
1118+ "name": "eyre",
1119+ "symbol": "",
1120+ "usage": "arvo",
1121+ "link": "/docs/glossary/eyre/",
1122+ "desc": "The web-server vane of Arvo. Handles all HTTP messages."
1123+ },
1124+ {
1125+ "name": "ford",
1126+ "symbol": "",
1127+ "usage": "arvo",
1128+ "link": "/docs/glossary/ford/",
1129+ "desc": "The build-system vane of Arvo."
1130+ },
1131+ {
1132+ "name": "galaxy",
1133+ "symbol": "",
1134+ "usage": "arvo",
1135+ "link": "/docs/glossary/galaxy/",
1136+ "desc": "8-bit Urbit addresses, sitting at the top of the identity hierarchy, that vote on network changes and act as infrastructural nodes."
1137+ },
1138+ {
1139+ "name": "gall",
1140+ "symbol": "",
1141+ "usage": "arvo",
1142+ "link": "/docs/glossary/gall/",
1143+ "desc": "The application-management vane of Arvo. Userspace applications are stopped, started, and sandboxed by Gall."
1144+ },
1145+ {
1146+ "name": "hall",
1147+ "symbol": "",
1148+ "usage": "arvo",
1149+ "link": "/docs/glossary/hall/",
1150+ "desc": "The former messaging protocol for Arvo, no longer in use."
1151+ },
1152+ {
1153+ "name": "hd wallet",
1154+ "symbol": "",
1155+ "usage": "azimuth",
1156+ "link": "/docs/glossary/hdwallet",
1157+ "desc": "A system of related Ethereum addresses that store and manage an Urbit identity, each a proxy with different permissions over its management."
1158+ },
1159+ {
1160+ "name": "hoon",
1161+ "symbol": "",
1162+ "usage": "arvo",
1163+ "link": "/docs/glossary/hoon/",
1164+ "desc": "A strict, higher-order typed functional programming language that compiles to Nock."
1165+ },
1166+ {
1167+ "name": "invite tree",
1168+ "symbol": "",
1169+ "usage": "azimuth",
1170+ "link": "/docs/glossary/invitetree/",
1171+ "desc": "The state stored by the delegated sending contract, recording who gave a planet to whom under a specific star."
1172+ },
1173+ {
1174+ "name": "jacque",
1175+ "symbol": "",
1176+ "usage": "arvo",
1177+ "link": "/docs/glossary/jacque/",
1178+ "desc": "A Nock interpreter written in Java, in active development as a worker process for Vere."
1179+ },
1180+ {
1181+ "name": "keyfile",
1182+ "symbol": "",
1183+ "usage": "azimuth",
1184+ "link": "/docs/glossary/keyfile/",
1185+ "desc": "A piece of information used to associate a ship with an Urbit identity."
1186+ },
1187+ {
1188+ "name": "landscape",
1189+ "symbol": "",
1190+ "usage": "arvo",
1191+ "link": "/docs/glossary/landscape/",
1192+ "desc": "A front-end user interface for Urbit."
1193+ },
1194+ {
1195+ "name": "mark",
1196+ "symbol": "",
1197+ "usage": "arvo",
1198+ "link": "/docs/glossary/mark/",
1199+ "desc": "A file type in the Clay filesystem."
1200+ },
1201+ {
1202+ "name": "modulo",
1203+ "symbol": "",
1204+ "usage": "arvo",
1205+ "link": "/docs/glossary/modulo/",
1206+ "desc": "The name of the home screen interface for Urbit within Landscape."
1207+ },
1208+ {
1209+ "name": "moon",
1210+ "symbol": "",
1211+ "usage": "arvo",
1212+ "link": "/docs/glossary/moon/",
1213+ "desc": "A kind of ship on the Arvo network, issued by planets."
1214+ },
1215+ {
1216+ "name": "nock",
1217+ "symbol": "",
1218+ "usage": "hoon-nock",
1219+ "link": "/docs/glossary/nock/",
1220+ "desc": "A purely functional typeless programming language, and Urbit's lowest-level language."
1221+ },
1222+ {
1223+ "name": "noun",
1224+ "symbol": "",
1225+ "usage": "hoon-nock",
1226+ "link": "/docs/glossary/noun/",
1227+ "desc": "An atom or a cell. The basic data structure in Nock."
1228+ },
1229+ {
1230+ "name": "OTA",
1231+ "symbol": "",
1232+ "usage": "arvo",
1233+ "link": "/docs/glossary/ota-updates/",
1234+ "desc": "Ships have the ability to upgrade themselves over the air. They receive updates from a sponsor star or galaxy."
1235+ },
1236+ {
1237+ "name": "pH",
1238+ "symbol": "",
1239+ "usage": "arvo",
1240+ "link": "/docs/glossary/ph/",
1241+ "desc": "A Gall app that is a framework for fleet testing using Aqua."
1242+ },
1243+ {
1244+ "name": "pill",
1245+ "symbol": "",
1246+ "usage": "arvo",
1247+ "link": "/docs/glossary/pill/",
1248+ "desc": "A bootstrap sequence to launch an Urbit ship for the first time."
1249+ },
1250+ {
1251+ "name": "planet",
1252+ "symbol": "",
1253+ "usage": "arvo",
1254+ "link": "/docs/glossary/planet/",
1255+ "desc": "An Urbit identity at the bottom of the identity hierarchy. Issued by stars."
1256+ },
1257+ {
1258+ "name": "proxies",
1259+ "symbol": "",
1260+ "usage": "azimuth",
1261+ "link": "/docs/glossary/proxies/",
1262+ "desc": "Ethereum addresses in the Urbit HD Wallet that have limited powers."
1263+ },
1264+ {
1265+ "name": "replay",
1266+ "symbol": "",
1267+ "usage": "arvo",
1268+ "link": "/docs/glossary/replay/",
1269+ "desc": "How Vere computes the state of a ship's Arvo instance from an event log."
1270+ },
1271+ {
1272+ "name": "sail",
1273+ "symbol": "",
1274+ "usage": "arvo",
1275+ "link": "/docs/glossary/sailudon",
1276+ "desc": "A domain specific language for Hoon. Expresses XML data structures to render webpages."
1277+ },
1278+ {
1279+ "name": "udon",
1280+ "symbol": "",
1281+ "usage": "arvo",
1282+ "link": "/docs/glossary/sailudon",
1283+ "desc": "A domain specific language for Hoon. Similar to Markdown."
1284+ },
1285+ {
1286+ "name": "senate",
1287+ "symbol": "",
1288+ "usage": "azimuth",
1289+ "link": "/docs/glossary/senate/",
1290+ "desc": "The body of all galaxies that govern Azimuth by majority vote."
1291+ },
1292+ {
1293+ "name": "ship",
1294+ "symbol": "",
1295+ "usage": "arvo",
1296+ "link": "/docs/glossary/ship/",
1297+ "desc": "An instance of an Urbit computer that is a peer on the network."
1298+ },
1299+ {
1300+ "name": "arvo.network",
1301+ "symbol": "",
1302+ "usage": "arvo",
1303+ "link": "/docs/glossary/shiparvonetwork/",
1304+ "desc": "A way to connect to a ship via HTTP, using DNS lookup."
1305+ },
1306+ {
1307+ "name": "star",
1308+ "symbol": "",
1309+ "usage": "arvo",
1310+ "link": "/docs/glossary/star/",
1311+ "desc": "An Urbit identity sitting between stars and galaxies in the identity hierarchy. Infrastructural nodes for child planets."
1312+ },
1313+ {
1314+ "name": "sync",
1315+ "symbol": "",
1316+ "usage": "arvo",
1317+ "link": "/docs/glossary/sync/",
1318+ "desc": "<code>|sync</code> sets up synchronization between two Clay desks."
1319+ },
1320+ {
1321+ "name": "talk",
1322+ "symbol": "",
1323+ "usage": "arvo",
1324+ "link": "/docs/glossary/talk/",
1325+ "desc": "Urbit's first user application, sending messages between ships. No longer used, and replaced by Chat."
1326+ },
1327+ {
1328+ "name": "vane",
1329+ "symbol": "",
1330+ "usage": "arvo",
1331+ "link": "/docs/glossary/vane/",
1332+ "desc": "An Arvo kernel module that performs essential system operations."
1333+ },
1334+ {
1335+ "name": "vere",
1336+ "symbol": "",
1337+ "usage": "arvo",
1338+ "link": "/docs/glossary/vere/",
1339+ "desc": "The Nock runtime environment and Urbit virtual machine, running on Unix."
1340+ },
1341+ {
1342+ "name": "vote",
1343+ "symbol": "",
1344+ "usage": "azimuth",
1345+ "link": "/docs/glossary/voting/",
1346+ "desc": "Voting is a power available to galaxies in their capacities as members of the Galactic Senate."
1347+ },
1348+ {
1349+ "name": "wallet generator",
1350+ "symbol": "",
1351+ "usage": "azimuth",
1352+ "link": "/docs/glossary/wallet-generator/",
1353+ "desc": "Generates an Urbit HD wallet."
981 }
1354 }
982 ]
1355 ]
static/scripts.js+12−5
@@ -272,13 +272,20 @@ function initSearch() {
272 return;
272 return;
273 }
273 }
274
274
275− for (let rune of runes) {
275+ for (let entry of glossary) {
276− if (rune.symbol === term) {
276+ if (entry.symbol === term) {
277 glossaryResults.style.display="block";
277 glossaryResults.style.display="block";
278 glossaryResultsItem.innerHTML = `
278 glossaryResultsItem.innerHTML = `
279− <a href="${rune.link}"><h3 class="black"><code class="red3 mr1">${rune.symbol}</code> ${rune.name}</h3>
279+ <a href="${entry.link}"><h3 class="black"><code class="pa0 red3 mr1">${entry.symbol}</code>${entry.name}</h3>
280− <p class="black">${rune.desc}</p>
280+ <p class="black">${entry.desc}</p>
281− <span class="db tr black fw5" style="font-family: 'Inter UI', sans-serif;">Read more in Documentation -></span></a>
281+ <span class="db tr black fw5 mb3" style="font-family: 'Inter UI', sans-serif;">Read more in Documentation -></span></a>
282+ `
283+ } else if (entry.name === term.toLowerCase()) {
284+ glossaryResults.style.display="block";
285+ glossaryResultsItem.innerHTML = `
286+ <a href="${entry.link}"><h3 class="black">${entry.name}</h3>
287+ <p class="black">${entry.desc}</p>
288+ <span class="db tr black fw5 mb3" style="font-family: 'Inter UI', sans-serif;">Read more in Glossary -></span></a>
282 `
289 `
283 }
290 }
284 }
291 }
templates/base.html+1−1
@@ -62,7 +62,7 @@
62 {% block content %}
62 {% block content %}
63 {% endblock content %}
63 {% endblock content %}
64 {% if config.build_search_index %}
64 {% if config.build_search_index %}
65− <script type="text/javascript" src="{{ get_url(path="runes.js") | safe }}"></script>
65+ <script type="text/javascript" src="{{ get_url(path="glossary.js") | safe }}"></script>
66 <script type="text/javascript" src="{{ get_url(path="elasticlunr.min.js") | safe }}"></script>
66 <script type="text/javascript" src="{{ get_url(path="elasticlunr.min.js") | safe }}"></script>
67 <script type="text/javascript" src="{{ get_url(path="search_index.en.js") | safe }}"></script>
67 <script type="text/javascript" src="{{ get_url(path="search_index.en.js") | safe }}"></script>
68 <script src="https://unpkg.com/popper.js@1"></script>
68 <script src="https://unpkg.com/popper.js@1"></script>
templates/partials/navigation-docs.html+21
@@ -10,10 +10,22 @@
10 <span id="search-icon" class="f3 gray3">⚲</span><span class="ml3 gray2">Search</span>
10 <span id="search-icon" class="f3 gray3">⚲</span><span class="ml3 gray2">Search</span>
11 </button>
11 </button>
12 <ul class="lh-copy">
12 <ul class="lh-copy">
13+ <li class="ml2 mt1"><a href="/using/install">Install -> </a></li>
14+ <li class="ml2 mt1"><a href="/using/operations/">Operations Manual -></a></li>
15+ <li class="ml2 mt1 mb4"><a href="/using/develop/">Developer's Guide -></a></li>
13 {% block menu %}
16 {% block menu %}
14 {% set index = get_section(path="docs/_index.md") %}
17 {% set index = get_section(path="docs/_index.md") %}
15 {% for s in index.subsections %}
18 {% for s in index.subsections %}
16 {% set subsection = get_section(path=s) %}
19 {% set subsection = get_section(path=s) %}
20+ {% if subsection.extra.nav %}
21+ <li class="ml3 mt1"><a
22+ {% if current_url == subsection.permalink %}
23+ class="fw6"
24+ {% endif %}
25+ href="{{ subsection.permalink }}">
26+ {{ subsection.title }}
27+ </a></li>
28+ {% else %}
17 <details {% if current_url is containing(subsection.path) %}
29 <details {% if current_url is containing(subsection.path) %}
18 open
30 open
19 {% endif %}
31 {% endif %}
@@ -71,6 +83,7 @@
71 {% endfor %}
83 {% endfor %}
72 {% endif %}
84 {% endif %}
73 </details>
85 </details>
86+ {% endif %}
74 {% endfor %}
87 {% endfor %}
75 {% endblock menu %}
88 {% endblock menu %}
76 </ul>
89 </ul>
@@ -84,9 +97,16 @@
84 </a>
97 </a>
85 <select class="db mt4 pa2 b--black ba br0 mw4 f6 fw5" id="docsSelect" style="text-indent: 0.725rem;">
98 <select class="db mt4 pa2 b--black ba br0 mw4 f6 fw5" id="docsSelect" style="text-indent: 0.725rem;">
86 <option>Navigation ↓</option>
99 <option>Navigation ↓</option>
100+ <option> </option>
101+ <option value="https://urbit.org/using/install">Install</option>
102+ <option value="https://urbit.org/using/operations/">Operations Manual</option>
103+ <option value="https://urbit.org/using/develop">Developer's Guide</option>
87 {% set index = get_section(path="docs/_index.md") %}
104 {% set index = get_section(path="docs/_index.md") %}
88 {% for s in index.subsections %}
105 {% for s in index.subsections %}
89 {% set subsection = get_section(path=s) %}
106 {% set subsection = get_section(path=s) %}
107+ {% if subsection.extra.nav %}
108+ <option value="{{ subsection.permalink }}">{{ subsection.title }}</option>
109+ {% else %}
90 <option> </option>
110 <option> </option>
91 <option>{{ subsection.title }}</option>
111 <option>{{ subsection.title }}</option>
92 <option>---</option>
112 <option>---</option>
@@ -117,6 +137,7 @@
117 {% endif %}
137 {% endif %}
118 {% endfor %}
138 {% endfor %}
119 {% endif %}
139 {% endif %}
140+ {% endif %}
120 {% endfor %}
141 {% endfor %}
121 </select>
142 </select>
122 <button id="js-search-window-toggle" class="mt4 mb4 dn db-m db-l db-xl" type="button" style="outline:none">
143 <button id="js-search-window-toggle" class="mt4 mb4 dn db-m db-l db-xl" type="button" style="outline:none">
templates/sections/docs/glossary.htmlnew file+57
@@ -0,0 +1,57 @@
1+{% extends "base.html" %}
2+{% block title %}
3+ <meta name="og:title" content="{{ section.title }} - {{ config.title }}">
4+ <title>{{ section.title }} - {{ config.title }}</title>
5+{% endblock title %}
6+
7+{% block description %}
8+ <meta name="og:description" content="From the Urbit documentation.">
9+ <meta name="description" content="From the Urbit documentation.">
10+{% endblock description %}
11+
12+{% block image %}
13+ <meta name="twitter:image" content="https://media.urbit.org/logo/urbit-logo-card.png">
14+{% endblock image %}
15+
16+{% block content %}
17+<!-- header -->
18+<!-- content -->
19+{% include "partials/navigation-docs.html" %}
20+<article class="mt4 mb6 full c4-11-lg">
21+<!-- header -->
22+<h1>{{ section.title }}</h1>
23+<!-- body -->
24+
25+<div class="measure-wide mb4">
26+{{ section.content | safe }}
27+
28+</div>
29+
30+{% set terms = get_section(path="docs/glossary/_index.md") %}
31+{% set arvoTerms = terms.pages | filter(attribute="extra.category", value="arvo") | sort(attribute="title") %}
32+{% set azimuthTerms = terms.pages | filter(attribute="extra.category", value="azimuth") | sort(attribute="title") %}
33+{% set hoonNockTerms = terms.pages | filter(attribute="extra.category", value="hoon-nock") | sort(attribute="title") %}
34+<div class="flex flex-wrap justify-between">
35+ <div class="mt0 w-100 w-50-l w-30-xl"><a class="fw6" href="/docs/glossary/arvo/">Arvo</a>
36+ <p>The Urbit OS.</p>
37+ {% for term in arvoTerms %}
38+ <li class="list mb1 mt1"><a href="{{term.permalink}}">{{ term.title }}</a></li>
39+ {% endfor %}
40+ </div>
41+ <div class="mt4 mt0-l mt0-xl w-100 w-50-l w-30-xl">
42+ <a class="fw6" href="/docs/glossary/azimuth">Azimuth</a>
43+ <p>The Urbit identity layer.</p>
44+ {% for term in azimuthTerms %}
45+ <li class="list mb1 mt1"><a href="{{term.permalink}}">{{ term.title }}</a></li>
46+ {% endfor %}
47+ </div>
48+
49+ <div class="mt4 mt0-l mt0-xl w-100 w-50-l w-40-xl">
50+ <a class="fw6" href="/docs/glossary/hoon">Hoon</a> <span class="fw6">+</span> <a class="fw6" href="/docs/glossary/nock">Nock</a>
51+ <p>Hoon is Urbit's high-level programming language. It compiles to Nock, Urbit's low-level language.</p>
52+ {% for term in hoonNockTerms %}
53+ <li class="list mb1 mt1"><a href="{{term.permalink}}">{{ term.title }}</a></li>
54+ {% endfor %}
55+ </div>
56+</div>
57+{% endblock content %}