internal/godoc/dochtml: add docIsEmpty

The docIsEmpty helper function is added, which indicates if a package
doc is empty.

For golang/go#37102

Change-Id: I633e2a842b8e6324ead0c935e3547f340b4f2540
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/288757
Trust: Julie Qiu <julie@golang.org>
Run-TryBot: Julie Qiu <julie@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/internal/godoc/dochtml/dochtml.go b/internal/godoc/dochtml/dochtml.go
index 361fd78..a897e41 100644
--- a/internal/godoc/dochtml/dochtml.go
+++ b/internal/godoc/dochtml/dochtml.go
@@ -85,12 +85,7 @@
 
 	funcs, data, _ := renderInfo(ctx, fset, p, opt)
 	p = data.Package
-	if p.Doc == "" &&
-		len(p.Examples) == 0 &&
-		len(p.Consts) == 0 &&
-		len(p.Vars) == 0 &&
-		len(p.Types) == 0 &&
-		len(p.Funcs) == 0 {
+	if docIsEmpty(p) {
 		return safehtml.HTML{}, nil
 	}
 	tmpl := template.Must(unitTemplate.Clone()).Funcs(funcs)
@@ -120,12 +115,7 @@
 
 	funcs, data, links := renderInfo(ctx, fset, p, opt)
 	p = data.Package
-	if p.Doc == "" &&
-		len(p.Examples) == 0 &&
-		len(p.Consts) == 0 &&
-		len(p.Vars) == 0 &&
-		len(p.Types) == 0 &&
-		len(p.Funcs) == 0 {
+	if docIsEmpty(p) {
 		return &Parts{}, nil
 	}
 	tmpl := template.Must(unitTemplate.Clone()).Funcs(funcs)
@@ -158,6 +148,15 @@
 	return parts, nil
 }
 
+func docIsEmpty(p *doc.Package) bool {
+	return p.Doc == "" &&
+		len(p.Examples) == 0 &&
+		len(p.Consts) == 0 &&
+		len(p.Vars) == 0 &&
+		len(p.Types) == 0 &&
+		len(p.Funcs) == 0
+}
+
 // renderInfo returns the functions and data needed to render the doc.
 func renderInfo(ctx context.Context, fset *token.FileSet, p *doc.Package, opt RenderOptions) (map[string]interface{}, templateData, func() []render.Link) {
 	// Make a copy to avoid modifying caller's *doc.Package.