diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c14c332..05a4fa8 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -21,7 +21,7 @@
 
 All submissions, including submissions by project members, require review. We
 use Gerrit code reviews at https://cue-review.googlesource.com for this purpose.
-Please read the [Contributing Guide](./doc/contribute.html)
+Please read the [Contributing Guide](./doc/contribute.md)
 before reading patches.
 
 ## Community Guidelines
diff --git a/README.md b/README.md
index 88ca937..32a67ec 100644
--- a/README.md
+++ b/README.md
@@ -81,7 +81,7 @@
 
 Our canonical Git repository is located at https://cue.googlesource.com.
 
-To contribute, please read the [Contribution Guide](./doc/contribute.html).
+To contribute, please read the [Contribution Guide](./doc/contribute.md).
 
 ##### Note that we do not accept pull requests and that we use the issue tracker for bug reports and proposals only.
 
diff --git a/doc/contribute.md b/doc/contribute.md
index f62834c..3aa45a0 100644
--- a/doc/contribute.md
+++ b/doc/contribute.md
@@ -1,6 +1,4 @@
-  <h1>
-    Contribution Guide
-  </h1>
+# Contribution Guide
 
 
 The CUE project welcomes all contributors.
@@ -11,57 +9,47 @@
 We assume you have a basic understanding of Git and Go.
 
 
-<h2 id="contributor">Becoming a contributor</h2>
+## Becoming a contributor
 
-<h3>Overview</h3>
+### Overview
 
 The first step is registering as a CUE contributor and configuring your environment.
 Here is a checklist of the required steps to follow:
 
-<ul>
-<li>
-<b>Step 0</b>: Decide on a single Google Account you will be using to contribute to CUE.
-Use that account for all the following steps and make sure that <code>git</code>
+
+- *Step 0*: Decide on a single Google Account you will be using to contribute to CUE.
+Use that account for all the following steps and make sure that `git`
 is configured to create commits with that account's e-mail address.
