Creating a /learn/ link

by Alexei Andreev Mar 10 2016 updated Jul 21 2016

What options are available when creating a /learn/ link?

One of Arbital's goals is to solve online explanations. To see how that works, take a look at Bayes' rule: Guide. After you answer the questions, you are taken to the learning page (with a /learn/ URL) that shows the path that's been dynamically generated for you. You can also create /learn/ links yourself, as explained below.


The most straightforward way create a /learn/ link is to add the page id or alias to url. For example, both and will work to teach the user about Bayes' rule.

Multiple pages

If you want to teach multiple subjects, you can specify them like so:,bayes_update_details,bayes_guide_end

The user will be guided to learn those subjects in the order they are listed. (Unless the prerequisites force one to come before the other.)

Adding the page itself to the path

For the examples above, the pages corresponding to the requisites the user is learning won't necessarily appear in the path. The only pages that appear are the ones that teach the necessary requirements. Sometimes you want to include the requisite page itself, though. You can use the "@" prefix to do that. For example:,@bayes_update_details,@bayes_guide_end

This will force the bayesruledetails page to be included in the path as soon as the user has learned all its requirements.

Filter based on "wants"

Sometimes you might want to create different learn links based on the user's answers to multiple choice questions. Instead of creating a series of nested if-statements, you could instead mark the subjects the user wants to learn, and then use the "\$" prefix to only teach the corresponding subject if the user wants it.$~$bayes_rule_details,$~$bayes_update_details,$bayes_guide_end

So, for example, the bayesruledetails subject will be taught if the user wants the bayesruledetails requisite.

If all the subjects in your path have "\$", you can set the "only_wanted" flag instead, which will automatically apply "\$" prefix to all the subjects. So this URL is equivalent:,bayes_update_details,bayes_guide_end&only_wanted=1

Stacking prefixes

You can combine prefixes, e.g.$@bayes_rule_details


Mark Chimes

The urls are displaying as:$~$bayes_rule_details,$~$bayes_update_details,$bayes_guide_end

I.e., $-signs are being interpreted as math mode.