_content: create explicit lib/godoc tree

For historical reasons, files in _content/, like _content/play.js,
were served as https://golang.org/lib/godoc/play.js.
Remove some complex setup by moving them to names that
match the actual serving location, such as _content/lib/godoc/play.js.

Change-Id: Ib92c3db7566b24da40e803781aca590f6bc22c8b
Reviewed-on: https://go-review.googlesource.com/c/website/+/293414
Trust: Russ Cox <rsc@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/favicon.ico b/_content/favicon.ico
similarity index 100%
rename from favicon.ico
rename to _content/favicon.ico
Binary files differ
diff --git a/_content/analysis/call-eg.png b/_content/lib/godoc/analysis/call-eg.png
similarity index 100%
rename from _content/analysis/call-eg.png
rename to _content/lib/godoc/analysis/call-eg.png
Binary files differ
diff --git a/_content/analysis/call3.png b/_content/lib/godoc/analysis/call3.png
similarity index 100%
rename from _content/analysis/call3.png
rename to _content/lib/godoc/analysis/call3.png
Binary files differ
diff --git a/_content/analysis/callers1.png b/_content/lib/godoc/analysis/callers1.png
similarity index 100%
rename from _content/analysis/callers1.png
rename to _content/lib/godoc/analysis/callers1.png
Binary files differ
diff --git a/_content/analysis/callers2.png b/_content/lib/godoc/analysis/callers2.png
similarity index 100%
rename from _content/analysis/callers2.png
rename to _content/lib/godoc/analysis/callers2.png
Binary files differ
diff --git a/_content/analysis/chan1.png b/_content/lib/godoc/analysis/chan1.png
similarity index 100%
rename from _content/analysis/chan1.png
rename to _content/lib/godoc/analysis/chan1.png
Binary files differ
diff --git a/_content/analysis/chan2a.png b/_content/lib/godoc/analysis/chan2a.png
similarity index 100%
rename from _content/analysis/chan2a.png
rename to _content/lib/godoc/analysis/chan2a.png
Binary files differ
diff --git a/_content/analysis/chan2b.png b/_content/lib/godoc/analysis/chan2b.png
similarity index 100%
rename from _content/analysis/chan2b.png
rename to _content/lib/godoc/analysis/chan2b.png
Binary files differ
diff --git a/_content/analysis/error1.png b/_content/lib/godoc/analysis/error1.png
similarity index 100%
rename from _content/analysis/error1.png
rename to _content/lib/godoc/analysis/error1.png
Binary files differ
diff --git a/_content/analysis/help.html b/_content/lib/godoc/analysis/help.html
similarity index 100%
rename from _content/analysis/help.html
rename to _content/lib/godoc/analysis/help.html
diff --git a/_content/analysis/ident-def.png b/_content/lib/godoc/analysis/ident-def.png
similarity index 100%
rename from _content/analysis/ident-def.png
rename to _content/lib/godoc/analysis/ident-def.png
Binary files differ
diff --git a/_content/analysis/ident-field.png b/_content/lib/godoc/analysis/ident-field.png
similarity index 100%
rename from _content/analysis/ident-field.png
rename to _content/lib/godoc/analysis/ident-field.png
Binary files differ
diff --git a/_content/analysis/ident-func.png b/_content/lib/godoc/analysis/ident-func.png
similarity index 100%
rename from _content/analysis/ident-func.png
rename to _content/lib/godoc/analysis/ident-func.png
Binary files differ
diff --git a/_content/analysis/ipcg-func.png b/_content/lib/godoc/analysis/ipcg-func.png
similarity index 100%
rename from _content/analysis/ipcg-func.png
rename to _content/lib/godoc/analysis/ipcg-func.png
Binary files differ
diff --git a/_content/analysis/ipcg-pkg.png b/_content/lib/godoc/analysis/ipcg-pkg.png
similarity index 100%
rename from _content/analysis/ipcg-pkg.png
rename to _content/lib/godoc/analysis/ipcg-pkg.png
Binary files differ
diff --git a/_content/analysis/typeinfo-pkg.png b/_content/lib/godoc/analysis/typeinfo-pkg.png
similarity index 100%
rename from _content/analysis/typeinfo-pkg.png
rename to _content/lib/godoc/analysis/typeinfo-pkg.png
Binary files differ
diff --git a/_content/analysis/typeinfo-src.png b/_content/lib/godoc/analysis/typeinfo-src.png
similarity index 100%
rename from _content/analysis/typeinfo-src.png
rename to _content/lib/godoc/analysis/typeinfo-src.png
Binary files differ
diff --git a/_content/codewalk.html b/_content/lib/godoc/codewalk.html
similarity index 100%
rename from _content/codewalk.html
rename to _content/lib/godoc/codewalk.html
diff --git a/_content/codewalkdir.html b/_content/lib/godoc/codewalkdir.html
similarity index 100%
rename from _content/codewalkdir.html
rename to _content/lib/godoc/codewalkdir.html
diff --git a/_content/dirlist.html b/_content/lib/godoc/dirlist.html
similarity index 100%
rename from _content/dirlist.html
rename to _content/lib/godoc/dirlist.html
diff --git a/_content/error.html b/_content/lib/godoc/error.html
similarity index 100%
rename from _content/error.html
rename to _content/lib/godoc/error.html
diff --git a/_content/example.html b/_content/lib/godoc/example.html
similarity index 100%
rename from _content/example.html
rename to _content/lib/godoc/example.html
diff --git a/_content/godoc.html b/_content/lib/godoc/godoc.html
similarity index 100%
rename from _content/godoc.html
rename to _content/lib/godoc/godoc.html
diff --git a/_content/godocs.js b/_content/lib/godoc/godocs.js
similarity index 100%
rename from _content/godocs.js
rename to _content/lib/godoc/godocs.js
diff --git a/_content/images/cloud-download.svg b/_content/lib/godoc/images/cloud-download.svg
similarity index 100%
rename from _content/images/cloud-download.svg
rename to _content/lib/godoc/images/cloud-download.svg
diff --git a/_content/images/footer-gopher.jpg b/_content/lib/godoc/images/footer-gopher.jpg
similarity index 100%
rename from _content/images/footer-gopher.jpg
rename to _content/lib/godoc/images/footer-gopher.jpg
Binary files differ
diff --git a/_content/images/go-logo-blue.svg b/_content/lib/godoc/images/go-logo-blue.svg
similarity index 100%
rename from _content/images/go-logo-blue.svg
rename to _content/lib/godoc/images/go-logo-blue.svg
diff --git a/_content/images/home-gopher.png b/_content/lib/godoc/images/home-gopher.png
similarity index 100%
rename from _content/images/home-gopher.png
rename to _content/lib/godoc/images/home-gopher.png
Binary files differ
diff --git a/_content/images/minus.gif b/_content/lib/godoc/images/minus.gif
similarity index 100%
rename from _content/images/minus.gif
rename to _content/lib/godoc/images/minus.gif
Binary files differ
diff --git a/_content/images/play-link.svg b/_content/lib/godoc/images/play-link.svg
similarity index 100%
rename from _content/images/play-link.svg
rename to _content/lib/godoc/images/play-link.svg
diff --git a/_content/images/plus.gif b/_content/lib/godoc/images/plus.gif
similarity index 100%
rename from _content/images/plus.gif
rename to _content/lib/godoc/images/plus.gif
Binary files differ
diff --git a/_content/images/treeview-black-line.gif b/_content/lib/godoc/images/treeview-black-line.gif
similarity index 100%
rename from _content/images/treeview-black-line.gif
rename to _content/lib/godoc/images/treeview-black-line.gif
Binary files differ
diff --git a/_content/images/treeview-black.gif b/_content/lib/godoc/images/treeview-black.gif
similarity index 100%
rename from _content/images/treeview-black.gif
rename to _content/lib/godoc/images/treeview-black.gif
Binary files differ
diff --git a/_content/images/treeview-default-line.gif b/_content/lib/godoc/images/treeview-default-line.gif
similarity index 100%
rename from _content/images/treeview-default-line.gif
rename to _content/lib/godoc/images/treeview-default-line.gif
Binary files differ
diff --git a/_content/images/treeview-default.gif b/_content/lib/godoc/images/treeview-default.gif
similarity index 100%
rename from _content/images/treeview-default.gif
rename to _content/lib/godoc/images/treeview-default.gif
Binary files differ
diff --git a/_content/images/treeview-gray-line.gif b/_content/lib/godoc/images/treeview-gray-line.gif
similarity index 100%
rename from _content/images/treeview-gray-line.gif
rename to _content/lib/godoc/images/treeview-gray-line.gif
Binary files differ
diff --git a/_content/images/treeview-gray.gif b/_content/lib/godoc/images/treeview-gray.gif
similarity index 100%
rename from _content/images/treeview-gray.gif
rename to _content/lib/godoc/images/treeview-gray.gif
Binary files differ
diff --git a/_content/jquery.js b/_content/lib/godoc/jquery.js
similarity index 100%
rename from _content/jquery.js
rename to _content/lib/godoc/jquery.js
diff --git a/_content/opensearch.xml b/_content/lib/godoc/opensearch.xml
similarity index 100%
rename from _content/opensearch.xml
rename to _content/lib/godoc/opensearch.xml
diff --git a/_content/package.html b/_content/lib/godoc/package.html
similarity index 100%
rename from _content/package.html
rename to _content/lib/godoc/package.html
diff --git a/_content/packageroot.html b/_content/lib/godoc/packageroot.html
similarity index 100%
rename from _content/packageroot.html
rename to _content/lib/godoc/packageroot.html
diff --git a/_content/play.js b/_content/lib/godoc/play.js
similarity index 100%
rename from _content/play.js
rename to _content/lib/godoc/play.js
diff --git a/_content/playground.js b/_content/lib/godoc/playground.js
similarity index 100%
rename from _content/playground.js
rename to _content/lib/godoc/playground.js
diff --git a/_content/search.html b/_content/lib/godoc/search.html
similarity index 100%
rename from _content/search.html
rename to _content/lib/godoc/search.html
diff --git a/_content/searchcode.html b/_content/lib/godoc/searchcode.html
similarity index 100%
rename from _content/searchcode.html
rename to _content/lib/godoc/searchcode.html
diff --git a/_content/searchdoc.html b/_content/lib/godoc/searchdoc.html
similarity index 100%
rename from _content/searchdoc.html
rename to _content/lib/godoc/searchdoc.html
diff --git a/_content/searchtxt.html b/_content/lib/godoc/searchtxt.html
similarity index 100%
rename from _content/searchtxt.html
rename to _content/lib/godoc/searchtxt.html
diff --git a/_content/style.css b/_content/lib/godoc/style.css
similarity index 100%
rename from _content/style.css
rename to _content/lib/godoc/style.css
diff --git a/robots.txt b/_content/robots.txt
similarity index 100%
rename from robots.txt
rename to _content/robots.txt
diff --git a/cmd/golangorg/local.go b/cmd/golangorg/local.go
index ea32c54..2d9c794 100644
--- a/cmd/golangorg/local.go
+++ b/cmd/golangorg/local.go
@@ -27,7 +27,7 @@
 		os.Exit(2)
 	}
 	dir := filepath.Join(file, "../../../_content")
