[docs] Fix all 404s.

Change-Id: I1b89db473582f9fcc4d87436a590ee36e869fe45
No-Try: true
Docs-Preview: https://skia.org/docs/user/build?cl=392717
Docs-Preview: https://skia.org/docs/dev/contrib/?cl=392717
Docs-Preview: https://skia.org/docs/dev/gardening/?cl=392717
Docs-Preview: https://skia.org/docs/user/tips?cl=392717
Docs-Preview: https://skia.org/docs/dev/tools/debugger?cl=392717
Docs-Preview: https://skia.org/docs/user/modules/pathkit?cl=392717
Docs-Preview: https://skia.org/docs/dev/testing/fuzz?cl=392717
Docs-Preview: https://skia.org/docs/dev/testing/ios?cl=392717
Docs-Preview: https://skia.org/docs/roles?cl=392717
Docs-Preview: https://skia.org/docs/user/api/?cl=392717
Docs-Preview: https://skia.org/docs/dev/testing/swarmingbots?cl=392717
Docs-Preview: https://skia.org/docs/dev/chrome/changes?cl=392717
Docs-Preview: https://skia.org/docs/user/download?cl=392717
Docs-Preview: https://skia.org/docs/dev/flutter/?cl=392717
Docs-Preview: https://skia.org/docs/user/modules/quickstart?cl=392717
Docs-Preview: https://skia.org/docs/user/api/skcanvas_creation?cl=392717
Docs-Preview: https://skia.org/docs/user/sample/viewer?cl=392717
Docs-Preview: https://skia.org/docs/dev/design/pdftheory?cl=392717
Docs-Preview: https://skia.org/docs/user/api/SkBlendMode_Overview?cl=392717
Docs-Preview: https://skia.org/docs/user/api/skcanvas_overview?cl=392717
Docs-Preview: https://skia.org/docs/?cl=392717
Docs-Preview: https://skia.org/docs/dev/contrib/submit?cl=392717
Docs-Preview: https://skia.org/docs/user/api/SkPath_Overview?cl=392717
Docs-Preview: https://skia.org/docs/user/modules/skottie?cl=392717
Docs-Preview: https://skia.org/docs/user/modules/canvaskit?cl=392717
Fixed: skia:404
Docs-Preview: https://skia.org/docs/dev/tools/calendar?cl=392717
Docs-Preview: https://skia.org/docs/dev/gardening/android?cl=392717
Docs-Preview: https://skia.org/docs/dev/contrib/style?cl=392717
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/392717
Reviewed-by: Heather Miller <hcm@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
diff --git a/site/docs/dev/chrome/changes.md b/site/docs/dev/chrome/changes.md
index 1a1a5f2..b1a71f1 100644
--- a/site/docs/dev/chrome/changes.md
+++ b/site/docs/dev/chrome/changes.md
@@ -37,5 +37,5 @@
     in use.
 
 If your changes will affect Blink layout tests, see detailed instructions about
-how to synchronize the changes between Skia, Blink, and Chromium [here](./blink).
+how to synchronize the changes between Skia, Blink, and Chromium [here](../blink).
 
diff --git a/site/docs/dev/contrib/_index.md b/site/docs/dev/contrib/_index.md
index e873dcc..ea99972 100644
--- a/site/docs/dev/contrib/_index.md
+++ b/site/docs/dev/contrib/_index.md
@@ -38,10 +38,10 @@
 - Propose new features to the project leads by opening a feature bug or posting
   to skia-discuss ahead of development.
 
-For more information, see [How to submit a patch](/dev/contrib/submit).
+For more information, see [How to submit a patch](/docs/dev/contrib/submit/).
 
 For background on the project and an outline of the types of roles interested
-parties can take on, see [Project Roles](/roles).
+parties can take on, see [Project Roles](/docs/roles).
 
 Anyone contributing code to Skia must sign a Contributor License Agreement and
 ensure they are listed in the AUTHORS file:
diff --git a/site/docs/dev/contrib/style.md b/site/docs/dev/contrib/style.md
index 5759b78..6aebecc 100644
--- a/site/docs/dev/contrib/style.md
+++ b/site/docs/dev/contrib/style.md
@@ -12,17 +12,17 @@
 We use .cpp and .h as extensions for c++ source and header files.
 
 Headers that aren't meant for public consumption should be placed in src
-directories so that they aren't in a client's search path, or in
-include/private if they need to be used by public headers.
+directories so that they aren't in a client's search path, or in include/private
+if they need to be used by public headers.
 
 We prefer to minimize includes. If forward declaring a name in a header is
 sufficient then that is preferred to an include.
 
 Forward declarations and file includes should be in alphabetical order.
 
-<span id="no-define-before-sktypes"></span>
-Do not use #if/#ifdef before including "SkTypes.h" (directly or indirectly).
-Most things you'd #if on tend to not yet be decided until SkTypes.h.
+<span id="no-define-before-sktypes"></span> Do not use #if/#ifdef before
+including "SkTypes.h" (directly or indirectly). Most things you'd #if on tend to
+not yet be decided until SkTypes.h.
 
 We use 4 spaces, not tabs.
 
@@ -51,8 +51,8 @@
 
 Data fields in structs, classes, and unions that have methods begin with
 lower-case f and are then camel-capped, to distinguish those fields from other
-variables. Types that are predominantly meant for direct field access don't
-need f-decoration.
+variables. Types that are predominantly meant for direct field access don't need
+f-decoration.
 
 <!--?prettify?-->
 
@@ -104,8 +104,8 @@
 }
 ```
 
-Enum values are also prefixed with k. Unscoped enum values are postfixed with
-an underscore and singular name of the enum name. The enum itself should be
+Enum values are also prefixed with k. Unscoped enum values are postfixed with an
+underscore and singular name of the enum name. The enum itself should be
 singular for exclusive values or plural for a bitfield. If a count is needed it
 is `k<singular enum name>Count` and not be a member of the enum (see example),
 or a kLast member of the enum is fine too.
@@ -169,7 +169,8 @@
 }
 ```
 
-Externed functions or static class functions are camel-capped with an initial cap:
+Externed functions or static class functions are camel-capped with an initial
+cap:
 
 <!--?prettify?-->
 
@@ -195,8 +196,8 @@
 #define GR_GL_TEXTURE0 0xdeadbeef
 ```
 
-Ganesh prefers that macros are always defined and the use of `#if MACRO` rather than
-`#ifdef MACRO`.
+Ganesh prefers that macros are always defined and the use of `#if MACRO` rather
+than `#ifdef MACRO`.
 
 <!--?prettify?-->
 
@@ -333,8 +334,9 @@
 
 Unless there is a need for forward declaring something, class declarations
 should be ordered `public`, `protected`, `private`. Each should be preceded by a
-newline. Within each visibility section (`public`, `private`), fields should not be
-intermixed with methods. It's nice to keep all data fields together at the end.
+newline. Within each visibility section (`public`, `private`), fields should not
+be intermixed with methods. It's nice to keep all data fields together at the
+end.
 
 <!--?prettify?-->
 
@@ -471,21 +473,22 @@
 
 ## Integer Types
 
-We follow the Google C++ guide for ints and are slowly making older code conform to this
+We follow the Google C++ guide for ints and are slowly making older code conform
+to this
 
