doc/contribute.md: remove html markup

Change-Id: Id63ed4217805bc0f4be2d8e4aca09064802abfbb
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.