-</li>
-<li>
-<b>Step 1</b>: <a href="https://cla.developers.google.com/clas">Sign and submit</a> a
+- *Step 1*: [Sign and submit](https://cla.developers.google.com/clas) a
 CLA (Contributor License Agreement).
-</li>
-<li>
-<b>Step 2</b>: Configure authentication credentials for the CUE Git repository.
-Visit <a href="https://cue.googlesource.com/">cue.googlesource.com</a>, click
+- *Step 2*: Configure authentication credentials for the CUE Git repository.
+Visit
+[cue.googlesource.com](https://cue.googlesource.com), click
 on "Generate Password" (top right), and follow the instructions.
-</li>
-<li>
-<b>Step 3</b>: Register for Gerrit, the code review tool used by the CUE team,
-by <a href="https://cue-review.googlesource.com/login/">visiting this page</a>.
+- *Step 3*: Register for Gerrit, the code review tool used by the CUE team,
+by [visiting this page](https://cue-review.googlesource.com/login/).
 The CLA and the registration need to be done only once for your account.
-</li>
-<li>
-<b>Step 4</b>: Install <code>git-codereview</code> by running
-<code>go get -u golang.org/x/review/git-codereview</code>
-</li>
-</ul>
+- *Step 4*: Install `git-codereview` by running
+`go get -u golang.org/x/review/git-codereview`
 
 <!-- TODO
 If you prefer, there is an automated tool that walks through these steps.
 Just run:
 
 
-<pre>
+```
 $ go get -u cuelang.org/x/tools/cmd/cue-contrib-init
 $ cd /code/to/edit
 $ cue-contrib-init
-</pre>
+```
 --->
 
 The rest of this chapter elaborates on these instructions.
 If you have completed the steps above (either manually or through the tool), jump to
-<a href="#before_contributing">Before contributing code</a>.
+Before contributing code.
 
 
-<h3 id="google_account">Step 0: Select a Google Account</h3>
+### Step 0: Select a Google Account
 
 A contribution to CUE is made through a Google account with a specific
 e-mail address.
@@ -80,8 +68,8 @@
 For instance, if you need to use
 an existing corporate e-mail that is not managed through G Suite, you can create
 an account associated
-<a href="https://accounts.google.com/SignUpWithoutGmail">with your existing
-e-mail address</a>.
+[with your existing
+e-mail address](https://accounts.google.com/SignUpWithoutGmail).
 
 
 You also need to make sure that your Git tool is configured to create commits
@@ -91,44 +79,38 @@
 You can check the current configuration with this command:
 
 
-<pre>
+```
 $ git config --global user.email  # check current global config
 $ git config user.email           # check current local config
-</pre>
+```
 
 To change the configured address:
 
 
-<pre>
+```
 $ git config --global user.email name@example.com   # change global config
 $ git config user.email name@example.com            # change local config
-</pre>
+```
 
 
-<h3 id="cla">Step 1: Contributor License Agreement</h3>
+### Step 1: Contributor License Agreement
 
 Before sending your first change to the CUE project
 you must have completed one of the following two CLAs.
 Which CLA you should sign depends on who owns the copyright to your work.
 
 
-<ul>
-<li>
-If you are the copyright holder, you will need to agree to the
-<a href="https://developers.google.com/open-source/cla/individual">individual
-contributor license agreement</a>, which can be completed online.
-</li>
-<li>
-If your organization is the copyright holder, the organization
+- If you are the copyright holder, you will need to agree to the
+[individual contributor license agreement](https://developers.google.com/open-source/cla/individual),
+which can be completed online.
+- If your organization is the copyright holder, the organization
 will need to agree to the
-<a href="https://developers.google.com/open-source/cla/corporate">corporate
-contributor license agreement</a>.<br>
-</li>
-</ul>
+[corporate
+contributor license agreement](https://developers.google.com/open-source/cla/corporate).
 
 You can check your currently signed agreements and sign new ones at
-the <a href="https://cla.developers.google.com/clas?pli=1&amp;authuser=1">Google Developers
-Contributor License Agreements</a> website.
+the
+[Google Developers Contributor License Agreements](https://cla.developers.google.com/clas?pli=1&amp;authuser=1) website.
 If the copyright holder for your contribution has already completed the
 agreement in connection with another Google open source project,
 it does not need to be completed again.
@@ -136,89 +118,81 @@
 
 If the copyright holder for the code you are submitting changes&mdash;for example,
 if you start contributing code on behalf of a new company&mdash;please send mail
-to the <a href="mailto:cue-dev@googlegroups.com"><code>cue-dev</code>
-mailing list</a>.
+to the [`cue-dev` mailing list](mailto:cue-dev@googlegroups.com).
 This will let us know the situation so we can make sure an appropriate agreement is
-completed and update the <code>AUTHORS</code> file.
+completed and update the `AUTHORS` file.
 
 
 
-<h3 id="config_git_auth">Step 2: Configure git authentication</h3>
+### Step 2: Configure git authentication
 
 The main CUE repository is located at
-<a href="https://cue.googlesource.com">cue.googlesource.com</a>,
+[cue.googlesource.com](https://cue.googlesource.com),
 a Git server hosted by Google.
 Authentication on the web server is made through your Google account, but
-you also need to configure <code>git</code> on your computer to access it.
+you also need to configure `git` on your computer to access it.
 Follow this steps:
 
 
-<ol>
-<li>
-Visit <a href="https://cue.googlesource.com">cue.googlesource.com</a>
+- Visit [cue.googlesource.com](https://cue.googlesource.com)
 and click on "Generate Password" in the page's top right menu bar.
 You will be redirected to accounts.google.com to sign in.
-</li>
-<li>
-After signing in, you will be taken to a page with the title "Configure Git".
+- After signing in, you will be taken to a page with the title "Configure Git".
 This page contains a personalized script that when run locally will configure Git
 to hold your unique authentication key.
 This key is paired with one that is generated and stored on the server,
 analogous to how SSH keys work.
-</li>
-<li>
-Copy and run this script locally in your terminal to store your secret
-authentication token in a <code>.gitcookies</code> file.
-If you are using a Windows computer and running <code>cmd</code>,
+- Copy and run this script locally in your terminal to store your secret
+authentication token in a `.gitcookies` file.
+If you are using a Windows computer and running `cmd`,
 you should instead follow the instructions in the yellow box to run the command;
 otherwise run the regular script.
-</li>
-</ol>
 
-<h3 id="auth">Step 3: Create a Gerrit account </h3>
+### Step 3: Create a Gerrit account
 
 Gerrit is an open-source tool used by CUE maintainers to discuss and review
 code submissions.
 
 
-To register your account, visit <a href="https://cue-review.googlesource.com/login/">
-cue-review.googlesource.com/login/</a> and sign in once using the same Google Account you used above.
+To register your account, visit
+[cue-review.googlesource.com/login/](https://cue-review.googlesource.com/login/)
+and sign in once using the same Google Account you used above.
 
 
-<h3 id="git-codereview_install">Step 4: Install the git-codereview command</h3>
+### Step 4: Install the git-codereview command
 
 Changes to CUE must be reviewed before they are accepted, no matter who makes the change.
-A custom <code>git</code> command called <code>git-codereview</code>
+A custom `git` command called `git-codereview`
 simplifies sending changes to Gerrit.
 
 
-Install the <code>git-codereview</code> command by running,
+Install the `git-codereview` command by running,
 
 
-<pre>
+```
 $ go get -u golang.org/x/review/git-codereview
-</pre>
+```
 
-Make sure <code>git-codereview</code> is installed in your shell path, so that the
-<code>git</code> command can find it.
+Make sure `git-codereview` is installed in your shell path, so that the
+`git` command can find it.
 Check that
 
 
-<pre>
+```
 $ git codereview help
-</pre>
+```
 
 prints help text, not an error.
 
 
 On Windows, when using git-bash you must make sure that
-<code>git-codereview.exe</code> is in your <code>git</code> exec-path.
-Run <code>git --exec-path</code> to discover the right location then create a
+`git-codereview.exe` is in your `git` exec-path.
+Run `git --exec-path` to discover the right location then create a
 symbolic link or just copy the executable from $GOPATH/bin to this directory.
 
 
 
-<h2 id="before_contributing">Before contributing code</h2>
+## Before contributing code
 
 <!--
 TODO
@@ -232,10 +206,10 @@
 
 -->
 
-<h3>Check the issue tracker</h3>
+### Check the issue tracker
 
 Whether you already know what contribution to make, or you are searching for
-an idea, the <a href="https://github.com/cuelang/cue/issues">issue tracker</a> is
+an idea, the [issue tracker](https://github.com/cuelang/cue/issues) is
 always the first place to go.
 Issues are triaged to categorize them and manage the workflow.
 
@@ -243,44 +217,31 @@
 Most issues will be marked with one of the following workflow labels:
 
 
-<ul>
-	<li>
-	<b>NeedsInvestigation</b>: The issue is not fully understood
+-	**NeedsInvestigation**: The issue is not fully understood
 	and requires analysis to understand the root cause.
-	</li>
-	<li>
-	<b>NeedsDecision</b>: the issue is relatively well understood, but the
+-	**NeedsDecision**: the issue is relatively well understood, but the
 	CUE team hasn't yet decided the best way to address it.
 	It would be better to wait for a decision before writing code.
 	If you are interested on working on an issue in this state,
 	feel free to "ping" maintainers in the issue's comments
 	if some time has passed without a decision.
-	</li>
-	<li>
-	<b>NeedsFix</b>: the issue is fully understood and code can be written
+-	**NeedsFix**: the issue is fully understood and code can be written
 	to fix it.
-	</li>
-</ul>
 
 You can use GitHub's search functionality to find issues to help out with. Examples:
 
 
-<ul>
-	<li>
-	Issues that need investigation: <a href="https://github.com/cuelang/cue/issues?q=is%3Aissue+is%3Aopen+label%3ANeedsInvestigation"><code>is:issue is:open label:NeedsInvestigation</code></a>
-	</li>
-	<li>
-	Issues that need a fix: <a href="https://github.com/cuelang/cue/issues?q=is%3Aissue+is%3Aopen+label%3ANeedsFix"><code>is:issue is:open label:NeedsFix</code></a>
-	</li>
-	<li>
-	Issues that need a fix and have a CL: <a href="https://github.com/cuelang/cue/issues?q=is%3Aissue+is%3Aopen+label%3ANeedsFix+%22golang.org%2Fcl%22"><code>is:issue is:open label:NeedsFix "cuelang.org/cl"</code></a>
-	</li>
-	<li>
-	Issues that need a fix and do not have a CL: <a href="https://github.com/cuelang/cue/issues?q=is%3Aissue+is%3Aopen+label%3ANeedsFix+NOT+%22golang.org%2Fcl%22"><code>is:issue is:open label:NeedsFix NOT "cuelang.org/cl"</code></a>
-	</li>
-</ul>
+-	Issues that need investigation:
+	[`is:issue is:open label:NeedsInvestigation`](
+		https://github.com/cuelang/cue/issues?q=is%3Aissue+is%3Aopen+label%3ANeedsInvestigation)
+-	Issues that need a fix:
+	[`is:issue is:open label:NeedsFix`](https://github.com/cuelang/cue/issues?q=is%3Aissue+is%3Aopen+label%3ANeedsFix)
+-	Issues that need a fix and have a CL:
+    [`is:issue is:open label:NeedsFix "cuelang.org/cl"`](https://github.com/cuelang/cue/issues?q=is%3Aissue+is%3Aopen+label%3ANeedsFix+%22golang.org%2Fcl%22)
+-	Issues that need a fix and do not have a CL:
+    [`is:issue is:open label:NeedsFix NOT "cuelang.org/cl"`](https://github.com/cuelang/cue/issues?q=is%3Aissue+is%3Aopen+label%3ANeedsFix+NOT+%22golang.org%2Fcl%22)
 
-<h3 id="design">Open an issue for any new problem</h3>
+### Open an issue for any new problem
 
 Excluding very trivial changes, all contributions should be connected
 to an existing issue.
@@ -311,7 +272,7 @@
 Sensitive security-related issues (only!) should be reported to <a href="mailto:security@cuelang.org">security@cuelang.org</a>.
 
 
-<h2 id="sending_a_change_github">Sending a change via GitHub</h2>
+## Sending a change via GitHub
 
 First-time contributors that are already familiar with the
 <a href="https://guides.github.com/introduction/flow/">GitHub flow</a>
@@ -342,7 +303,7 @@
 commit description will be composed by concatenating the pull request's
 title and description.
 The individual commits' descriptions will be discarded.
-See <a href="#commit_messages">Writing good commit messages</a> for some
+See Writing good commit messages</a> for some
 suggestions.
 </li>
 <li>
@@ -353,7 +314,7 @@
 </ul>
 -->
 
-<h2 id="sending_a_change_gerrit">Sending a change via Gerrit</h2>
+## Sending a change via Gerrit
 
 It is not possible to fully sync Gerrit and GitHub, at least at the moment,
 so we recommend learning Gerrit.
@@ -361,28 +322,24 @@
 with help you understand the flow.
 
 
-<h3>Overview</h3>
+### Overview
 
 This is an overview of the overall process:
 
 
-<ul>
-<li>
-<b>Step 1:</b> Clone the CUE source code from cue.googlesource.com
+- *Step 1:* Clone the CUE source code from cue.googlesource.com
 and make sure it's stable by compiling and testing it once:
-<pre>
+```
 $ git clone https://cue.googlesource.com/core
 $ cd core
 $ go test ./...
 $ go install ./cmd/cue
-</pre>
-</li>
+```
 
-<li>
-<b>Step 2:</b> Prepare changes in a new branch, created from the master branch.
-To commit the changes, use <code>git</code> <code>codereview</code> <code>change</code>; that
+- *Step 2:* Prepare changes in a new branch, created from the master branch.
+To commit the changes, use `git` `codereview` `change`; that
 will create or amend a single commit in the branch.
-<pre>
+```
 $ git checkout -b mybranch
 $ [edit files...]
 $ git add [files...]
@@ -391,170 +348,162 @@
 $ git add [files...]
 $ git codereview change   # amend the existing commit with new changes
 $ [etc.]
-</pre>
-</li>
+```
 
-<li>
-<b>Step 3:</b> Test your changes, re-running <code>go test</code>.
-<pre>
+- *Step 3:* Test your changes, re-running `go test`.
+```
 $ go test ./...    # recompile and test
-</pre>
-</li>
+```
 
-<li>
-<b>Step 4:</b> Send the changes for review to Gerrit using <code>git</code>
-<code>codereview</code> <code>mail</code> (which doesn't use e-mail, despite the name).
-<pre>
+- *Step 4:* Send the changes for review to Gerrit using `git`
+`codereview` `mail` (which doesn't use e-mail, despite the name).
+```
 $ git codereview mail     # send changes to Gerrit
-</pre>
-</li>
+```
 
-<li>
-<b>Step 5:</b> After a review, apply changes to the same single commit
+- *Step 5:* After a review, apply changes to the same single commit
 and mail them to Gerrit again:
-<pre>
+```
 $ [edit files...]
 $ git add [files...]
 $ git codereview change   # update same commit
 $ git codereview mail     # send to Gerrit again
-</pre>
-</li>
-</ul>
+```
 
 The rest of this section describes these steps in more detail.
 
 
 
-<h3 id="checkout_go">Step 1: Clone the CUE source code</h3>
+### Step 1: Clone the CUE source code
 
 In addition to a recent CUE installation, you need to have a local copy of the source
 checked out from the correct repository.
 You can check out the CUE source repo onto your local file system anywhere
-you want as long as it's outside your <code>GOPATH</code>.
+you want as long as it's outside your `GOPATH`.
 Either clone from
-<code>cue.googlesource.com</code> or from GitHub:
+`cue.googlesource.com` or from GitHub:
 
 
-<pre>
+```
 $ git clone https://github.com/cuelang/core   # or https://cue.googlesource.com/core
 $ cd core
 $ go test ./...
 # go install ./cmd/cue
-</pre>
+```
 
-<h3 id="make_branch">Step 2: Prepare changes in a new branch</h3>
+### Step 2: Prepare changes in a new branch
 
 Each CUE change must be made in a separate branch, created from the master branch.
 You can use
-the normal <code>git</code> commands to create a branch and add changes to the
+the normal `git` commands to create a branch and add changes to the
 staging area:
 
 
-<pre>
+```
 $ git checkout -b mybranch
 $ [edit files...]
 $ git add [files...]
-</pre>
+```
 
-To commit changes, instead of <code>git commit</code>, use <code>git codereview change</code>.
+To commit changes, instead of `git commit`, use `git codereview change`.
 
 
-<pre>
+```
 $ git codereview change
 (open $EDITOR)
-</pre>
+```
 
 You can edit the commit description in your favorite editor as usual.
-The  <code>git</code> <code>codereview</code> <code>change</code> command
+The  `git` `codereview` `change` command
 will automatically add a unique Change-Id line near the bottom.
 That line is used by Gerrit to match successive uploads of the same change.
 Do not edit or delete it.
 A Change-Id looks like this:
 
 
-<pre>
+```
 Change-Id: I2fbdbffb3aab626c4b6f56348861b7909e3e8990
-</pre>
+```
 
 The tool also checks that you've
-run <code>go</code> <code>fmt</code> over the source code, and that
-the commit message follows the <a href="#commit_messages">suggested format</a>.
+run `go` `fmt` over the source code, and that
+the commit message follows the suggested format.
 
 
 If you need to edit the files again, you can stage the new changes and
-re-run <code>git</code> <code>codereview</code> <code>change</code>: each subsequent
+re-run `git` `codereview` `change`: each subsequent
 run will amend the existing commit while preserving the Change-Id.
 
 
 Make sure that you always keep a single commit in each branch.
 If you add more
-commits by mistake, you can use <code>git</code> <code>rebase</code> to
-<a href="https://stackoverflow.com/questions/31668794/squash-all-your-commits-in-one-before-a-pull-request-in-github">squash them together</a>
+commits by mistake, you can use `git` `rebase` to
+[squash them together](https://stackoverflow.com/questions/31668794/squash-all-your-commits-in-one-before-a-pull-request-in-github)
 into a single one.
 
 
 
-<h3 id="testing">Step 3: Test your changes</h3>
+### Step 3: Test your changes
 
-You've <a href="code.html">written and tested your code</a>, but
+You've written and tested your code, but
 before sending code out for review, run <i>all the tests for the whole
 tree</i> to make sure the changes don't break other packages or programs:
 
 
-<pre>
+```
 $ go test ./...
-</pre>
+```
 
 
-<h3 id="mail">Step 4: Send changes for review</h3>
+### Step 4: Send changes for review
 
 Once the change is ready and tested over the whole tree, send it for review.
-This is done with the <code>mail</code> sub-command which, despite its name, doesn't
+This is done with the `mail` sub-command which, despite its name, doesn't
 directly mail anything; it just sends the change to Gerrit:
 
 
-<pre>
+```
 $ git codereview mail
-</pre>
+```
 
-Gerrit assigns your change a number and URL, which <code>git</code> <code>codereview</code> <code>mail</code> will print, something like:
+Gerrit assigns your change a number and URL, which `git` `codereview` `mail` will print, something like:
 
 
-<pre>
+```
 remote: New Changes:
 remote:   https://cue-review.googlesource.com/99999 math: improved Sin, Cos and Tan precision for very large arguments
-</pre>
+```
 
 If you get an error instead, check the
-<a href="#troubleshooting_mail">Troubleshooting mail errors</a> section.
+Troubleshooting mail errors section.
 
 
-If your change relates to an open GitHub issue and you have followed the <a href="#commit_messages">
-suggested commit message format</a>, the issue will be updated in a few minutes by a bot,
+If your change relates to an open GitHub issue and you have followed the
+suggested commit message format, the issue will be updated in a few minutes by a bot,
 linking your Gerrit change to it in the comments.
 
 
 
-<h3 id="revise">Step 5: Revise changes after a review</h3>
+### Step 5: Revise changes after a review
 
 CUE maintainers will review your code on Gerrit, and you will get notifications via e-mail.
 You can see the review on Gerrit and comment on them there.
 You can also reply
-<a href="https://gerrit-review.googlesource.com/Documentation/intro-user.html#reply-by-email">using e-mail</a>
+[using e-mail](https://gerrit-review.googlesource.com/Documentation/intro-user.html#reply-by-email)
 if you prefer.
 
 
 If you need to revise your change after the review, edit the files in
 the same branch you previously created, add them to the Git staging
 area, and then amend the commit with
-<code>git</code> <code>codereview</code> <code>change</code>:
+`git` `codereview` `change`:
 
 
-<pre>
+```
 $ git codereview change     # amend current commit
 (open $EDITOR)
 $ git codereview mail       # send new changes to Gerrit
-</pre>
+```
 
 If you don't need to change the commit description, just save and exit from the editor.
 Remember not to touch the special Change-Id line.
@@ -562,12 +511,12 @@
 
 Again, make sure that you always keep a single commit in each branch.
 If you add more
-commits by mistake, you can use <code>git rebase</code> to
-<a href="https://stackoverflow.com/questions/31668794/squash-all-your-commits-in-one-before-a-pull-request-in-github">squash them together</a>
+commits by mistake, you can use `git rebase` to
+[squash them together](https://stackoverflow.com/questions/31668794/squash-all-your-commits-in-one-before-a-pull-request-in-github)
 into a single one.
 
 
-<h2 id="commit_messages">Good commit messages</h2>
+## Good commit messages
 
 Commit messages in CUE follow a specific set of conventions,
 which we discuss in this section.
@@ -576,7 +525,7 @@
 Here is an example of a good one:
 
 
-<pre>
+```
 math: improve Sin, Cos and Tan precision for very large arguments
 
 The existing implementation has poor numerical properties for
@@ -586,9 +535,9 @@
 The algorithm is described at https://wikipedia.org/wiki/McGillicutty_Algorithm
 
 Fixes #159
-</pre>
+```
 
-<h3>First line</h3>
+### First line
 
 The first line of the change description is conventionally a short one-line
 summary of the change, prefixed by the primary affected package.
@@ -603,7 +552,7 @@
 Follow the first line by a blank line.
 
 
-<h3>Main content</h3>
+### Main content
 
 The rest of the description elaborates and should provide context for the
 change and explain what it does.
@@ -613,10 +562,10 @@
 
 
 
-<h3>Referencing issues</h3>
+### Referencing issues
 
 The special notation "Fixes #12345" associates the change with issue 12345 in the
-<a href="https://cuelang.org/issue/12345">CUE issue tracker</a>.
+[CUE issue tracker](https://cuelang.org/issue/12345)
 When this change is eventually applied, the issue
 tracker will automatically mark the issue as fixed.
 
@@ -636,14 +585,14 @@
 
 
 
-<h2 id="review">The review process</h2>
+## The review process
 
 This section explains the review process in detail and how to approach
 reviews after a change has been mailed.
 
 
 
-<h3 id="mistakes">Common beginner mistakes</h3>
+### Common beginner mistakes
 
 When a change is sent to Gerrit, it is usually triaged within a few days.
 A maintainer will have a look and provide some initial review that for first-time
@@ -653,8 +602,8 @@
 
 <ul>
 <li>
-Commit message not following the <a href="#commit_messages">suggested
-format</a>.
+Commit message not following the suggested
+format.
 </li>
 
 <li>
@@ -674,10 +623,10 @@
 Change sent during the freeze phase of the development cycle, when the tree
 is closed for general changes.
 In this case,
-a maintainer might review the code with a line such as <code>R=cue1.1</code>,
+a maintainer might review the code with a line such as `R=cue1.1`,
 which means that it will be reviewed later when the tree opens for a new
 development window.
-You can add <code>R=cue1.XX</code> as a comment yourself
+You can add `R=cue1.XX` as a comment yourself
 if you know that it's not the correct time frame for the change.
 </li>
 -->
@@ -685,7 +634,7 @@
 
 <!--
 TODO
-<h3 id="trybots">Trybots</h3>
+### Trybots
 
 After an initial reading of your change, maintainers will trigger trybots,
 a cluster of servers that will run the full test suite on several different
@@ -711,7 +660,7 @@
 
 -->
 
-<h3 id="reviews">Reviews</h3>
+### Reviews
 
 The CUE community values very thorough reviews.
 Think of each review comment like a ticket: you are expected to somehow "close" it
@@ -733,7 +682,7 @@
 don't be discouraged by it.
 
 
-<h3 id="votes">Voting conventions</h3>
+### Voting conventions
 
 As they near a decision, reviewers will make a "vote" on your change.
 The Gerrit voting system involves an integer in the range -2 to +2:
@@ -741,25 +690,25 @@
 
 <ul>
 	<li>
-	<b>+2</b> The change is approved for being merged.
+	*+2* The change is approved for being merged.
 	Only CUE maintainers can cast a +2 vote.
 	</li>
 	<li>
-	<b>+1</b> The change looks good, but either the reviewer is requesting
+	*+1* The change looks good, but either the reviewer is requesting
 	minor changes before approving it, or they are not a maintainer and cannot
 	approve it, but would like to encourage an approval.
 	</li>
 	<li>
-	<b>-1</b> The change is not good the way it is but might be fixable.
+	*-1* The change is not good the way it is but might be fixable.
 	A -1 vote will always have a comment explaining why the change is unacceptable.
 	</li>
 	<li>
-	<b>-2</b> The change is blocked by a maintainer and cannot be approved.
+	*-2* The change is blocked by a maintainer and cannot be approved.
 	Again, there will be a comment explaining the decision.
 	</li>
 </ul>
 
-<h3 id="submit">Submitting an approved change</h3>
+### Submitting an approved change
 
 After the code has been +2'ed, an approver will
 apply it to the master branch using the Gerrit user interface.
@@ -788,7 +737,7 @@
 
 <!--
 
-<h3 id="more_information">More information</h3>
+### More information
 
 TODO
 In addition to the information here, the CUE community maintains a <a
@@ -798,30 +747,30 @@
 -->
 
 
-<h2 id="advanced_topics">Miscellaneous topics</h2>
+## Miscellaneous topics
 
 This section collects a number of other comments that are
 outside the issue/edit/code review/submit process itself.
 
 
 
-<h3 id="copyright">Copyright headers</h3>
+### Copyright headers
 
 Files in the CUE repository don't list author names, both to avoid clutter
 and to avoid having to keep the lists up to date.
 Instead, your name will appear in the
-<a href="https://cue.googlesource.com/cue/+log">change log</a> and in the <a
-href="/CONTRIBUTORS"><code>CONTRIBUTORS</code></a> file and perhaps the <a
-href="/AUTHORS"><code>AUTHORS</code></a> file.
+[change log](https://cue.googlesource.com/cue/+log) and in the
+[`CONTRIBUTORS`](../CONTRIBUTORS) file and perhaps the
+[`AUTHORS`](../AUTHORS) file.
 These files are automatically generated from the commit logs periodically.
-The <a href="/AUTHORS"><code>AUTHORS</code></a> file defines who &ldquo;The CUE
+The [`AUTHORS`](../AUTHORS) file defines who &ldquo;The CUE
 Authors&rdquo;&mdash;the copyright holders&mdash;are.
 
 
 New files that you contribute should use the standard copyright header:
 
 
-<pre>
+```
 // Copyright 2018 The CUE Authors
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
@@ -835,7 +784,7 @@
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
-</pre>
+```
 
 (Use the current year if you're reading this in 2019 or beyond.)
 Files in the repository are copyrighted the year they are added.
@@ -845,107 +794,102 @@
 
 
 
-<h3 id="troubleshooting_mail">Troubleshooting mail errors</h3>
+### Troubleshooting mail errors
 
-The most common way that the <code>git</code> <code>codereview</code> <code>mail</code>
+The most common way that the `git` `codereview` `mail`
 command fails is because the e-mail address in the commit does not match the one
-that you used during <a href="#google_account">the registration process</a>.
+that you used during the registration process.
 
-<br>
 If you see something like...
 
 
-<pre>
+```
 remote: Processing changes: refs: 1, done
 remote:
 remote: ERROR:  In commit ab13517fa29487dcf8b0d48916c51639426c5ee9
 remote: ERROR:  author email address XXXXXXXXXXXXXXXXXXX
 remote: ERROR:  does not match your user account.
-</pre>
+```
 
 you need to configure Git for this repository to use the
 e-mail address that you registered with.
 To change the e-mail address to ensure this doesn't happen again, run:
 
 
-<pre>
+```
 $ git config user.email email@address.com
-</pre>
+```
 
 Then change the commit to use this alternative e-mail address with this command:
 
 
-<pre>
+```
 $ git commit --amend --author="Author Name &lt;email@address.com&gt;"
-</pre>
+```
 
 Then retry by running:
 
 
-<pre>
+```
 $ git codereview mail
-</pre>
+```
 
 
-<h3 id="quick_test">Quickly testing your changes</h3>
+### Quickly testing your changes
 
-Running <code>go test ./...</code> for every single change to the code tree
+Running `go test ./...` for every single change to the code tree
 is burdensome.
 Even though it is strongly suggested to run it before
 sending a change, during the normal development cycle you may want
 to compile and test only the package you are developing.
 
 
-<li>
-In this section, we'll call the directory into which you cloned the CUE repository <code>$CUEDIR</code>.
-As CUE uses Go modules, The <code>cue</code> tool built by
-<code>go install</code> will be installed in the <code>bin/go</code> in your
+In this section, we'll call the directory into which you cloned the CUE repository `$CUEDIR`.
+As CUE uses Go modules, The `cue` tool built by
+`go install` will be installed in the `bin/go` in your
 home directory by default.
-</li>
 
-<li>
 If you're changing the CUE APIs or code, you can test the results in just
 this package directory.
 
-<pre>
+```
 $ cd $CUEDIR/cue
 $ [make changes...]
 $ go test
-</pre>
+```
 
 You don't need to build a new cue tool to test it.
 Instead you can run the tests from the root.
 
-<pre>
+```
 $ cd $CUEDIR
 $ go test ./...
-</pre>
+```
 
 To use the new tool you would still need to build and install it.
-</li>
 
 
 <!--
 TODO
-<h3 id="subrepos">Contributing to subrepositories (cuelang.org/x/...)</h3>
+### Contributing to subrepositories (cuelang.org/x/...)
 
 If you are contributing a change to a subrepository, obtain the
-CUE package using <code>go get</code>.
+CUE package using `go get`.
 For example, to contribute
-to <code>cuelang.org/x/editor/vscode</code>, check out the code by running:
+to `cuelang.org/x/editor/vscode`, check out the code by running:
 
 
-<pre>
+```
 $ go get -d cuelang.org/editor/vscode
-</pre>
+```
 
 Then, change your directory to the package's source directory
-(<code>$GOPATH/src/cuelang.org/x/oauth2</code>), and follow the
+(`$GOPATH/src/cuelang.org/x/oauth2`), and follow the
 normal contribution flow.
 
 -->
 
-<h3 id="cc">Specifying a reviewer / CCing others</h3>
+### Specifying a reviewer / CCing others
 
 <!--
 TODO:
@@ -961,31 +905,31 @@
 -->
 
 You can specify a reviewer or CC interested parties
-using the <code>-r</code> or <code>-cc</code> options.
+using the `-r` or `-cc` options.
 Both accept a comma-separated list of e-mail addresses:
 
 
-<pre>
+```
 $ git codereview mail -r joe@cuelang.org -cc mabel@example.com,math-nuts@swtch.com
-</pre>
+```
 
 
-<h3 id="sync">Synchronize your client</h3>
+### Synchronize your client
 
 While you were working, others might have submitted changes to the repository.
 To update your local branch, run
 
 
-<pre>
+```
 $ git codereview sync
-</pre>
+```
 
 (Under the covers this runs
-<code>git</code> <code>pull</code> <code>-r</code>.)
+`git` `pull` `-r`.)
 
 
 
-<h3 id="download">Reviewing code by others</h3>
+### Reviewing code by others
 
 As part of the review process reviewers can propose changes directly (in the
 GitHub workflow this would be someone else attaching commits to a pull request).
@@ -996,39 +940,39 @@
 It will look something like this:
 
 
-<pre>
+```
 $ git fetch https://cue.googlesource.com/review refs/changes/21/13245/1 &amp;&amp; git checkout FETCH_HEAD
-</pre>
+```
 
 To revert, change back to the branch you were working in.
 
 
 
-<h3 id="git-config">Set up git aliases</h3>
+### onfig">Set up git aliases
 
-The <code>git-codereview</code> command can be run directly from the shell
+The `git-codereview` command can be run directly from the shell
 by typing, for instance,
 
 
-<pre>
+```
 $ git codereview sync
-</pre>
+```
 
-but it is more convenient to set up aliases for <code>git-codereview</code>'s own
+but it is more convenient to set up aliases for `git-codereview`'s own
 subcommands, so that the above becomes,
 
 
-<pre>
+```
 $ git sync
-</pre>
+```
 
-The <code>git-codereview</code> subcommands have been chosen to be distinct from
+The `git-codereview` subcommands have been chosen to be distinct from
 Git's own, so it's safe to define these aliases.
 To install them, copy this text into your
-Git configuration file (usually <code>.gitconfig</code> in your home directory):
+Git configuration file (usually `.gitconfig` in your home directory):
 
 
-<pre>
+```
 [alias]
 	change = codereview change
 	gofmt = codereview gofmt
@@ -1036,10 +980,10 @@
 	pending = codereview pending
 	submit = codereview submit
 	sync = codereview sync
-</pre>
+```
 
 
-<h3 id="multiple_changes">Sending multiple dependent changes</h3>
+### Sending multiple dependent changes
 
 Advanced users may want to stack up related commits in a single branch.
 Gerrit allows for changes to be dependent on each other, forming such a dependency chain.
@@ -1051,10 +995,10 @@
 the same branch, and then run:
 
 
-<pre>
+```
 $ git codereview mail HEAD
-</pre>
+```
 
-Make sure to explicitly specify <code>HEAD</code>, which is usually not required when sending
+Make sure to explicitly specify `HEAD`, which is usually not required when sending
 single changes.
 
