[x/go.dev] all: move long one-page layouts into the page content

Hugo Markdown files cannot contain templates, so all the template
work had to be done in the layouts, partials, or shortcodes trees.

But the new setup treats the .md files as templates generating
Markdown (which then generates HTML), so we can move the
complex templates into the pages where they are used, instead of
having an unnecessary redirect.

Change-Id: I37ba42aaa700ec67d28cf2adf1bfa59b72bc2b2a
X-GoDev-Commit: 7ee84490c012de79fda2ed0ed1929dc83237453b
diff --git a/go.dev/cmd/internal/site/page.go b/go.dev/cmd/internal/site/page.go
index 31bc61e..394c5ae 100644
--- a/go.dev/cmd/internal/site/page.go
+++ b/go.dev/cmd/internal/site/page.go
@@ -35,7 +35,6 @@
 	Content      template.HTML
 	Date         anyTime
 	Description  string `yaml:"description"`
-	IsHome       bool
 	Layout       string `yaml:"layout"`
 	LinkTitle    string `yaml:"linkTitle"`
 	Pages        []*Page
@@ -57,6 +56,9 @@
 	} else {
 		id = strings.TrimSuffix(id, ".md")
 	}
+	if file == "content/index.md" {
+		id = ""
+	}
 
 	p := site.newPage(id)
 	p.file = file
@@ -146,31 +148,21 @@
 	}
 
 	// Load base template.
-	base, err := ioutil.ReadFile(p.Site.file("layouts/_default/baseof.html"))
+	base, err := ioutil.ReadFile(p.Site.file("layouts/site.tmpl"))
 	if err != nil {
 		return err
 	}
-	t := p.Site.clone().New("layouts/_default/baseof.html")
+	t := p.Site.clone().New("layouts/site.tmpl")
 	if err := tmplfunc.Parse(t, string(base)); err != nil {
 		return err
 	}
 
 	// Load page-specific layout template.
-	// There are general rules in Hugo, but we don't need to reproduce them here
-	// since this will go away.
-	layout := "layouts/default.tmpl"
-	if p.Layout != "" {
-		layout = "layouts/" + p.Layout + ".tmpl"
+	layout := p.Layout
+	if layout == "" {
+		layout = "default"
 	}
-	switch p.id {
-	case "":
-		layout = "layouts/index.html"
-	case "learn":
-		layout = "layouts/learn/section.html"
-	case "solutions":
-		layout = "layouts/solutions/section.html"
-	}
-	data, err := ioutil.ReadFile(p.Site.file(layout))
+	data, err := ioutil.ReadFile(p.Site.file("layouts/" + layout + ".tmpl"))
 	if err != nil {
 		return err
 	}
diff --git a/go.dev/cmd/internal/site/site.go b/go.dev/cmd/internal/site/site.go
index d87e236..8d569da 100644
--- a/go.dev/cmd/internal/site/site.go
+++ b/go.dev/cmd/internal/site/site.go
@@ -137,12 +137,6 @@
 		return nil, fmt.Errorf("loading data: %v", err)
 	}
 
