internal/godoc/dochtml: add HTML for unit page
tmplHTML is added, which uses tmplSidenav + tmplBody + tmplExample to
generated an HTML template for the unit page.
Change-Id: Iabc01a5040f4e1c4c903a778a621afcdd807381f
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/259002
Trust: Julie Qiu <julie@golang.org>
Run-TryBot: Julie Qiu <julie@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jamal Carvalho <jamal@golang.org>
diff --git a/internal/godoc/dochtml/dochtml.go b/internal/godoc/dochtml/dochtml.go
index 0db5750..01cb580 100644
--- a/internal/godoc/dochtml/dochtml.go
+++ b/internal/godoc/dochtml/dochtml.go
@@ -118,7 +118,7 @@
return linkHTML(name, opt.SourceLinkFunc(node), "Documentation-source")
}
- h := htmlPackage()
+ h := htmlPackage(ctx)
tmpl := template.Must(h.Clone()).Funcs(map[string]interface{}{
"render_short_synopsis": r.ShortSynopsis,
"render_synopsis": r.Synopsis,
diff --git a/internal/godoc/dochtml/template.go b/internal/godoc/dochtml/template.go
index 1ceef3f..d1f2591 100644
--- a/internal/godoc/dochtml/template.go
+++ b/internal/godoc/dochtml/template.go
@@ -5,9 +5,12 @@
package dochtml
import (
+ "context"
"reflect"
"github.com/google/safehtml/template"
+ "golang.org/x/pkgsite/internal"
+ "golang.org/x/pkgsite/internal/experiment"
"golang.org/x/pkgsite/internal/godoc/dochtml/internal/render"
"golang.org/x/pkgsite/internal/godoc/internal/doc"
)
@@ -15,11 +18,18 @@
// htmlPackage is the template used to render documentation HTML.
// TODO(golang.org/issue/5060): finalize URL scheme and design for notes,
// then it becomes more viable to factor out inline CSS style.
-func htmlPackage() *template.Template {
- return template.Must(template.New("package").Funcs(tmpl).Parse(legacyTmplHTML))
+func htmlPackage(ctx context.Context) *template.Template {
+ t := template.New("package").Funcs(tmpl)
+ if experiment.IsActive(ctx, internal.ExperimentUnitPage) {
+ return template.Must(t.Parse(tmplHTML))
+ }
+ return template.Must(t.Parse(legacyTmplHTML))
}
-const legacyTmplHTML = `{{- "" -}}` + legacyTmplSidenav + legacyTmplBody + tmplExample
+const (
+ tmplHTML = `{{- "" -}}` + tmplSidenav + tmplBody + tmplExample
+ legacyTmplHTML = `{{- "" -}}` + legacyTmplSidenav + legacyTmplBody + tmplExample
+)
var tmpl = map[string]interface{}{
"ternary": func(q, a, b interface{}) interface{} {