on master help sign in
Support latest version of zola (#588)

* update zola config to support 0.13+ * update author key in base * Fix media path collision - also add media post template * add helper scripts * add missing scheme syntax for Nock docs * fix syntax lang tag * fix getting-started path collisions * Use zola 0.13.0 to build on Netlify Co-authored-by: tomholford <tomholford@users.noreply.github.com>

commit3a5c9e471231245c8cf1ca5afd78823f60a34f85 authortomholford <16504501+tomholford@users.noreply.github.com> dateTue 13 Apr 2021, 07:30 (6 years ago) parent39cf887
26 files changed+927−335
bin/build+1 bin/start+1 config.toml+12−21 content/faq.md+2−2 content/getting-started.md−214 content/getting-started/_index.md+211−1 content/getting-started/planet.md+1−2 content/media.md−4 content/media/_index.md+3−1 content/reset.md+3−3 content/understanding-urbit/interface.md+1−1 content/using/_index.md+1−1 content/using/id/guide-to-breaches.md+3−3 content/using/id/using-bridge.md+2−2 content/using/os/getting-started.md+1−1 content/using/os/ship-troubleshooting.md+1−1 content/using/os/stars-and-galaxies.md+2−2 content/using/running/_index.md+1−1 content/using/running/hosting.md+2−2 netlify.toml+3−3 syntaxes/scheme.sublime-syntax+566 templates/base.html+1−1 templates/getting-started/index.html+41 templates/media/post.html+67 templates/page/getting_started.html−68 templates/page_indiced.html+1−1
bin/buildnew file+1
@@ -0,0 +1 @@
1+zola build
bin/startnew file+1
@@ -0,0 +1 @@
1+zola serve
config.toml+12−21
@@ -1,41 +1,32 @@
1+# See: https://www.getzola.org/documentation/getting-started/configuration/
12# Used in RSS by default
23title = "Urbit"
34description = "Urbit is a personal server built from scratch."
4−
55# The default language, used in RSS
66default_language = "en"
7−
87# The URL the site will be built for
98base_url = "https://urbit.org"
10−
119# Whether to automatically compile all Sass files in the sass directory
1210compile_sass = true
13−
1411# Whether to generate a RSS feed automatically
15−generate_rss = true
12+generate_feed = true
1613
14+[markdown]
15+# A list of directories used to search for additional `.sublime-syntax` files.
16+# TODO: syntax highlighting is currently broken on 0.13.0, but works on zola@next
17+# see: https://github.com/getzola/zola/issues/1309
18+extra_syntaxes = ["syntaxes"]
1719# Whether to do syntax highlighting
18−# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
1920highlight_code = true
20−extra_syntaxes = ["syntaxes"]
21+# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
2122highlight_theme = "demain"
2223
24+[slugify]
2325# Whether to build a search index to be used later on by a JavaScript library
2426build_search_index = true
2527
26−# The taxonomies to be rendered for that site and their configuration
27−# Example:
28−# taxonomies = [
29−# {name = "tags", rss = true}, # each tag will have its own RSS feed
30−# {name = "categories", paginate_by = 5}, # 5 items per page for a term
31−# {name = "authors"}, # Basic definition: no RSS or pagination
32−# ]
33−#
34−
35−
28+# You can put any kind of data here. The data
29+# will be accessible in all templates
3630[extra]
37−
31+author = "urbit.org"
3832docs_number_chapters = true
39−
40−[extra.author]
41−name = "urbit.org"
content/faq.md+2−2
@@ -25,7 +25,7 @@ Looking to the future, Tlon has plans to begin working to make Urbit secure agai
2525
2626### How can I contribute to Urbit? {#contribute}
2727
28−We encourage outside contributors to become a part of the project. The best way to do this is to check out [Urbit](https://github.com/urbit) on GitHub, look at the pinned repositories, and check out our [Contributing](https://urbit.org/docs/getting-started/contributing/) guide. After you've gotten familiar with the system, feel free to open issues and make pull requests.
28+We encourage outside contributors to become a part of the project. The best way to do this is to check out [Urbit](https://github.com/urbit) on GitHub, look at the pinned repositories, and check out our [Contributing](https://urbit.org/docs/getting-started/develop) guide. After you've gotten familiar with the system, feel free to open issues and make pull requests.
2929
3030### Who is building Urbit? {#who-builds-urbit}
3131
@@ -246,7 +246,7 @@ Yes. It would be annoying, but Urbit ID / [Azimuth](@/docs/glossary/azimuth.md)
246246
247247### How do I install Urbit OS? {#install-urbit-os}
248248
249−Check out our guides [here](@/getting-started.md).
249+Check out our guides [here](@/getting-started/_index.md).
250250
251251### How do I use Urbit OS? {#use-urbit-os}
252252
content/getting-started.mddeleted−214
@@ -1,214 +0,0 @@
1−+++
2−title = "Getting Started"
3−weight = 1
4−description = "How to install Urbit."
5−template = "page_indiced.html"
6−aliases = ["/docs/getting-started/"]
7−+++
8−
9−The price of using other platforms is your data and its security. There's a reason they're free to use.
10−
11−The price of using Urbit is your own responsibility — you must run it yourself (or pay someone to run it for you).
12−
13−It's easy and it keeps getting easier.
14−
15−There are currently two ways to run Urbit:
16−
17−If you use Mac or Linux and are not afraid of a few terminal commands, we recommend you run it yourself. That is the aim of this guide.
18−
19−If you run Windows or just want to give it a shot without worrying about the gritty bits, you may want to consider a [hosting provider](@/getting-started/planet.md#hosting-providers).
20−
21−## Installing Urbit {#macos-and-linux}
22−
23−Choose the code for your operating system and run the commands in your terminal.
24−
25−<div id="os">
26− <input type="radio" id="macos" name="os" checked>
27− <label for="macos">MacOS</label>
28− <div class="tab">
29−
30−```sh
31−mkdir ~/urbit
32−cd ~/urbit
33−curl -JLO https://urbit.org/install/mac/latest
34−tar zxvf ./darwin.tgz --strip=1
35−~/urbit/urbit
36−```
37− </div>
38−
39− <input type="radio" id="linux" name="os">
40− <label for="linux">Linux</label>
41− <div class="tab">
42−
43−```sh
44−mkdir ~/urbit
45−cd ~/urbit
46−wget --content-disposition https://urbit.org/install/linux64/latest
47−tar zxvf ./linux64.tgz --strip=1
48−~/urbit/urbit
49−```
50−
51−Linux users may need to run this command in another terminal window to access your Urbit on port 80:
52−
53−```sh
54−sudo apt-get install libcap2-bin
55−sudo setcap 'cap_net_bind_service=+ep' ~/urbit/urbit
56−```
57−</div>
58−
59− <input type="radio" id="windows" name="os">
60− <label for="windows">Windows</label>
61− <div class="tab">
62−
63−> Please note that this method of installing Urbit is experimental, and we may not be able to assist you if you encounter issues related to WSL 2.
64−
65−Urbit cannot run on Windows itself, but there is a convenient way to run Linux using the [Windows Subsystem for Linux 2](https://docs.microsoft.com/en-us/windows/wsl/wsl2-install) on Windows 10. Install the Windows Subsystem for Linux 2 and open a Linux terminal in Windows, then follow the Linux installation instructions below. These instructions have been tested and verified for WSL 2 + Ubuntu 18.04 LTS, as demonstrated in `~sitful-hatred`'s step-by-step setup guide [here](https://subject.network/posts/urbit-wsl2/).
66−
67−For performance reasons, do not install Urbit in the mounted Windows volume, but install it in the Linux file system. For example, in your home directory, which can be navigated to by entering `cd ~`.
68−</div>
69−</div>
70−
71−<style>
72− #os {
73− display: flex;
74− flex-wrap: wrap;
75− }
76− #os label {
77− order: -1;
78− padding: .5rem;
79− border-width: 1px 0px 0px 1px;
80− border-style: solid;
81− cursor: pointer;
82− }
83− #os label[for=windows] {
84− border-right-width: 1px;
85− }
86− #os input[type="radio"] {
87− display: none;
88− }
89− #os .tab {
90− display: none;
91− border: 1px solid;
92− padding: 1rem;
93− max-width: 100%;
94− }
95− #os input[type='radio']:checked + label {
96− font-weight: bold;
97− }
98− #os input[type='radio']:checked + label + .tab {
99− display: block;
100−}
101−</style>
102−
103−If successful, you will see a block of output beginning with the line:
104−
105−```
106−Urbit: a personal server operating function
107−```
108−
109−## Booting a Free Identity {#comet}
110−
111−There are two parts to Urbit: an **ID** and an **Operating System**.
112−
113−You have just installed the Operating System on your computer.
114−
115−The **ID** is similar to a username and password on another site. The difference is that the public part (the username) is verified by thousands of people around the world while only you hold the key (the password) to that ID.
116−
117−There are five kinds of Urbit IDs but to get started you only need to know about two: we call them **planets** and **comets**.
118−
119−***
120−
121−**Planets** are scarce (this prevents spamming, among other things) and usually require a price to acquire. This is the recommended way to run Urbit, but it's a bit more involved.
122−
123−A planet name looks like `~sampel-palnet`.
124−
125−[Follow this guide](@/getting-started/planet.md) if you have already acquired a planet.
126−
127−[Find a planet to purchase](@/getting-started/planet.md#purchase)
128−
129−***
130−
131−**Comets** are practically unlimited and free to acquire. At present, these are a great way to try out the network for free.
132−
133−A comet name looks like `~dasres-ragnep-lislyt-ribpyl--mosnyx-bisdem-nidful-marzod`.
134−
135−[Read more about Urbit ID here](/understanding-urbit/urbit-id)
136−
137−
138−***
139−
140−To boot a comet, go into the command line and run the following command from the `urbit` directory you created during [Urbit installation](#installing-urbit):
141−
142−```sh
143−~/urbit/urbit -c mycomet
144−```
145−
146−It may take a while to load the comet (probably only take a few minutes, but it could take longer). This comes along with it being free. When it's done you'll some messages ending like this:
147−
148−```
149−ames: on localhost, UDP 31337.
150−http: live (insecure, public) on 8080
151−http: live ("secure", public) on 8443
152−http: live (insecure, loopback) on 12321
153−~sampel_marzod:dojo>
154−```
155−
156−When your comet is finished booting, you will see `~sampel_marzod:dojo>` (Dojo: the Urbit command line).
157−
158−To exit Urbit, use `Ctrl-D` or enter `|exit` into Dojo.
159−
160−To start your comet up again, run the following from your `urbit` directory (note the lack of `-c` argument):
161−
162−```sh
163−~/urbit/urbit mycomet
164−```
165−
166−## Using Landscape
167−
168−Urbit is an entirely new computer, so by default it drops you into the "dojo," which is its terminal. Like your current computer, it can be used to do just about anything if you know the right commands. You only need to know one command for now.
169−
170−At the moment, the most common way to use Urbit is through a web app named [Landscape](@/docs/glossary/landscape.md), which comes with Urbit. It runs in your browser and provides an interface to Urbit without using the terminal. You need to get the password, or `code`.
171−
172−1. With your Urbit running, look for a line that says something like `http: live (insecure, public) on 80`. The number given is the port that your ship is using. It will probably be 80, but we're just making sure. (Don't worry about the "insecure, public" part — that just means you can access it from your own web browser. It doesn't give anyone else access.)
173−2. If the port given is `80`, simply type `localhost` into your browser's address bar. If the given port is a different number, such as `8080`, you would type `localhost:8080`. You'll be met with a login prompt.
174−3. In the window where you found the port number, type `+code` and press return. Copy-paste the code that appears into the "Access Key" field in the browser, and press continue.
175−4. Once in, take a look around and read the instructions on screen. If you ever get logged out, follow these instructions again.
176−
177−## Next Steps
178−
179−### Updating your comet {#updating}
180−
181−The Urbit application comes with a recent release of the Urbit OS, but automatic updates ("over the air") can be enabled so new binaries aren't necessary for each update. Planets have automatic updates enabled by default, but this is not the case for comets. Many comets are used only once and thrown away, so it would be wasteful to update every single comet as soon as it boots. If you plan to use your comet for more than a quick test, you'll probably want to ensure you're running the latest version of the OS.
182−
183−You can enable updates for your comet by typing `|ota (sein:title our now our) %kids` into Dojo and pressing Enter.
184−
185−```
186−> |ota (sein:title our now our) %kids
187−>=
188−```
189−
190−If you want to make sure you'll get updates, you can check by typing `|ota` with no arguments:
191−
192−```
193−~sampel_marzod:dojo> |ota
194−OTAs enabled from %kids on ~marzod
195−use |ota %disable or |ota ~sponsor %kids to reset it
196−> |ota
197−>=
198−```
199−
200−### Read More about the Dojo {#the-dojo}
201−
202−The dojo is Urbit's command line. You can use it to control your ship, or to execute arbitrary code. Check out the links below for more information.
203−
204−- [Basic Operations](@/using/os/getting-started.md)
205−- [Basic Hoon](/docs/tutorials/hoon/hoon-school/setup)
206−- [Glossary Entry](/docs/glossary/dojo)
207−
208−### Purchase a Permanent Identity {#boot-your-planet}
209−
210−You can continue using this comet indefinitely. There are currently few differences between using a comet-level identity and a planet-level one. However, some groups will not allow comets entry in order to maintain a certain level of quality, and changes may be made in the future that further devalue comets. They will always, however, be able to access the basic functions of the network.
211−
212−A comet also comes with a long and fairly unmemorable name whereas a planet has a short name and a "sigil" (avatar) associated with it that makes it more identifiable on the network. You may notice all this within the first few minutes of using Urbit.
213−
214−[To read instructions on how to purchase and use a planet, visit this page](@/getting-started/planet.md).
content/getting-started/_index.md+211−1
@@ -1,4 +1,214 @@
11+++
22title = "Getting Started"
3−render = false
3+weight = 1
4+description = "How to install Urbit."
5+page_template = "page_indiced.html"
6+template = "getting-started/index.html"
47+++
8+
9+The price of using other platforms is your data and its security. There's a reason they're free to use.
10+
11+The price of using Urbit is your own responsibility — you must run it yourself (or pay someone to run it for you).
12+
13+It's easy and it keeps getting easier.
14+
15+There are currently two ways to run Urbit:
16+
17+If you use Mac or Linux and are not afraid of a few terminal commands, we recommend you run it yourself. That is the aim of this guide.
18+
19+If you run Windows or just want to give it a shot without worrying about the gritty bits, you may want to consider a [hosting provider](@/getting-started/planet.md#hosting-providers).
20+
21+## Installing Urbit {#macos-and-linux}
22+
23+Choose the code for your operating system and run the commands in your terminal.
24+
25+<div id="os">
26+ <input type="radio" id="macos" name="os" checked>
27+ <label for="macos">MacOS</label>
28+ <div class="tab">
29+
30+```sh
31+mkdir ~/urbit
32+cd ~/urbit
33+curl -JLO https://urbit.org/install/mac/latest
34+tar zxvf ./darwin.tgz --strip=1
35+~/urbit/urbit
36+```
37+ </div>
38+
39+ <input type="radio" id="linux" name="os">
40+ <label for="linux">Linux</label>
41+ <div class="tab">
42+
43+```sh
44+mkdir ~/urbit
45+cd ~/urbit
46+wget --content-disposition https://urbit.org/install/linux64/latest
47+tar zxvf ./linux64.tgz --strip=1
48+~/urbit/urbit
49+```
50+
51+Linux users may need to run this command in another terminal window to access your Urbit on port 80:
52+
53+```sh
54+sudo apt-get install libcap2-bin
55+sudo setcap 'cap_net_bind_service=+ep' ~/urbit/urbit
56+```
57+</div>
58+
59+ <input type="radio" id="windows" name="os">
60+ <label for="windows">Windows</label>
61+ <div class="tab">
62+
63+> Please note that this method of installing Urbit is experimental, and we may not be able to assist you if you encounter issues related to WSL 2.
64+
65+Urbit cannot run on Windows itself, but there is a convenient way to run Linux using the [Windows Subsystem for Linux 2](https://docs.microsoft.com/en-us/windows/wsl/wsl2-install) on Windows 10. Install the Windows Subsystem for Linux 2 and open a Linux terminal in Windows, then follow the Linux installation instructions below. These instructions have been tested and verified for WSL 2 + Ubuntu 18.04 LTS, as demonstrated in `~sitful-hatred`'s step-by-step setup guide [here](https://subject.network/posts/urbit-wsl2/).
66+
67+For performance reasons, do not install Urbit in the mounted Windows volume, but install it in the Linux file system. For example, in your home directory, which can be navigated to by entering `cd ~`.
68+</div>
69+</div>
70+
71+<style>
72+ #os {
73+ display: flex;
74+ flex-wrap: wrap;
75+ }
76+ #os label {
77+ order: -1;
78+ padding: .5rem;
79+ border-width: 1px 0px 0px 1px;
80+ border-style: solid;
81+ cursor: pointer;
82+ }
83+ #os label[for=windows] {
84+ border-right-width: 1px;
85+ }
86+ #os input[type="radio"] {
87+ display: none;
88+ }
89+ #os .tab {
90+ display: none;
91+ border: 1px solid;
92+ padding: 1rem;
93+ max-width: 100%;
94+ }
95+ #os input[type='radio']:checked + label {
96+ font-weight: bold;
97+ }
98+ #os input[type='radio']:checked + label + .tab {
99+ display: block;
100+}
101+</style>
102+
103+If successful, you will see a block of output beginning with the line:
104+
105+```
106+Urbit: a personal server operating function
107+```
108+
109+## Booting a Free Identity {#comet}
110+
111+There are two parts to Urbit: an **ID** and an **Operating System**.
112+
113+You have just installed the Operating System on your computer.
114+
115+The **ID** is similar to a username and password on another site. The difference is that the public part (the username) is verified by thousands of people around the world while only you hold the key (the password) to that ID.
116+
117+There are five kinds of Urbit IDs but to get started you only need to know about two: we call them **planets** and **comets**.
118+
119+***
120+
121+**Planets** are scarce (this prevents spamming, among other things) and usually require a price to acquire. This is the recommended way to run Urbit, but it's a bit more involved.
122+
123+A planet name looks like `~sampel-palnet`.
124+
125+[Follow this guide](@/getting-started/planet.md) if you have already acquired a planet.
126+
127+[Find a planet to purchase](@/getting-started/planet.md#purchase)
128+
129+***
130+
131+**Comets** are practically unlimited and free to acquire. At present, these are a great way to try out the network for free.
132+
133+A comet name looks like `~dasres-ragnep-lislyt-ribpyl--mosnyx-bisdem-nidful-marzod`.
134+
135+[Read more about Urbit ID here](/understanding-urbit/urbit-id)
136+
137+
138+***
139+
140+To boot a comet, go into the command line and run the following command from the `urbit` directory you created during [Urbit installation](#installing-urbit):
141+
142+```sh
143+~/urbit/urbit -c mycomet
144+```
145+
146+It may take a while to load the comet (probably only take a few minutes, but it could take longer). This comes along with it being free. When it's done you'll some messages ending like this:
147+
148+```
149+ames: on localhost, UDP 31337.
150+http: live (insecure, public) on 8080
151+http: live ("secure", public) on 8443
152+http: live (insecure, loopback) on 12321
153+~sampel_marzod:dojo>
154+```
155+
156+When your comet is finished booting, you will see `~sampel_marzod:dojo>` (Dojo: the Urbit command line).
157+
158+To exit Urbit, use `Ctrl-D` or enter `|exit` into Dojo.
159+
160+To start your comet up again, run the following from your `urbit` directory (note the lack of `-c` argument):
161+
162+```sh
163+~/urbit/urbit mycomet
164+```
165+
166+## Using Landscape
167+
168+Urbit is an entirely new computer, so by default it drops you into the "dojo," which is its terminal. Like your current computer, it can be used to do just about anything if you know the right commands. You only need to know one command for now.
169+
170+At the moment, the most common way to use Urbit is through a web app named [Landscape](@/docs/glossary/landscape.md), which comes with Urbit. It runs in your browser and provides an interface to Urbit without using the terminal. You need to get the password, or `code`.
171+
172+1. With your Urbit running, look for a line that says something like `http: live (insecure, public) on 80`. The number given is the port that your ship is using. It will probably be 80, but we're just making sure. (Don't worry about the "insecure, public" part — that just means you can access it from your own web browser. It doesn't give anyone else access.)
173+2. If the port given is `80`, simply type `localhost` into your browser's address bar. If the given port is a different number, such as `8080`, you would type `localhost:8080`. You'll be met with a login prompt.
174+3. In the window where you found the port number, type `+code` and press return. Copy-paste the code that appears into the "Access Key" field in the browser, and press continue.
175+4. Once in, take a look around and read the instructions on screen. If you ever get logged out, follow these instructions again.
176+
177+## Next Steps
178+
179+### Updating your comet {#updating}
180+
181+The Urbit application comes with a recent release of the Urbit OS, but automatic updates ("over the air") can be enabled so new binaries aren't necessary for each update. Planets have automatic updates enabled by default, but this is not the case for comets. Many comets are used only once and thrown away, so it would be wasteful to update every single comet as soon as it boots. If you plan to use your comet for more than a quick test, you'll probably want to ensure you're running the latest version of the OS.
182+
183+You can enable updates for your comet by typing `|ota (sein:title our now our) %kids` into Dojo and pressing Enter.
184+
185+```
186+> |ota (sein:title our now our) %kids
187+>=
188+```
189+
190+If you want to make sure you'll get updates, you can check by typing `|ota` with no arguments:
191+
192+```
193+~sampel_marzod:dojo> |ota
194+OTAs enabled from %kids on ~marzod
195+use |ota %disable or |ota ~sponsor %kids to reset it
196+> |ota
197+>=
198+```
199+
200+### Read More about the Dojo {#the-dojo}
201+
202+The dojo is Urbit's command line. You can use it to control your ship, or to execute arbitrary code. Check out the links below for more information.
203+
204+- [Basic Operations](@/using/os/getting-started.md)
205+- [Basic Hoon](/docs/tutorials/hoon/hoon-school/setup)
206+- [Glossary Entry](/docs/glossary/dojo)
207+
208+### Purchase a Permanent Identity {#boot-your-planet}
209+
210+You can continue using this comet indefinitely. There are currently few differences between using a comet-level identity and a planet-level one. However, some groups will not allow comets entry in order to maintain a certain level of quality, and changes may be made in the future that further devalue comets. They will always, however, be able to access the basic functions of the network.
211+
212+A comet also comes with a long and fairly unmemorable name whereas a planet has a short name and a "sigil" (avatar) associated with it that makes it more identifiable on the network. You may notice all this within the first few minutes of using Urbit.
213+
214+[To read instructions on how to purchase and use a planet, visit this page](@/getting-started/planet.md).
content/getting-started/planet.md+1−2
@@ -2,10 +2,9 @@
22title = "Setting up Your Planet"
33weight = 1
44description = "Getting started with a permanent Urbit identity."
5−template = "page/getting_started.html"
65+++
76
8−A planet is a permanent Urbit identity. Like all Urbit identities, they can never be taken away from you. Unlike comets which are free, planets are designed for use well into the future. If you're not yet familiar with the Urbit network, please follow the [Getting Started guide](@/getting-started.md), which will explain the basics and walk you through using a free identity. This guide explains the next steps.
7+A planet is a permanent Urbit identity. Like all Urbit identities, they can never be taken away from you. Unlike comets which are free, planets are designed for use well into the future. If you're not yet familiar with the Urbit network, please follow the [Getting Started guide](@/getting-started/_index.md), which will explain the basics and walk you through using a free identity. This guide explains the next steps.
98
109### Purchase a planet {#purchase}
1110
content/media.mddeleted−4
@@ -1,4 +0,0 @@
1−+++
2−title = "Media"
3−template = "media/list.html"
4−+++
content/media/_index.md+3−1
@@ -1,5 +1,7 @@
11+++
2−render = false
2+title = "Media"
3+template = "media/list.html"
4+page_template = "media/post.html"
35sort_by = "date"
46in_search_index = true
57+++
content/reset.md+3−3
@@ -64,7 +64,7 @@ relevant actions on your behalf, as well as exporting and reimporting your data.
6464
6565To use `flagday`, run the following:
6666
67−```shell
67+```sh
6868curl https://bootstrap.urbit.org/flagday.sh > flagday.sh; chmod 755 ./flagday.sh; ./flagday.sh PIER_DIRECTORY
6969```
7070
@@ -77,8 +77,8 @@ Yes, by following these steps (note that these steps **will not** back up your d
77771. Download your [keyfile from Bridge](https://urbit.org/getting-started/#keyfile).
78782. Shut down your ship.
79793. [Archive and move your old pier](@/using/os/getting-started.md#moving-your-pier) (this is the directory that contains your urbit event log).
80−4. [Download the latest version](@/getting-started.md#macos-and-linux) of the urbit binary.
81−5. [Boot your ship with the new keyfile](@/getting-started.md#boot-your-planet).
80+4. [Download the latest version](@/getting-started/_index.md#macos-and-linux) of the urbit binary.
81+5. [Boot your ship with the new keyfile](@/getting-started/_index.md#boot-your-planet).
8282
8383## I’m hosted by Tlon, or someone else—what do I need to do?
8484
content/understanding-urbit/interface.md+1−1
@@ -43,7 +43,7 @@ OS 1 is a minimal, multipurpose interface for bringing a group together to chat,
4343
4444We built OS 1 for ourselves. We were sick of using centralized, mainstream software. We didn’t want to be stuck switching between bloated, monolithic services in order to keep in touch and move our work forward. We were done relying on some third party to take care of our community—so we exited to Urbit, and it feels good.
4545
46−If you’re curious to get a complete overview of OS 1, check out [this post](https://urbit.org/blog/introducing-os1/), watch the [release event](https://www.youtube.com/watch?v=71ViyftPkGk&feature=youtu.be&t=3963) or feel free to [boot a node](@/getting-started.md#comet) to come talk to us.
46+If you’re curious to get a complete overview of OS 1, check out [this post](https://urbit.org/blog/introducing-os1/), watch the [release event](https://www.youtube.com/watch?v=71ViyftPkGk&feature=youtu.be&t=3963) or feel free to [boot a node](@/getting-started/_index.md#comet) to come talk to us.
4747
4848(Running Urbit still requires a little fiddling around in the command-line, so it’s not for everyone—but we do have [plans for that to improve](https://urbit.org/blog/providers/).)
4949
content/using/_index.md+1−1
@@ -29,5 +29,5 @@ application.
2929### [Running Urbit](@/using/running/_index.md)
3030
3131Urbit can be run in a variety of contexts. Our [Getting Started
32−Guide](@/getting-started.md) covers how to run an Urbit locally on your
32+Guide](@/getting-started/_index.md) covers how to run an Urbit locally on your
3333computer; this section covers alternative ways of running Urbit.
content/using/id/guide-to-breaches.md+3−3
@@ -34,7 +34,7 @@ personal breach, follow the steps below.
3434- Download your new keyfile following these instructions: [Generate your
3535 keyfile](@/using/id/using-bridge.md#generate-your-keyfile).
3636- Delete or archive your old [pier](@/docs/glossary/pier.md).
37−- Proceed to [boot your ship](@/getting-started.md#boot-your-planet) with the new keyfile.
37+- Proceed to [boot your ship](@/getting-started/_index.md#boot-your-planet) with the new keyfile.
3838- Delete your keyfile after successfully booting.
3939- Rejoin your favorite chat channels and subscriptions.
4040
@@ -57,7 +57,7 @@ you are transferring to another address you own. The process here is slightly di
5757 keyfile](@/using/id/using-bridge.md#generate-your-keyfile). The option
5858 whether or not to breach is in the Accept your Transfer step.
5959- Delete or archive your old [pier](@/docs/glossary/pier.md).
60−- Proceed to [boot your ship](@/getting-started.md#boot-your-planet) with the new keyfile.
60+- Proceed to [boot your ship](@/getting-started/_index.md#boot-your-planet) with the new keyfile.
6161- Delete your keyfile after successfully booting.
6262- Rejoin your favorite chat channels and subscriptions.
6363
@@ -85,6 +85,6 @@ If a network breach is happening, follow the steps below.
8585
8686- Delete your old Urbit binary.
8787- Delete or archive your old pier.
88−- Download the new Urbit binary by following the instructions in the [Install page](@/getting-started.md).
88+- Download the new Urbit binary by following the instructions in the [Install page](@/getting-started/_index.md).
8989- Create a new pier by booting your ship with your key, according to the instructions on the install page. (Note: You do _not_ need to use a new key to boot into a new continuity era.)
9090- Rejoin your favorite chat channels and subscriptions.
content/using/id/using-bridge.md+2−2
@@ -14,7 +14,7 @@ This guide assumes that you have an Urbit ID, or that you have found someone to
1414
1515To connect to Bridge, go to [https://bridge.urbit.org](https://bridge.urbit.org) into your browser, and enter your identity's credentials in the appropriate fields. If you were invited to claim an Urbit ID, it's very likely that you received an email that would direct you to Bridge, and you can simply follow the hyperlink in that email.
1616
17−You'll arrive at a page and see two major choices: `ID` and `OS`. `OS` is the only option that you're interested in right now; click on it. On the `OS` page, click the `Download Arvo Keyfile` button. Once you have downloaded the keyfile, you can exit Bridge and proceed to [install the Urbit binary](@/getting-started.md).
17+You'll arrive at a page and see two major choices: `ID` and `OS`. `OS` is the only option that you're interested in right now; click on it. On the `OS` page, click the `Download Arvo Keyfile` button. Once you have downloaded the keyfile, you can exit Bridge and proceed to [install the Urbit binary](@/getting-started/_index.md).
1818
1919### Local Bridge
2020
@@ -72,7 +72,7 @@ It should be noted that setting your network keys is an event on the Ethereum ne
7272From the detail page associated with your point, click the `Generate Arvo Keyfile` link and you'll be taken to a page with a field titled `Network seed`. This field should already be filled in, and should match the hexadecimal string that you entered in the previous step. If it's not filled in or does not match, fill it in with the correct string.
7373Click `Generate ->`, which will download a keyfile onto your machine.
7474
75−With that keyfile in hand, you can now exit Bridge and continue to the guide to [install the Urbit binary](@/getting-started.md).
75+With that keyfile in hand, you can now exit Bridge and continue to the guide to [install the Urbit binary](@/getting-started/_index.md).
7676
7777### Escaping your sponsor {#escaping-your-sponsor}
7878
content/using/os/getting-started.md+1−1
@@ -154,7 +154,7 @@ in this example.
154154
155155Put `<key>` in a file and that file becomes `<keyfile>`.
156156
157−You can use the resulting output in the same installation flow from the [Installing Urbit](@/getting-started.md) guide, following the same scheme as for booting a planet. That scheme is:
157+You can use the resulting output in the same installation flow from the [Installing Urbit](@/getting-started/_index.md) guide, following the same scheme as for booting a planet. That scheme is:
158158
159159```sh
160160$ ./urbit -w <moonname> -G <key> -c <piername>
content/using/os/ship-troubleshooting.md+1−1
@@ -38,7 +38,7 @@ When you first start your ship, you should make sure you put it a place where yo
3838
3939### Keep up-to-date builds
4040
41−Check for latest Urbit version at https://github.com/urbit/urbit/releases. If you're behind, update using [this guide](@/getting-started.md#updating).
41+Check for latest Urbit version at https://github.com/urbit/urbit/releases. If you're behind, update using [this guide](@/getting-started/_index.md#updating).
4242
4343### `|hi` your star to see if you're connected
4444
content/using/os/stars-and-galaxies.md+2−2
@@ -6,7 +6,7 @@ aliases = ["/docs/using/operating-a-star/"]
66template = "doc.html"
77+++
88
9−To boot your galaxy or star, follow our [installation instructions](@/getting-started.md).
9+To boot your galaxy or star, follow our [installation instructions](@/getting-started/_index.md).
1010
1111### Hosting your star
1212
@@ -27,7 +27,7 @@ By default, your star accepts software updates from its galaxy and routes them t
2727
2828#### Breaches
2929
30−To ensure new planets can connect to your ship, users are expected to participate in network-wide breaches by [updating to the latest Urbit version](@/getting-started.md), deleting (or archiving) your pier, and then booting your ship using the new binary. If you don’t participate, you won’t be able to communicate with anyone on the network who has updated to the new era.
30+To ensure new planets can connect to your ship, users are expected to participate in network-wide breaches by [updating to the latest Urbit version](@/getting-started/_index.md), deleting (or archiving) your pier, and then booting your ship using the new binary. If you don’t participate, you won’t be able to communicate with anyone on the network who has updated to the new era.
3131
3232Network-wide breaches are distinct from personal breaches, wherein an individual ship cycles its personal network keys using Bridge, and then follows the same steps outlined above.
3333
content/using/running/_index.md+1−1
@@ -7,7 +7,7 @@ weight = 30
77+++
88
99Urbit can be run in a variety of contexts. Our [Getting Started
10−Guide](@/getting-started.md) covers how to run an Urbit locally on your
10+Guide](@/getting-started/_index.md) covers how to run an Urbit locally on your
1111computer; this section covers alternative ways of running Urbit.
1212
1313### [Cloud Hosting](@/using/running/hosting.md)
content/using/running/hosting.md+2−2
@@ -103,7 +103,7 @@ Continuing to follow the DO docs we're going to configure the ufw firewall.
103103 ```
104104
105105## Installing Urbit
106−Finally we're ready to install Urbit on your very own server. This part is actually pretty easy, if you haven't installed Urbit locally then the instructions are the exact same as the ones in the Urbit [install doc](@/getting-started.md). If you have a local ship already, we're going to install Urbit on the server and then send your local ship up.
106+Finally we're ready to install Urbit on your very own server. This part is actually pretty easy, if you haven't installed Urbit locally then the instructions are the exact same as the ones in the Urbit [install doc](@/getting-started/_index.md). If you have a local ship already, we're going to install Urbit on the server and then send your local ship up.
107107 - **WARN**: Since Urbit is p2p you don't want to ever run two copies of your ship simultaneously. This is because other nodes that interact with each of your copies will be confused by which one is the most up to date. If you end up accidentally doing this you'll have to do a 'personal breach' described in the [guide to breaches](@/using/id/guide-to-breaches.md) to fix things.
108108 - The first thing you're going to want to do is shut down your local ship, either with control-d or `|exit` in dojo.
109109 - Next we're going to install Urbit on the server and permit it to bind to the web ports:
@@ -166,7 +166,7 @@ On iOS you can save a website to your homescreen as an icon. If you do this for
166166 - [Digital Ocean Nginx Installation][DO Nginx Install]
167167 - [Digital Ocean Nginx Config][DO Nginx Config]
168168 - [Digital Ocean SSL Cert Setup][DO SSL Config]
169− - [Urbit Install Docs](@/getting-started.md)
169+ - [Urbit Install Docs](@/getting-started/_index.md)
170170 - [Urbit Basic Cloud Install][Urbit Basic Cloud Install]
171171
172172 [Gandi]: https://www.gandi.net/
netlify.toml+3−3
@@ -1,9 +1,9 @@
11[build]
22 publish = "public"
3− command = "curl -sL https://github.com/getzola/zola/releases/download/v0.8.0/zola-v0.8.0-x86_64-unknown-linux-gnu.tar.gz | tar zxv && ./zola build"
3+ command = "curl -sL https://github.com/getzola/zola/releases/download/v0.13.0/zola-v0.13.0-x86_64-unknown-linux-gnu.tar.gz | tar zxv && ./zola build"
44
55[build.environment]
6− ZOLA_VERSION = "0.8.0"
6+ ZOLA_VERSION = "0.13.0"
77
88[context.deploy-preview]
9− command = "curl -sL https://github.com/getzola/zola/releases/download/v0.8.0/zola-v0.8.0-x86_64-unknown-linux-gnu.tar.gz | tar zxv && ./zola build --base-url $DEPLOY_PRIME_URL"
9+ command = "curl -sL https://github.com/getzola/zola/releases/download/v0.13.0/zola-v0.13.0-x86_64-unknown-linux-gnu.tar.gz | tar zxv && ./zola build --base-url $DEPLOY_PRIME_URL"
syntaxes/scheme.sublime-syntaxnew file+566
@@ -0,0 +1,566 @@
1+%YAML 1.2
2+---
3+# http://www.sublimetext.com/docs/3/syntax.html
4+#
5+# `Scheme` Language Reference:
6+#
7+# source: https://github.com/absop/Scheme
8+
9+name: Scheme
10+file_extensions:
11+ - ms
12+ - rkt
13+ - sc
14+ - scm
15+ - ss
16+ - scheme
17+scope: source.scheme
18+
19+variables:
20+ boundary: '[\(\[\s\]\)]'
21+ aux_keyword: \.\.\.|#[,'`;]|['`](?!\(\))|(?<=[\(\[\s\]\)])_(?=[\(\[\s\]\)])|,@?|=>|(?<=[\(\[\s])\.(?=\s)
22+ identifier: (?:[^({\[#"'`,;\\\s\]})]|\\[({\[#"'`,;\\\s\]})]|\\x\h*;)+
23+ syntax_keyword: \&assertion|\&condition|\&continuation|\&error|\&format|\&i/o|\&i/o-decoding|\&i/o-encoding|\&i/o-file-already-exists|\&i/o-file-does-not-exist|\&i/o-file-is-read-only|\&i/o-file-protection|\&i/o-filename|\&i/o-invalid-position|\&i/o-port|\&i/o-read|\&i/o-write|\&implementation-restriction|\&irritants|\&lexical|\&message|\&no-infinities|\&no-nans|\&non-continuable|\&serious|\&source|\&syntax|\&undefined|\&violation|\&warning|\&who|alias|begin|case|case-lambda|cond|do|else|eval-when|export|extend-syntax|fields|for-each|guard|ieee|if|import|immutable|mutable|include|let(?:-syntax|\*?-values)|letrec-syntax|library|meta|meta-cond|module|nongenerative|only|opaque|parent|parent-rtd|protocol|quasiquote|quasisyntax|quote|r6rs:case|rec|record-case|scheme|sealed|set!|syntax(?:-case)?|unless|when|with-(syntax|implicit)|type-descriptor|record-type-descriptor
24+ definitioner: define(?:-(?:enumeration|structure|syntax|ftype|record(?:-type)?|property|top-level-(value|syntax)|condition-type|values))?
25+ operator_comparsion: (?:[<>]=?|=)
26+ operator_arithmetic: (?:[+*/-]|1[+-])
27+ operator_logical: (?:and|or|not|log(?:and|[ix]or|or))
28+
29+contexts:
30+ main:
31+ - include: sexpr
32+ - include: comments
33+ - include: source-control
34+ - include: strings
35+ - include: constants
36+
37+ source-control:
38+ - match: ^\s*#!eof(?=[\{\[\(#,;\s"`'\)\]\}])
39+ scope: keyword.control.end-of-file.scheme
40+ push:
41+ - meta_scope: comment.block.scheme
42+ - match: (#!(?:r6rs|bwp|chezscheme|(no-)?fold-case|base-rtd))(?=[\(\[\s\]\)])
43+ scope: keyword.control.language.scheme
44+
45+ - match: ^\s*#!eof\S
46+ scope: invalid.deprecated.scheme
47+
48+ sexpr:
49+ - include: quote
50+ - match: \(
51+ scope: punctuation.brackets.scheme
52+ push: round-brackets
53+
54+ - match: \[
55+ scope: punctuation.brackets.scheme
56+ push: square-brackets
57+
58+ - match: \#\{
59+ scope: storage.modifier.gensym.begin.scheme
60+ push:
61+ - meta_scope: variable.gensym.scheme
62+ - match: \}
63+ scope: storage.modifier.gensym.end.scheme
64+ pop: true
65+ - include: match-type
66+
67+ - match: \)
68+ scope: invalid.deprecated.scheme
69+ - match: \]
70+ scope: invalid.deprecated.scheme
71+ - match: \}
72+ scope: invalid.deprecated.scheme
73+
74+ round-brackets:
75+ - match: \)
76+ scope: punctuation.brackets.scheme
77+ pop: true
78+ - include: match-type
79+ - include: sexpr
80+
81+ square-brackets:
82+ - match: \]
83+ scope: punctuation.brackets.scheme
84+ pop: true
85+ - include: match-type
86+ - include: sexpr
87+
88+ non-bracket:
89+ - include: quote
90+ - include: comments
91+ - include: aux-keywords
92+ - include: type-prefix
93+ - include: strings
94+ - include: constants
95+ - include: variable
96+
97+ match-type:
98+ - include: comments
99+ - include: primitive-procedures
100+ - include: type-prefix
101+ - include: strings
102+ - include: constants
103+ - include: quote
104+ - include: define-record
105+ - include: defines
106+ - include: lambda
107+ - include: syntax-match
108+ - include: cond
109+ - include: let-expr
110+ # - include: module
111+ - include: control
112+ - include: operators
113+ - include: support-functions-symbols
114+ - include: procedure
115+ - include: variable
116+
117+ # module:
118+ # - match: (module)\s*({{identifier}})*\s*\(
119+ # captures:
120+ # 1: keyword.control.scheme
121+ # 2: storage.scheme
122+ # push:
123+ # - match: \(
124+ # scope: punctuation.brackets.scheme
125+ # push:
126+ # - match: \)
127+ # scope: punctuation.brackets.scheme
128+ # pop: true
129+ # - include: support-functions-symbols
130+ # - match: ({{identifier}})
131+ # scope: entity.name.function.scheme
132+ # - include: support-functions-symbols
133+ # - match: ({{identifier}})
134+ # scope: entity.name.function.scheme
135+ # - match: \)
136+ # pop: true
137+
138+ quote:
139+ - match: (['`])\s*({{identifier}}|[{}])
140+ captures:
141+ 1: keyword.control.aux.quote.scheme
142+ 2: variable.symbol.scheme
143+ - match: (['`])(\()
144+ captures:
145+ 1: keyword.control.aux.quote.scheme
146+ 2: punctuation.section.quote.scheme
147+ push:
148+ - match: \)
149+ scope: punctuation.section.quote.scheme
150+ pop: true
151+ - include: constants
152+ - include: aux-keywords
153+ - match: ({{identifier}})
154+ scope: variable.symbol.scheme
155+ - include: match-type
156+ - include: sexpr
157+
158+ type-prefix:
159+ - match: (#[0-9]*(vu8|vfx)?)(?=\()
160+ scope: storage.modifier.vector.scheme
161+ push: odinary-vaiable-list
162+ - match: (#&)(?=\()
163+ scope: storage.modifier.boxes.scheme
164+ push: odinary-vaiable-list
165+ - match: (#&)
166+ scope: storage.modifier.boxes.scheme
167+ - match: (#@)
168+ scope: storage.modifier.fasl.scheme
169+ - match: (#[0-9]+=)
170+ scope: storage.modifier.pair.scheme
171+ # - match: (#[0-9]+#)
172+ # scope: variable.datum.scheme
173+
174+ odinary-vaiable-list:
175+ - match: \(
176+ scope: punctuation.section.scheme
177+ set:
178+ - match: \)
179+ scope: punctuation.section.scheme
180+ pop: true
181+ - include: constants
182+ - include: type-prefix
183+ - include: aux-keywords
184+ # - include: operators
185+ # - include: support-functions-symbols
186+ - include: variable
187+ - include: sexpr
188+ - include: comments
189+
190+ cond:
191+ - match: (\()(cond)(?=[\[\(\s*])
192+ captures:
193+ 1: punctuation.brackets.cond.begin.scheme
194+ 2: keyword.control.cond.scheme
195+ push:
196+ - match: \)
197+ scope: punctuation.brackets.cond.end.scheme
198+ pop: true
199+ - match: \[
200+ scope: punctuation.section.cond.begin.scheme
201+ push:
202+ - match: \]
203+ scope: punctuation.section.cond.end.scheme
204+ pop: true
205+ - include: constants
206+ - include: sexpr
207+ - include: match-type
208+ - match: \(
209+ scope: punctuation.section.cond.begin.scheme
210+ push:
211+ - match: \)
212+ scope: punctuation.section.cond.end.scheme
213+ pop: true
214+ - include: constants
215+ - include: sexpr
216+ - include: match-type
217+ - include: comments
218+
219+ - match: \]
220+ scope: invalid.deprecated.scheme
221+ - match: \)
222+ scope: invalid.deprecated.scheme
223+
224+
225+ define-record:
226+ - match: (?<=[\(\[])\s*(define-record)(?=[\(\[\s])
227+ captures:
228+ 1: keyword.control.scheme
229+ push: define-record-type
230+
231+ define-record-type:
232+ - match: ({{identifier}})
233+ scope: entity.name.type.scheme
234+ set: variable-list
235+
236+ variable-list:
237+ - match: \(
238+ scope: punctuation.brackets.scheme
239+ set:
240+ - match: \)
241+ scope: punctuation.brackets.scheme
242+ pop: true
243+ - include: variable
244+ - include: sexpr
245+
246+ defines:
247+ - match: (?<=[\(\[])\s*({{definitioner}})(?=[\(\[\s])
248+ captures:
249+ 1: keyword.control.scheme
250+ push: define-name
251+
252+ - match: (set!)\s+({{identifier}})
253+ captures:
254+ 1: keyword.control.syntax.scheme
255+ 2: entity.name.function.scheme # for goto symbol
256+ - match: (set!)\s+({{aux_keyword}})\s*({{identifier}})
257+ captures:
258+ 1: keyword.control.syntax.scheme
259+ 2: keyword.control.aux.scheme
260+ 3: entity.name.function.scheme # for goto symbol
261+
262+ define-name:
263+ - match: ({{identifier}})
264+ scope: entity.name.function.scheme # for goto symbol
265+ pop: true
266+ - match: \(
267+ scope: punctuation.brackets.scheme
268+ set:
269+ - match: ({{identifier}})
270+ scope: entity.name.function.scheme
271+ set:
272+ - match: \)
273+ scope: punctuation.brackets.scheme
274+ pop: true
275+ - include: parameters
276+ - match: '"'
277+ scope: punctuation.definition.string.begin.scheme
278+ set:
279+ - meta_scope: invalid.illegal.scheme string.quoted.double.scheme
280+ - match: '"'
281+ scope: punctuation.definition.string.end.scheme
282+ pop: true
283+ - include: string-escaped-char
284+
285+ syntax-match:
286+ - match: (?<=[\(\[])\s*(syntax-(?:rules|case))(?=[\(\[\s])
287+ captures:
288+ 1: keyword.control.scheme
289+ push:
290+ - match: \(
291+ scope: punctuation.section.parameter.scheme
292+ set:
293+ - match: \)
294+ scope: punctuation.section.parameter.scheme
295+ pop: true
296+ - include: aux-keywords
297+ - include: parameters
298+ - include: sexpr
299+ - match: ({{identifier}})
300+ scope: variable.syntax.scheme
301+
302+ lambda:
303+ - match: (?<=[\(\[])\s*(lambda)(?=[\(\[\s])
304+ captures:
305+ 1: keyword.control.scheme
306+ push:
307+ - include: aux-keywords
308+ - match: ({{identifier}})
309+ scope: variable.parameter.scheme
310+ pop: true
311+ - include: parameter-list
312+
313+ parameter-list:
314+ - match: \(
315+ scope: punctuation.section.parameter.scheme
316+ set:
317+ - match: \)
318+ scope: punctuation.section.parameter.scheme
319+ pop: true
320+ - include: aux-keywords
321+ - include: parameters
322+ - include: sexpr
323+
324+ aux-keywords:
325+ - match: ({{aux_keyword}})
326+ scope: keyword.control.aux.scheme
327+
328+ parameters:
329+ - match: ({{identifier}})
330+ scope: variable.parameter.scheme
331+
332+ variable:
333+ - match: ({{identifier}})
334+ scope: variable.datum.scheme
335+
336+ let-expr:
337+ - match: (?<=[\(\[])\s*(do|let(?:\*|rec\*?|syntax)?|fluid-let(?:-syntax)?)(?=[\(\[\s])
338+ captures:
339+ 1: keyword.control.scheme
340+ push: let-bodies
341+
342+ let-bodies:
343+ - match: ([^\(\[\]\)])*(?=[\]\)])
344+ scope: variable.datum.scheme
345+ pop: true
346+ - match: ({{aux_keyword}})
347+ scope: keyword.control.aux.scheme
348+ pop: true
349+ - match: ({{identifier}})
350+ scope: entity.name.function.scheme
351+ set: let-variable-list
352+ - include: let-variable-list
353+ # - include: sexpr
354+
355+ let-variable-list:
356+ - match: (?=,\s*[\[\(])
357+ push: match-type
358+ - match: \(
359+ scope: punctuation.brackets.scheme
360+ set:
361+ - include: comments
362+ - match: \)
363+ scope: punctuation.brackets.scheme
364+ pop: true
365+ - include: let-variable
366+
367+ let-variable:
368+ - match: (\[)\s*({{aux_keyword}})?({{identifier}})?
369+ captures:
370+ 1: punctuation.section.parameter.scheme
371+ 2: keyword.control.scheme
372+ 3: variable.parameter.scheme
373+ push:
374+ - match: (\])
375+ scope: punctuation.section.parameter.scheme
376+ pop: true
377+ - include: non-bracket
378+ - include: sexpr
379+ - match: (\()\s*({{aux_keyword}})?({{identifier}})?
380+ captures:
381+ 1: punctuation.section.parameter.scheme
382+ 2: keyword.control.scheme
383+ 3: variable.parameter.scheme
384+ push:
385+ - match: (\))
386+ scope: punctuation.section.parameter.scheme
387+ pop: true
388+ - include: non-bracket
389+ - include: sexpr
390+ - match: ({{aux_keyword}})?({{identifier}})?
391+ captures:
392+ 1: keyword.control.scheme
393+ 2: variable.datum.scheme
394+ - match: \]
395+ scope: invalid.deprecated.scheme
396+ - match: \)
397+ scope: invalid.deprecated.scheme
398+
399+
400+ control:
401+ - match: (?<=[\(\[])\s*({{syntax_keyword}})(?=[\(\[\s\]\)])
402+ captures:
403+ 1: keyword.control.scheme
404+ - include: aux-keywords
405+
406+ procedure:
407+ - match: (?<=[\(\[])\s*({{identifier}})(?=[\(\[\s\]\)])
408+ captures:
409+ 1: procedure.datum.scheme
410+
411+ primitive-procedures:
412+ - match: '#(%|2%|3%)'
413+ scope: keyword.control.optimize-level.scheme
414+ push:
415+ - match: ({{identifier}})
416+ scope: procedure.primitive.scheme
417+ pop: true
418+
419+ operators:
420+ - match: (?<=[\(\[])\s*{{operator_comparsion}}(?=[\(\[\s\]\)])
421+ scope: keyword.operator.comparison.scheme
422+ - match: (?<=[\(\[])\s*{{operator_arithmetic}}(?=[\(\[\s\]\)])
423+ scope: keyword.operator.arithmetic.scheme
424+ - match: (?<=[\(\[])\s*{{operator_logical}}(?=[\(\[\s\]\)])
425+ scope: keyword.operator.logical.scheme
426+
427+ constants:
428+ - include: numbers
429+ - match: (['`]\(\)|#t|#f)(?=[\(\[\s\]\)])
430+ scope: constant.language.scheme
431+ - match: (#\\x)(?:\h+)(?=[\(\[\s\]\)])
432+ scope: constant.character.numeric.scheme
433+ captures:
434+ 1: storage.modifier.character.scheme
435+ - match: (#\\0)(?:[0-7]{2})(?=[\(\[\s\]\)])
436+ scope: constant.character.scheme
437+ captures:
438+ 1: storage.modifier.character.scheme
439+ - match: (#\\)(?:alarm|backspace|delete|esc|linefeed|newline|page|return|space|tab|bel|ls|nel|nul|rubout|vt|vtab|[ \S])(?=[\(\[\s\]\)])
440+ scope: constant.character.scheme
441+ captures:
442+ 1: storage.modifier.character.scheme
443+ - match: (#\\\S)(?=[^\{\(\[\s\]\)\}])
444+ scope: invalid.deprecated.scheme
445+ # - match: (#{{identifier}})(?=[\(\[\s\]\)])
446+ # scope: invalid.deprecated.scheme
447+
448+ # (inf|nan)\.0
449+ # binary-number:
450+ # - match: ([-\+]?(([01]+(\.[01]*|/[01]+)?)|\.[01]+)([eE][-\+]?[01]+)?)
451+ # scope: constant.numeric.binary.scheme
452+ # octonary-number:
453+ # - match: ([-\+]?(([0-7]+(\.[0-7]*|/[0-7]+)?)|\.[0-7]+)([eE][-\+]?[0-7]+)?)
454+ # scope: constant.numeric.octonary.scheme
455+ # decimal-number:
456+ # - match: ([-\+]?(([0-9]+(\.[0-9]*|/[0-9]+)?)|\.[0-9]+)([eE][-\+]?[0-9]+)?)
457+ # scope: constant.numeric.decimal.scheme
458+ # hexadecimal-number:
459+ # - match: ([-\+]?[0-9a-fA-F]+[\./]?[0-9a-fA-F]*)
460+ # scope: constant.numeric.hexadecimal.scheme
461+ # force-number-change:
462+ # - match: (#[eEiI])
463+ # scope: prefix.constant.numeric.force.scheme
464+
465+ numbers:
466+ # 2
467+ - match: (#[bB](?:#[eEiI])?|#[eEiI]#[bB])(?:[-\+]?(?:(?:[01]+(?:\.[01]*|/[01]+)?)|\.[01]+)(?:[eE][-\+]?[01]+)?)(?=[\(\[\s\]\)])
468+ scope: constant.numeric.binary.scheme
469+ captures:
470+ 1: storage.modifier.numeric.scheme
471+ # 8
472+ - match: (#[oO](?:#[eEiI])?|#[eEiI]#[oO])(?:[-\+]?(?:(?:[0-7]+(?:\.[0-7]*|/[0-7]+)?)|\.[0-7]+)(?:[eE][-\+]?[0-7]+)?)(?=[\(\[\s\]\)])
473+ scope: constant.numeric.octal.scheme
474+ captures:
475+ 1: storage.modifier.numeric.scheme
476+ # 10
477+ - match: (#[dD](?:#[eEiI])?|#[eEiI](?:#[dD])?)?(?:[-\+]?(?:(?:[0-9]+(?:\.[0-9]*|/[0-9]+)?)|\.[0-9]+)(?:[eE][-\+]?[0-9]+)?)(?=[\(\[\s\]\)])
478+ scope: constant.numeric.decimal.scheme
479+ captures:
480+ 1: storage.modifier.numeric.scheme
481+ # 16
482+ - match: (#[xX](?:#[eEiI])?|#[eEiI]#[xX])(?:[-\+]?[0-9a-fA-F]+[\./]?[0-9a-fA-F]*)(?=[\(\[\s\]\)])
483+ scope: constant.numeric.hex.scheme
484+ captures:
485+ 1: storage.modifier.numeric.scheme
486+ # #<2..36>r
487+ - match: (#(?:0?[2-9]|[1-3][0-6])[rR](?:#[eEiI])?|#[eEiI]#(?:0?[2-9]|[1-3][0-6])[rR])(?:[-\+]?[0-9a-zA-Z]+\.?[0-9a-zA-Z]*)(?=[\(\[\s\]\)])
488+ scope: constant.numeric.various.scheme
489+ captures:
490+ 1: storage.modifier.numeric.scheme
491+ # - match: (#([bB]|[oO]|[dD]|[xX]|[0-9]*[rR])[^{{boundary-chars}}]*)(?=[\(\[\s\]\)])
492+ # scope: invalid.deprecated.scheme
493+
494+ strings:
495+ - match: '"'
496+ scope: punctuation.definition.string.begin.scheme
497+ push:
498+ - meta_scope: string.quoted.double.scheme
499+ - match: '"'
500+ scope: punctuation.definition.string.end.scheme
501+ pop: true
502+ - include: string-escaped-char
503+ - include: string-placeholder
504+
505+ string-escaped-char:
506+ - match: '(\\)$\n'
507+ captures:
508+ 1: punctuation.separator.continuation.scheme
509+ - match: \\(?:\\|[abefnrtv\'"?]|[0-3][0-9]{0,2}|[4-7][0-9]?|x[a-fA-F0-9]+|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8})
510+ scope: constant.character.escape.scheme
511+ - match: \\.
512+ scope: invalid.illegal.unknown-escape.scheme
513+
514+ string-placeholder:
515+ - match: |-
516+ (?x)~
517+ ([~nN%^&*;]
518+ |@?[aA?]
519+ |,?(?:\d+)?@?[eEfFgGtT]
520+ |,?(?:@:|:@|@|:)?[bBoOdDxX$]
521+ |(?:@:|:@|@|:)?[cC]
522+ |(?:\d+)?(?:@:|:@|@|:)?[rRsSwW]
523+ |@:?\(
524+ |\)
525+ |:p)
526+ scope: constant.other.placeholder.scheme
527+
528+ comments:
529+ - include: line-comment
530+ - include: datum-comment
531+ - include: block-comment
532+ - match: '\|#'
533+ scope: invalid.illegal.block-comment-end.scheme
534+
535+ line-comment:
536+ - match: ((?<=[^#]);|^;).*$\n?
537+ scope: comment.line.scheme
538+ captures:
539+ 1: punctuation.definition.comment.scheme
540+ - match: '#!(?=\s*/)'
541+ scope: comment.line.scheme
542+ push:
543+ - match: /([^/]+/)*(scheme|petite)\s+--script$
544+ scope: comment.line.scheme
545+ pop: true
546+ - match: \S+(?=\s*$)
547+ scope: invalid.deprecated.scheme
548+ pop: true
549+
550+ datum-comment:
551+ - match: '#;'
552+ scope: keyword.control.datum-comment.scheme
553+
554+ block-comment:
555+ - match: '#\|'
556+ scope: punctuation.definition.comment.begin.scheme
557+ push:
558+ - meta_scope: comment.block.scheme
559+ - include: block-comment
560+ - match: '\|#'
561+ scope: punctuation.definition.comment.end.scheme
562+ pop: true
563+
564+ support-functions-symbols:
565+ - match: (?<=[\(\[])\s*(abort|abort-handler|abs|acos|acosh|add-duration|add-duration!|add-prefix|add1|alias|andmap|angle|annotation-expression|annotation-option-set|annotation-options|annotation-source|annotation-stripped|annotation\?|append|append!|apply|apropos|apropos-list|ash|asin|asinh|assert|assertion-violation|assertion-violation\?|assertion-violationf|assoc|assp|assq|assv|atan|atanh|atom\?|base-exception-handler|begin|bignum\?|binary-port-input-buffer|binary-port-input-count|binary-port-input-index|binary-port-input-size|binary-port-output-buffer|binary-port-output-count|binary-port-output-index|binary-port-output-size|binary-port\?|bitwise-and|bitwise-arithmetic-shift|bitwise-arithmetic-shift-left|bitwise-arithmetic-shift-right|bitwise-bit-count|bitwise-bit-field|bitwise-bit-set\?|bitwise-copy-bit|bitwise-copy-bit-field|bitwise-first-bit-set|bitwise-if|bitwise-ior|bitwise-length|bitwise-not|bitwise-reverse-bit-field|bitwise-rotate-bit-field|bitwise-xor|block-read|block-write|boolean=\?|boolean\?|bound-identifier=\?|box|box-immutable|box\?|break|break-handler|buffer-mode|buffer-mode\?|bwp-object\?|bytes-allocated|bytes-deallocated|bytevector|bytevector->immutable-bytevector|bytevector->s8-list|bytevector->sint-list|bytevector->string|bytevector->u8-list|bytevector->uint-list|bytevector-compress|bytevector-copy|bytevector-copy!|bytevector-fill!|bytevector-ieee-double-native-ref|bytevector-ieee-double-native-set!|bytevector-ieee-double-ref|bytevector-ieee-double-set!|bytevector-ieee-single-native-ref|bytevector-ieee-single-native-set!|bytevector-ieee-single-ref|bytevector-ieee-single-set!|bytevector-length|bytevector-s16-native-ref|bytevector-s16-native-set!|bytevector-s16-ref|bytevector-s16-set!|bytevector-s24-ref|bytevector-s24-set!|bytevector-s32-native-ref|bytevector-s32-native-set!|bytevector-s32-ref|bytevector-s32-set!|bytevector-s40-ref|bytevector-s40-set!|bytevector-s48-ref|bytevector-s48-set!|bytevector-s56-ref|bytevector-s56-set!|bytevector-s64-native-ref|bytevector-s64-native-set!|bytevector-s64-ref|bytevector-s64-set!|bytevector-s8-ref|bytevector-s8-set!|bytevector-sint-ref|bytevector-sint-set!|bytevector-truncate!|bytevector-u16-native-ref|bytevector-u16-native-set!|bytevector-u16-ref|bytevector-u16-set!|bytevector-u24-ref|bytevector-u24-set!|bytevector-u32-native-ref|bytevector-u32-native-set!|bytevector-u32-ref|bytevector-u32-set!|bytevector-u40-ref|bytevector-u40-set!|bytevector-u48-ref|bytevector-u48-set!|bytevector-u56-ref|bytevector-u56-set!|bytevector-u64-native-ref|bytevector-u64-native-set!|bytevector-u64-ref|bytevector-u64-set!|bytevector-u8-ref|bytevector-u8-set!|bytevector-uint-ref|bytevector-uint-set!|bytevector-uncompress|bytevector=\?|bytevector\?|caaaar|caaadr|caaar|caadar|caaddr|caadr|caar|cadaar|cadadr|cadar|caddar|cadddr|caddr|cadr|call-with-bytevector-output-port|call-with-current-continuation|call-with-input-file|call-with-output-file|call-with-port|call-with-string-output-port|call-with-values|call/1cc|call/cc|car|case-sensitive|cd|cdaaar|cdaadr|cdaar|cdadar|cdaddr|cdadr|cdar|cddaar|cddadr|cddar|cdddar|cddddr|cdddr|cddr|cdr|ceiling|cfl-|cfl-conjugate|cfl-imag-part|cfl-magnitude-squared|cfl-real-part|cfl/|cfl=|cfl\*|cfl\+|cflonum\?|char-|char->integer|char-alphabetic\?|char-ci<=\?|char-ci<\?|char-ci=\?|char-ci>=\?|char-ci>\?|char-downcase|char-foldcase|char-general-category|char-lower-case\?|char-name|char-numeric\?|char-ready\?|char-title-case\?|char-titlecase|char-upcase|char-upper-case\?|char-whitespace\?|char<=\?|char<\?|char=\?|char>=\?|char>\?|char\?|chmod|clear-input-port|clear-output-port|close-input-port|close-output-port|close-port|collect|collect-generation-radix|collect-maximum-generation|collect-notify|collect-request-handler|collect-trip-bytes|collections|command-line|command-line-arguments|compile|compile-compressed|compile-file|compile-file-message|compile-imported-libraries|compile-interpret-simple|compile-library|compile-library-handler|compile-port|compile-profile|compile-program|compile-program-handler|compile-script|compile-to-file|compile-to-port|compile-whole-library|compile-whole-program|complex\?|compute-composition|compute-size|condition|condition-accessor|condition-continuation|condition-irritants|condition-message|condition-predicate|condition-who|condition\?|conjugate|cons|cons\*|console-error-port|console-input-port|console-output-port|constructor|continuation-condition\?|copy-environment|copy-time|cos|cosh|cost-center-allocation-count|cost-center-instruction-count|cost-center-time|cost-center\?|cp0-effort-limit|cp0-outer-unroll-limit|cp0-score-limit|cpu-time|create-exception-state|critical-section|csv7:record-field-accessible\?|csv7:record-field-accessor|csv7:record-field-mutable\?|csv7:record-field-mutator|csv7:record-type-descriptor|csv7:record-type-field-decls|csv7:record-type-field-names|csv7:record-type-name|csv7:record-type-symbol|current-date|current-directory|current-error-port|current-eval|current-exception-state|current-expand|current-input-port|current-locate-source-object-source|current-make-source-object|current-memory-bytes|current-output-port|current-time|current-transcoder|custom-port-buffer-size|date->time-utc|date-and-time|date-day|date-dst\?|date-hour|date-minute|date-month|date-nanosecond|date-second|date-week-day|date-year|date-year-day|date-zone-name|date-zone-offset|date\?|datum|datum->syntax|datum->syntax-object|debug|debug-condition|debug-level|debug-on-exception|decode-float|default-exception-handler|default-prompt-and-read|delay|delete-directory|delete-file|denominator|directory-list|directory-separator|directory-separator\?|disable-interrupts|display|display-condition|display-statistics|display-string|div|div-and-mod|div0|div0-and-mod0|drop-prefix|dynamic-wind|enable-cross-library-optimization|enable-interrupts|enable-object-counts|endianness|engine-block|engine-return|enum-set->list|enum-set-complement|enum-set-constructor|enum-set-difference|enum-set-indexer|enum-set-intersection|enum-set-member\?|enum-set-projection|enum-set-subset\?|enum-set-union|enum-set-universe|enum-set=\?|enum-set\?|enumerate|environment|environment-mutable\?|environment-symbols|environment\?|eof-object|eof-object\?|eol-style|ephemeron-cons|ephemeron-pair\?|eq-hashtable-cell|eq-hashtable-contains\?|eq-hashtable-delete!|eq-hashtable-ephemeron\?|eq-hashtable-ref|eq-hashtable-set!|eq-hashtable-update!|eq-hashtable-weak\?|eq-hashtable\?|eq\?|equal-hash|equal\?|eqv\?|error|error-handling-mode|error\?|errorf|eval|eval-syntax-expanders-when|even\?|exact|exact->inexact|exact-integer-sqrt|exact\?|except|exclusive-cond|exists|exit|exit-handler|exp|expand|expand-output|expand/optimize|expand/optimize-output|export|expression-editor|expt|expt-mod|extend-syntax|fasl-file|fasl-read|fasl-strip-options|fasl-write|file-access-time|file-buffer-size|file-change-time|file-directory\?|file-exists\?|file-length|file-modification-time|file-options|file-port\?|file-position|file-regular\?|file-symbolic-link\?|filter|find|finite\?|fixnum->flonum|fixnum-width|fixnum\?|fl-|fl-make-rectangular|fl/|fl<|fl<=|fl<=\?|fl<\?|fl=|fl=\?|fl>|fl>=|fl>=\?|fl>\?|fl\*|fl\+|flabs|flacos|flasin|flatan|flceiling|flcos|fldenominator|fldiv|fldiv-and-mod|fldiv0|fldiv0-and-mod0|fleven\?|flexp|flexpt|flfinite\?|flfloor|flinfinite\?|flinteger\?|fllog|fllp|flmax|flmin|flmod|flmod0|flnan\?|flnegative\?|flnonnegative\?|flnonpositive\?|flnumerator|flodd\?|flonum->fixnum|flonum\?|floor|flpositive\?|flround|flsin|flsqrt|fltan|fltruncate|flush-output-port|flzero\?|fold-left|fold-right|for-all|force|foreign-address-name|foreign-alloc|foreign-callable|foreign-callable-code-object|foreign-callable-entry-point|foreign-entry|foreign-entry\?|foreign-free|foreign-procedure|foreign-ref|foreign-set!|foreign-sizeof|format|format-condition\?|fprintf|free-identifier=\?|fresh-line|ftype-&ref|ftype-init-lock!|ftype-lock!|ftype-locked-decr!|ftype-locked-incr!|ftype-pointer->sexpr|ftype-pointer-address|ftype-pointer-ftype|ftype-pointer-null\?|ftype-pointer=\?|ftype-pointer\?|ftype-ref|ftype-set!|ftype-sizeof|ftype-spin-lock!|ftype-unlock!|fx-|fx-/carry|fx/|fx1-|fx1\+|fx<|fx<=|fx<=\?|fx<\?|fx=|fx=\?|fx>|fx>=|fx>=\?|fx>\?|fx\*|fx\*/carry|fx\+|fx\+/carry|fxabs|fxand|fxarithmetic-shift|fxarithmetic-shift-left|fxarithmetic-shift-right|fxbit-count|fxbit-field|fxbit-set\?|fxcopy-bit|fxcopy-bit-field|fxdiv|fxdiv-and-mod|fxdiv0|fxdiv0-and-mod0|fxeven\?|fxfirst-bit-set|fxif|fxior|fxlength|fxlogand|fxlogbit0|fxlogbit1|fxlogbit\?|fxlogior|fxlognot|fxlogor|fxlogtest|fxlogxor|fxmax|fxmin|fxmod|fxmod0|fxmodulo|fxnegative\?|fxnonnegative\?|fxnonpositive\?|fxnot|fxodd\?|fxpositive\?|fxquotient|fxremainder|fxreverse-bit-field|fxrotate-bit-field|fxsll|fxsra|fxsrl|fxvector|fxvector->immutable-fxvector|fxvector->list|fxvector-copy|fxvector-fill!|fxvector-length|fxvector-ref|fxvector-set!|fxvector\?|fxxor|fxzero\?|gcd|generate-allocation-counts|generate-inspector-information|generate-instruction-counts|generate-interrupt-trap|generate-profile-forms|generate-temporaries|generate-wpo-files|gensym|gensym->unique-string|gensym-count|gensym-prefix|gensym\?|get-bytevector-all|get-bytevector-n|get-bytevector-n!|get-bytevector-some|get-bytevector-some!|get-char|get-datum|get-datum/annotations|get-hash-table|get-line|get-mode|get-output-string|get-process-id|get-registry|get-string-all|get-string-n|get-string-n!|get-string-some|get-string-some!|get-thread-id|get-u8|getenv|getprop|greatest-fixnum|hash-table-for-each|hash-table-map|hash-table\?|hashtable-cell|hashtable-clear!|hashtable-contains\?|hashtable-copy|hashtable-delete!|hashtable-entries|hashtable-ephemeron\?|hashtable-equivalence-function|hashtable-hash-function|hashtable-keys|hashtable-mutable\?|hashtable-ref|hashtable-set!|hashtable-size|hashtable-update!|hashtable-values|hashtable-weak\?|hashtable\?|heap-reserve-ratio|i/o-decoding-error\?|i/o-encoding-error-char|i/o-encoding-error\?|i/o-error-filename|i/o-error-port|i/o-error-position|i/o-error\?|i/o-file-already-exists-error\?|i/o-file-does-not-exist-error\?|i/o-file-is-read-only-error\?|i/o-file-protection-error\?|i/o-filename-error\?|i/o-invalid-position-error\?|i/o-port-error\?|i/o-read-error\?|i/o-write-error\?|iconv-codec|identifier-syntax|identifier\?|ieee-environment|imag-part|immutable-box\?|immutable-bytevector\?|immutable-fxvector\?|immutable-string\?|immutable-vector\?|implementation-restriction-violation\?|implicit-exports|import-notify|import-only|indirect-export|inexact|inexact->exact|inexact\?|infinite\?|initial-bytes-allocated|input-port-ready\?|input-port\?|inspect|inspect/object|integer->char|integer-length|integer-valued\?|integer\?|interaction-environment|interactive\?|internal-defines-as-letrec\*|interpret|iota|irritants-condition\?|isqrt|keyboard-interrupt-handler|last-pair|latin-1-codec|lcm|least-fixnum|length|lexical-violation\?|library-directories|library-exports|library-extensions|library-list|library-object-filename|library-requirements|library-requirements-options|library-version|list|list->fxvector|list->string|list->vector|list-copy|list-head|list-ref|list-sort|list-tail|list\*|list\?|literal-identifier=\?|load|load-library|load-program|load-shared-object|locate-source|locate-source-object-source|lock-object|locked-object\?|log|logand|logbit0|logbit1|logbit\?|logior|lognot|logor|logtest|logxor|lookahead-char|lookahead-u8|machine-type|magnitude|magnitude-squared|make-annotation|make-assertion-violation|make-boot-file|make-boot-header|make-bytevector|make-compile-time-value|make-continuation-condition|make-cost-center|make-custom-binary-input-port|make-custom-binary-input/output-port|make-custom-binary-output-port|make-custom-textual-input-port|make-custom-textual-input/output-port|make-custom-textual-output-port|make-date|make-engine|make-enumeration|make-ephemeron-eq-hashtable|make-ephemeron-eqv-hashtable|make-eq-hashtable|make-eqv-hashtable|make-error|make-format-condition|make-ftype-pointer|make-fxvector|make-guardian|make-hash-table|make-hashtable|make-i/o-decoding-error|make-i/o-encoding-error|make-i/o-error|make-i/o-file-already-exists-error|make-i/o-file-does-not-exist-error|make-i/o-file-is-read-only-error|make-i/o-file-protection-error|make-i/o-filename-error|make-i/o-invalid-position-error|make-i/o-port-error|make-i/o-read-error|make-i/o-write-error|make-implementation-restriction-violation|make-input-port|make-input/output-port|make-irritants-condition|make-lexical-violation|make-list|make-message-condition|make-no-infinities-violation|make-no-nans-violation|make-non-continuable-violation|make-object-finder|make-output-port|make-parameter|make-polar|make-record-constructor-descriptor|make-record-type|make-record-type-descriptor|make-rectangular|make-serious-condition|make-source-condition|make-source-file-descriptor|make-source-object|make-sstats|make-string|make-syntax-violation|make-time|make-transcoder|make-undefined-violation|make-variable-transformer|make-vector|make-violation|make-warning|make-weak-eq-hashtable|make-weak-eqv-hashtable|make-who-condition|map|mark-port-closed!|max|maximum-memory-bytes|maybe-compile-file|maybe-compile-library|maybe-compile-program|member|memp|memq|memv|merge|merge!|message-condition\?|min|mkdir|mod|mod0|modulo|most-negative-fixnum|most-positive-fixnum|multibyte->string|mutable-box\?|mutable-bytevector\?|mutable-fxvector\?|mutable-string\?|mutable-vector\?|nan\?|native-endianness|native-eol-style|native-transcoder|negative\?|new-cafe|newline|no-infinities-violation\?|no-nans-violation\?|non-continuable-violation\?|nonnegative\?|nonpositive\?|not|null-environment|null\?|number->string|number\?|numerator|object-counts|oblist|odd\?|open-bytevector-input-port|open-bytevector-output-port|open-fd-input-port|open-fd-input/output-port|open-fd-output-port|open-file-input-port|open-file-input/output-port|open-file-output-port|open-input-file|open-input-output-file|open-input-string|open-output-file|open-output-string|open-process-ports|open-source-file|open-string-input-port|open-string-output-port|optimize-level|or|ormap|output-port-buffer-mode|output-port\?|pair\?|parameterize|pariah|partition|path-absolute\?|path-extension|path-first|path-last|path-parent|path-rest|path-root|peek-char|petite\?|port-bol\?|port-closed\?|port-eof\?|port-file-compressed!|port-file-descriptor|port-handler|port-has-port-length\?|port-has-port-nonblocking\?\?|port-has-port-position\?|port-has-set-port-length!\?|port-has-set-port-nonblocking!\?|port-has-set-port-position!\?|port-input-buffer|port-input-count|port-input-empty\?|port-input-index|port-input-size|port-length|port-name|port-nonblocking\?|port-output-buffer|port-output-count|port-output-full\?|port-output-index|port-output-size|port-position|port-transcoder|port\?|positive\?|predicate|prefix|pretty-file|pretty-format|pretty-initial-indent|pretty-line-length|pretty-maximum-lines|pretty-one-line-limit|pretty-print|pretty-standard-indent|print-brackets|print-char-name|print-extended-identifiers|print-gensym|print-graph|print-length|print-level|print-precision|print-radix|print-record|print-unicode|print-vector-length|printf|procedure-arity-mask|procedure\?|process|profile|profile-clear|profile-clear-database|profile-dump|profile-dump-data|profile-dump-html|profile-dump-list|profile-line-number-color|profile-load-data|profile-palette|profile-query-weight|property-list|put-bytevector|put-bytevector-some|put-char|put-datum|put-hash-table!|put-registry!|put-string|put-string-some|put-u8|putenv|putprop|quotient|r5rs|r5rs-syntax|r6rs:<|r6rs:<=|r6rs:=|r6rs:>|r6rs:>=|r6rs:call-with-input-file|r6rs:call-with-output-file|r6rs:char-ci<=\?|r6rs:char-ci<\?|r6rs:char-ci=\?|r6rs:char-ci>=\?|r6rs:char-ci>\?|r6rs:char<=\?|r6rs:char<\?|r6rs:char=\?|r6rs:char>=\?|r6rs:char>\?|r6rs:command-line|r6rs:current-error-port|r6rs:current-input-port|r6rs:current-output-port|r6rs:delete-file|r6rs:dynamic-wind|r6rs:eval|r6rs:exit|r6rs:file-exists\?|r6rs:flush-output-port|r6rs:fx-|r6rs:fx\*|r6rs:fx\+|r6rs:number->string|r6rs:open-input-file|r6rs:open-output-file|r6rs:record-constructor|r6rs:record\?|r6rs:standard-error-port|r6rs:standard-input-port|r6rs:standard-output-port|r6rs:string->number|r6rs:string-ci<=\?|r6rs:string-ci<\?|r6rs:string-ci=\?|r6rs:string-ci>=\?|r6rs:string-ci>\?|r6rs:string<=\?|r6rs:string<\?|r6rs:string=\?|r6rs:string>=\?|r6rs:string>\?|r6rs|r6rs:utf-16-codec|r6rs:with-input-from-file|r6rs:with-output-to-file|raise|raise-continuable|random|random-seed|rational-valued\?|rational\?|rationalize|ratnum\?|read|read-char|read-token|real->flonum|real-part|real-time|real-valued\?|real\?|rec|record-accessor|record-constructor|record-constructor-descriptor|record-constructor-descriptor\?|record-equal-procedure|record-field-mutable\?|record-hash-procedure|record-mutator|record-predicate|record-reader|record-rtd|record-type-descriptor\?|record-type-equal-procedure|record-type-field-names|record-type-generative\?|record-type-hash-procedure|record-type-name|record-type-opaque\?|record-type-parent|record-type-sealed\?|record-type-uid|record-writer|record\?|register-signal-handler|release-minimum-generation|remainder|remove|remove!|remove-foreign-entry|remove-hash-table!|remove-registry!|remp|remprop|remq|remq!|remv|remv!|rename|rename-file|require-nongenerative-clause|reset|reset-cost-center!|reset-handler|reset-maximum-memory-bytes!|reverse|reverse!|revisit|round|run-cp0|s8-list->bytevector|sc-expand|scheme-environment|scheme-program|scheme-report-environment|scheme-script|scheme-start|scheme-version|scheme-version-number|serious-condition\?|set-binary-port-input-buffer!|set-binary-port-input-index!|set-binary-port-input-size!|set-binary-port-output-buffer!|set-binary-port-output-index!|set-binary-port-output-size!|set-box!|set-car!|set-cdr!|set-port-bol!|set-port-eof!|set-port-input-buffer!|set-port-input-index!|set-port-input-size!|set-port-length!|set-port-name!|set-port-nonblocking!|set-port-output-buffer!|set-port-output-index!|set-port-output-size!|set-port-position!|set-sstats-bytes!|set-sstats-cpu!|set-sstats-gc-bytes!|set-sstats-gc-count!|set-sstats-gc-cpu!|set-sstats-gc-real!|set-sstats-real!|set-textual-port-input-buffer!|set-textual-port-input-index!|set-textual-port-input-size!|set-textual-port-output-buffer!|set-textual-port-output-index!|set-textual-port-output-size!|set-time-nanosecond!|set-time-second!|set-time-type!|set-timer|set-top-level-value!|set-virtual-register!|simple-conditions|sin|sinh|sint-list->bytevector|sleep|sort|sort!|source-condition-form|source-condition\?|source-directories|source-file-descriptor|source-file-descriptor-checksum|source-file-descriptor-path|source-file-descriptor\?|source-object-bfp|source-object-column|source-object-efp|source-object-line|source-object-sfd|source-object\?|sqrt|sstats-bytes|sstats-cpu|sstats-difference|sstats-gc-bytes|sstats-gc-count|sstats-gc-cpu|sstats-gc-real|sstats-print|sstats-real|sstats\?|standard-error-port|standard-input-port|standard-output-port|statistics|string|string->bytevector|string->immutable-string|string->list|string->multibyte|string->number|string->symbol|string->utf16|string->utf32|string->utf8|string-append|string-ci-hash|string-ci<=\?|string-ci<\?|string-ci=\?|string-ci>=\?|string-ci>\?|string-copy|string-copy!|string-downcase|string-fill!|string-foldcase|string-for-each|string-hash|string-length|string-normalize-nfc|string-normalize-nfd|string-normalize-nfkc|string-normalize-nfkd|string-ref|string-set!|string-titlecase|string-truncate!|string-upcase|string<=\?|string<\?|string=\?|string>=\?|string>\?|string\?|strip-fasl-file|sub1|subset-mode|subst|subst!|substq|substq!|substring|substring-fill!|substv|substv!|subtract-duration|subtract-duration!|suppress-greeting|symbol->string|symbol-hash|symbol-hashtable-cell|symbol-hashtable-contains\?|symbol-hashtable-delete!|symbol-hashtable-ref|symbol-hashtable-set!|symbol-hashtable-update!|symbol-hashtable\?|symbol=\?|symbol\?|syntax|syntax->annotation|syntax->datum|syntax->list|syntax->vector|syntax-case|syntax-error|syntax-object->datum|syntax-violation|syntax-violation-form|syntax-violation-subform|syntax-violation\?|system|tan|tanh|textual-port-input-buffer|textual-port-input-count|textual-port-input-index|textual-port-input-size|textual-port-output-buffer|textual-port-output-count|textual-port-output-index|textual-port-output-size|textual-port\?|thread\?|threaded\?|time|time-difference|time-difference!|time-nanosecond|time-second|time-type|time-utc->date|time<=\?|time<\?|time=\?|time>=\?|time>\?|time\?|timer-interrupt-handler|top-level-bound\?|top-level-mutable\?|top-level-program|top-level-syntax|top-level-syntax\?|top-level-value|trace|trace-case-lambda|trace-define|trace-define-syntax|trace-do|trace-lambda|trace-let|trace-output-port|trace-print|transcoded-port|transcoder-codec|transcoder-eol-style|transcoder-error-handling-mode|transcoder\?|transcript-cafe|transcript-off|transcript-on|truncate|truncate-file|truncate-port|u8-list->bytevector|uint-list->bytevector|unbox|undefined-variable-warnings|undefined-violation\?|unget-char|unget-u8|unlock-object|unquote|unquote-splicing|unread-char|unsyntax|unsyntax-splicing|untrace|utf-16-codec|utf-16be-codec|utf-16le-codec|utf-8-codec|utf16->string|utf32->string|utf8->string|values|vector|vector->immutable-vector|vector->list|vector-copy|vector-fill!|vector-for-each|vector-length|vector-map|vector-ref|vector-set!|vector-set-fixnum!|vector-sort|vector-sort!|vector\?|violation\?|virtual-register|virtual-register-count|visit|void|waiter-prompt-and-read|waiter-prompt-string|waiter-write|warning|warning\?|warningf|weak-cons|weak-pair\?|who-condition\?|with-cost-center|with-exception-handler|with-input-from-file|with-input-from-string|with-interrupts-disabled|with-output-to-file|with-output-to-string|with-source-path|write|write-char|zero\?)(?=[\(\[\s\]\)])
566+ scope: support.function.scheme
templates/base.html+1−1
@@ -14,7 +14,7 @@
1414 {% endblock title %}
1515 {% block description %}
1616 {% endblock description %}
17− <meta name="author" content="{{ config.extra.author.name }}">
17+ <meta name="author" content="{{ config.extra.author }}">
1818 <!-- END META -->
1919
2020 <!-- START FAVICON -->
templates/getting-started/index.htmlnew file+41
@@ -0,0 +1,41 @@
1+{% extends "base.html" %}
2+{% block title %}
3+ <meta name="og:title" content="Getting Started - {{ config.title }}">
4+ <title>Getting Started - {{ config.title }}</title>
5+{% endblock title %}
6+
7+{% block description %}
8+ <meta name="og:description" content="Urbit is a new kind of computer.">
9+ <meta name="description" content="Urbit is a new kind of computer.">
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+<nav class="mt4 full fourth-1-lg mb3 mb0-m mb0-l mb0-xl absolute-xl">
19+ <a class="gray3" href="/">Urbit</a>
20+ <span class="gray3"> / </span>
21+ <a href="/getting-started/">
22+ Getting Started
23+ </a>
24+
25+ {% include "partials/navigation-search.html" %}
26+
27+ <li class="dn mw5-xl mw5-l db-xl page-indiced mv2"><a class="fw6 f6" href="/getting-started/">Introduction</a></li>
28+ {% set posts = get_section(path="getting-started/_index.md") %}
29+ {% for directorypage in posts.pages %}
30+ <li class="dn mw5-xl mw5-l db-xl page-indiced mv2"><a class="f6" href="{{directorypage.permalink}}">{{directorypage.title}}</a></li>
31+ {% endfor %}
32+
33+</nav>
34+<!-- content -->
35+<article class="mt4 mb6 full c4-12-lg measure-wide">
36+ <!-- header -->
37+ <h1>{{ section.title }}</h1>
38+ <!-- body -->
39+ {{ section.content | safe }}
40+</article>
41+{% endblock content %}
templates/media/post.htmlnew file+67
@@ -0,0 +1,67 @@
1+{% extends "base.html" %}
2+{% block title %}
3+ <meta name="og:title" content="{{ page.title }} - {{ config.title }}">
4+ <title>{{ page.title }} - {{ config.title }}</title>
5+{% endblock title %}
6+
7+{% block description %}
8+ {% if page.description %}
9+ <meta name="og:description" content="{{ page.description }}">
10+ <meta name="description" content="{{ page.description }}">
11+ {% else %}
12+ <meta name="og:description" content="{{ config.description }}">
13+ <meta name="description" content="{{ config.description }}">
14+ {% endif %}
15+{% endblock description %}
16+
17+{% block bodyclasses %}
18+ class="
19+ {% if page.extra.classes %}
20+ {{ page.extra.classes }}
21+ {% else %}
22+ bg-white
23+ {% endif %}"
24+{% endblock bodyclasses %}
25+
26+{% block image %}
27+ {% if page.extra.image %}
28+ <meta name="twitter:image" content="{{ page.extra.image }}">
29+ {% else %}
30+ <meta name="twitter:image" content="https://media.urbit.org/logo/urbit-logo-card.png">
31+ {% endif %}
32+{% endblock image %}
33+
34+{% block content %}
35+<nav class="mt4 full fourth-1-lg mb3 mb0-m mb0-l mb0-xl">
36+ <a class="gray3" href="/">Urbit</a>
37+ <span class="gray3"> / </span>
38+ <a class="section" href="/{{ page.components[0] }}">
39+ {% set sectionname = get_section(path=page.components[0] ~ "/_index.md") %}
40+ {{ sectionname.title }}
41+ </a>
42+
43+ {% include "partials/navigation-search.html" %}
44+</nav>
45+
46+<article class="mb4 mt4 measure-wide full c4-12-lg">
47+ <h1 class="f5 fw6 mt0 mb1">{{ page.title }}</h1>
48+ {% if page.extra.author %}
49+ <span class="db">
50+ <span class="dib fw4 mr1" rel="author">{{ page.extra.author }}</span>
51+ {% if page.extra.ship %}
52+ <address class="dib gray0 fw4 mono">{{ page.extra.ship }}</address>
53+ {% endif %}
54+ </span>
55+ {% if page.date %}
56+ <time class="mono db gray0 f5">{{page.date | date(format="~%Y.%-m.%-d") }}</time>
57+ {% endif %}
58+ {% endif %}
59+ {% if page.extra.readtime %}
60+ <span class="dib mono {% if page.date %} ml2{% endif %} gray2 f5">{{ page.reading_time }}m read</span>
61+ {% endif %}
62+
63+ {{ page.content | safe }}
64+
65+ {% include "partials/pagination.html" %}
66+</article>
67+{% endblock content %}
templates/page/getting_started.htmldeleted−68
@@ -1,68 +0,0 @@
1−{% extends "base.html" %}
2−<!-- JAL(2021.3.12) This page is a hack in order to get the title set properly in the /getting-started/planet route because I'm a Zola noob. -->
3−{% block bodyclasses %}class="page-indiced"{% endblock bodyclasses %}
4−
5−{% block title %}
6− <meta name="og:title" content="{{ page.title }} - {{ config.title }}">
7− <title>{{ page.title }} - {{ config.title }}</title>
8−{% endblock title %}
9−
10−{% block description %}
11− {% if page.description %}
12− <meta name="og:description" content="{{ page.description }}">
13− <meta name="description" content="{{ page.description }}">
14− {% else %}
15− <meta name="og:description" content="{{ config.description }}">
16− <meta name="description" content="{{ config.description }}">
17− {% endif %}
18−{% endblock description %}
19−
20−{% block image %}
21− {% if page.extra.image %}
22− <meta name="twitter:image" content="{{ page.extra.image }}">
23− {% else %}
24− <meta name="twitter:image" content="https://media.urbit.org/logo/urbit-logo-card.png">
25− {% endif %}
26−{% endblock image %}
27−
28−{% block content %}
29−
30−<!-- header -->
31−<!-- content -->
32−<nav class="mt4 fixed-xl full fourth-1-lg page-indiced mb3 mb0-m mb0-l mb0-xl">
33− <a class="gray3" href="/">Urbit</a>
34− <span class="gray3"> / </span>
35− <a href="/{{ page.components[0] }}{% if page.components[2] %}/{{ page.components[1] }}{% endif %}">
36− Getting Started
37− </a>
38−
39− {% include "partials/navigation-search.html" %}
40−
41−{% for h2 in toc %}
42−{% if h2.children %}
43−<details class="dn mw5-xl mt2 mw5-l db-xl page-indiced f6"><summary>{{ h2.title }}</summary>
44− {% for h3 in h2.children %}
45− <li class="ml3 mv1"><a href="{{h3.permalink | safe}}">{{h3.title}}</a></li>
46− {% endfor %}
47−</details>
48−{% else %}
49− <li class="dn mw5-xl mw5-l db-xl page-indiced mv2"><a class="f6" href="{{h2.permalink}}">{{h2.title}}</a></li>
50−{% endif %}
51−{% endfor %}
52−</nav>
53− <article class="mt4 mb6 c1-13 c4-12-lg measure-wide">
54− {% if page.extra.hidetitle %} {% else %}<h1>{{ page.title }}</h1>{% endif %}
55− {% if page.extra.author %}
56− <span class="mt2 dib" rel="author"> {{ page.extra.author }} </span>
57− {% if page.extra.ship %}
58− <address class="mono">{{ page.extra.ship }}</address>
59− {% endif %}
60− {% if page.date %}
61− <time class="mono db mv1 gray4 f5">{{page.date | date(format="~%Y.%-m.%-d") }}</time>
62− {% endif %}
63− {% endif %}
64− <!-- body -->
65− {{ page.content | safe }}
66− {% include "partials/pagination.html" %}
67− </article>
68−{% endblock content %}
templates/page_indiced.html+1−1
@@ -55,7 +55,7 @@
5555
5656{% endif %}
5757
58−{% for h2 in toc %}
58+{% for h2 in page.toc %}
5959{% if h2.children %}
6060<details class="dn mw5-xl mt2 mw5-l db-xl page-indiced f6"><summary>{{ h2.title }}</summary>
6161 {% for h3 in h2.children %}