Replace doc pages with redirects to versioned doc pages.

* Add a new `redirect` Jekyll layout.
* Replace all pages under docs/ with redirects to corresponding page under
  versions/master/.
* Prepend links on Documentation sidebar, including generated navs for the
  Skylark Library and Build Encyclopedia, with prefix for versioned directory.
* Add code to both the internal jekyll-config.sh and external jekyll-tree.sh
  to add redirect pages for the Skylark Library and Build Encyclopedia.
* Bring the branched User Manual doc up to date with latest changes.

--
MOS_MIGRATED_REVID=131568800
diff --git a/src/main/java/com/google/devtools/build/docgen/templates/attributes/common/tags.html b/src/main/java/com/google/devtools/build/docgen/templates/attributes/common/tags.html
index e447335..0e7ab18 100644
--- a/src/main/java/com/google/devtools/build/docgen/templates/attributes/common/tags.html
+++ b/src/main/java/com/google/devtools/build/docgen/templates/attributes/common/tags.html
@@ -10,7 +10,7 @@
   <i>Tags</i> on non-test rules are used to control sandboxed execution of
   <code>genrule</code>s and
 
-<a href="/docs/skylark/index.html">Skylark</a>
+<a href="{{ page.version_prefix }}/docs/skylark/index.html">Skylark</a>
   actions, and for parsing by humans and/or external tools.
 </p>
 
diff --git a/src/main/java/com/google/devtools/build/docgen/templates/be/be-nav.vm b/src/main/java/com/google/devtools/build/docgen/templates/be/be-nav.vm
index cd7eabb..c8951e6 100644
--- a/src/main/java/com/google/devtools/build/docgen/templates/be/be-nav.vm
+++ b/src/main/java/com/google/devtools/build/docgen/templates/be/be-nav.vm
@@ -1,4 +1,4 @@
-#set ($path = "/docs/be")
+#set ($path = "{{ page.version_prefix }}/docs/be")
 #set ($bazelbuildGithub = "https://github.com/bazelbuild")
 
 <h3>Build Encyclopedia</h3>
diff --git a/src/main/java/com/google/devtools/build/docgen/templates/be/functions.vm b/src/main/java/com/google/devtools/build/docgen/templates/be/functions.vm
index 33e0a46..8a87358 100644
--- a/src/main/java/com/google/devtools/build/docgen/templates/be/functions.vm
+++ b/src/main/java/com/google/devtools/build/docgen/templates/be/functions.vm
@@ -40,7 +40,7 @@
 
 <p>This will execute the
 
-  <a href="/docs/skylark/index.html">Skylark</a>
+  <a href="{{ page.version_prefix }}/docs/skylark/index.html">Skylark</a>
   module <code>tools/build_rules/build_test.bzl</code> and import the symbol
   <code>build_test</code> in the local environment. This is useful for
   using macros or for sharing values between multiple BUILD files. By
@@ -684,7 +684,7 @@
   com_example_some_project as the workspace name.
 </p>
 
-<p><a href="/docs/be/workspace.html">Remote repository</a> rule names must be
+<p><a href="workspace.html">Remote repository</a> rule names must be
   valid workspace names. For example, you could have
   <code>maven_jar(name = "foo")</code>, but not
   <code>maven_jar(name = "foo.bar")</code>, as Bazel would attempt to write a
diff --git a/src/main/java/com/google/devtools/build/docgen/templates/skylark-category.vm b/src/main/java/com/google/devtools/build/docgen/templates/skylark-category.vm
index b635e48..604f89a 100644
--- a/src/main/java/com/google/devtools/build/docgen/templates/skylark-category.vm
+++ b/src/main/java/com/google/devtools/build/docgen/templates/skylark-category.vm
@@ -10,7 +10,7 @@
 <ul>
 #foreach ($module in $modules)
 
-<li><a href="/docs/skylark/lib/${module.name}.html">${module.title}</a></li>
+<li><a href="{{ page.version_prefix }}/docs/skylark/lib/${module.name}.html">${module.title}</a></li>
 #end
 </ul>
 </div>
diff --git a/src/main/java/com/google/devtools/build/docgen/templates/skylark-nav.vm b/src/main/java/com/google/devtools/build/docgen/templates/skylark-nav.vm
index 96730fe..82e8240 100644
--- a/src/main/java/com/google/devtools/build/docgen/templates/skylark-nav.vm
+++ b/src/main/java/com/google/devtools/build/docgen/templates/skylark-nav.vm
@@ -1,5 +1,5 @@
-<li><a href="/docs/skylark/lib/skylark-builtin.html">Builtin Types and Modules</a></li>
-<li><a href="/docs/skylark/lib/skylark-configuration-fragment.html">Configuration fragments</a></li>
-<li><a href="/docs/skylark/lib/skylark-provider.html">Providers</a></li>
-<li><a href="/docs/skylark/lib/globals.html">Globals</a></li>
-<li><a href="/docs/skylark/lib/native.html">Native Module</a></li>
+<li><a href="{{ page.version_prefix }}/docs/skylark/lib/skylark-builtin.html">Builtin Types and Modules</a></li>
+<li><a href="{{ page.version_prefix }}/docs/skylark/lib/skylark-configuration-fragment.html">Configuration fragments</a></li>
+<li><a href="{{ page.version_prefix }}/docs/skylark/lib/skylark-provider.html">Providers</a></li>
+<li><a href="{{ page.version_prefix }}/docs/skylark/lib/globals.html">Globals</a></li>
+<li><a href="{{ page.version_prefix }}/docs/skylark/lib/native.html">Native Module</a></li>
diff --git a/src/test/java/com/google/devtools/build/lib/BUILD b/src/test/java/com/google/devtools/build/lib/BUILD
index 0317052..a40ba72 100644
--- a/src/test/java/com/google/devtools/build/lib/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/BUILD
@@ -777,7 +777,7 @@
     size = "medium",
     srcs = ["packages/BazelDocumentationTest.java"],
     data = [
-        "//site:docs/bazel-user-manual.html",
+        "//site:versions/master/docs/bazel-user-manual.html",
     ],
     test_class = "com.google.devtools.build.lib.packages.BazelDocumentationTest",
     deps = [
diff --git a/src/test/java/com/google/devtools/build/lib/packages/BazelDocumentationTest.java b/src/test/java/com/google/devtools/build/lib/packages/BazelDocumentationTest.java
index 70fe645..8167bd2 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/BazelDocumentationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/BazelDocumentationTest.java
@@ -42,7 +42,7 @@
    */
   @Test
   public void testBazelUserManual() throws Exception {
-    String documentationFilePath = "site/docs/bazel-user-manual.html";
+    String documentationFilePath = "site/versions/master/docs/bazel-user-manual.html";
     if (OS.getCurrent() == OS.WINDOWS) {
       documentationFilePath = WindowsTestUtil.getRunfile("io_bazel/" + documentationFilePath);
     }