-	// Implicit home page.
-	home := site.newPage("")
-	home.Params["Series"] = ""
-	home.IsHome = true
-	home.Title = site.Title
-
 	// Load site pages from md files.
 	err = filepath.Walk(site.file("content"), func(name string, info os.FileInfo, err error) error {
 		if err != nil {
diff --git a/go.dev/cmd/internal/site/tmpl.go b/go.dev/cmd/internal/site/tmpl.go
index b89c4e1..1218ea6 100644
--- a/go.dev/cmd/internal/site/tmpl.go
+++ b/go.dev/cmd/internal/site/tmpl.go
@@ -250,6 +250,8 @@
 	return false
 }
 
+func (p *Page) IsHome() bool { return p.id == "" }
+
 func (d *Page) IsMenuCurrent(x string, y *MenuItem) bool {
 	return d.Permalink() == y.URL
 }
@@ -257,7 +259,7 @@
 func (p *Page) Param(key string) interface{} { return p.Params[key] }
 
 func (p *Page) Parent() *Page {
-	if p.IsHome {
+	if p.IsHome() {
 		return nil
 	}
 	return p.Site.pagesByID[p.parent]
diff --git a/go.dev/layouts/index.html b/go.dev/content/index.md
similarity index 98%
rename from go.dev/layouts/index.html
rename to go.dev/content/index.md
index d6be0c9..84fd740 100644
--- a/go.dev/layouts/index.html
+++ b/go.dev/content/index.md
@@ -1,4 +1,7 @@
-{{define "layout"}}
+---
+title: go.dev
+---
+
 <section class="Hero bluebg">
   <div class="Hero-gridContainer">
     <div class="Hero-blurb">
@@ -324,4 +327,3 @@
     </div>
   </div>
 </section>
-{{end}}
diff --git a/go.dev/content/learn/_index.md b/go.dev/content/learn/_index.md
index f45421e..b5efc4f 100644
--- a/go.dev/content/learn/_index.md
+++ b/go.dev/content/learn/_index.md
@@ -1,3 +1,293 @@
 ---
 title: "Getting Started"
 ---
+
+<section class="Learn-hero">
+  <div class="Container">
+    <div class="Learn-heroInner">
+      <div class="Learn-heroContent">
+        {{breadcrumbs .}}
+        <h1>Install the latest version of Go</h1>
+        <p>
+          Install the latest version of Go. For instructions to download and install
+          the Go compilers, tools, and libraries,
+          <a href="https://golang.org/doc/install" target="_blank" rel="noopener">
+            view the install documentation.
+          </a>
+        </p>
+        <div class="Learn-heroAction">
+          <div
+            data-version="{{.Site.Data.global.latestVersion}}"
+            class="js-latestGoVersion"
+          >
+            <a
+              class="js-downloadBtn"
+              href="https://golang.org/dl"
+              target="_blank"
+              rel="noopener"
+            >
+              Download
+              <span class="js-goVersion"></span>
+            </a>
+          </div>
+        </div>
+        <p>
+          Download packages for
+          <a class="js-downloadWin">Windows 64-bit</a>,
+          <a class="js-downloadMac">macOS</a>,
+          <a class="js-downloadLinux">Linux</a>, and
+          <a href="https://golang.org/dl/">more</a>.
+        </p>
+      </div>
+      <div class="Learn-heroGopher">
+        <img src="/images/gophers/motorcycle.svg" alt="Go Gopher riding a motorcycle">
+      </div>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-quickstarts Learn-cardList">
+        {{ range first 3 $.Site.Data.learn.quickstart.links }}
+          <li class="Learn-quickstart Learn-card">
+            {{template "learn-card" .}}
+          </li>
+        {{end}}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section class="Learn-learningResources">
+  <h2>Learning Resources</h2>
+</section>
+
+<section id="guided-learning-journeys" class="Learn-guided">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Guided learning journeys</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList">
+        {{ range first 4 $.Site.Data.learn.guidedLearning.links }}
+          <li class="Learn-card">
+            {{template "learn-card" .}}
+          </li>
+        {{ end }}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section id="online-learning" class="Learn-online">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Online learning</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList">
+        {{ range first 4 $.Site.Data.learn.courses.links }}
+          <li class="Learn-card">
+            {{template "learn-card" .}}
+          </li>
+        {{ end }}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section id="self-paced-labs" class="Learn-selfPaced">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Google Cloud Self-Paced Labs</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList">
+        {{ range first 4 $.Site.Data.learn.cloud.links }}
+          <li class="Learn-card">
+            {{template "learn-self-paced-card" .}}
+          </li>
+          </li>
+        {{ end }}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section id="featured-books" class="Learn-books">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>Featured books</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-cardList Learn-bookList">
+        {{ range first 5 $.Site.Data.learn.books.links }}
+          <li class="Learn-card Learn-book">
+            {{template "learn-book" .}}
+          </li>
+        {{ end }}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section class="Learn-inPersonTraining">
+  <div class="Container">
+    <div class="Learn-learningResourcesHeader">
+      <h3>In-person training</h3>
+    </div>
+    <div class="LearnGo-gridContainer">
+      <ul class="Learn-inPersonList">
+        {{range first 4 $.Site.Data.learn.inPerson.links}}
+        <li class="Learn-inPerson">
+          <p class="Learn-inPersonTitle">
+            <a href="{{.url}}">{{.title}} </a>
+          </p>
+          <p class="Learn-inPersonBlurb">{{.blurb}}</p>
+        </li>
+        {{end}}
+      </ul>
+    </div>
+  </div>
+</section>
+
+<section class="Learn-meetups">
+  <div class="Container">
+    <div class="Learn-subHeader">
+      <h2>Meetups</h2>
+      <p class="Learn-viewMore">
+        <a href="https://www.meetup.com/pro/go">View more events &gt;</a>
+      </p>
+    </div>
+    <ul class="Learn-events">
+      {{range first 3 $.Site.Data.events.all}}
+      <li class="Learn-eventItem">
+        <div
+          class="Learn-eventThumbnail {{if not .photourl}}Learn-eventThumbnail--noimage{{end}}"
+        >
+          {{if .photourl}}
+          <img alt="{{.name}} group photo" src="{{.photourl}}" />
+          {{else}}
+          <img src="/images/meetup.svg" alt="meetup logo" />
+          {{end}}
+        </div>
+        <div class="Learn-eventBody">
+          <div class="Learn-eventDate">
+            <p>{{.local_date}} &#183 {{.city}}, {{.state}} {{.country}}</p>
+          </div>
+          <div class="Learn-eventText">
+            <h4 class="Learn-eventName">
+              <a href="{{.url}}">{{.name}}</a>
+            </h4>
+            <p class="Learn-eventDescription">{{.description | safeHTML}}</p>
+          </div>
+          <div class="Learn-eventAttendees">
+            {{ with .attendees }}
+              {{range first 5 .}}
+              <div class="Learn-eventAttendeesItem">
+                <img src="{{.thumb_link}}" alt="{{.name}}"/>
+              </div>
+              {{end}}
+            {{end}}
+          </div>
+        </div>
+      </li>
+      {{end}}
+    </ul>
+  </div>
+</section>
+
+{{define "learn-card"}}
+<div class="Card">
+  <div class="Card-inner">
+    {{if .thumbnail}}
+    <div
+      class="Card-thumbnail"
+      style="background-image: url('{{.thumbnail}}')"
+    ></div>
+    {{end}}
+    <div class="Card-content">
+      <div class="Card-contentTitle">{{.title}}</div>
+      <p class="Card-contentBody">{{.content | safeHTML}}</p>
+      <div class="Card-contentCta">
+        <a href="{{.url}}" target="_blank">
+          <span>{{.cta}}</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </a>
+      </div>
+    </div>
+  </div>
+</div>
+{{end}}
+
+{{define "learn-self-paced-card"}}
+<div class="Card">
+  <a href="{{.url}}" target="_blank" rel="noopener">
+    <div class="Card-inner">
+      {{if .thumbnail}}
+      <div
+        class="Card-thumbnail"
+        style="background-image: url('{{.thumbnail}}')"
+      ></div>
+      {{end}}
+      <div class="Card-content">
+        <div class="Card-contentTitle">{{.title}}</div>
+        <div class="Card-selfPacedFooter">
+          <div class="Card-selfPacedCredits">
+            <span>{{ .length }}</span> •
+            <span>{{.credits}} Credits</span>
+          </div>
+          <div class="Card-selfPacedRating">
+            <div class="Card-starRating" style="width: {{ .rating }}rem"></div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+{{end}}
+
+{{define "learn-book"}}
+<div class="Book">
+  <a href="{{.url}}" target="_blank" rel="noopener">
+    <div class="Book-inner">
+      {{if .thumbnail}}
+      <div class="Book-thumbnail">
+        <img alt="{{.title}} thumbnail." src="{{.thumbnail}}" />
+      </div>
+      {{end}}
+      <div class="Book-content">
+        <p class="Book-title">{{.title}}</p>
+        <p class="Book-description">{{.description}}</p>
+        <div class="Book-cta">
+          <span>{{.cta}}</span>
+          <svg
+            xmlns="http://www.w3.org/2000/svg"
+            width="16"
+            height="16"
+            fill="none"
+            viewBox="0 0 24 24"
+          >
+            <path
+              fill="#007D9C"
+              fill-rule="evenodd"
+              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
+              clip-rule="evenodd"
+            />
+          </svg>
+        </div>
+      </div>
+    </div>
+  </a>
+</div>
+{{end}}
diff --git a/go.dev/content/solutions/_index.md b/go.dev/content/solutions/_index.md
index fa7ec1e..7e89116 100644
--- a/go.dev/content/solutions/_index.md
+++ b/go.dev/content/solutions/_index.md
@@ -1,3 +1,180 @@
 ---
 title: Why Go
----
\ No newline at end of file
+---
+
+<section class="Solutions-headline">
+  <div class="GoCarousel" id="SolutionsHeroCarousel-carousel">
+    <div class="GoCarousel-controlsContainer">
+      <div class="GoCarousel-wrapper SolutionsHeroCarousel-wrapper">
+        <ul class="js-solutionsHeroCarouselSlides SolutionsHeroCarousel-slides">
+          {{range where .Pages "Params.series" "Case Studies" | first 3}}
+          <li class="SolutionsHeroCarousel-slide">
+            <div class="Solutions-headlineImg">
+              <img
+                src="/images/{{.Params.carouselImgSrc}}"
+                alt="{{.LinkTitle}}"
+              />
+            </div>
+            <div class="Solutions-headlineText">
+              <p class="Solutions-headlineNotification">RECENTLY UPDATED</p>
+              <h2>
+                {{.LinkTitle}}
+              </h2>
+              <p class="Solutions-headlineBody">
+                {{with .Params.quote}}{{.}}{{end}}
+                <a href="{{.RelPermalink}}"
+                  >Learn more
+                  <i class="material-icons Solutions-forwardArrowIcon"
+                    >arrow_forward</i
+                  >
+                </a>
+              </p>
+            </div>
+          </li>
+          {{end}}
+        </ul>
+      </div>
+      <button
+        class="js-solutionsHeroCarouselPrev GoCarousel-controlPrev GoCarousel-controlPrev-solutionsHero"
+        hidden
+      >
+        <i class="GoCarousel-icon material-icons">navigate_before</i>
+      </button>
+      <button
+        class="js-solutionsHeroCarouselNext GoCarousel-controlNext GoCarousel-controlNext-solutionsHero"
+      >
+        <i class="GoCarousel-icon material-icons">navigate_next</i>
+      </button>
+    </div>
+  </div>
+</section>
+<section class="Solutions-useCases">
+  <div class="Container">
+    <div class="SolutionsTabs-tabList js-solutionsTabs" role="tablist">
+      <button
+        role="tab"
+        aria-selected="true"
+        class="SolutionsTabs-tab"
+        id="btn-companies"
+        aria-controls="tab-companies"
+      >
+        Case studies
+      </button>
+      <button
+        role="tab"
+        aria-selected="false"
+        class="SolutionsTabs-tab"
+        id="btn-tech"
+        aria-controls="tab-tech"
+      >
+        Use cases
+      </button>
+      <hr />
+    </div>
+    <ul
+      class="js-solutionsList Solutions-cardList"
+      aria-expanded="true"
+      aria-labelledby="btn-companies"
+      id="tab-companies"
+      role="tabpanel"
+      tabindex="0"
+    >
+      {{$solutions := where .Pages "Params.series" "Case Studies"}}
+      {{range sort $solutions "Params.company" "asc"}}
+      <li class="Solutions-card">
+        {{if isset .Params "link" }}
+        <a
+          href="{{.Params.link}}"
+          target="_blank"
+          rel="noopener"
+          class="Solutions-useCaseLink"
+        >
+          <div
+            class="Solutions-useCaseLogo Solutions-useCaseLogo--{{.Params.company}}"
+          >
+            <img
+              loading="lazy"
+              alt="{{.Params.company}}"
+              src="/images/logos/{{.Params.logoSrc}}"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">{{.LinkTitle}}</h3>
+            <p class="Solutions-useCaseDescription">
+              {{.Description}}
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            View blog post
+            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
+          </p>
+        </a>
+        {{else}}
+        <a href="{{.RelPermalink}}" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+            <img
+              loading="lazy"
+              alt="{{.Params.company}}"
+              src="/images/logos/{{.Params.logoSrc}}"
+            />
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">{{.LinkTitle}}</h3>
+            <p class="Solutions-useCaseDescription">
+              {{with .Params.quote}}{{.}}{{end}}
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">View case study</p>
+        </a>
+        {{end}}
+      </li>
+      {{ end }}
+    </ul>
+    <ul
+      class="js-solutionsList Solutions-cardList"
+      aria-expanded="false"
+      aria-labelledby="btn-tech"
+      id="tab-tech"
+      role="tabpanel"
+      tabindex="0"
+      hidden
+    >
+      {{range where .Pages "Params.series" "Use Cases"}}
+      <li class="Solutions-card">
+        <a href="{{.RelPermalink}}" class="Solutions-useCaseLink">
+          <div class="Solutions-useCaseLogo">
+            {{$icon := .Resources.GetMatch "icon"}} {{if $icon}}
+            <img
+              loading="lazy"
+              alt="{{$icon.Params.alt}}"
+              src="{{$icon.RelPermalink}}"
+            />
+            {{end}}
+          </div>
+          <div class="Solutions-useCaseBody">
+            <h3 class="Solutions-useCaseTitle">{{.LinkTitle}}</h3>
+            <p class="Solutions-useCaseDescription">
+              {{.Description}}
+            </p>
+          </div>
+          <p class="Solutions-useCaseAction">
+            Learn More
+          </p>
+        </a>
+      </li>
+      {{end}}
+    </ul>
+    <div class="Solutions-footer">
+      <p>
+        Interested in sharing your stories?
+        <a
+          target="_blank"
+          rel="noopener"
+          href="https://docs.google.com/forms/d/e/1FAIpQLSdRomKkA2zWQF4UTIYWLVYfjKvOHGA32RjnfavVhqY06yrZTQ/viewform"
+        >
+          Start here.
+        </a>
+      </p>
+    </div>
+  </div>
+</section>
diff --git a/go.dev/layouts/404.html b/go.dev/layouts/404.html
deleted file mode 100644
index e69de29..0000000
--- a/go.dev/layouts/404.html
+++ /dev/null
diff --git a/go.dev/layouts/_default/list.html b/go.dev/layouts/_default/list.html
deleted file mode 100644
index 9cce67b..0000000
--- a/go.dev/layouts/_default/list.html
+++ /dev/null
@@ -1,15 +0,0 @@
-{{define "main"}}
-  <article class="Article">
-    <h1>{{.Title}}</h1>
-      {{range .Params.authors}}
-        <div class="Article-author">{{.}}</div>
-      {{end}}
-    <div class="Article-date">{{.Date.Format "2 January 2006"}}</div>
-    {{.Content}}
-    {{range .Pages}}
-      <h2>
-        <a href="{{.RelPermalink}}">{{.Title}}</a>
-      </h2>
-    {{end}}
-  </article>
-{{end}}
diff --git a/go.dev/layouts/default.tmpl b/go.dev/layouts/default.tmpl
new file mode 100644
index 0000000..ae82f43
--- /dev/null
+++ b/go.dev/layouts/default.tmpl
@@ -0,0 +1,3 @@
+{{define "layout"}}
+{{.Content}}
+{{end}}
diff --git a/go.dev/layouts/learn/section.html b/go.dev/layouts/learn/section.html
deleted file mode 100644
index c78a410..0000000
--- a/go.dev/layouts/learn/section.html
+++ /dev/null
@@ -1,291 +0,0 @@
-{{define "layout"}}
-<section class="Learn-hero">
-  <div class="Container">
-    <div class="Learn-heroInner">
-      <div class="Learn-heroContent">
-        {{breadcrumbs .}}
-        <h1>Install the latest version of Go</h1>
-        <p>
-          Install the latest version of Go. For instructions to download and install
-          the Go compilers, tools, and libraries,
-          <a href="https://golang.org/doc/install" target="_blank" rel="noopener">
-            view the install documentation.
-          </a>
-        </p>
-        <div class="Learn-heroAction">
-          <div
-            data-version="{{.Site.Data.global.latestVersion}}"
-            class="js-latestGoVersion"
-          >
-            <a
-              class="js-downloadBtn"
-              href="https://golang.org/dl"
-              target="_blank"
-              rel="noopener"
-            >
-              Download
-              <span class="js-goVersion"></span>
-            </a>
-          </div>
-        </div>
-        <p>
-          Download packages for
-          <a class="js-downloadWin">Windows 64-bit</a>,
-          <a class="js-downloadMac">macOS</a>,
-          <a class="js-downloadLinux">Linux</a>, and
-          <a href="https://golang.org/dl/">more</a>.
-        </p>
-      </div>
-      <div class="Learn-heroGopher">
-        <img src="/images/gophers/motorcycle.svg" alt="Go Gopher riding a motorcycle">
-      </div>
-    </div>
-    <div class="LearnGo-gridContainer">
-      <ul class="Learn-quickstarts Learn-cardList">
-        {{ range first 3 $.Site.Data.learn.quickstart.links }}
-          <li class="Learn-quickstart Learn-card">
-            {{template "learn-card" .}}
-          </li>
-        {{end}}
-      </ul>
-    </div>
-  </div>
-</section>
-
-<section class="Learn-learningResources">
-  <h2>Learning Resources</h2>
-</section>
-
-<section id="guided-learning-journeys" class="Learn-guided">
-  <div class="Container">
-    <div class="Learn-learningResourcesHeader">
-      <h3>Guided learning journeys</h3>
-    </div>
-    <div class="LearnGo-gridContainer">
-      <ul class="Learn-cardList">
-        {{ range first 4 $.Site.Data.learn.guidedLearning.links }}
-          <li class="Learn-card">
-            {{template "learn-card" .}}
-          </li>
-        {{ end }}
-      </ul>
-    </div>
-  </div>
-</section>
-
-<section id="online-learning" class="Learn-online">
-  <div class="Container">
-    <div class="Learn-learningResourcesHeader">
-      <h3>Online learning</h3>
-    </div>
-    <div class="LearnGo-gridContainer">
-      <ul class="Learn-cardList">
-        {{ range first 4 $.Site.Data.learn.courses.links }}
-          <li class="Learn-card">
-            {{template "learn-card" .}}
-          </li>
-        {{ end }}
-      </ul>
-    </div>
-  </div>
-</section>
-
-<section id="self-paced-labs" class="Learn-selfPaced">
-  <div class="Container">
-    <div class="Learn-learningResourcesHeader">
-      <h3>Google Cloud Self-Paced Labs</h3>
-    </div>
-    <div class="LearnGo-gridContainer">
-      <ul class="Learn-cardList">
-        {{ range first 4 $.Site.Data.learn.cloud.links }}
-          <li class="Learn-card">
-            {{template "learn-self-paced-card" .}}
-          </li>
-          </li>
-        {{ end }}
-      </ul>
-    </div>
-  </div>
-</section>
-
-<section id="featured-books" class="Learn-books">
-  <div class="Container">
-    <div class="Learn-learningResourcesHeader">
-      <h3>Featured books</h3>
-    </div>
-    <div class="LearnGo-gridContainer">
-      <ul class="Learn-cardList Learn-bookList">
-        {{ range first 5 $.Site.Data.learn.books.links }}
-          <li class="Learn-card Learn-book">
-            {{template "learn-book" .}}
-          </li>
-        {{ end }}
-      </ul>
-    </div>
-  </div>
-</section>
-
-<section class="Learn-inPersonTraining">
-  <div class="Container">
-    <div class="Learn-learningResourcesHeader">
-      <h3>In-person training</h3>
-    </div>
-    <div class="LearnGo-gridContainer">
-      <ul class="Learn-inPersonList">
-        {{range first 4 $.Site.Data.learn.inPerson.links}}
-        <li class="Learn-inPerson">
-          <p class="Learn-inPersonTitle">
-            <a href="{{.url}}">{{.title}} </a>
-          </p>
-          <p class="Learn-inPersonBlurb">{{.blurb}}</p>
-        </li>
-        {{end}}
-      </ul>
-    </div>
-  </div>
-</section>
-
-<section class="Learn-meetups">
-  <div class="Container">
-    <div class="Learn-subHeader">
-      <h2>Meetups</h2>
-      <p class="Learn-viewMore">
-        <a href="https://www.meetup.com/pro/go">View more events &gt;</a>
-      </p>
-    </div>
-    <ul class="Learn-events">
-      {{range first 3 $.Site.Data.events.all}}
-      <li class="Learn-eventItem">
-        <div
-          class="Learn-eventThumbnail {{if not .photourl}}Learn-eventThumbnail--noimage{{end}}"
-        >
-          {{if .photourl}}
-          <img alt="{{.name}} group photo" src="{{.photourl}}" />
-          {{else}}
-          <img src="/images/meetup.svg" alt="meetup logo" />
-          {{end}}
-        </div>
-        <div class="Learn-eventBody">
-          <div class="Learn-eventDate">
-            <p>{{.local_date}} &#183 {{.city}}, {{.state}} {{.country}}</p>
-          </div>
-          <div class="Learn-eventText">
-            <h4 class="Learn-eventName">
-              <a href="{{.url}}">{{.name}}</a>
-            </h4>
-            <p class="Learn-eventDescription">{{.description | safeHTML}}</p>
-          </div>
-          <div class="Learn-eventAttendees">
-            {{ with .attendees }}
-              {{range first 5 .}}
-              <div class="Learn-eventAttendeesItem">
-                <img src="{{.thumb_link}}" alt="{{.name}}"/>
-              </div>
-              {{end}}
-            {{end}}
-          </div>
-        </div>
-      </li>
-      {{end}}
-    </ul>
-  </div>
-</section>
-{{end}}
-
-{{define "learn-card"}}
-<div class="Card">
-  <div class="Card-inner">
-    {{if .thumbnail}}
-    <div
-      class="Card-thumbnail"
-      style="background-image: url('{{.thumbnail}}')"
-    ></div>
-    {{end}}
-    <div class="Card-content">
-      <div class="Card-contentTitle">{{.title}}</div>
-      <p class="Card-contentBody">{{.content | safeHTML}}</p>
-      <div class="Card-contentCta">
-        <a href="{{.url}}" target="_blank">
-          <span>{{.cta}}</span>
-          <svg
-            xmlns="http://www.w3.org/2000/svg"
-            width="16"
-            height="16"
-            fill="none"
-            viewBox="0 0 24 24"
-          >
-            <path
-              fill="#007D9C"
-              fill-rule="evenodd"
-              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
-              clip-rule="evenodd"
-            />
-          </svg>
-        </a>
-      </div>
-    </div>
-  </div>
-</div>
-{{end}}
-
-{{define "learn-self-paced-card"}}
-<div class="Card">
-  <a href="{{.url}}" target="_blank" rel="noopener">
-    <div class="Card-inner">
-      {{if .thumbnail}}
-      <div
-        class="Card-thumbnail"
-        style="background-image: url('{{.thumbnail}}')"
-      ></div>
-      {{end}}
-      <div class="Card-content">
-        <div class="Card-contentTitle">{{.title}}</div>
-        <div class="Card-selfPacedFooter">
-          <div class="Card-selfPacedCredits">
-            <span>{{ .length }}</span> •
-            <span>{{.credits}} Credits</span>
-          </div>
-          <div class="Card-selfPacedRating">
-            <div class="Card-starRating" style="width: {{ .rating }}rem"></div>
-          </div>
-        </div>
-      </div>
-    </div>
-  </a>
-</div>
-{{end}}
-
-{{define "learn-book"}}
-<div class="Book">
-  <a href="{{.url}}" target="_blank" rel="noopener">
-    <div class="Book-inner">
-      {{if .thumbnail}}
-      <div class="Book-thumbnail">
-        <img alt="{{.title}} thumbnail." src="{{.thumbnail}}" />
-      </div>
-      {{end}}
-      <div class="Book-content">
-        <p class="Book-title">{{.title}}</p>
-        <p class="Book-description">{{.description}}</p>
-        <div class="Book-cta">
-          <span>{{.cta}}</span>
-          <svg
-            xmlns="http://www.w3.org/2000/svg"
-            width="16"
-            height="16"
-            fill="none"
-            viewBox="0 0 24 24"
-          >
-            <path
-              fill="#007D9C"
-              fill-rule="evenodd"
-              d="M5 5v14h14v-7h2v7a2 2 0 01-2 2H5a2 2 0 01-2-2V5c0-1.1.9-2 2-2h7v2H5zm9 0V3h7v7h-2V6.4l-9.8 9.8-1.4-1.4L17.6 5H14z"
-              clip-rule="evenodd"
-            />
-          </svg>
-        </div>
-      </div>
-    </div>
-  </a>
-</div>
-{{end}}
diff --git a/go.dev/layouts/_default/baseof.html b/go.dev/layouts/site.tmpl
similarity index 98%
rename from go.dev/layouts/_default/baseof.html
rename to go.dev/layouts/site.tmpl
index 2630894..8d1b0c7 100644
--- a/go.dev/layouts/_default/baseof.html
+++ b/go.dev/layouts/site.tmpl
@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html lang="{{$.Site.LanguageCode | default "en"}}">
+<html lang="{{or $.Site.LanguageCode "en"}}">
 <head>
 <!-- Google Tag Manager -->
 <link rel="preconnect" href="https://www.googletagmanager.com">
diff --git a/go.dev/layouts/sitemap.xml b/go.dev/layouts/sitemap.xml
deleted file mode 100644
index f1e9ea1..0000000
--- a/go.dev/layouts/sitemap.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-{{printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML}}
-<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
-        xmlns:xhtml="http://www.w3.org/1999/xhtml">
-    {{range .Data.Pages -}}
-    {{if not (isset .Params "link") -}}
-    <url>
-        <loc>{{.Permalink}}</loc>{{if not .Lastmod.IsZero}}
-        <lastmod>{{safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" )}}</lastmod>{{end}}{{with .Sitemap.ChangeFreq}}
-        <changefreq>{{.}}</changefreq>{{end}}{{if ge .Sitemap.Priority 0.0}}
-        <priority>{{.Sitemap.Priority}}</priority>{{end}}{{if .IsTranslated}}{{range .Translations}}
-        <xhtml:link
-                rel="alternate"
-                hreflang="{{.Lang}}"
-                href="{{.Permalink}}"
-        />{{end}}
-        <xhtml:link
-                rel="alternate"
-                hreflang="{{.Lang}}"
-                href="{{.Permalink}}"
-        />{{end}}
-    </url>
-    {{end}}
-    {{- end}}
-</urlset>
diff --git a/go.dev/layouts/solutions/section.html b/go.dev/layouts/solutions/section.html
deleted file mode 100644
index b41afff..0000000
--- a/go.dev/layouts/solutions/section.html
+++ /dev/null
@@ -1,179 +0,0 @@
-{{define "layout"}}
-<section class="Solutions-headline">
-  <div class="GoCarousel" id="SolutionsHeroCarousel-carousel">
-    <div class="GoCarousel-controlsContainer">
-      <div class="GoCarousel-wrapper SolutionsHeroCarousel-wrapper">
-        <ul class="js-solutionsHeroCarouselSlides SolutionsHeroCarousel-slides">
-          {{range where .Pages "Params.series" "Case Studies" | first 3}}
-          <li class="SolutionsHeroCarousel-slide">
-            <div class="Solutions-headlineImg">
-              <img
-                src="/images/{{.Params.carouselImgSrc}}"
-                alt="{{.LinkTitle}}"
-              />
-            </div>
-            <div class="Solutions-headlineText">
-              <p class="Solutions-headlineNotification">RECENTLY UPDATED</p>
-              <h2>
-                {{.LinkTitle}}
-              </h2>
-              <p class="Solutions-headlineBody">
-                {{with .Params.quote}}{{.}}{{end}}
-                <a href="{{.RelPermalink}}"
-                  >Learn more
-                  <i class="material-icons Solutions-forwardArrowIcon"
-                    >arrow_forward</i
-                  >
-                </a>
-              </p>
-            </div>
-          </li>
-          {{end}}
-        </ul>
-      </div>
-      <button
-        class="js-solutionsHeroCarouselPrev GoCarousel-controlPrev GoCarousel-controlPrev-solutionsHero"
-        hidden
-      >
-        <i class="GoCarousel-icon material-icons">navigate_before</i>
-      </button>
-      <button
-        class="js-solutionsHeroCarouselNext GoCarousel-controlNext GoCarousel-controlNext-solutionsHero"
-      >
-        <i class="GoCarousel-icon material-icons">navigate_next</i>
-      </button>
-    </div>
-  </div>
-</section>
-<section class="Solutions-useCases">
-  <div class="Container">
-    <div class="SolutionsTabs-tabList js-solutionsTabs" role="tablist">
-      <button
-        role="tab"
-        aria-selected="true"
-        class="SolutionsTabs-tab"
-        id="btn-companies"
-        aria-controls="tab-companies"
-      >
-        Case studies
-      </button>
-      <button
-        role="tab"
-        aria-selected="false"
-        class="SolutionsTabs-tab"
-        id="btn-tech"
-        aria-controls="tab-tech"
-      >
-        Use cases
-      </button>
-      <hr />
-    </div>
-    <ul
-      class="js-solutionsList Solutions-cardList"
-      aria-expanded="true"
-      aria-labelledby="btn-companies"
-      id="tab-companies"
-      role="tabpanel"
-      tabindex="0"
-    >
-      {{$solutions := where .Pages "Params.series" "Case Studies"}}
-      {{range sort $solutions "Params.company" "asc"}}
-      <li class="Solutions-card">
-        {{if isset .Params "link" }}
-        <a
-          href="{{.Params.link}}"
-          target="_blank"
-          rel="noopener"
-          class="Solutions-useCaseLink"
-        >
-          <div
-            class="Solutions-useCaseLogo Solutions-useCaseLogo--{{.Params.company}}"
-          >
-            <img
-              loading="lazy"
-              alt="{{.Params.company}}"
-              src="/images/logos/{{.Params.logoSrc}}"
-            />
-          </div>
-          <div class="Solutions-useCaseBody">
-            <h3 class="Solutions-useCaseTitle">{{.LinkTitle}}</h3>
-            <p class="Solutions-useCaseDescription">
-              {{.Description}}
-            </p>
-          </div>
-          <p class="Solutions-useCaseAction">
-            View blog post
-            <i class="material-icons Solutions-forwardArrowIcon">open_in_new</i>
-          </p>
-        </a>
-        {{else}}
-        <a href="{{.RelPermalink}}" class="Solutions-useCaseLink">
-          <div class="Solutions-useCaseLogo">
-            <img
-              loading="lazy"
-              alt="{{.Params.company}}"
-              src="/images/logos/{{.Params.logoSrc}}"
-            />
-          </div>
-          <div class="Solutions-useCaseBody">
-            <h3 class="Solutions-useCaseTitle">{{.LinkTitle}}</h3>
-            <p class="Solutions-useCaseDescription">
-              {{with .Params.quote}}{{.}}{{end}}
-            </p>
-          </div>
-          <p class="Solutions-useCaseAction">View case study</p>
-        </a>
-        {{end}}
-      </li>
-      {{ end }}
-    </ul>
-    <ul
-      class="js-solutionsList Solutions-cardList"
-      aria-expanded="false"
-      aria-labelledby="btn-tech"
-      id="tab-tech"
-      role="tabpanel"
-      tabindex="0"
-      hidden
-    >
-      {{range where .Pages "Params.series" "Use Cases"}}
-      <li class="Solutions-card">
-        <a href="{{.RelPermalink}}" class="Solutions-useCaseLink">
-          <div class="Solutions-useCaseLogo">
-            {{$icon := .Resources.GetMatch "icon"}} {{if $icon}}
-            <img
-              loading="lazy"
-              alt="{{$icon.Params.alt}}"
-              src="{{$icon.RelPermalink}}"
-            />
-            {{end}}
-          </div>
-          <div class="Solutions-useCaseBody">
-            <h3 class="Solutions-useCaseTitle">{{.LinkTitle}}</h3>
-            <p class="Solutions-useCaseDescription">
-              {{.Description}}
-            </p>
-          </div>
-          <p class="Solutions-useCaseAction">
-            Learn More
-          </p>
-        </a>
-      </li>
-      {{end}}
-    </ul>
-    <div class="Solutions-footer">
-      <p>
-        Interested in sharing your stories?
-        <a
-          target="_blank"
-          rel="noopener"
-          href="https://docs.google.com/forms/d/e/1FAIpQLSdRomKkA2zWQF4UTIYWLVYfjKvOHGA32RjnfavVhqY06yrZTQ/viewform"
-        >
-          Start here.
-        </a>
-      </p>
-    </div>
-  </div>
-</section>
-
-{{end}}
diff --git a/go.dev/layouts/taxonomy/list.html b/go.dev/layouts/taxonomy/list.html
deleted file mode 100644
index be82b66..0000000
--- a/go.dev/layouts/taxonomy/list.html
+++ /dev/null
@@ -1,33 +0,0 @@
-{{define "main" -}}
-  <div class="Container Container--padded">
-    <h1>{{.Title}}</h1>
-    <ul class="Series-list">
-      {{range .Pages}}
-        <li class="Series-listItem">
-          {{$link := .Permalink -}}
-          {{if isset .Params "link" }}
-            {{$link = .Params.link -}}
-          {{end -}}
-          <a href="{{$link}}">
-            {{$logo := .Resources.GetMatch "logo" -}}
-            {{if $logo -}}
-              <span class="Series-listItemIcon">
-                <img
-                  loading="lazy"
-                  src="{{$logo.RelPermalink}}"
-                  class="WhoUses-logo"
-                  alt="{{$logo.Params.alt}}">
-              </span>
-            {{end -}}
-            <div class="Series-listItemText">
-              <h2 class="Series-listItemPrimary">{{.Title}}</h2>
-              {{if .Description -}}
-                <p class="Series-listItemSecondary">{{.Description}}</p>
-              {{end -}}
-            </div>
-          </a>
-        </li>
-      {{end}}
-    </ul>
-  </div>
-{{end -}}