_content: move content/static/* to _content/*

The extra level of hierarchy here is unnecessary and confusing.
The directory is now _content so that any Go source files in our
docs are not considered by commands like "go mod tidy" and
"go test all".

Change-Id: Ib6d7cb12920193798ee825155a8f8b33f16e60d8
Reviewed-on: https://go-review.googlesource.com/c/website/+/291691
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
diff --git a/README.md b/README.md
index 089acd7..1026872 100644
--- a/README.md
+++ b/README.md
@@ -2,30 +2,19 @@
 
 [![Go Reference](https://pkg.go.dev/badge/golang.org/x/website.svg)](https://pkg.go.dev/golang.org/x/website)
 
-This repository holds the Go website server code and content.
+This repo holds content and serving programs for the golang.org web site.
 
-## Checkout and Run
+Content is in content/. Server code is in cmd/ and internal/.
 
-To download and run the golang.org web server locally:
+To run the server to preview local content changes, use:
 
- - `git clone https://go.googlesource.com/website`
- - `cd website`
- - `go run ./cmd/golangorg`
- - Open http://localhost:6060/ in your browser.
+	go run ./cmd/golangorg -a
 
-See [cmd/golangorg/README.md](cmd/golangorg/README.md) for more details.
+The supporting programs cmd/admingolangorg and cmd/googlegolangorg
+are the servers for admin.golang.org and google.golang.org.
+(They do not use the content/ directory.)
 
-## Changing Content
-
-To make basic changes to the golang.org website content:
-
- - Make the changes you want in the `content/static` directory.
- - Stop any running `go run ./cmd/golangorg`.
- - `go generate ./content/static`
- - `go run ./cmd/golangorg`
- - Open http://localhost:6060/ in your browser.
-
-See [content/README.md](content/README.md) for more sophisticated instructions.
+Each command directory has its own README.md explaining deployment.
 
 ## JS/CSS Formatting
 
@@ -44,3 +33,4 @@
 The main issue tracker for the website repository is located at
 https://github.com/golang/go/issues. Prefix your issue with "x/website:" in the
 subject line, so it is easy to find.
+
diff --git a/content/static/analysis/call-eg.png b/_content/analysis/call-eg.png
similarity index 100%
rename from content/static/analysis/call-eg.png
rename to _content/analysis/call-eg.png
Binary files differ
diff --git a/content/static/analysis/call3.png b/_content/analysis/call3.png
similarity index 100%
rename from content/static/analysis/call3.png
rename to _content/analysis/call3.png
Binary files differ
diff --git a/content/static/analysis/callers1.png b/_content/analysis/callers1.png
similarity index 100%
rename from content/static/analysis/callers1.png
rename to _content/analysis/callers1.png
Binary files differ
diff --git a/content/static/analysis/callers2.png b/_content/analysis/callers2.png
similarity index 100%
rename from content/static/analysis/callers2.png
rename to _content/analysis/callers2.png
Binary files differ
diff --git a/content/static/analysis/chan1.png b/_content/analysis/chan1.png
similarity index 100%
rename from content/static/analysis/chan1.png
rename to _content/analysis/chan1.png
Binary files differ
diff --git a/content/static/analysis/chan2a.png b/_content/analysis/chan2a.png
similarity index 100%
rename from content/static/analysis/chan2a.png
rename to _content/analysis/chan2a.png
Binary files differ
diff --git a/content/static/analysis/chan2b.png b/_content/analysis/chan2b.png
similarity index 100%
rename from content/static/analysis/chan2b.png
rename to _content/analysis/chan2b.png
Binary files differ
diff --git a/content/static/analysis/error1.png b/_content/analysis/error1.png
similarity index 100%
rename from content/static/analysis/error1.png
rename to _content/analysis/error1.png
Binary files differ
diff --git a/content/static/analysis/help.html b/_content/analysis/help.html
similarity index 100%
rename from content/static/analysis/help.html
rename to _content/analysis/help.html
diff --git a/content/static/analysis/ident-def.png b/_content/analysis/ident-def.png
similarity index 100%
rename from content/static/analysis/ident-def.png
rename to _content/analysis/ident-def.png
Binary files differ
diff --git a/content/static/analysis/ident-field.png b/_content/analysis/ident-field.png
similarity index 100%
rename from content/static/analysis/ident-field.png
rename to _content/analysis/ident-field.png
Binary files differ
diff --git a/content/static/analysis/ident-func.png b/_content/analysis/ident-func.png
similarity index 100%
rename from content/static/analysis/ident-func.png
rename to _content/analysis/ident-func.png
Binary files differ
diff --git a/content/static/analysis/ipcg-func.png b/_content/analysis/ipcg-func.png
similarity index 100%
rename from content/static/analysis/ipcg-func.png
rename to _content/analysis/ipcg-func.png
Binary files differ
diff --git a/content/static/analysis/ipcg-pkg.png b/_content/analysis/ipcg-pkg.png
similarity index 100%
rename from content/static/analysis/ipcg-pkg.png
rename to _content/analysis/ipcg-pkg.png
Binary files differ
diff --git a/content/static/analysis/typeinfo-pkg.png b/_content/analysis/typeinfo-pkg.png
similarity index 100%
rename from content/static/analysis/typeinfo-pkg.png
rename to _content/analysis/typeinfo-pkg.png
Binary files differ
diff --git a/content/static/analysis/typeinfo-src.png b/_content/analysis/typeinfo-src.png
similarity index 100%
rename from content/static/analysis/typeinfo-src.png
rename to _content/analysis/typeinfo-src.png
Binary files differ
diff --git a/content/static/codewalk.html b/_content/codewalk.html
similarity index 100%
rename from content/static/codewalk.html
rename to _content/codewalk.html
diff --git a/content/static/codewalkdir.html b/_content/codewalkdir.html
similarity index 100%
rename from content/static/codewalkdir.html
rename to _content/codewalkdir.html
diff --git a/content/static/dirlist.html b/_content/dirlist.html
similarity index 100%
rename from content/static/dirlist.html
rename to _content/dirlist.html
diff --git a/content/static/doc/code.html b/_content/doc/code.html
similarity index 100%
rename from content/static/doc/code.html
rename to _content/doc/code.html
diff --git a/content/static/doc/conduct.html b/_content/doc/conduct.html
similarity index 100%
rename from content/static/doc/conduct.html
rename to _content/doc/conduct.html
diff --git a/content/static/doc/contrib.html b/_content/doc/contrib.html
similarity index 100%
rename from content/static/doc/contrib.html
rename to _content/doc/contrib.html
diff --git a/content/static/doc/copyright.html b/_content/doc/copyright.html
similarity index 100%
rename from content/static/doc/copyright.html
rename to _content/doc/copyright.html
diff --git a/content/static/doc/devel/pre_go1.html b/_content/doc/devel/pre_go1.html
similarity index 100%
rename from content/static/doc/devel/pre_go1.html
rename to _content/doc/devel/pre_go1.html
diff --git a/content/static/doc/devel/release.html b/_content/doc/devel/release.html
similarity index 100%
rename from content/static/doc/devel/release.html
rename to _content/doc/devel/release.html
diff --git a/content/static/doc/devel/weekly.html b/_content/doc/devel/weekly.html
similarity index 100%
rename from content/static/doc/devel/weekly.html
rename to _content/doc/devel/weekly.html
diff --git a/content/static/doc/docs.html b/_content/doc/docs.html
similarity index 100%
rename from content/static/doc/docs.html
rename to _content/doc/docs.html
diff --git a/content/static/doc/download.js b/_content/doc/download.js
similarity index 100%
rename from content/static/doc/download.js
rename to _content/doc/download.js
diff --git a/content/static/doc/gopath_code.html b/_content/doc/gopath_code.html
similarity index 100%
rename from content/static/doc/gopath_code.html
rename to _content/doc/gopath_code.html
diff --git a/content/static/doc/hats.js b/_content/doc/hats.js
similarity index 100%
rename from content/static/doc/hats.js
rename to _content/doc/hats.js
diff --git a/content/static/doc/install-source.html b/_content/doc/install-source.html
similarity index 100%
rename from content/static/doc/install-source.html
rename to _content/doc/install-source.html
diff --git a/content/static/doc/install.html b/_content/doc/install.html
similarity index 100%
rename from content/static/doc/install.html
rename to _content/doc/install.html
diff --git a/content/static/doc/manage-install.html b/_content/doc/manage-install.html
similarity index 100%
rename from content/static/doc/manage-install.html
rename to _content/doc/manage-install.html
diff --git a/content/static/doc/mod.md b/_content/doc/mod.md
similarity index 100%
rename from content/static/doc/mod.md
rename to _content/doc/mod.md
diff --git a/content/static/doc/modules/developing.md b/_content/doc/modules/developing.md
similarity index 100%
rename from content/static/doc/modules/developing.md
rename to _content/doc/modules/developing.md
diff --git a/content/static/doc/modules/gomod-ref.md b/_content/doc/modules/gomod-ref.md
similarity index 100%
rename from content/static/doc/modules/gomod-ref.md
rename to _content/doc/modules/gomod-ref.md
diff --git a/content/static/doc/modules/images/multiple-modules.png b/_content/doc/modules/images/multiple-modules.png
similarity index 100%
rename from content/static/doc/modules/images/multiple-modules.png
rename to _content/doc/modules/images/multiple-modules.png
Binary files differ
diff --git a/content/static/doc/modules/images/single-module.png b/_content/doc/modules/images/single-module.png
similarity index 100%
rename from content/static/doc/modules/images/single-module.png
rename to _content/doc/modules/images/single-module.png
Binary files differ
diff --git a/content/static/doc/modules/images/source-hierarchy.png b/_content/doc/modules/images/source-hierarchy.png
similarity index 100%
rename from content/static/doc/modules/images/source-hierarchy.png
rename to _content/doc/modules/images/source-hierarchy.png
Binary files differ
diff --git a/content/static/doc/modules/images/v2-branch-module.png b/_content/doc/modules/images/v2-branch-module.png
similarity index 100%
rename from content/static/doc/modules/images/v2-branch-module.png
rename to _content/doc/modules/images/v2-branch-module.png
Binary files differ
diff --git a/content/static/doc/modules/images/v2-module.png b/_content/doc/modules/images/v2-module.png
similarity index 100%
rename from content/static/doc/modules/images/v2-module.png
rename to _content/doc/modules/images/v2-module.png
Binary files differ
diff --git a/content/static/doc/modules/images/version-number.png b/_content/doc/modules/images/version-number.png
similarity index 100%
rename from content/static/doc/modules/images/version-number.png
rename to _content/doc/modules/images/version-number.png
Binary files differ
diff --git a/content/static/doc/modules/major-version.md b/_content/doc/modules/major-version.md
similarity index 100%
rename from content/static/doc/modules/major-version.md
rename to _content/doc/modules/major-version.md
diff --git a/content/static/doc/modules/managing-dependencies.md b/_content/doc/modules/managing-dependencies.md
similarity index 100%
rename from content/static/doc/modules/managing-dependencies.md
rename to _content/doc/modules/managing-dependencies.md
diff --git a/content/static/doc/modules/managing-source.md b/_content/doc/modules/managing-source.md
similarity index 100%
rename from content/static/doc/modules/managing-source.md
rename to _content/doc/modules/managing-source.md
diff --git a/content/static/doc/modules/publishing.md b/_content/doc/modules/publishing.md
similarity index 100%
rename from content/static/doc/modules/publishing.md
rename to _content/doc/modules/publishing.md
diff --git a/content/static/doc/modules/release-workflow.md b/_content/doc/modules/release-workflow.md
similarity index 100%
rename from content/static/doc/modules/release-workflow.md
rename to _content/doc/modules/release-workflow.md
diff --git a/content/static/doc/modules/version-numbers.md b/_content/doc/modules/version-numbers.md
similarity index 100%
rename from content/static/doc/modules/version-numbers.md
rename to _content/doc/modules/version-numbers.md
diff --git a/content/static/doc/mvs/buildlist.svg b/_content/doc/mvs/buildlist.svg
similarity index 100%
rename from content/static/doc/mvs/buildlist.svg
rename to _content/doc/mvs/buildlist.svg
diff --git a/content/static/doc/mvs/downgrade.svg b/_content/doc/mvs/downgrade.svg
similarity index 100%
rename from content/static/doc/mvs/downgrade.svg
rename to _content/doc/mvs/downgrade.svg
diff --git a/content/static/doc/mvs/exclude.svg b/_content/doc/mvs/exclude.svg
similarity index 100%
rename from content/static/doc/mvs/exclude.svg
rename to _content/doc/mvs/exclude.svg
diff --git a/content/static/doc/mvs/get-downgrade.svg b/_content/doc/mvs/get-downgrade.svg
similarity index 100%
rename from content/static/doc/mvs/get-downgrade.svg
rename to _content/doc/mvs/get-downgrade.svg
diff --git a/content/static/doc/mvs/get-upgrade.svg b/_content/doc/mvs/get-upgrade.svg
similarity index 100%
rename from content/static/doc/mvs/get-upgrade.svg
rename to _content/doc/mvs/get-upgrade.svg
diff --git a/content/static/doc/mvs/replace.svg b/_content/doc/mvs/replace.svg
similarity index 100%
rename from content/static/doc/mvs/replace.svg
rename to _content/doc/mvs/replace.svg
diff --git a/content/static/doc/mvs/upgrade.svg b/_content/doc/mvs/upgrade.svg
similarity index 100%
rename from content/static/doc/mvs/upgrade.svg
rename to _content/doc/mvs/upgrade.svg
diff --git a/content/static/doc/root.html b/_content/doc/root.html
similarity index 100%
rename from content/static/doc/root.html
rename to _content/doc/root.html
diff --git a/content/static/doc/security.html b/_content/doc/security.html
similarity index 100%
rename from content/static/doc/security.html
rename to _content/doc/security.html
diff --git a/content/static/doc/tutorial/add-a-test.html b/_content/doc/tutorial/add-a-test.html
similarity index 100%
rename from content/static/doc/tutorial/add-a-test.html
rename to _content/doc/tutorial/add-a-test.html
diff --git a/content/static/doc/tutorial/call-module-code.html b/_content/doc/tutorial/call-module-code.html
similarity index 100%
rename from content/static/doc/tutorial/call-module-code.html
rename to _content/doc/tutorial/call-module-code.html
diff --git a/content/static/doc/tutorial/compile-install.html b/_content/doc/tutorial/compile-install.html
similarity index 100%
rename from content/static/doc/tutorial/compile-install.html
rename to _content/doc/tutorial/compile-install.html
diff --git a/content/static/doc/tutorial/create-module.html b/_content/doc/tutorial/create-module.html
similarity index 100%
rename from content/static/doc/tutorial/create-module.html
rename to _content/doc/tutorial/create-module.html
diff --git a/content/static/doc/tutorial/getting-started.html b/_content/doc/tutorial/getting-started.html
similarity index 100%
rename from content/static/doc/tutorial/getting-started.html
rename to _content/doc/tutorial/getting-started.html
diff --git a/content/static/doc/tutorial/greetings-multiple-people.html b/_content/doc/tutorial/greetings-multiple-people.html
similarity index 100%
rename from content/static/doc/tutorial/greetings-multiple-people.html
rename to _content/doc/tutorial/greetings-multiple-people.html
diff --git a/content/static/doc/tutorial/handle-errors.html b/_content/doc/tutorial/handle-errors.html
similarity index 100%
rename from content/static/doc/tutorial/handle-errors.html
rename to _content/doc/tutorial/handle-errors.html
diff --git a/content/static/doc/tutorial/images/function-syntax.graffle b/_content/doc/tutorial/images/function-syntax.graffle
similarity index 100%
rename from content/static/doc/tutorial/images/function-syntax.graffle
rename to _content/doc/tutorial/images/function-syntax.graffle
Binary files differ
diff --git a/content/static/doc/tutorial/images/function-syntax.png b/_content/doc/tutorial/images/function-syntax.png
similarity index 100%
rename from content/static/doc/tutorial/images/function-syntax.png
rename to _content/doc/tutorial/images/function-syntax.png
Binary files differ
diff --git a/content/static/doc/tutorial/index.html b/_content/doc/tutorial/index.html
similarity index 100%
rename from content/static/doc/tutorial/index.html
rename to _content/doc/tutorial/index.html
diff --git a/content/static/doc/tutorial/random-greeting.html b/_content/doc/tutorial/random-greeting.html
similarity index 100%
rename from content/static/doc/tutorial/random-greeting.html
rename to _content/doc/tutorial/random-greeting.html
diff --git a/content/static/error.html b/_content/error.html
similarity index 100%
rename from content/static/error.html
rename to _content/error.html
diff --git a/content/static/example.html b/_content/example.html
similarity index 100%
rename from content/static/example.html
rename to _content/example.html
diff --git a/content/static/godoc.html b/_content/godoc.html
similarity index 100%
rename from content/static/godoc.html
rename to _content/godoc.html
diff --git a/content/static/godocs.js b/_content/godocs.js
similarity index 100%
rename from content/static/godocs.js
rename to _content/godocs.js
diff --git a/content/static/images/cloud-download.svg b/_content/images/cloud-download.svg
similarity index 100%
rename from content/static/images/cloud-download.svg
rename to _content/images/cloud-download.svg
diff --git a/content/static/images/footer-gopher.jpg b/_content/images/footer-gopher.jpg
similarity index 100%
rename from content/static/images/footer-gopher.jpg
rename to _content/images/footer-gopher.jpg
Binary files differ
diff --git a/content/static/images/go-logo-blue.svg b/_content/images/go-logo-blue.svg
similarity index 100%
rename from content/static/images/go-logo-blue.svg
rename to _content/images/go-logo-blue.svg
diff --git a/content/static/images/home-gopher.png b/_content/images/home-gopher.png
similarity index 100%
rename from content/static/images/home-gopher.png
rename to _content/images/home-gopher.png
Binary files differ
diff --git a/content/static/images/minus.gif b/_content/images/minus.gif
similarity index 100%
rename from content/static/images/minus.gif
rename to _content/images/minus.gif
Binary files differ
diff --git a/content/static/images/play-link.svg b/_content/images/play-link.svg
similarity index 100%
rename from content/static/images/play-link.svg
rename to _content/images/play-link.svg
diff --git a/content/static/images/plus.gif b/_content/images/plus.gif
similarity index 100%
rename from content/static/images/plus.gif
rename to _content/images/plus.gif
Binary files differ
diff --git a/content/static/images/treeview-black-line.gif b/_content/images/treeview-black-line.gif
similarity index 100%
rename from content/static/images/treeview-black-line.gif
rename to _content/images/treeview-black-line.gif
Binary files differ
diff --git a/content/static/images/treeview-black.gif b/_content/images/treeview-black.gif
similarity index 100%
rename from content/static/images/treeview-black.gif
rename to _content/images/treeview-black.gif
Binary files differ
diff --git a/content/static/images/treeview-default-line.gif b/_content/images/treeview-default-line.gif
similarity index 100%
rename from content/static/images/treeview-default-line.gif
rename to _content/images/treeview-default-line.gif
Binary files differ
diff --git a/content/static/images/treeview-default.gif b/_content/images/treeview-default.gif
similarity index 100%
rename from content/static/images/treeview-default.gif
rename to _content/images/treeview-default.gif
Binary files differ
diff --git a/content/static/images/treeview-gray-line.gif b/_content/images/treeview-gray-line.gif
similarity index 100%
rename from content/static/images/treeview-gray-line.gif
rename to _content/images/treeview-gray-line.gif
Binary files differ
diff --git a/content/static/images/treeview-gray.gif b/_content/images/treeview-gray.gif
similarity index 100%
rename from content/static/images/treeview-gray.gif
rename to _content/images/treeview-gray.gif
Binary files differ
diff --git a/content/static/jquery.js b/_content/jquery.js
similarity index 100%
rename from content/static/jquery.js
rename to _content/jquery.js
diff --git a/content/static/opensearch.xml b/_content/opensearch.xml
similarity index 100%
rename from content/static/opensearch.xml
rename to _content/opensearch.xml
diff --git a/content/static/package.html b/_content/package.html
similarity index 100%
rename from content/static/package.html
rename to _content/package.html
diff --git a/content/static/packageroot.html b/_content/packageroot.html
similarity index 100%
rename from content/static/packageroot.html
rename to _content/packageroot.html
diff --git a/content/static/play.js b/_content/play.js
similarity index 100%
rename from content/static/play.js
rename to _content/play.js
diff --git a/content/static/playground.js b/_content/playground.js
similarity index 100%
rename from content/static/playground.js
rename to _content/playground.js
diff --git a/content/static/search.html b/_content/search.html
similarity index 100%
rename from content/static/search.html
rename to _content/search.html
diff --git a/content/static/searchcode.html b/_content/searchcode.html
similarity index 100%
rename from content/static/searchcode.html
rename to _content/searchcode.html
diff --git a/content/static/searchdoc.html b/_content/searchdoc.html
similarity index 100%
rename from content/static/searchdoc.html
rename to _content/searchdoc.html
diff --git a/content/static/searchtxt.html b/_content/searchtxt.html
similarity index 100%
rename from content/static/searchtxt.html
rename to _content/searchtxt.html
diff --git a/content/static/style.css b/_content/style.css
similarity index 100%
rename from content/static/style.css
rename to _content/style.css
diff --git a/cmd/golangorg/appinit.go b/cmd/golangorg/appinit.go
index 1b94738..7b9242f 100644
--- a/cmd/golangorg/appinit.go
+++ b/cmd/golangorg/appinit.go
@@ -27,7 +27,7 @@
 	"golang.org/x/tools/godoc/vfs"
 	"golang.org/x/tools/godoc/vfs/gatefs"
 	"golang.org/x/tools/godoc/vfs/zipfs"
-	"golang.org/x/website/content/static"
+	"golang.org/x/website"
 	"golang.org/x/website/internal/dl"
 	"golang.org/x/website/internal/proxy"
 	"golang.org/x/website/internal/redirect"
@@ -79,8 +79,8 @@
 	// 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.
-	fs.Bind("/doc", vfs.FromFS(static.FS), "/doc", vfs.BindBefore)
-	fs.Bind("/lib/godoc", vfs.FromFS(static.FS), "/", vfs.BindReplace)
+	fs.Bind("/doc", vfs.FromFS(website.Content), "/doc", vfs.BindBefore)
+	fs.Bind("/lib/godoc", vfs.FromFS(website.Content), "/", vfs.BindReplace)
 
 	webroot := getFullPath("/src/golang.org/x/website")
 	fs.Bind("/favicon.ico", gatefs.New(vfs.OS(webroot), fsGate), "/favicon.ico", vfs.BindBefore)
diff --git a/cmd/golangorg/main.go b/cmd/golangorg/main.go
index 6af6204..163280b 100644
--- a/cmd/golangorg/main.go
+++ b/cmd/golangorg/main.go
@@ -7,7 +7,7 @@
 // Web server tree:
 //
 //	https://golang.org/			main landing page
-//	https://golang.org/doc/	serve from content/static/doc, then $GOROOT/doc. spec, mem, etc.
+//	https://golang.org/doc/	serve from content/doc, then $GOROOT/doc. spec, mem, etc.
 //	https://golang.org/src/	serve files from $GOROOT/src; .go gets pretty-printed
 //	https://golang.org/cmd/	serve documentation about commands
 //	https://golang.org/pkg/	serve documentation about packages
@@ -15,7 +15,7 @@
 //				https://golang.org/pkg/compress/zlib)
 //
 
-// Some pages are being transitioned from $GOROOT to content/static/doc.
+// Some pages are being transitioned from $GOROOT to content/doc.
 // See golang.org/issue/29206 and golang.org/issue/33637.
 
 // +build go1.16
@@ -41,7 +41,7 @@
 	"golang.org/x/tools/godoc/vfs"
 	"golang.org/x/tools/godoc/vfs/gatefs"
 	"golang.org/x/tools/godoc/vfs/zipfs"
-	"golang.org/x/website/content/static"
+	"golang.org/x/website"
 )
 
 const defaultAddr = "localhost:6060" // default webserver address
@@ -66,7 +66,7 @@
 	// layout control
 	autoFlag       = flag.Bool("a", false, "update templates automatically")
 	showTimestamps = flag.Bool("timestamps", false, "show timestamps with directory listings")
-	templateDir    = flag.String("templates", "", "load templates/JS/CSS from disk in this directory (usually /path-to-website/content/static)")
+	templateDir    = flag.String("templates", "", "load templates/JS/CSS from disk in this directory (usually /path-to-website/content)")
 	showPlayground = flag.Bool("play", false, "enable playground")
 	declLinks      = flag.Bool("links", true, "link identifiers to their declarations")
 
@@ -124,7 +124,7 @@
 			fmt.Fprintln(os.Stderr, "runtime.Caller failed: cannot find templates for -a mode.")
 			os.Exit(2)
 		}
-		dir := filepath.Join(file, "../../../content/static")
+		dir := filepath.Join(file, "../../../content")
 		if _, err := os.Stat(filepath.Join(dir, "godoc.html")); err != nil {
 			fmt.Fprintln(os.Stderr, err)
 			fmt.Fprintln(os.Stderr, "Cannot find templates for -a mode.")
@@ -172,8 +172,8 @@
 		fs.Bind("/doc", vfs.OS(*templateDir), "/doc", vfs.BindBefore)
 		fs.Bind("/lib/godoc", vfs.OS(*templateDir), "/", vfs.BindBefore)
 	} else {
-		fs.Bind("/doc", vfs.FromFS(static.FS), "/doc", vfs.BindBefore)
-		fs.Bind("/lib/godoc", vfs.FromFS(static.FS), "/", vfs.BindReplace)
+		fs.Bind("/doc", vfs.FromFS(website.Content), "/doc", vfs.BindBefore)
+		fs.Bind("/lib/godoc", vfs.FromFS(website.Content), "/", vfs.BindReplace)
 	}
 
 	// Bind $GOPATH trees into Go root.
diff --git a/cmd/golangorg/release_test.go b/cmd/golangorg/release_test.go
index 3691e11..b085961 100644
--- a/cmd/golangorg/release_test.go
+++ b/cmd/golangorg/release_test.go
@@ -14,7 +14,7 @@
 
 	"golang.org/x/tools/godoc"
 	"golang.org/x/tools/godoc/vfs"
-	"golang.org/x/website/content/static"
+	"golang.org/x/website"
 )
 
 // Test that the release history page includes expected entries.
@@ -27,8 +27,8 @@
 	origFS, origPres := fs, pres
 	defer func() { fs, pres = origFS, origPres }()
 	fs = vfs.NameSpace{}
-	fs.Bind("/doc", vfs.FromFS(static.FS), "/doc", vfs.BindBefore)
-	fs.Bind("/lib/godoc", vfs.FromFS(static.FS), "/", vfs.BindReplace)
+	fs.Bind("/doc", vfs.FromFS(website.Content), "/doc", vfs.BindBefore)
+	fs.Bind("/lib/godoc", 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
new file mode 100644
index 0000000..b3b7245
--- /dev/null
+++ b/content.go
@@ -0,0 +1,27 @@
+// Copyright 2013 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build go1.16
+
+// Package website exports the static content as an embed.FS.
+package website
+
+import (
+	"embed"
+	"io/fs"
+)
+
+// Content is the website's static content.
+var Content = subdir(embedded, "_content")
+
+//go:embed _content
+var embedded embed.FS
+
+func subdir(fsys fs.FS, path string) fs.FS {
+	s, err := fs.Sub(fsys, path)
+	if err != nil {
+		panic(err)
+	}
+	return s
+}
diff --git a/content/README.md b/content/README.md
deleted file mode 100644
index 8422e3c..0000000
--- a/content/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# content
-
-The `static` directory contains static content. This content is used alongside
-the content in the main Go repository by the [`golangorg`](golang.org/x/website/cmd/golangorg)
-binary when serving the [golang.org](https://golang.org) website.
-The details of the directory to path mapping are documented at the top of
-[`cmd/golangorg/main.go`](https://go.googlesource.com/website/+/refs/heads/master/cmd/golangorg/main.go).
-
diff --git a/content/static/doc.go b/content/static/doc.go
deleted file mode 100644
index ea038c2..0000000
--- a/content/static/doc.go
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// +build go1.16
-
-// Package static exports the static content as an embed.FS.
-package static
-
-import "embed"
-
-// FS is the static content as a file system.
-//go:embed *
-var FS embed.FS