-	if _, err := os.Stat(filepath.Join(dir, "godoc.html")); err != nil {
+	if _, err := os.Stat(filepath.Join(dir, "lib/godoc/godoc.html")); err != nil {
 		log.Printf("warning: cannot find template dir; using embedded copy")
 		return
 	}
diff --git a/cmd/golangorg/main.go b/cmd/golangorg/main.go
index 3faf663..83f71c6 100644
--- a/cmd/golangorg/main.go
+++ b/cmd/golangorg/main.go
@@ -26,7 +26,6 @@
 	"log"
 	"net/http"
 	"os"
-	"path/filepath"
 	"regexp"
 	"runtime"
 
@@ -84,21 +83,14 @@
 	rootfs := gatefs.New(vfs.OS(*goroot), fsGate)
 	fs.Bind("/", rootfs, "/", vfs.BindReplace)
 
-	// Try serving files in /doc from a local copy before trying the main
+	// Try serving files from _content before trying the main
 	// go repository. This lets us update some documentation outside the
 	// Go release cycle. This includes root.html, which redirects to "/".
 	// See golang.org/issue/29206.
 	if *templateDir != "" {
-		fs.Bind("/doc", vfs.OS(*templateDir), "/doc", vfs.BindBefore)
-		fs.Bind("/lib/godoc", vfs.OS(*templateDir), "/", vfs.BindBefore)
-		root := filepath.Join(*templateDir, "..")
-		fs.Bind("/robots.txt", vfs.OS(root), "/robots.txt", vfs.BindBefore)
-		fs.Bind("/favicon.ico", vfs.OS(root), "/favicon.ico", vfs.BindBefore)
+		fs.Bind("/", vfs.OS(*templateDir), "/", vfs.BindBefore)
 	} else {
-		fs.Bind("/doc", vfs.FromFS(website.Content), "/doc", vfs.BindBefore)
-		fs.Bind("/lib/godoc", vfs.FromFS(website.Content), "/", vfs.BindReplace)
-		fs.Bind("/robots.txt", vfs.FromFS(website.Root), "/robots.txt", vfs.BindBefore)
-		fs.Bind("/favicon.ico", vfs.FromFS(website.Root), "/favicon.ico", vfs.BindBefore)
+		fs.Bind("/", vfs.FromFS(website.Content), "/", vfs.BindBefore)
 	}
 
 	corpus := godoc.NewCorpus(fs)
diff --git a/cmd/golangorg/release_test.go b/cmd/golangorg/release_test.go
index b085961..1014f7f 100644
--- a/cmd/golangorg/release_test.go
+++ b/cmd/golangorg/release_test.go
@@ -2,6 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+//go:build go1.16
 // +build go1.16
 
 package main
@@ -27,8 +28,7 @@
 	origFS, origPres := fs, pres
 	defer func() { fs, pres = origFS, origPres }()
 	fs = vfs.NameSpace{}
-	fs.Bind("/doc", vfs.FromFS(website.Content), "/doc", vfs.BindBefore)
-	fs.Bind("/lib/godoc", vfs.FromFS(website.Content), "/", vfs.BindReplace)
+	fs.Bind("/", vfs.FromFS(website.Content), "/", vfs.BindReplace)
 	pres = godoc.NewPresentation(godoc.NewCorpus(fs))
 	readTemplates(pres)
 	mux := registerHandlers(pres)
diff --git a/content.go b/content.go
index 58646fb..1e4d26f 100644
--- a/content.go
+++ b/content.go
@@ -26,7 +26,3 @@
 	}
 	return s
 }
-
-// Root is the website root files: favicon.ico and robots.txt.
-//go:embed favicon.ico robots.txt
-var Root embed.FS