gddo: add banner informing users of pkg.go.dev

Change-Id: Iccfc68f2f83253aaf5b7edc67128e59cd3454ac4
Reviewed-on: https://go-review.googlesource.com/c/gddo/+/217538
Reviewed-by: Julie Qiu <julie@golang.org>
diff --git a/gddo-server/assets/site.css b/gddo-server/assets/site.css
index 52789c2..71da77f 100644
--- a/gddo-server/assets/site.css
+++ b/gddo-server/assets/site.css
@@ -82,6 +82,11 @@
     display: block;
 }
 
+.navbar {
+    border-radius: 0;
+    margin-bottom: 0;
+}
+
 a, .navbar-default .navbar-brand {
     color: #375eab;
 }
@@ -102,6 +107,44 @@
     color: #000;
 }
 
+.banner {
+    align-items: center;
+    background-color: #fffbe0;
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 20px;
+    min-height: 40px;
+    padding: 8px 16px;
+}
+
+.banner-message {
+    margin-right: 90px;
+}
+
+.banner-action-container {
+    text-align: right;
+}
+
+.banner-action {
+    white-space: nowrap;
+}
+
+@media (max-width: 768px) {
+    .banner {
+        flex-direction: column;
+    }
+
+    .banner-message {
+        align-items: flex-start;
+        margin-bottom: 10px;
+        margin-right: 0;
+    }
+
+    .banner-action-container {
+        width: 100%;
+    }
+}
+
 .panel-default > .panel-heading {
     color: #333;
     background-color: transparent;
@@ -121,7 +164,7 @@
     display: inline;
 }
 
-@media (max-width : 768px) {
+@media (max-width: 768px) {
     .form-control {
         font-size:16px;
     }
diff --git a/gddo-server/assets/templates/about.html b/gddo-server/assets/templates/about.html
index a991fce..de4799d 100644
--- a/gddo-server/assets/templates/about.html
+++ b/gddo-server/assets/templates/about.html
@@ -1,5 +1,7 @@
 {{define "Head"}}<title>About - GoDoc</title>{{end}}
 
+{{define "PkgGoDevLink"}}<a href="https://pkg.go.dev/about">pkg.go.dev/about</a>{{end}}
+
 {{define "Body"}}
 <h1>About</h1>
 
diff --git a/gddo-server/assets/templates/importers.html b/gddo-server/assets/templates/importers.html
index d8e3d17..87c8c05 100644
--- a/gddo-server/assets/templates/importers.html
+++ b/gddo-server/assets/templates/importers.html
@@ -5,3 +5,7 @@
   <h3>Packages that import {{$.pdoc.Name}}</h3>
   {{template "Pkgs" $.pkgs}}
 {{end}}
+
+{{define "PkgGoDevLink"}}
+  <a href="https://pkg.go.dev{{if .pdoc.ImportPath}}/{{.pdoc.ImportPath}}{{end}}?tab=importedby">pkg.go.dev{{if .pdoc.ImportPath}}/{{.pdoc.ImportPath}}?tab=importedby{{end}}</a>
+{{end}}
diff --git a/gddo-server/assets/templates/imports.html b/gddo-server/assets/templates/imports.html
index 1fcc10b..3204a9e 100644
--- a/gddo-server/assets/templates/imports.html
+++ b/gddo-server/assets/templates/imports.html
@@ -5,3 +5,7 @@
   <h3>Packages imported by {{.pdoc.Name}}</h3>
   {{template "Pkgs" $.pkgs}}
 {{end}}
+
+{{define "PkgGoDevLink"}}
+  <a href="https://pkg.go.dev{{if .pdoc.ImportPath}}/{{.pdoc.ImportPath}}{{end}}?tab=imports">pkg.go.dev{{if .pdoc.ImportPath}}/{{.pdoc.ImportPath}}?tab=imports{{end}}</a>
+{{end}}
diff --git a/gddo-server/assets/templates/layout.html b/gddo-server/assets/templates/layout.html
index cc6b5a7..577203a 100644
--- a/gddo-server/assets/templates/layout.html
+++ b/gddo-server/assets/templates/layout.html
@@ -27,6 +27,14 @@
   </div>
 </div>
 </nav>
+<div class="banner">
+  <div class="banner-message">
+    Pkg.go.dev is a new destination for Go discovery & docs. Check it out at {{template "PkgGoDevLink" $}} and share your feedback.
+  </div>
+  <div class="banner-action-container">
+    <a class="banner-action" href="https://blog.golang.org/pkg.go.dev-2020">Learn more</a>
+  </div>
+</div>
 
 <div class="container">
   {{template "Body" $}}
diff --git a/gddo-server/assets/templates/results.html b/gddo-server/assets/templates/results.html
index 9190658..04dc704 100644
--- a/gddo-server/assets/templates/results.html
+++ b/gddo-server/assets/templates/results.html
@@ -1,5 +1,9 @@
 {{define "Head"}}<title>{{.q}} - GoDoc</title><meta name="robots" content="NOINDEX">{{end}}
 
+{{define "PkgGoDevLink"}}
+  <a href="https://pkg.go.dev/search?q={{.q}}">pkg.go.dev/search?q={{.q}}</a>
+{{end}}
+
 {{define "Body"}}
   <div class="well">
     {{template "SearchBox" .q}}
diff --git a/gddo-server/assets/templates/std.html b/gddo-server/assets/templates/std.html
index eb4d731..a5bf0ab 100644
--- a/gddo-server/assets/templates/std.html
+++ b/gddo-server/assets/templates/std.html
@@ -1,5 +1,9 @@
 {{define "Head"}}<title>Standard Packages - GoDoc</title><meta name="robots" content="NOINDEX">{{end}}
 
+{{define "PkgGoDevLink"}}
+  <a href="https://pkg.go.dev/std?tab=packages">pkg.go.dev/std?tab=packages</a>
+{{end}}
+
 {{define "Body"}}
   <h1>Go Standard Packages</h1>
   {{template "Pkgs" .pkgs}}
diff --git a/gddo-server/template.go b/gddo-server/template.go
index 35f1171..501525f 100644
--- a/gddo-server/template.go
+++ b/gddo-server/template.go
@@ -519,6 +519,12 @@
 	return result
 }
 
+const pkgGoDevLinkTmpl = `
+{{define "PkgGoDevLink"}}
+  <a href="https://pkg.go.dev{{if .pdoc.ImportPath}}/{{.pdoc.ImportPath}}{{end}}">pkg.go.dev{{if .pdoc.ImportPath}}/{{.pdoc.ImportPath}}{{end}}</a>
+{{end}}
+`
+
 func parseTemplates(dir string, cb *httputil.CacheBusters, v *viper.Viper) (templateMap, error) {
 	m := make(templateMap)
 	htmlSets := [][]string{
@@ -559,6 +565,12 @@
 		t := htemp.New("").Funcs(hfuncs).Funcs(htemp.FuncMap{
 			"templateName": func() string { return templateName },
 		})
+
+		// Define this block first so that it can be overridden in some
+		// templates.
+		if _, err := t.Parse(pkgGoDevLinkTmpl); err != nil {
+			return nil, err
+		}
 		if _, err := t.ParseFiles(joinTemplateDir(dir, set)...); err != nil {
 			return nil, err
 		}