@@ -10,11 +10,7 @@ This is documentation about how to write Gall apps. Some knowledge of Hoon is a
10 always accessible enough to beginners. We are planning to rewrite these in the
10 always accessible enough to beginners. We are planning to rewrite these in the
11 near future. There is still useful information to be found in the meantime.
11 near future. There is still useful information to be found in the meantime.
15− ;div(id "api"): API Connectors
13+## API Connectors
19> Note: This lesson depends on some code that needs to be updated before the examples will work correctly. This will be addressed in the near future. We apologize!
15> Note: This lesson depends on some code that needs to be updated before the examples will work correctly. This will be addressed in the near future. We apologize!
@@ -517,11 +513,7 @@ this doc:
522− ;div(id "generators"): Generators
516+## Generators
526Up until now we've poked apps directly. This requires the user to
518Up until now we've poked apps directly. This requires the user to
527specify the mark, and it requires the app to accept the arguments in a
519specify the mark, and it requires the app to accept the arguments in a
@@ -685,11 +677,7 @@ Which causes `~sampel-sipnym` to print `[%receiving 'howdy']` and
685- Create a generator for `:click` from [Web Apps](#backend) so that you can run `:click|poke` to poke it.
677- Create a generator for `:click` from [Web Apps](#backend) so that you can run `:click|poke` to poke it.
690− ;div(id "http"): Writing an HTTP Request
680+## Writing an HTTP Request
694There's a variety of arvo services we haven't touched on yet.
682There's a variety of arvo services we haven't touched on yet.
695Let's figure out how to make HTTP requests and set timers.
683Let's figure out how to make HTTP requests and set timers.
@@ -897,11 +885,7 @@ Let's try it out:
897~fintud-macrep:dojo> :up &atom 'off'
885~fintud-macrep:dojo> :up &atom 'off'
902− ;div(id "marks"): Marks
888+## Marks
906We've used predefined marks already, but we haven't yet created
890We've used predefined marks already, but we haven't yet created
907our own marks. Let's write a sample mark of our own, then chain
891our own marks. Let's write a sample mark of our own, then chain
@@ -1022,11 +1006,7 @@ mark.
1023The minimal correct input, then, is `&mime &hymn &cord &atom 17`.
1007The minimal correct input, then, is `&mime &hymn &cord &atom 17`.
1027− ;div(id "network"): Network Messages
1009+## Network Messages
1031In the following we assume that you have some knowledge of Hoon. If you don't, check out chapters 1 and 2 of the Hoon tutorial and check back when you're ready.
1011In the following we assume that you have some knowledge of Hoon. If you don't, check out chapters 1 and 2 of the Hoon tutorial and check back when you're ready.
@@ -1373,11 +1353,7 @@ urbit as for sending messages between apps on different urbits.
1373- Put `even` and `odd` on two separate urbits and pass the messages over the network. Post a link to a working solution in :talk to receive a cookie.
1353- Put `even` and `odd` on two separate urbits and pass the messages over the network. Post a link to a working solution in :talk to receive a cookie.
1378− ;div(id "security"): Security Drivers
1356+## Security Drivers
1382A security driver is a file in `/=home=/sec/<tld>/<domain>/hoon`
1358A security driver is a file in `/=home=/sec/<tld>/<domain>/hoon`
1383that handles the authentication for all HTTP requests to
1359that handles the authentication for all HTTP requests to
@@ -1651,11 +1627,7 @@ library.
1651Remember, of course, that the best strategy for building security
1627Remember, of course, that the best strategy for building security
1652drivers is to copy a similar one and tweak it to taste.
1628drivers is to copy a similar one and tweak it to taste.
1656− ;div(id "state"): State
1630+## State
1660In the last section we built a few small apps that sent moves. These apps were
1632In the last section we built a few small apps that sent moves. These apps were
1661entirely stateless, however. Most useful apps require some amount of state.
1633entirely stateless, however. Most useful apps require some amount of state.
@@ -1772,11 +1744,7 @@ Sample output:
1777− ;div(id "subscriptions"): Subscriptions
1747+## Subscriptions
1781We've dealt fairly extensively with "poke" messages to an app, but these
1749We've dealt fairly extensively with "poke" messages to an app, but these
1782are somewhat limited. A poke is a one-way message, but more often we
1750are somewhat limited. A poke is a one-way message, but more often we
@@ -2102,11 +2070,7 @@ nullability. If `err` is `~`, then the subscription was successful and we tell
2102that to the user. Otherwise, we print out the error message.
2070that to the user. Otherwise, we print out the error message.
2107− ;div(id "backend"): Backend
2073+## Backend
2111We've done purely functional web pages as hook files, and we've
2075We've done purely functional web pages as hook files, and we've
2112done command line apps, so now let's interact with an app over
2076done command line apps, so now let's interact with an app over