-(http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Integer_Types)
+(https://google.github.io/styleguide/cppguide.html#Integer_Types)
 
 Summary: Use `int` unless you have need a guarantee on the bit count, then use
-`stdint.h` types (`int32_t`, etc). Assert that counts, etc are not negative instead
-of using unsigned. Bitfields use `uint32_t` unless they have to be made shorter
-for packing or performance reasons.
+`stdint.h` types (`int32_t`, etc). Assert that counts, etc are not negative
+instead of using unsigned. Bitfields use `uint32_t` unless they have to be made
+shorter for packing or performance reasons.
 
 ## Function Parameters
 
-Mandatory constant object parameters are passed to functions as const references.
-Optional constant object parameters are passed to functions as const pointers.
-Mutable object parameters are passed to functions as pointers.
-We very rarely pass anything by non-const reference.
+Mandatory constant object parameters are passed to functions as const
+references. Optional constant object parameters are passed to functions as const
+pointers. Mutable object parameters are passed to functions as pointers. We very
+rarely pass anything by non-const reference.
 
 <!--?prettify?-->
 
@@ -526,4 +529,5 @@
 
 ## Python
 
-Python code follows the [Google Python Style Guide](http://google-styleguide.googlecode.com/svn/trunk/pyguide.html).
+Python code follows the
+[Google Python Style Guide](https://google.github.io/styleguide/pyguide.html).
diff --git a/site/docs/dev/contrib/submit.md b/site/docs/dev/contrib/submit.md
index 25ef7a3..d9ebcf0 100644
--- a/site/docs/dev/contrib/submit.md
+++ b/site/docs/dev/contrib/submit.md
@@ -1,22 +1,16 @@
-
 ---
-title: "How to submit a patch"
-linkTitle: "How to submit a patch"
-
+title: 'How to submit a patch'
+linkTitle: 'How to submit a patch'
 ---
 
-
-
-Configure git
--------------
+## Configure git
 
 <!--?prettify lang=sh?-->
 
     git config --global user.name "Your Name"
     git config --global user.email you@example.com
 
-Making changes
---------------
+## Making changes
 
 First create a branch for your changes:
 
@@ -39,66 +33,64 @@
     git pull
     python2 tools/git-sync-deps
 
-Adding a unit test
-------------------
+## Adding a unit test
 
 If you are willing to change Skia codebase, it's nice to add a test at the same
 time. Skia has a simple unittest framework so you can add a case to it.
 
 Test code is located under the 'tests' directory.
 
-See [Writing Unit and Rendering Tests](../testing/tests) for details.
+See [Writing Unit and Rendering Tests](/docs/dev/testing/tests) for details.
 
 Unit tests are best, but if your change touches rendering and you can't think of
-an automated way to verify the results, consider writing a GM test. Also, if your
-change is in the GPU code, you may not be able to write it as part of the standard
-unit test suite, but there are GPU-specific testing paths you can extend.
+an automated way to verify the results, consider writing a GM test. Also, if
+your change is in the GPU code, you may not be able to write it as part of the
+standard unit test suite, but there are GPU-specific testing paths you can
+extend.
 
-Submitting a patch
-------------------
+## Submitting a patch
 
 For your code to be accepted into the codebase, you must complete the
-[Individual Contributor License
-Agreement](http://code.google.com/legal/individual-cla-v1.0.html). You can do
-this online, and it only takes a minute. If you are contributing on behalf of a
-corporation, you must fill out the [Corporate Contributor License
-Agreement](http://code.google.com/legal/corporate-cla-v1.0.html)
+[Individual Contributor License Agreement](http://code.google.com/legal/individual-cla-v1.0.html).
+You can do this online, and it only takes a minute. If you are contributing on
+behalf of a corporation, you must fill out the
+[Corporate Contributor License Agreement](http://code.google.com/legal/corporate-cla-v1.0.html)
 and send it to us as described on that page. Add your (or your organization's)
 name and contact info to the AUTHORS file as a part of your CL.
 
 Now that you've made a change and written a test for it, it's ready for the code
 review! Submit a patch and getting it reviewed is fairly easy with depot tools.
 
-Use `git-cl`, which comes with [depot
-tools](http://sites.google.com/a/chromium.org/dev/developers/how-tos/install-depot-tools).
-For help, run `git cl help`.
-Note that in order for `git cl` to work correctly, it needs to run on a clone of
-<https://skia.googlesource.com/skia>. Using clones of mirrors, including Google's mirror
-on GitHub, might lead to issues with `git cl` usage.
+Use `git-cl`, which comes with
+[depot tools](http://sites.google.com/a/chromium.org/dev/developers/how-tos/install-depot-tools).
+For help, run `git cl help`. Note that in order for `git cl` to work correctly,
+it needs to run on a clone of <https://skia.googlesource.com/skia>. Using clones
+of mirrors, including Google's mirror on GitHub, might lead to issues with
+`git cl` usage.
 
 ### Find a reviewer
 
 Ideally, the reviewer is someone who is familiar with the area of code you are
 touching. Look at the git blame for the file to see who else has been editing
-it. If unsuccessful, another option is to click on the 'Suggested Reviewers' button
-to add one of the listed Skia contacts. They should be able to add appropriate
-reviewers for your change. The button is located here:
-<img src="/dev/contrib/SuggestedReviewers.png" style="display: inline-block; max-width: 75%" />
-
+it. If unsuccessful, another option is to click on the 'Suggested Reviewers'
+button to add one of the listed Skia contacts. They should be able to add
+appropriate reviewers for your change. The button is located here:
+<img src="/docs/dev/contrib/SuggestedReviewers.png" style="display: inline-block; max-width: 75%" />
 
 ### Uploading changes for review
 
-Skia uses the Gerrit code review tool. Skia's instance is [skia-review](http://skia-review.googlesource.com).
-Use `git cl` to upload your change:
+Skia uses the Gerrit code review tool. Skia's instance is
+[skia-review](http://skia-review.googlesource.com). Use `git cl` to upload your
+change:
 
 <!--?prettify lang=sh?-->
 
     git cl upload
 
 You may have to enter a Google Account username and password to authenticate
-yourself to Gerrit. A free gmail account will do fine, or any
-other type of Google account.  It does not have to match the email address you
-configured using `git config --global user.email` above, but it can.
+yourself to Gerrit. A free gmail account will do fine, or any other type of
+Google account. It does not have to match the email address you configured using
+`git config --global user.email` above, but it can.
 
 The command output should include a URL, similar to
 (https://skia-review.googlesource.com/c/4559/), indicating where your changelist
@@ -108,14 +100,14 @@
 
 Skia's trybots allow testing and verification of changes before they land in the
 repo. You need to have permission to trigger try jobs; if you need permission,
-ask a committer. After uploading your CL to [Gerrit](https://skia-review.googlesource.com/),
-you may trigger a try job for any job listed in tasks.json, either via the
-Gerrit UI, using `git cl try`, eg.
+ask a committer. After uploading your CL to
+[Gerrit](https://skia-review.googlesource.com/), you may trigger a try job for
+any job listed in tasks.json, either via the Gerrit UI, using `git cl try`, eg.
 
     git cl try -B skia.primary -b Some-Tryjob-Name
 
-or using bin/try, a small wrapper for `git cl try` which helps to choose try jobs.
-From a Skia checkout:
+or using bin/try, a small wrapper for `git cl try` which helps to choose try
+jobs. From a Skia checkout:
 
     bin/try --list
 
@@ -123,24 +115,22 @@
 
     bin/try "Test.*GTX660.*Release"
 
-For more information about testing, see [testing infrastructure](https://skia.org/dev/testing/automated_testing).
+For more information about testing, see
+[testing infrastructure](/docs/dev/testing/automated_testing).
 
 ### Request review
 
 Go to the supplied URL or go to the code review page and select the **Your**
 dropdown and click on **Changes**. Select the change you want to submit for
-review and click **Reply**. Enter at least one reviewer's email address. Now
-add any optional notes, and send your change off for review by clicking on
-**Send**. Unless you send your change to reviewers, no one will know to look
-at it.
+review and click **Reply**. Enter at least one reviewer's email address. Now add
+any optional notes, and send your change off for review by clicking on **Send**.
+Unless you send your change to reviewers, no one will know to look at it.
 
 _Note_: If you don't see editing commands on the review page, click **Sign in**
 in the upper right. _Hint_: You can add -r reviewer@example.com --send-mail to
 send the email directly when uploading a change using `git-cl`.
 
-
-The review process
-------------------
+## The review process
 
 If you submit a giant patch, or do a bunch of work without discussing it with
 the relevant people, you may have a hard time convincing anyone to review it!
@@ -176,14 +166,13 @@
 Once your change has received an approval, you can click the "Submit to CQ"
 button on the codereview page and it will be committed on your behalf.
 
-Once your commit has gone in, you should delete the branch containing your change:
+Once your commit has gone in, you should delete the branch containing your
+change:
 
     git checkout -q origin/master
     git branch -D my_feature
 
-
-Final Testing
--------------
+## Final Testing
 
 Skia's principal downstream user is Chromium, and any change to Skia rendering
 output can break Chromium. If your change alters rendering in any way, you are
@@ -193,22 +182,21 @@
 
 ### Evaluating Impact on Chromium
 
-Keep in mind that Skia is rolled daily into Blink and Chromium.  Run local tests
-and watch canary bots for results to ensure no impact.  If you are submitting
+Keep in mind that Skia is rolled daily into Blink and Chromium. Run local tests
+and watch canary bots for results to ensure no impact. If you are submitting
 changes that will impact layout tests, follow the guides below and/or work with
 your friendly Skia-Blink engineer to evaluate, rebaseline, and land your
 changes.
 
 Resources:
 
-[How to land Skia changes that change Blink layout test results](../chrome/layouttest)
+[How to land Skia changes that change Blink layout test results](/docs/dev/chrome/blink/)
 
-If you're changing the Skia API, you may need to make an associated change in Chromium.
-If you do, please follow these instructions: [Landing Skia changes which require Chrome changes](../chrome/changes)
+If you're changing the Skia API, you may need to make an associated change in
+Chromium. If you do, please follow these instructions:
+[Landing Skia changes which require Chrome changes](/docs/dev/chrome/changes/)
 
-
-Check in your changes
----------------------
+## Check in your changes
 
 ### Non-Skia-committers
 
@@ -216,29 +204,31 @@
 commit your change directly to Skia's repository.
 
 If you don't have committer rights in https://skia.googlesource.com/skia.git ...
-first of all, thanks for submitting your patch!  We really appreciate these
-submissions.  After receiving an approval from a committer, you will be able to
+first of all, thanks for submitting your patch! We really appreciate these
+submissions. After receiving an approval from a committer, you will be able to
 click the "Submit to CQ" button and submit your patch via the commit queue.
 
-In special instances, a Skia committer may assist you in landing the change
-by uploading a new codereview containing your patch (perhaps with some small
-adjustments at their discretion).  If so, you can mark your change as
+In special instances, a Skia committer may assist you in landing the change by
+uploading a new codereview containing your patch (perhaps with some small
+adjustments at their discretion). If so, you can mark your change as
 "Abandoned", and update it with a link to the new codereview.
 
 ### Skia committers
-  *  tips on how to apply an externally provided patch are [here](./patch)
-  *  when landing externally contributed patches, please note the original
-     contributor's identity (and provide a link to the original codereview) in the commit message
 
-    `git-cl` will squash all your commits into a single one with the description you used when you uploaded your change.
+- tips on how to apply an externally provided patch are [here](../patch)
+- when landing externally contributed patches, please note the original
+  contributor's identity (and provide a link to the original codereview) in the
+  commit message
 
-    ~~~~
-    git cl land
-    ~~~~
+  `git-cl` will squash all your commits into a single one with the description
+  you used when you uploaded your change.
 
-    or
+  ```
+  git cl land
+  ```
 
-    ~~~~
-    git cl land -c 'Contributor Name <email@example.com>'
-    ~~~~
+  or
 
+  ```
+  git cl land -c 'Contributor Name <email@example.com>'
+  ```
diff --git a/site/docs/dev/design/pdftheory.md b/site/docs/dev/design/pdftheory.md
index e686026..ee2f9bd 100644
--- a/site/docs/dev/design/pdftheory.md
+++ b/site/docs/dev/design/pdftheory.md
@@ -16,7 +16,7 @@
 This document describes how the backend operates, but **these interfaces are not
 part of the public API and are subject to perpetual change.**
 
-See [Using Skia's PDF Backend](../../user/sample/pdf) to find out how to use
+See [Using Skia's PDF Backend](/docs/user/sample/pdf/) to find out how to use
 SkPDF as a client calling Skia's public API.
 
 ---
diff --git a/site/docs/dev/flutter/_index.md b/site/docs/dev/flutter/_index.md
index 0f08dab..40c44b4 100644
--- a/site/docs/dev/flutter/_index.md
+++ b/site/docs/dev/flutter/_index.md
@@ -1,29 +1,37 @@
-
 ---
-title: "Skia in Flutter & Fuchsia"
-linkTitle: "Skia in Flutter & Fuchsia"
-
+title: 'Skia in Flutter & Fuchsia'
+linkTitle: 'Skia in Flutter & Fuchsia'
 ---
 
+Skia is used by both [Flutter](https://flutter.io/) and
+[Fuchsia](https://fuchsia.googlesource.com/docs/+/master/README.md).
 
-Skia is used by both [Flutter](https://flutter.io/) and [Fuchsia](https://fuchsia.googlesource.com/docs/+/master/README.md).
+Fuchsia has a [roller](https://autoroll.skia.org/) that will continuously roll
+latest Skia into that project. Fuchsia uses an XML
+[manifest](https://fuchsia.googlesource.com/manifest/+/refs/heads/master) to
+specify the Skia revision (as well as other third party libraries).
 
-Fuchsia has a [roller](https://fuchsia-roll.skia.org/) that will continuously roll latest Skia into that project. Fuchsia uses an XML [manifest](https://fuchsia.googlesource.com/manifest/+/master/userspace) to specify the Skia revision (as well as other third party libraries).
+Flutter does not (yet) have a roller, so developers must manually perform rolls.
+Flutter uses [DEPS](https://github.com/flutter/engine/blob/master/DEPS) to
+specify third party dependencies.
 
-Flutter does not (yet) have a roller, so developers must manually perform rolls. Flutter uses [DEPS](https://github.com/flutter/engine/blob/master/DEPS) to specify third party dependencies.
+Although each project is (almost always) building at a different revision of
+Skia, Fuchsia itself always builds the latest revision of Flutter as one of its
+components. Thus, the versions of Skia being used by Flutter and Fuchsia must be
+"source compatible" -- Flutter must be capable of compiling against either
+revision without any change to Flutter itself.
 
-
-Although each project is (almost always) building at a different revision of Skia, Fuchsia itself always builds the latest revision of Flutter as one of its components. Thus, the versions of Skia being used by Flutter and Fuchsia must be "source compatible" -- Flutter must be capable of compiling against either revision without any change to Flutter itself.
-
-Making API Changes
-------------------
+## Making API Changes
 
 If you need to make a breaking API change, the basic approach is:
 
-* Add new code to Skia, leaving the old code in place.
-* Deprecate the old code path so that it must be enabled with a flag such as 'SK_SUPPORT_LEGACY_XXX'.
-* Add that same flag to [flutter\_defines.gni](https://skia.googlesource.com/skia/+/master/gn/flutter_defines.gni) in Skia.
-  * Both Flutter and Fuchsia build Skia with a GN argument that enables all the defines listed in that file.
-* Land the Skia change, and test the new API in both Flutter and Fuchsia.
-* Remove the flag and code when the legacy code path is no longer in use.
-
+- Add new code to Skia, leaving the old code in place.
+- Deprecate the old code path so that it must be enabled with a flag such as
+  'SK_SUPPORT_LEGACY_XXX'.
+- Add that same flag to
+  [flutter_defines.gni](https://skia.googlesource.com/skia/+/master/gn/flutter_defines.gni)
+  in Skia.
+  - Both Flutter and Fuchsia build Skia with a GN argument that enables all the
+    defines listed in that file.
+- Land the Skia change, and test the new API in both Flutter and Fuchsia.
+- Remove the flag and code when the legacy code path is no longer in use.
diff --git a/site/docs/dev/gardening/_index.md b/site/docs/dev/gardening/_index.md
index 1af2631..c06138a 100644
--- a/site/docs/dev/gardening/_index.md
+++ b/site/docs/dev/gardening/_index.md
@@ -1,61 +1,73 @@
-
 ---
-title: "Skia Gardener Documentation"
-linkTitle: "Skia Gardener Documentation"
+title: 'Skia Gardener Documentation'
+linkTitle: 'Skia Gardener Documentation'
 
 weight: 8
+---
+
+### Contents
+
+- [What does a Skia Gardener do?](#what_is_a_skia_gardener)
+  - [Skia tree](#skia_tree)
+  - [AutoRollers](#autorollers)
+  - [Gold and Perf](#gold_and_perf)
+  - [Documentation](#skia_gardener_doc)
+- [View current and upcoming rotations](#view_current_upcoming_rotations)
+- [How to swap rotation shifts](#how_to_swap)
+- [Tips for Skia Gardeners](#tips)
+  - [When to file bugs](#when_to_file_bugs)
+  - [How to close or re-open the tree](#how_close_tree)
+  - [How to revert a CL](#how_to_revert)
+  - [What to do if DEPS roll fails to land](#deps_roll_failures)
+  - [How to rebaseline](#how_to_rebaseline)
+
+<a name="what_is_a_skia_gardener"></a> What does a Skia Gardener do?
 
 ---
 
-
-### Contents ###
-
-*   [What does a Skia Gardener do?](#what_is_a_skia_gardener)
-    +   [Skia tree](#skia_tree)
-    +   [AutoRollers](#autorollers)
-    +   [Gold and Perf](#gold_and_perf)
-    +   [Documentation](#skia_gardener_doc)
-*   [View current and upcoming rotations](#view_current_upcoming_rotations)
-*   [How to swap rotation shifts](#how_to_swap)
-*   [Tips for Skia Gardeners](#tips)
-    +   [When to file bugs](#when_to_file_bugs)
-    +   [How to close or re-open the tree](#how_close_tree)
-    +   [How to revert a CL](#how_to_revert)
-    +   [What to do if DEPS roll fails to land](#deps_roll_failures)
-    +   [How to rebaseline](#how_to_rebaseline)
-
-
-<a name="what_is_a_skia_gardener"></a>
-What does a Skia Gardener do?
------------------------------
-
-A Skia Gardener keeps an eye on the tree, DEPS rolls, Gold tool, the Perf tool, and triages Chrome bugs.
+A Skia Gardener keeps an eye on the tree, DEPS rolls, Gold tool, the Perf tool,
+and triages Chrome bugs.
 
 Below is a brief summary of what the gardener does for each task:
 
 <a name="skia_tree"></a>
+
 ### Skia tree
-* Understand the [testing infrastructure](https://skia.org/dev/testing/automated_testing).
-* Start watching the [status page](https://status.skia.org) for bot breakages.
-* Track down people responsible for breakages and revert broken changes if there is no easy fix. You can use [blamer](#blamer) to help track down such changes.
-* Close and open the [tree](http://tree-status.skia.org).
-* Keep the builder comments on the [status page](https://status.skia.org) up to date.
-* File or follow up with [BreakingTheBuildbots bugs](https://bugs.chromium.org/p/skia/issues/list?q=label:BreakingTheBuildbots). See the tip on [when to file bugs](#when_to_file_bugs).
-* Read and update the [Ongoing Issues section](https://docs.google.com/document/d/1y2jUf4vXI0fwhu2TiCLVIfWC1JOxFcHXGw39y7i-y_I/edit#heading=h.tpualuc3p7z0) in the handoff doc.
-* (Optional) Document significant events that occurred during your shift in the [Weekly
-  Handoff Notes section](https://docs.google.com/document/d/1y2jUf4vXI0fwhu2TiCLVIfWC1JOxFcHXGw39y7i-y_I/edit#heading=h.y49irwbutzr) in the handoff doc.
+
+- Understand the
+  [testing infrastructure](https://skia.org/docs/dev/testing/automated_testing).
+- Start watching the [status page](https://status.skia.org) for bot breakages.
+- Track down people responsible for breakages and revert broken changes if there
+  is no easy fix. You can use [blamer](#blamer) to help track down such changes.
+- Close and open the [tree](http://tree-status.skia.org).
+- Keep the builder comments on the [status page](https://status.skia.org) up to
+  date.
+- File or follow up with
+  [BreakingTheBuildbots bugs](https://bugs.chromium.org/p/skia/issues/list?q=label:BreakingTheBuildbots).
+  See the tip on [when to file bugs](#when_to_file_bugs).
+- Read and update the
+  [Ongoing Issues section](https://docs.google.com/document/d/1y2jUf4vXI0fwhu2TiCLVIfWC1JOxFcHXGw39y7i-y_I/edit#heading=h.tpualuc3p7z0)
+  in the handoff doc.
+- (Optional) Document significant events that occurred during your shift in the
+  [Weekly Handoff Notes section](https://docs.google.com/document/d/1y2jUf4vXI0fwhu2TiCLVIfWC1JOxFcHXGw39y7i-y_I/edit#heading=h.y49irwbutzr)
+  in the handoff doc.
 
 <a name="triage"></a>
+
 ### Triage
-You should triage Chromium and Skia bugs that show up under "Untriaged Bugs" on the [status page](https://status.skia.org).
-The Android Gardener will triage the untriaged Android Bugs.
-For a more detailed view of bugs see [Skia Bugs Central](https://bugs-central.skia.org/).
+
+You should triage Chromium and Skia bugs that show up under "Untriaged Bugs" on
+the [status page](https://status.skia.org). The Android Gardener will triage the
+untriaged Android Bugs. For a more detailed view of bugs see
+[Skia Bugs Central](https://bugs-central.skia.org/).
 
 <a name="blamer"></a>
+
 ### Blamer
-If you have Go installed, a command-line tool is available to search through
-git history and do text searches on the full patch text and the commit
-message. To install blamer run:
+
+If you have Go installed, a command-line tool is available to search through git
+history and do text searches on the full patch text and the commit message. To
+install blamer run:
 
     go get go.skia.org/infra/blamer/go/blamer
 
@@ -74,118 +86,155 @@
         Review-Url: https://codereview.chromium.org/2167723002
 
 <a name="autorollers"></a>
+
 ### Autorollers
-* Ensure that all AutoRollers listed on the [status page](https://status.skia.org) are successfully landing.
+
+- Ensure that all AutoRollers listed on the
+  [status page](https://status.skia.org) are successfully landing.
 
 <a name="gold_and_perf"></a>
+
 ### Gold and Perf
-* Pay attention for new [Perf](https://perf.skia.org/) and [Gold](https://gold.skia.org/) alerts (by clicking on the bell at the top right of the [status page](https://status.skia.org)).
-* The gardener's duty here is to make sure that when developers introduce new images or new perf regressions, that they are aware of what happened, and they use these tools to take appropriate action.
+
+- Pay attention for new [Perf](https://perf.skia.org/) and
+  [Gold](https://gold.skia.org/) alerts (by clicking on the bell at the top
+  right of the [status page](https://status.skia.org)).
+- The gardener's duty here is to make sure that when developers introduce new
+  images or new perf regressions, that they are aware of what happened, and they
+  use these tools to take appropriate action.
 
 <a name="skia_gardener_doc"></a>
+
 ### Documentation
-* Improve/update this documentation page for future gardeners, especially the [Tips section](#tips).
 
-In general, gardeners should have a strong bias towards actions that keep the tree green and then open; if a simple revert can fix the problem, the gardener <b>should revert first and ask questions later</b>.
+- Improve/update this documentation page for future gardeners, especially the
+  [Tips section](#tips).
 
+In general, gardeners should have a strong bias towards actions that keep the
+tree green and then open; if a simple revert can fix the problem, the gardener
+<b>should revert first and ask questions later</b>.
 
-<a name="view_current_upcoming_rotations"></a>
-View current and upcoming rotations
------------------------------------
+<a name="view_current_upcoming_rotations"></a> View current and upcoming
+rotations
 
-The list of Skia Gardeners is specified [here](https://rotations.corp.google.com/rotation/4699606003744768).
-The gardeners widget on the [status page](https://status.skia.org) also displays the current gardeners.
+---
 
+The list of Skia Gardeners is specified
+[here](https://rotations.corp.google.com/rotation/4699606003744768). The
+gardeners widget on the [status page](https://status.skia.org) also displays the
+current gardeners.
 
-<a name="how_to_swap"></a>
-How to swap rotation shifts
----------------------------
+<a name="how_to_swap"></a> How to swap rotation shifts
 
-If you need to swap shifts with someone (because you are out sick or on vacation), please get approval from the person you want to swap with and directly make the swap via the [rotations page](https://rotations.corp.google.com/rotation/4699606003744768).
+---
 
+If you need to swap shifts with someone (because you are out sick or on
+vacation), please get approval from the person you want to swap with and
+directly make the swap via the
+[rotations page](https://rotations.corp.google.com/rotation/4699606003744768).
 
-<a name="tips"></a>
-Tips for Skia Gardeners
------------------
+<a name="tips"></a> Tips for Skia Gardeners
+
+---
 
 <a name="when_to_file_bugs"></a>
+
 ### When to file bugs
 
-Pay close attention to the "Failures" view in the [status page](https://status.skia.org).
-Look at all existing [BreakingTheBuildbots bugs](https://bug.skia.org/?q=label:BreakingTheBuildbots). If the list is kept up to date then it should accurately represent everything that is causing failures. If it does not, then please file/update bugs accordingly.
-
+Pay close attention to the "Failures" view in the
+[status page](https://status.skia.org). Look at all existing
+[BreakingTheBuildbots bugs](https://bug.skia.org/?q=label:BreakingTheBuildbots).
+If the list is kept up to date then it should accurately represent everything
+that is causing failures. If it does not, then please file/update bugs
+accordingly.
 
 <a name="how_close_tree"></a>
+
 ### How to close or re-open the tree
 
 1. Go to [tree-status.skia.org](https://tree-status.skia.org).
 2. Change the status.
- *  To close the tree, include the word "closed" in the status.
- * To open the tree, include the word "open" in the status.
- * To caution the tree, include the word "caution" in the status.
 
+- To close the tree, include the word "closed" in the status.
+- To open the tree, include the word "open" in the status.
+- To caution the tree, include the word "caution" in the status.
 
 <a name="how_to_submit_when_tree_closed"></a>
+
 ### How to submit when the tree is closed
 
-* Submit manually using the "git cl land" with the --bypass-hooks flag.
-* Add "No-Tree-Checks: true" to your CL description and use the CQ as usual.
-
+- Submit manually using the "git cl land" with the --bypass-hooks flag.
+- Add "No-Tree-Checks: true" to your CL description and use the CQ as usual.
 
 <a name="how_to_revert"></a>
+
 ### How to revert a CL
 
-See the revert documentation [here](https://skia.org/dev/contrib/revert).
-
+See the revert documentation [here](https://skia.org/docs/dev/contrib/revert).
 
 <a name="deps_roll_failures"></a>
+
 ### What to do if DEPS roll fails to land
 
-A common cause of DEPS roll failures are layout tests. Find the offending Skia CL by examining the commit hash range in the DEPS roll and revert (or talk to the commit author if they are available). If you do revert then keep an eye on the next DEPS roll to make sure it succeeds.
+A common cause of DEPS roll failures are layout tests. Find the offending Skia
+CL by examining the commit hash range in the DEPS roll and revert (or talk to
+the commit author if they are available). If you do revert then keep an eye on
+the next DEPS roll to make sure it succeeds.
 
-If a Skia CL changes layout tests, but the new images look good, the tests need to be rebaselined. See [Rebaseline Layout Tests](#how_to_rebaseline).
+If a Skia CL changes layout tests, but the new images look good, the tests need
+to be rebaselined. See [Rebaseline Layout Tests](#how_to_rebaseline).
 
 <a name="how_to_rebaseline"></a>
+
 ### Rebaseline Layout Tests (i.e., add suppressions)
 
-* First create a Chromium bug:
-  * goto [crbug.com](https://crbug.com)
-  * Make sure you're logged in with your Chromium credentials
-  * Click “New Issue”
-  * Summary: “Skia image rebaseline”
-  * Description:
-      * DEPS roll #,
-      * Helpful message about what went wrong (e.g., “Changes to how lighting is scaled in Skia r#### changed the following images:”)
-      * Layout tests affected
-      * You should copy the list of affected from stdio of the failing bot
-  * Status: Assigned
-  * Owner: yourself
-  * cc: reed@, bsalomon@, robertphillips@ & developer responsible for changes
-  * Labels: OS-All & Cr-Blink-LayoutTests
-  * If it is filter related, cc senorblanco@
+- First create a Chromium bug:
 
-* (Dispreferred but faster) Edit [skia/skia_test_expectations.txt](https://chromium.googlesource.com/chromium/src/+/master/skia/skia_test_expectations.txt)
-  * Add # comment about what has changed (I usually paraphrase the crbug text)
-  * Add line(s) like the following after the comment:
-      * crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ ImageOnlyFailure ]
-  * Note: this change is usually done in the DEPS roll patch itself
+  - goto [crbug.com](https://crbug.com)
+  - Make sure you're logged in with your Chromium credentials
+  - Click “New Issue”
+  - Summary: “Skia image rebaseline”
+  - Description:
+    - DEPS roll #,
+    - Helpful message about what went wrong (e.g., “Changes to how lighting is
+      scaled in Skia r#### changed the following images:”)
+    - Layout tests affected
+    - You should copy the list of affected from stdio of the failing bot
+  - Status: Assigned
+  - Owner: yourself
+  - cc: reed@, bsalomon@, robertphillips@ & developer responsible for changes
+  - Labels: OS-All & Cr-Blink-LayoutTests
+  - If it is filter related, cc senorblanco@
 
-* (Preferred but slower) Make a separate Blink patch by editing LayoutTests/TestExpectations
-  * Add # comment about what has changed (I usually paraphrase the crbug text)
-  * Add line(s) like the following after the comment:
-      * crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ Skip ]  # needs rebaseline
-  * Commit the patch you created and wait until it lands and rolls into Chrome
+- (Dispreferred but faster) Edit
+  [skia/skia_test_expectations.txt](https://chromium.googlesource.com/chromium/+/refs/heads/trunk/skia/skia_test_expectations.txt)
 
-* Retry the DEPS roll (for the 1st/dispreferred option this usually means just retrying the layout bots)
-* Make a Blink patch by editing LayoutTests/TestExpectations
-  * Add # comment about what has changed
-  * Add line(s) like the following after the comment:
-      * crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ Skip ]  # needs rebaseline
-        * (if you took the second option above you can just edit the existing line(s))
+  - Add # comment about what has changed (I usually paraphrase the crbug text)
+  - Add line(s) like the following after the comment:
+    - crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ ImageOnlyFailure ]
+  - Note: this change is usually done in the DEPS roll patch itself
 
-* If you took the first/dispreferred option above:
-  * Wait for the Blink patch to roll into Chrome
-  * Create a Chrome patch that removes your suppressions from skia/skia_test_expectations.txt
+- (Preferred but slower) Make a separate Blink patch by editing
+  LayoutTests/TestExpectations
 
+  - Add # comment about what has changed (I usually paraphrase the crbug text)
+  - Add line(s) like the following after the comment:
+    - crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ Skip ] # needs
+      rebaseline
+  - Commit the patch you created and wait until it lands and rolls into Chrome
 
+- Retry the DEPS roll (for the 1st/dispreferred option this usually means just
+  retrying the layout bots)
+- Make a Blink patch by editing LayoutTests/TestExpectations
 
+  - Add # comment about what has changed
+  - Add line(s) like the following after the comment:
+    - crbug.com/<bug#youjustcreated> foo/bar/test-name.html [ Skip ] # needs
+      rebaseline
+      - (if you took the second option above you can just edit the existing
+        line(s))
+
+- If you took the first/dispreferred option above:
+  - Wait for the Blink patch to roll into Chrome
+  - Create a Chrome patch that removes your suppressions from
+    skia/skia_test_expectations.txt
diff --git a/site/docs/dev/gardening/android.md b/site/docs/dev/gardening/android.md
index a6985ba..9e3ae85 100644
--- a/site/docs/dev/gardening/android.md
+++ b/site/docs/dev/gardening/android.md
@@ -1,70 +1,91 @@
-
 ---
-title: "Android Gardener Documentation"
-linkTitle: "Android Gardener Documentation"
-
+title: 'Android Gardener Documentation'
+linkTitle: 'Android Gardener Documentation'
 ---
 
+### Contents
 
-### Contents ###
+- [What does a Android Gardener do?](#what_is_a_android_gardener)
+- [Android Autorollers](#autoroller_doc)
+- [View current and upcoming rotations](#view_current_upcoming_rotations)
+- [How to swap rotation shifts](#how_to_swap)
 
-*   [What does a Android Gardener do?](#what_is_a_android_gardener)
-*   [Android Autorollers](#autoroller_doc)
-*   [View current and upcoming rotations](#view_current_upcoming_rotations)
-*   [How to swap rotation shifts](#how_to_swap)
+<a name="what_is_a_android_gardener"></a> What does a Android Gardener do?
 
-
-<a name="what_is_a_android_gardener"></a>
-What does a Android Gardener do?
---------------------------------
+---
 
 The Android Gardener has two primary jobs:
 
-1) Monitor and approve the semi-autonomous [git merges](https://googleplex-android-review.git.corp.google.com/#/q/owner:31977622648%2540project.gserviceaccount.com+status:open) from Skia's repository into the Android source tree. See autoroller documentation <a href="#autoroller_doc">here</a> for details on how to interact with it.
+1. Monitor and approve the semi-autonomous
+   [git merges](https://googleplex-android-review.git.corp.google.com/#/q/owner:31977622648%2540project.gserviceaccount.com+status:open)
+   from Skia's repository into the Android source tree. See autoroller
+   documentation <a href="#autoroller_doc">here</a> for details on how to
+   interact with it.
 
-2) Stay on top of incoming Android-related bugs in both the [Skia](https://bugs.chromium.org/p/skia/issues/list?can=2&q=OpSys%3DAndroid&sort=-id&colspec=ID+Type+Status+Priority+Owner+Summary&cells=tiles) and [Android](https://buganizer.corp.google.com/issues?q=assignee:skia-android-triage%20status:open) bug trackers.  For Skia bugs, this means triaging and assigning all Android bugs that are currently unassigned.  For Android, this means following the [Android guidelines](go/android-buganizer) to verifying that all Skia bugs are TL-triaged (if not reach out to djsollen@).
+2. Stay on top of incoming Android-related bugs in both the
+   [Skia](https://bugs.chromium.org/p/skia/issues/list?can=2&q=OpSys%3DAndroid&sort=-id&colspec=ID+Type+Status+Priority+Owner+Summary&cells=tiles)
+   and
+   [Android](https://buganizer.corp.google.com/issues?q=assignee:skia-android-triage%20status:open)
+   bug trackers. For Skia bugs, this means triaging and assigning all Android
+   bugs that are currently unassigned. For Android, this means following the
+   [Android guidelines](http://go/android-buganizer) to verifying that all Skia
+   bugs are TL-triaged (if not reach out to djsollen@).
 
-The Android Gardener's job is NOT to address issues in Perf and Gold. You'll get your chance when you are the general Skia Gardener.
+The Android Gardener's job is NOT to address issues in Perf and Gold. You'll get
+your chance when you are the general Skia Gardener.
 
+<a name="autoroller_doc"></a> Android Autorollers
 
-<a name="autoroller_doc"></a>
-Android Autorollers
--------------------
+---
 
-The Android autoroller into the master branch runs on [https://android-master-roll.skia.org](android-master-roll.skia.org) and is accessible only to Googlers.<br/>
-The autoroller's status is displayed on Skia's [status page](https://status.skia.org/).
+The Android autoroller into the master branch runs on
+[https://android-master-roll.skia.org](https://android-master-roll.skia.org) and
+is accessible only to Googlers.<br/> The autoroller's status is displayed on
+Skia's [status page](https://status.skia.org/).
 
-You can send the autoroller into dry run mode via the UI. The uploaded change will not autosubmit when it is in dry run mode.
+You can send the autoroller into dry run mode via the UI. The uploaded change
+will not autosubmit when it is in dry run mode.
 
-You can also stop the autoroller via the UI. This is useful in cases where a failure needs to be investigated and you do not want to waste TH resources by running unnecessary tests.
+You can also stop the autoroller via the UI. This is useful in cases where a
+failure needs to be investigated and you do not want to waste TH resources by
+running unnecessary tests.
 
-If the autoroller displays an error in the UI then look for more detail in it's [cloud logs](https://pantheon.corp.google.com/logs/viewer?project=google.com:skia-buildbots&resource=logging_log%2Fname%2Fandroid-master-autoroll&logName=projects%2Fgoogle.com:skia-buildbots%2Flogs%2Fautoroll).
+If the autoroller displays an error in the UI then look for more detail in it's
+[cloud logs](https://pantheon.corp.google.com/logs/viewer?project=google.com:skia-buildbots&resource=logging_log%2Fname%2Fandroid-master-autoroll&logName=projects%2Fgoogle.com:skia-buildbots%2Flogs%2Fautoroll).
 
-If you need any more information about the autoroller please look at [skia:5538](https://bugs.chromium.org/p/skia/issues/detail?id=5538) or ask rmistry@ / skiabot@.
+If you need any more information about the autoroller please look at
+[skia:5538](https://bugs.chromium.org/p/skia/issues/detail?id=5538) or ask
+rmistry@ / skiabot@.
 
-We also have autorollers into release branches (also restricted only to Googlers):
+We also have autorollers into release branches (also restricted only to
+Googlers):
 
-* [https://android-o-roll.skia.org](https://android-o-roll.skia.org) ([cloud logs](https://pantheon.corp.google.com/logs/viewer?project=google.com:skia-buildbots&resource=logging_log%2Fname%2Fandroid-o-autoroll&logName=projects%2Fgoogle.com:skia-buildbots%2Flogs%2Fautoroll)).
+- [https://android-o-roll.skia.org](https://android-o-roll.skia.org)
+  ([cloud logs](https://pantheon.corp.google.com/logs/viewer?project=google.com:skia-buildbots&resource=logging_log%2Fname%2Fandroid-o-autoroll&logName=projects%2Fgoogle.com:skia-buildbots%2Flogs%2Fautoroll)).
 
-Changes created by these rollers need to be manually approved.<br/>
-The changes created by the release rollers:
+Changes created by these rollers need to be manually approved.<br/> The changes
+created by the release rollers:
 
-* Include all authors of merged changes so that they can watch the roll.
-* Extracts all buganizer bugs of the form 'BUG=b/123' or 'Bug: b/456' and creates a single line in the merge change 'Bug: 123, 456'.
-* Collects all 'Test: ' lines and carries them over to the merge change.
+- Include all authors of merged changes so that they can watch the roll.
+- Extracts all buganizer bugs of the form 'BUG=b/123' or 'Bug: b/456' and
+  creates a single line in the merge change 'Bug: 123, 456'.
+- Collects all 'Test: ' lines and carries them over to the merge change.
 
+<a name="view_current_upcoming_rotations"></a> View current and upcoming
+rotations
 
-<a name="view_current_upcoming_rotations"></a>
-View current and upcoming rotations
------------------------------------
+---
 
-The list of Android Gardeners is specified [here](https://rotations.corp.google.com/rotation/5296436538245120).
-The gardeners widget on the [status page](https://status.skia.org) also displays the current gardeners.
+The list of Android Gardeners is specified
+[here](https://rotations.corp.google.com/rotation/5296436538245120). The
+gardeners widget on the [status page](https://status.skia.org) also displays the
+current gardeners.
 
+<a name="how_to_swap"></a> How to swap rotation shifts
 
-<a name="how_to_swap"></a>
-How to swap rotation shifts
---------------------------
+---
 
-If you need to swap shifts with someone (because you are out sick or on vacation), please get approval from the person you want to swap with and directly make the swap via the [rotations page](https://rotations.corp.google.com/rotation/5296436538245120).
-
+If you need to swap shifts with someone (because you are out sick or on
+vacation), please get approval from the person you want to swap with and
+directly make the swap via the
+[rotations page](https://rotations.corp.google.com/rotation/5296436538245120).
diff --git a/site/docs/dev/testing/fuzz.md b/site/docs/dev/testing/fuzz.md
index d827e4c..956852c 100644
--- a/site/docs/dev/testing/fuzz.md
+++ b/site/docs/dev/testing/fuzz.md
@@ -1,16 +1,13 @@
-
 ---
-title: "Fuzzing"
-linkTitle: "Fuzzing"
-
+title: 'Fuzzing'
+linkTitle: 'Fuzzing'
 ---
 
+## Reproducing using `fuzz`
 
-Reproducing using `fuzz`
-------------------------
-
-We assume that you can [build Skia](/user/build). Many fuzzes only reproduce
-when building with ASAN or MSAN; see [those instructions for more details](./xsan).
+We assume that you can [build Skia](/docs/user/build). Many fuzzes only
+reproduce when building with ASAN or MSAN; see
+[those instructions for more details](../xsan).
 
 When building, you should add the following args to BUILD.gn to make reproducing
 less machine- and platform- dependent:
@@ -24,13 +21,14 @@
     skia_enable_fontmgr_custom_embedded=false
     skia_enable_fontmgr_custom_empty=true
 
-All that is needed to reproduce a fuzz downloaded from ClusterFuzz or oss-fuzz is to
-run something like:
+All that is needed to reproduce a fuzz downloaded from ClusterFuzz or oss-fuzz
+is to run something like:
 
     out/ASAN/fuzz -b /path/to/downloaded/testcase
 
 The fuzz binary will try its best to guess what the type/name should be based on
-the name of the testcase. Manually providing type and name is also supported, like:
+the name of the testcase. Manually providing type and name is also supported,
+like:
 
     out/ASAN/fuzz -t filter_fuzz -b /path/to/downloaded/testcase
     out/ASAN/fuzz -t api -n RasterN32Canvas -b /path/to/downloaded/testcase
@@ -44,8 +42,7 @@
 
     out/ASAN/fuzz -b /path/to/downloaded/testcase --loops <times-to-run>
 
-Writing fuzzers with libfuzzer
-------------------------------
+## Writing fuzzers with libfuzzer
 
 libfuzzer is an easy way to write new fuzzers, and how we run them on oss-fuzz.
 Your fuzzer entry point should implement this API:
@@ -75,11 +72,10 @@
 
     ./a.out
 
+## Fuzzing Defines
 
-Fuzzing Defines
----------------
-There are some defines that can help guide a fuzzer to be more productive (e.g. avoid OOMs, avoid
-unnecessarily slow code).
+There are some defines that can help guide a fuzzer to be more productive (e.g.
+avoid OOMs, avoid unnecessarily slow code).
 
     // Required for fuzzing with afl-fuzz to prevent OOMs from adding noise.
     SK_BUILD_FOR_AFL_FUZZ
@@ -90,4 +86,3 @@
     // This define adds in guards to abort when we think some code path will take a long time or
     // use a lot of RAM. It is set by default when either of the above defines are set.
     SK_BUILD_FOR_FUZZER
-
diff --git a/site/docs/dev/testing/ios.md b/site/docs/dev/testing/ios.md
index 25ab660..72dbe4a 100644
--- a/site/docs/dev/testing/ios.md
+++ b/site/docs/dev/testing/ios.md
@@ -1,34 +1,35 @@
-
 ---
-title: "Testing on iOS"
-linkTitle: "Testing on iOS"
-
+title: 'Testing on iOS'
+linkTitle: 'Testing on iOS'
 ---
 
 Before setting Skia up for automated testing from the command line, please
-follow the instructions to run Skia tests (*dm*, *nano-bench*) with the
-mainstream iOS tool chain. See the [quick start guide for ios](../../user/quick/ios).
+follow the instructions to run Skia tests (_dm_, _nano-bench_) with the
+mainstream iOS tool chain. See the
+[quick start guide for ios](/docs/user/build/).
 
 iOS doesn't lend itself well to compiling and running from the command line.
 Below are instructions on how to install a set of tools that make this possible.
-To see how they are used in automated testing please see the bash scripts
-used by the buildbot recipes: <https://github.com/google/skia/tree/master/platform_tools/ios/bin>.
+To see how they are used in automated testing please see the bash scripts used
+by the buildbot recipes:
+<https://github.com/google/skia/tree/master/platform_tools/ios/bin>.
 
-Installation
-------------
+## Installation
+
 The key tools are
 
-* libimobiledevice <http://www.libimobiledevice.org/>, <https://github.com/libimobiledevice/libimobiledevice>
+- libimobiledevice <http://www.libimobiledevice.org/>,
+  <https://github.com/libimobiledevice/libimobiledevice>
 
-* ios-deploy <https://github.com/phonegap/ios-deploy>
+- ios-deploy <https://github.com/phonegap/ios-deploy>
 
 Follow these steps to install them:
 
-* Install Brew at <http://brew.sh/>
-* Install *libimobiledevice*
-  (Note: All these are part of the *libimobiledevice* project but packaged/developed
-  under different names. The *cask* extension to *brew* is necessary to install
-  *osxfuse* and *ifuse*, which allows to mount the application directory on an iOS device).
+- Install Brew at <http://brew.sh/>
+- Install _libimobiledevice_ (Note: All these are part of the _libimobiledevice_
+  project but packaged/developed under different names. The _cask_ extension to
+  _brew_ is necessary to install _osxfuse_ and _ifuse_, which allows to mount
+  the application directory on an iOS device).
 
 ```
 brew install libimobiledevice
@@ -38,11 +39,10 @@
 brew install ifuse
 ```
 
-* Install node.js and ios-deploy
+- Install node.js and ios-deploy
 
 ```
 $ brew update
 $ brew install node
 $ npm install ios-deploy
 ```
-
diff --git a/site/docs/dev/testing/swarmingbots.md b/site/docs/dev/testing/swarmingbots.md
index 436c426..0a3a1b5 100644
--- a/site/docs/dev/testing/swarmingbots.md
+++ b/site/docs/dev/testing/swarmingbots.md
@@ -1,94 +1,113 @@
-
 ---
-title: "Skia Swarming Bots"
-linkTitle: "Skia Swarming Bots"
-
+title: 'Skia Swarming Bots'
+linkTitle: 'Skia Swarming Bots'
 ---
 
-
-Overview
---------
+## Overview
 
 Skia's Swarming bots are hosted in three places:
 
-* Google Compute Engine. This is the preferred location for bots which don't need to run on physical
-  hardware, ie. anything that doesn't require a GPU or a specific hardware configuration. Most of
-  our compile bots live here, along with some non-GPU test bots on Linux and Windows. We get
-  surprisingly stable performance numbers from GCE, despite very few guarantees about the physical
+- Google Compute Engine. This is the preferred location for bots which don't
+  need to run on physical hardware, ie. anything that doesn't require a GPU or a
+  specific hardware configuration. Most of our compile bots live here, along
+  with some non-GPU test bots on Linux and Windows. We get surprisingly stable
+  performance numbers from GCE, despite very few guarantees about the physical
   hardware.
-* Chrome Golo. This is the preferred location for bots which require specific hardware or OS
-  configurations that are not supported by GCE. We have several Mac, Linux, and Windows bots in the
-  Golo.
-* The Skolo (local Skia lab in Chapel Hill). Anything we can't get in GCE or the Golo lives
-  here. This includes a wider variety of GPUs and all Android, ChromeOS, iOS, and other devices.
+- Chrome Golo. This is the preferred location for bots which require specific
+  hardware or OS configurations that are not supported by GCE. We have several
+  Mac, Linux, and Windows bots in the Golo.
+- The Skolo (local Skia lab in Chapel Hill). Anything we can't get in GCE or the
+  Golo lives here. This includes a wider variety of GPUs and all Android,
+  ChromeOS, iOS, and other devices.
 
 [go/skbl](https://goto.google.com/skbl) lists all Skia Swarming bots.
 
+<a name="connecting-to-swarming-bots"></a> Connecting to Swarming Bots
 
-<a name="connecting-to-swarming-bots"></a>
-Connecting to Swarming Bots
----------------------------
+---
 
-If you need to make changes on a bot/device, please check with the Infra Gardener or another Infra team member. Most
-bots/devices can be flashed/imaged back to a clean state, but others can not.
+If you need to make changes on a bot/device, please check with the Infra
+Gardener or another Infra team member. Most bots/devices can be flashed/imaged
+back to a clean state, but others can not.
 
-- Machine name like “skia-e-gce-NNN”, “skia-ct-gce-NNN”, “skia-i-gce-NNN”, “ct-gce-NNN”, “ct-xxx-builder-NNN” -> GCE
-  * First determine the project for the bot:
-     + skia-e-gce-NNN, skia-ct-gce-NNN: [skia-swarming-bots](https://console.cloud.google.com/compute/instances?project=skia-swarming-bots)
-     + skia-i-gce-NNN: [google.com:skia-buildbots](https://console.cloud.google.com/compute/instances?project=google.com:skia-buildbots)
-     + ct-gce-NNN, ct-xxx-builder-NNN: [ct-swarming-bots](https://console.cloud.google.com/compute/instances?project=ct-swarming-bots)
-  * To log in to a Linux bot in GCE, use `gcloud compute ssh --project <project> default@<machine name>`. Choose the zone listed on the VM's detail page (see links above). You may also specify the zone using the `--zone` command-line flag.
-  * To log in to a Windows bot in GCE, first go to the VM's detail page and click the "Set Windows password"
-    button. (Alternatively, ask the Infra Team how to log in as chrome-bot.) There are two options to connect:
-     + SSH: Follow the instructions for Linux using your username rather than `default`.
-     + RDP: On the VM's detail page, click the "RDP" button. (You will be instructed to install the Chrome RDP Extension
-       for GCP if it hasn't already been installed.)
+- Machine name like “skia-e-gce-NNN”, “skia-ct-gce-NNN”, “skia-i-gce-NNN”,
+  “ct-gce-NNN”, “ct-xxx-builder-NNN” -> GCE
+
+  - First determine the project for the bot:
+    - skia-e-gce-NNN, skia-ct-gce-NNN:
+      [skia-swarming-bots](https://console.cloud.google.com/compute/instances?project=skia-swarming-bots)
+    - skia-i-gce-NNN:
+      [google.com:skia-buildbots](https://console.cloud.google.com/compute/instances?project=google.com:skia-buildbots)
+    - ct-gce-NNN, ct-xxx-builder-NNN:
+      [ct-swarming-bots](https://console.cloud.google.com/compute/instances?project=ct-swarming-bots)
+  - To log in to a Linux bot in GCE, use
+    `gcloud compute ssh --project <project> default@<machine name>`. Choose the
+    zone listed on the VM's detail page (see links above). You may also specify
+    the zone using the `--zone` command-line flag.
+  - To log in to a Windows bot in GCE, first go to the VM's detail page and
+    click the "Set Windows password" button. (Alternatively, ask the Infra Team
+    how to log in as chrome-bot.) There are two options to connect:
+    - SSH: Follow the instructions for Linux using your username rather than
+      `default`.
+    - RDP: On the VM's detail page, click the "RDP" button. (You will be
+      instructed to install the Chrome RDP Extension for GCP if it hasn't
+      already been installed.)
 
 - Machine name ends with “a9”, “m3”, "m5" -> Chrome Golo/Labs
-  * To log in to Golo bots, see [go/chrome-infra-build-access](https://goto.google.com/chrome-infra-build-access).
 
-- Machine name starts with “skia-e-”, “skia-i-” (other than “skia-i-gce-NNN”), “skia-rpi-” -> Chapel Hill lab (aka Skolo)<br/>
-  To log in to Skolo bots, see the [Skolo maintenance doc][remote access] remote access section. See the following for OS specific instructions:<br/>
-  * [Remotely debug an Android device in Skolo][remotely debug android]
-  * [VNC to Skolo Windows bots][vnc to skolo windows]
-  * [ChromeOS Debugging][chromeos debugging]
+  - To log in to Golo bots, see
+    [go/chrome-infra-build-access](https://goto.google.com/chrome-infra-build-access).
 
+- Machine name starts with “skia-e-”, “skia-i-” (other than “skia-i-gce-NNN”),
+  “skia-rpi-” -> Chapel Hill lab (aka Skolo)<br/> To log in to Skolo bots, see
+  the [Skolo maintenance doc][remote access] remote access section. See the
+  following for OS specific instructions:<br/>
+  - [Remotely debug an Android device in Skolo][remotely debug android]
+  - [VNC to Skolo Windows bots][vnc to skolo windows]
+  - [ChromeOS Debugging][chromeos debugging]
 
-Debugging
----------
+## Debugging
 
-If you need to run code on a specific machine/device to debug an issue, the simplest option is to
-run tryjobs (after adding debugging output to the relevant code). In some cases you may also need to
-[create or modify tryjobs](automated_testing#adding-new-jobs).
+If you need to run code on a specific machine/device to debug an issue, the
+simplest option is to run tryjobs (after adding debugging output to the relevant
+code). In some cases you may also need to
+[create or modify tryjobs](../automated_testing#adding-new-jobs).
 
-For Googlers: If you need more control (e.g. to run GDB) and need to run directly on a swarming bot then you can use [leasing.skia.org](https://leasing.skia.org).<br/>
-If that does not work then the [current infra gardener][current infra gardener] can help you bring the device back to your desk and connect
-it to GoogleGuest Wifi or the [Google Test Network](http://go/gtn-criteria).
+For Googlers: If you need more control (e.g. to run GDB) and need to run
+directly on a swarming bot then you can use
+[leasing.skia.org](https://leasing.skia.org).<br/> If that does not work then
+the [current infra gardener][current infra gardener] can help you bring the
+device back to your desk and connect it to GoogleGuest Wifi or the
+[Google Test Network](http://go/gtn-criteria).
 
-If you need to make changes on a bot/device, please check with the Infra Gardener or another Infra team member. Most
-bots/devices can be flashed/imaged back to a clean state, but others can not.
+If you need to make changes on a bot/device, please check with the Infra
+Gardener or another Infra team member. Most bots/devices can be flashed/imaged
+back to a clean state, but others can not.
 
-If a permanent change needs to be made on the machine (such as an OS or driver update), please [file
-a bug][infra bug] and assign to jcgregorio for reassignment.
+If a permanent change needs to be made on the machine (such as an OS or driver
+update), please [file a bug][infra bug] and assign to jcgregorio for
+reassignment.
 
-For your convenience, the machine skolo-builder is available for checking out and compiling code within the Skolo. See
-more info in the [Skolo maintenance doc][remote access] remote access section.
+For your convenience, the machine skolo-builder is available for checking out
+and compiling code within the Skolo. See more info in the [Skolo maintenance
+doc][remote access] remote access section.
 
-[current infra gardener]: https://rotations.corp.google.com/rotation/4617277386260480
+[current infra gardener]:
+  https://rotations.corp.google.com/rotation/4617277386260480
 [remote access]:
-    https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.v77cmwbwc5la
-[infra bug]: https://bugs.chromium.org/p/skia/issues/entry?template=Infrastructure+Bug
-[remotely debug android]: https://docs.google.com/document/d/1nxn7TobfaLNNfhSTiwstOnjV0jCxYUI1uwW0T_V7BYg/
+  https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.v77cmwbwc5la
+[infra bug]:
+  https://bugs.chromium.org/p/skia/issues/entry?template=Infrastructure+Bug
+[remotely debug android]:
+  https://docs.google.com/document/d/1nxn7TobfaLNNfhSTiwstOnjV0jCxYUI1uwW0T_V7BYg/
 [vnc to skolo windows]:
-    https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.7cqd856ft0s
+  https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit#heading=h.7cqd856ft0s
 [chromeos debugging]:
-    https://docs.google.com/document/d/1yJ2LLfLzV6pXKjiameid1LHEz1mj71Ob4wySIYxlBdw/edit#heading=h.9arg79l59xrf
+  https://docs.google.com/document/d/1yJ2LLfLzV6pXKjiameid1LHEz1mj71Ob4wySIYxlBdw/edit#heading=h.9arg79l59xrf
 
-Maintenance Tasks
------------------
+## Maintenance Tasks
 
 See the [Skolo maintenance doc][skolo maintenance].
 
 [skolo maintenance]:
-    https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit
-
+  https://docs.google.com/document/d/1zTR1YtrIFBo-fRWgbUgvJNVJ-s_4_sNjTrHIoX2vulo/edit
diff --git a/site/docs/dev/tools/calendar.mskp b/site/docs/dev/tools/calendar.mskp
new file mode 100644
index 0000000..a4e0376
--- /dev/null
+++ b/site/docs/dev/tools/calendar.mskp
Binary files differ
diff --git a/site/docs/dev/tools/debugger.md b/site/docs/dev/tools/debugger.md
index ced5345..d694376 100644
--- a/site/docs/dev/tools/debugger.md
+++ b/site/docs/dev/tools/debugger.md
@@ -26,8 +26,8 @@
 
 SKP files can contain a single frame or multiple frames. Single frame files have
 the .skp extension and Multi-frame files have the .mskp extension. In the online
-debugger linked above, Open a [sample mskp file](/dev/tools/calendar.mskp) or
-capture one from an android device using the
+debugger linked above, Open a [sample mskp file](/docs/dev/tools/calendar.mskp)
+or capture one from an android device using the
 [instructions here](https://sites.google.com/a/google.com/skia/android/skp-from-framework).
 
 ### Command Playback and Filters
@@ -177,7 +177,7 @@
 ## Building and running locally
 
 Begin by following the instructions to
-[download and build Skia](../../user/quick), then simply build and run the
+[download and build Skia](/docs/user/build), then simply build and run the
 `skiaserve` tool:
 
 <!--?prettify lang=sh?-->