on master help sign in
Copyedits
73dba66Matilde Park
content/develop.md+29−44
@@ -3,77 +3,62 @@ title = "Develop"
3template = "page_indiced.html"
3template = "page_indiced.html"
4+++
4+++
5
5
6−## Core Development {#core}
6+We recognize that not every developer wants to work on Urbit itself – there’s a lot of space for developers building their applications on Urbit. To help you get settled, we have information that distinguishes the goals for both core and application development:
7
7
8−## Application Development {#application}
8+- Core development: improving and extending Urbit itself
9+- Application development: building end-user peer-to-peer applications that run on Urbit
9
10
10−## Creating a Development Ship {#creating-a-development-ship}
11+This guide will start by getting you set up to run an Urbit ship, and then tell you everything you need to now do to either.
11
12
12−To do work with Hoon and with the system, we recommended using a "fake" ship -- one not connected to the network.
13+### Setting up your environment
13−
14−Because such a ship has no presence on the network, you don't need an Azimuth identity for its purposes. You just need to have [installed our software](/install).
15−
16−To create a fake ship named `~zod`, run the command below. You can replace `zod` with any valid Urbit ship-name.
17−
18−```
19−urbit -F zod
20−```
21
14
22−Now you should see a block of boot messages, starting with the Urbit version number. Welcome!
15+We assume you’ve gotten a basic introduction to Urbit. If you haven’t, read the [Understanding Urbit](@/understanding-urbit/_index.md) series, or just jump ahead to the [Technical Overview](@/understanding-urbit/technical-overview.md).
23
16
24−### Basic Operations
17+Once you’re ready, you can get started on the network right away and take some first steps, without acquiring an identity, by [creating a comet](@/operations.md#creating-a-comet).
25
18
26−Welcome to your ship! There's a few things you should do to become oriented.
19+When developing, however, we recommend [booting a development ship](#creating-a-development-ship) and working locally.
27
20
28−#### The Dojo
21+## Core development {#core}
29
22
30−Let's try out the Dojo, the Arvo command line and Hoon REPL:
23+Working on the core means improving the Urbit project itself, working with a global community of developers.
31
24
32−```
25+Just arrived and unsure what to work on? An ideal way to get started is by experimenting with the system, talking to other developers, and reading (or [contributing to](https://github.com/urbit/docs)) the [documentation](/docs/).
33−~sample-planet:dojo> (add 2 2)
34−```
35
26
36−Should produce:
27+Prefer learning with an instructor? We also offer an online course that covers the basics of Urbit development called [Hoon School](@/hoonschool.md). If course-based learning works well for you, we recommend you sign up.
37
28
38−```
29+The Urbit developer community congregates around [the urbit-dev mailing list](https://groups.google.com/a/urbit.org/forum/#!forum/dev), the `~dopzod/urbit-help channel` on Landscape, and [Urbit’s GitHub repository](https://github.com/urbit/urbit). It’s a good idea to sign up, see what people are talking about, and introduce yourself.
39−> (add 2 2)
40−4
41−```
42
30
43−Good.
31+Once you’re comfortable working with Urbit, check out the [project’s issues on GitHub](https://github.com/urbit/urbit/issues) or some of our [contribution bounties](https://grants.urbit.org/).
44
32
45−#### Mounting
33+If you’re looking for some guidance, need help, or would prefer direct communication for your ideas, you can also always reach out to us directly at [support@urbit.org](mailto:support@urbit.org).
46
34
47−Your ship's filesystem being "mounted" means that its filesystem can be interacted with through Unix. This makes things much easier for you.
35+## Application development {#application}
48
36
49−The Arvo filesystem isn't mounted to Unix by default. Switch to the Dojo prompt and run:
37+Building an application on Urbit provides a lot of features for you. It means being able to leverage its [personal key infrastructure](https://azimuth.network/), which verifies its scarce address space and associating that verification with other data; or the [global filesystem](@/docs/arvo/clay.md), enabling permissioned directories and social software. Building your application on Urbit could be building decentralized applications for your own groups. Building your application on Urbit could also just be building your ship’s access to the rest of the world.
50
38
51−```
39+The Arvo vane that manages user applications is called [Gall](@/docs/hoon/hoon-tutorial/gall.md). When writing your application, you will want to consult its documentation for information on its interface to the rest of your ship (or to other ships).
52−~sample-planet:dojo> |mount %
53−```
54
40
55−This should produce:
41+Gall applications don’t tie you to use any particular user interface. They can work without providing a response to the user; or by printing to the Dojo; or with an interface in Landscape, which uses [Eyre](@/docs/arvo/eyre.md), the Arvo vane that serves HTTP, to serve a React-based interface to the application through a web browser.
56
42
57−```
43+Landscape has both tile-specific and full-screen applications. For a Landscape template wizard, check out our [create-landscape-app](https://github.com/urbit/create-landscape-app) repository.
58−> |mount %
59−>=
60−```
61
44
62−which indicates that the command was processed.
45+For examples of Gall applications, you can see the [Egg Timer example](@/docs/hoon/hoon-tutorial/egg-timer.md) in the documentation; Gall applications with a Landscape interface include the [Weather tile](https://github.com/urbit/urbit/blob/master/pkg/arvo/app/weather.hoon) (its Landscape interface code is located [here](https://github.com/urbit/urbit/blob/master/pkg/interface/weather/tile/tile.js) and compiled separately).
63
46
64−`|mount %` will cause a `home/` directory to appear inside your _pier_ folder in Unix (the "pier" is our shorthand for the directory whose name corresponds to your Azimuth point). Changes to these files can be committed to your pier by running `|commit %home` once you're done.
47+## Creating a development ship {#creating-a-development-ship}
65
48
66−#### Shutting Down and Restarting
49+To do work with Hoon and with the system, we recommended using a "fake" ship -- one not connected to the network.
67
50
68−You can turn your ship off with `ctrl-d` from the Talk or Dojo prompts.
51+Because such a ship has no presence on the network, you don't need an Azimuth identity for its purposes. You just need to have [installed our software](/install).
69
52
70−To restart your ship, simply pass the name of your pier:
53+To create a fake ship named `~zod`, run the command below. You can replace `zod` with any valid Urbit ship-name.
71
54
72```
55```
73−urbit some-planet
56+urbit -F zod
74```
57```
75
58
59+Now you should see a block of boot messages, starting with the Urbit version number. Welcome!
60+
76−## Community Tutorials {#community-tutorials}
61+## Community tutorials {#community-tutorials}
77
62
78Here are some tutorials written by members of the Urbit community. Some are a little outdated, but they may still prove useful.
63Here are some tutorials written by members of the Urbit community. Some are a little outdated, but they may still prove useful.
79
64
content/operations.md+44−44
@@ -33,7 +33,7 @@ Note: Bridge allows you to both make reads and writes to the Ethereum blockchain
33
33
34Once the program is running in your browser, go through the steps presented according to the type of wallet you have. You’ll be presented with a few login options. A notable option is Urbit Master Ticket. This is for those who used our Wallet Generator software. If you bought points from an Urbit sale and then used the Wallet Generator, your networking keys will be set for you. All other login options will require you to set your own networking keys.
34Once the program is running in your browser, go through the steps presented according to the type of wallet you have. You’ll be presented with a few login options. A notable option is Urbit Master Ticket. This is for those who used our Wallet Generator software. If you bought points from an Urbit sale and then used the Wallet Generator, your networking keys will be set for you. All other login options will require you to set your own networking keys.
35
35
36−### Accept Your Transfer
36+### Accept your transfer
37
37
38If you were given points by Tlon you likely already fully own them. But if someone else sent you a point, then you will first need to use Bridge to accept that transfer.
38If you were given points by Tlon you likely already fully own them. But if someone else sent you a point, then you will first need to use Bridge to accept that transfer.
39
39
@@ -43,7 +43,7 @@ Now you'll be on the management page of your point. The transfer isn't completed
43
43
44If you already own a point, click on the `Details ->` under your sigil in the `Your Points` section.
44If you already own a point, click on the `Details ->` under your sigil in the `Your Points` section.
45
45
46−### Set Your Networking Keys
46+### Set your networking keys
47
47
48If you just accepted a point, you'll be returned to your point screen. Notice that that links and buttons are now clickable. You now own this point!
48If you just accepted a point, you'll be returned to your point screen. Notice that that links and buttons are now clickable. You now own this point!
49
49
@@ -57,14 +57,14 @@ and use the result.
57
57
58It should be noted that setting your network keys is an event on the Ethereum network and will therefore cost a trivial, but non-zero, amount of [gas](https://github.com/ethereum/wiki/wiki/Design-Rationale#gas-and-fees) to complete.
58It should be noted that setting your network keys is an event on the Ethereum network and will therefore cost a trivial, but non-zero, amount of [gas](https://github.com/ethereum/wiki/wiki/Design-Rationale#gas-and-fees) to complete.
59
59
60−### Generate Your Keyfile
60+### Generate your keyfile
61
61
62From 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.
62From 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.
63Click `Generate ->`, which will download a keyfile onto your machine.
63Click `Generate ->`, which will download a keyfile onto your machine.
64
64
65With that keyfile in hand, you can now exit Bridge and continue to the guide to [install the Urbit binary](@/install.md).
65With that keyfile in hand, you can now exit Bridge and continue to the guide to [install the Urbit binary](@/install.md).
66
66
67−## Using Your Ship {#urbit-administration}
67+## Using your ship {#urbit-administration}
68
68
69Your urbit (also called your _ship_) is a persistent Unix process that you mainly control from the console.
69Your urbit (also called your _ship_) is a persistent Unix process that you mainly control from the console.
70
70
@@ -238,7 +238,7 @@ Because Urbit networking is stateful we call this a _continuity breach_. Everyth
238
238
239When this happens, back up any files you'd like to save, shut down your urbit, and recreate it (as if you were starting for the first time).
239When this happens, back up any files you'd like to save, shut down your urbit, and recreate it (as if you were starting for the first time).
240
240
241−## Creating a Comet {#creating-a-comet}
241+## Creating a comet {#creating-a-comet}
242
242
243**Comets** are urbits whose names are 128-bits or 16 syllables, such as:
243**Comets** are urbits whose names are 128-bits or 16 syllables, such as:
244
244
@@ -246,7 +246,7 @@ When this happens, back up any files you'd like to save, shut down your urbit, a
246
246
247Comet names aren't quite as memorable as others, but they're disposable identities that anyone can make for free to join the live network.
247Comet names aren't quite as memorable as others, but they're disposable identities that anyone can make for free to join the live network.
248
248
249−### Booting a Comet
249+### Booting a comet
250
250
251To boot your comet, go into the command line and run the following command from the directory that was created during Urbit installation:
251To boot your comet, go into the command line and run the following command from the directory that was created during Urbit installation:
252
252
@@ -264,7 +264,7 @@ http: live (insecure, loopback) on 12321
264~dasres_marzod:dojo>
264~dasres_marzod:dojo>
265```
265```
266
266
267−## DNS Proxying {#dns-proxying}
267+## DNS proxying {#dns-proxying}
268
268
269We have a system that lets you request a domain name for your ship in the form of `ship.arvo.network`, where `ship` is your ship's name minus the `~`. This allows users to access their ships remotely using Landscape, our graphical web interface.
269We have a system that lets you request a domain name for your ship in the form of `ship.arvo.network`, where `ship` is your ship's name minus the `~`. This allows users to access their ships remotely using Landscape, our graphical web interface.
270
270
@@ -308,7 +308,7 @@ This will make HTTP-requests to self-check availability over `galaxy.$AMES-DOMAI
308
308
309Otherwise, `:dns|auto` works the same as `:dns|ip` does with stars and planets: if it's available or unavailable, talk messages, and so on.
309Otherwise, `:dns|auto` works the same as `:dns|ip` does with stars and planets: if it's available or unavailable, talk messages, and so on.
310
310
311−### More Information
311+### More information
312
312
313Configuring a ship's domain causes the `:acme` app to request an HTTPS certificate for that domain from LetsEncrypt. Note that LetsEncrypt also requires that the HTTP server be listening on port 80. If the certificate request fails, `:acme` will send a `:talk` message with an explanation. Once the certificate is successfully retrieved, `:acme` will install it, causing the HTTP servers to restart. A secure server will be started on port 443 (the HTTPS default) if it's available. Otherwise, it will try 8443, and then increment to the next port until it can successfully bind one.
313Configuring a ship's domain causes the `:acme` app to request an HTTPS certificate for that domain from LetsEncrypt. Note that LetsEncrypt also requires that the HTTP server be listening on port 80. If the certificate request fails, `:acme` will send a `:talk` message with an explanation. Once the certificate is successfully retrieved, `:acme` will install it, causing the HTTP servers to restart. A secure server will be started on port 443 (the HTTPS default) if it's available. Otherwise, it will try 8443, and then increment to the next port until it can successfully bind one.
314
314
@@ -352,7 +352,7 @@ You'll see your message printed below messages from others that came before it:
352~your-urbit= Hello, world!
352~your-urbit= Hello, world!
353```
353```
354
354
355−### Direct Messaging
355+### Direct messaging
356
356
357To send a direct message to someone, first set your audience:
357To send a direct message to someone, first set your audience:
358
358
@@ -475,7 +475,7 @@ will print as
475~your-urbit=^ Well, thanks!
475~your-urbit=^ Well, thanks!
476```
476```
477
477
478−#### Activating Lines
478+#### Activating lines
479
479
480A line number identifying the **subsequent** line is displayed every 5 lines.
480A line number identifying the **subsequent** line is displayed every 5 lines.
481
481
@@ -559,7 +559,7 @@ To delete our example above:
559sampel-palnet:talk> ;delete %coolbox 'people sent uncool messages'
559sampel-palnet:talk> ;delete %coolbox 'people sent uncool messages'
560```
560```
561
561
562−#### Change Description
562+#### Change description
563
563
564Syntax: `;depict %name 'description'`
564Syntax: `;depict %name 'description'`
565
565
@@ -639,17 +639,17 @@ For example:
639~sampel-palnet:talk> ;unsource %coolbox ~marzod/urbit-help
639~sampel-palnet:talk> ;unsource %coolbox ~marzod/urbit-help
640```
640```
641
641
642−#### Circle Membership
642+#### Circle membership
643
643
644If you have joined a circle, you can make this information publicly available to help others find that circle as well.
644If you have joined a circle, you can make this information publicly available to help others find that circle as well.
645
645
646−#### Show Membership
646+#### Show membership
647
647
648Syntax: `;show ~some/circle`
648Syntax: `;show ~some/circle`
649
649
650Adds a circle to your public membership list on your Hall profile. Hall profiles are not used yet.
650Adds a circle to your public membership list on your Hall profile. Hall profiles are not used yet.
651
651
652−#### Hide Membership
652+#### Hide membership
653
653
654Syntax: `;hide ~some/circle`
654Syntax: `;hide ~some/circle`
655
655
@@ -659,13 +659,13 @@ Removes a circle from your public membership list on your Hall profile. Hall pro
659
659
660You'll see status notifications when people enter or leave circles you're subscribed to.
660You'll see status notifications when people enter or leave circles you're subscribed to.
661
661
662−#### Notifications Off
662+#### Notifications off
663
663
664Syntax: `;set quiet`
664Syntax: `;set quiet`
665
665
666Turn off status (and config) notifications.
666Turn off status (and config) notifications.
667
667
668−#### Notifications On
668+#### Notifications on
669
669
670Syntax: `;unset quiet`
670Syntax: `;unset quiet`
671
671
@@ -703,7 +703,7 @@ For example:
703~sampel-palnet:talk> ;attend ~marzod/urbit-help idle
703~sampel-palnet:talk> ;attend ~marzod/urbit-help idle
704```
704```
705
705
706−#### Set Display Name
706+#### Set display name
707
707
708Syntax: `;name ~some/circle 'my handle'`
708Syntax: `;name ~some/circle 'my handle'`
709
709
@@ -717,7 +717,7 @@ An audience consists of one or more messaging targets. These can be
717circles or ships. (In the latter case, it's secretly the `~ship/inbox`
717circles or ships. (In the latter case, it's secretly the `~ship/inbox`
718circle.)
718circle.)
719
719
720−#### Circle Glyphs
720+#### Circle glyphs
721
721
722Glyphs are found at the end of your prompt to as a quick indicator of where
722Glyphs are found at the end of your prompt to as a quick indicator of where
723your messages will be sent.
723your messages will be sent.
@@ -804,31 +804,31 @@ There are a few special-purpose glyphs:
804
804
805### Configuration
805### Configuration
806
806
807−#### Set Audience
807+#### Set audience
808
808
809`;~ship/circle`
809`;~ship/circle`
810
810
811Set audience to `~ship/circle`.
811Set audience to `~ship/circle`.
812
812
813−#### Set Audience by Glyph
813+#### Set audience by glyph
814
814
815Syntax: `;[glyph]`
815Syntax: `;[glyph]`
816
816
817Set audience to the circle previously bound to the chosen glyph.
817Set audience to the circle previously bound to the chosen glyph.
818
818
819−#### Set Audience to Ship
819+#### Set audience to ship
820
820
821syntax `;~ship`
821syntax `;~ship`
822
822
823Set audience to another ship.
823Set audience to another ship.
824
824
825−#### Set Audience to Own Circle
825+#### Set audience to own circle
826
826
827Syntax: `;%circle`
827Syntax: `;%circle`
828
828
829Set audience to a circle on your own ship.
829Set audience to a circle on your own ship.
830
830
831−#### Set Audience + Send Message
831+#### Set audience and send message
832
832
833Syntax: `;~dannum-mitryl this is a private message`
833Syntax: `;~dannum-mitryl this is a private message`
834
834
@@ -843,44 +843,44 @@ Your audience is configured with regard to the following rules (in order):
843
843
844### Local nicknames
844### Local nicknames
845
845
846−#### See Nicknames
846+#### See nicknames
847
847
848Syntax: `;nick`
848Syntax: `;nick`
849
849
850List all local nicknames.
850List all local nicknames.
851
851
852−#### Find Nickname
852+#### Find nickname
853
853
854Syntax: `;nick ~some-urbit`
854Syntax: `;nick ~some-urbit`
855
855
856Look up a nickname using the known ship-name.
856Look up a nickname using the known ship-name.
857
857
858−#### Reverse Find Nickname
858+#### Reverse-find nickname
859
859
860syntax: `;nick plato`
860syntax: `;nick plato`
861
861
862Find a ship's name using its nickname.
862Find a ship's name using its nickname.
863
863
864−#### Set Nickname
864+#### Set nickname
865
865
866Syntax: `;nick ~some-urbit plato`
866Syntax: `;nick ~some-urbit plato`
867
867
868Create a new nickname.
868Create a new nickname.
869
869
870−#### Clear Nickname
870+#### Clear nickname
871
871
872Syntax: `;nick ~some-urbit ~`
872Syntax: `;nick ~some-urbit ~`
873
873
874Clear an assigned nickname.
874Clear an assigned nickname.
875
875
876−#### Display Nicks, Not Ship-Names
876+#### Display nicknames, not ship names
877
877
878Syntax: `;set nicks`
878Syntax: `;set nicks`
879
879
880Show nicknames instead of ship-names. If no local nickname is set, uses
880Show nicknames instead of ship-names. If no local nickname is set, uses
881that user's handle. If the user has no handle, just the urbit name.
881that user's handle. If the user has no handle, just the urbit name.
882
882
883−#### Display Ship-Names, Not Nicks
883+#### Display ship names, not nicknames
884
884
885Syntax: `;unset nicks`
885Syntax: `;unset nicks`
886
886
@@ -892,38 +892,38 @@ phonebook.
892
892
893### Miscellaneous configuration
893### Miscellaneous configuration
894
894
895−#### Show Timestamps
895+#### Show timestamps
896
896
897Syntax: `;set showtime`
897Syntax: `;set showtime`
898
898
899Show the timestamp for each message.
899Show the timestamp for each message.
900
900
901−#### Hide Timestamps
901+#### Hide timestamps
902
902
903Syntax: `;unset showtime`
903Syntax: `;unset showtime`
904
904
905Stop showing the timestamp for each message.
905Stop showing the timestamp for each message.
906
906
907−#### Change Time Zone
907+#### Change timezone
908
908
909Syntax: `;set timezone [+/-][hours]`
909Syntax: `;set timezone [+/-][hours]`
910
910
911Adjust the display of timestamps to a specific timezone. Relative to UTC.
911Adjust the display of timestamps to a specific timezone. Relative to UTC.
912
912
913−#### Sound Notification On
913+#### Sound notification on
914
914
915Syntax: `;set notify`
915Syntax: `;set notify`
916
916
917Emit a terminal bell sound if your six-syllable ship name is mentioned in
917Emit a terminal bell sound if your six-syllable ship name is mentioned in
918a message.
918a message.
919
919
920−#### Sound Notification Off
920+#### Sound notification off
921
921
922Syntax `;unset notify`
922Syntax `;unset notify`
923
923
924Do not notify when your ship name is mentioned.
924Do not notify when your ship name is mentioned.
925
925
926−#### Set Width
926+#### Set width
927
927
928Syntax: `;set width [number]`
928Syntax: `;set width [number]`
929
929
@@ -973,7 +973,7 @@ Use `=var` to save faces to the Dojo subject.
973Note, however, that `=var` is Dojo syntax, not Hoon syntax. You cannot bind a
973Note, however, that `=var` is Dojo syntax, not Hoon syntax. You cannot bind a
974face in a `.hoon` file in this way.
974face in a `.hoon` file in this way.
975
975
976−#### System Commands
976+#### System commands
977
977
978Use `=dir` to set the current working directory:
978Use `=dir` to set the current working directory:
979
979
@@ -1167,7 +1167,7 @@ Set any environment variable:
1167Make sure to note that `=var` is Dojo syntax, not Hoon syntax. You cannot bind a
1167Make sure to note that `=var` is Dojo syntax, not Hoon syntax. You cannot bind a
1168variable in a `.hoon` file in this way.
1168variable in a `.hoon` file in this way.
1169
1169
1170−#### Special Variables
1170+#### Special variables
1171
1171
1172There are a few special variables that the Dojo maintains.
1172There are a few special variables that the Dojo maintains.
1173
1173
@@ -1285,7 +1285,7 @@ fintyr-haldet-fassev-solhex
1285You can use `=` to set an environment variable in Dojo, but there are
1285You can use `=` to set an environment variable in Dojo, but there are
1286a few reserved names that have special uses.
1286a few reserved names that have special uses.
1287
1287
1288−#### dir
1288+#### `dir`
1289
1289
1290Current working `%clay` desk and revision. Read / write.
1290Current working `%clay` desk and revision. Read / write.
1291
1291
@@ -1297,7 +1297,7 @@ Current working `%clay` desk and revision. Read / write.
1297404/hoon docs/ dojo/hoon lib/ listen/hoon md static/udon talk/ testing/udon tree/main/ unmark/ womb/
1297404/hoon docs/ dojo/hoon lib/ listen/hoon md static/udon talk/ testing/udon tree/main/ unmark/ womb/
1298```
1298```
1299
1299
1300−#### lib
1300+#### `lib`
1301
1301
1302Current set of libraries (`/lib`) in your environment. Can be set
1302Current set of libraries (`/lib`) in your environment. Can be set
1303with `/+`. Read / write.
1303with `/+`. Read / write.
@@ -1312,7 +1312,7 @@ Now we can use arms from lib/number-to-words.hoon
1312~your-urbit:dojo> (to-words:eng-us:number-to-words 123.456)
1312~your-urbit:dojo> (to-words:eng-us:number-to-words 123.456)
1313```
1313```
1314
1314
1315−#### sur
1315+#### `sur`
1316
1316
1317Current set of structures (`/sur`) in your environment. Can be set
1317Current set of structures (`/sur`) in your environment. Can be set
1318with `/-`. Read / write.
1318with `/-`. Read / write.
@@ -1327,7 +1327,7 @@ Now we can use arms in sur/sole.hoon.
1327~your-urbit:dojo> `sole-effect:sole`[%bel ~]
1327~your-urbit:dojo> `sole-effect:sole`[%bel ~]
1328```
1328```
1329
1329
1330−#### now
1330+#### `now`
1331
1331
1332The current (128-bit `@da`) time. Read-only.
1332The current (128-bit `@da`) time. Read-only.
1333
1333
@@ -1338,7 +1338,7 @@ The current (128-bit `@da`) time. Read-only.
1338~2016.3.21..21.10.57..429a
1338~2016.3.21..21.10.57..429a
1339```
1339```
1340
1340
1341−#### our
1341+#### `our`
1342
1342
1343The current urbit ship. Read-only.
1343The current urbit ship. Read-only.
1344
1344
@@ -1349,7 +1349,7 @@ The current urbit ship. Read-only.
1349~your-urbit
1349~your-urbit
1350```
1350```
1351
1351
1352−#### eny
1352+#### `eny`
1353
1353
1354512 bits of entropy. Read-only.
1354512 bits of entropy. Read-only.
1355
1355
templates/page_indiced.html+1−1
@@ -46,7 +46,7 @@
46{% endif %}
46{% endif %}
47{% endfor %}
47{% endfor %}
48</nav>
48</nav>
49− <article class="mt4 mb4 c1-12 c6-12-md c4-10-lg">
49+ <article class="mt4 mb7 c1-12 c6-12-md c4-10-lg">
50 {% if page.extra.author %}
50 {% if page.extra.author %}
51 <span class="mt2 dib" rel="author"> {{ page.extra.author }} </span>
51 <span class="mt2 dib" rel="author"> {{ page.extra.author }} </span>
52 {% if page.extra.ship %}
52 {% if page.extra.ship %}