content,internal: remove safehtml.HTML pointers from unitpage struct

Removes pointers from unit page struct
replacing nil values with empty HTML values.

Change-Id: I1ada25a8ee59b41f67ba4399a37fed3301050b94
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/257197
Trust: Jamal Carvalho <jamal@golang.org>
Reviewed-by: Julie Qiu <julie@golang.org>
diff --git a/content/static/html/helpers/_unit_doc.tmpl b/content/static/html/helpers/_unit_doc.tmpl
index 3511aa9..e8cadc3 100644
--- a/content/static/html/helpers/_unit_doc.tmpl
+++ b/content/static/html/helpers/_unit_doc.tmpl
@@ -9,10 +9,8 @@
     <h2 class="UnitDoc-title">
       <img height="25px" width="20px" src="/static/img/pkg-icon-doc_20x12.svg">Documentation
     </h2>
-    {{if .DocBody}}
-      <div class="Documentation">
-        {{.DocBody}}
-      </div>
-    {{end}}
+    <div class="Documentation">
+      {{.DocBody}}
+    </div>
   </div>
 {{end}}
diff --git a/content/static/html/helpers/_unit_outline.tmpl b/content/static/html/helpers/_unit_outline.tmpl
index fe935a1..31b9ebf 100644
--- a/content/static/html/helpers/_unit_outline.tmpl
+++ b/content/static/html/helpers/_unit_outline.tmpl
@@ -9,11 +9,9 @@
     <a class="UnitOutline-accordian" href="?readme#readme-top">README</a>
     <a class="UnitOutline-accordian" href="#doc-top">Documentation</a>
     <div class="UnitOutline-panel">
-      {{if .DocOutline}}
-        <div class="Documentation">
-          {{.DocOutline}}
-        </div>
-      {{end}}
+      <div class="Documentation">
+        {{.DocOutline}}
+      </div>
     </div>
     <a class="UnitOutline-accordian" href="#directories-top">Directories</a>
   </div>
diff --git a/content/static/html/helpers/_unit_readme.tmpl b/content/static/html/helpers/_unit_readme.tmpl
index 4475e29..6f0d183 100644
--- a/content/static/html/helpers/_unit_readme.tmpl
+++ b/content/static/html/helpers/_unit_readme.tmpl
@@ -9,7 +9,7 @@
     <h2 class="UnitReadme-title">
       <img height="25px" width="20px" src="/static/img/pkg-icon-readme_20x16.svg">README
     </h2>
-    {{if .Readme }}
+    {{if .Readme.String }}
       <div class="UnitReadme-content">
         <div class="Overview-readmeContent">{{.Readme}}</div>
         <div class="UnitReadme-fadeOut"></div>
diff --git a/content/static/html/pages/unit_details.tmpl b/content/static/html/pages/unit_details.tmpl
index 3469bc7..a96a23e 100644
--- a/content/static/html/pages/unit_details.tmpl
+++ b/content/static/html/pages/unit_details.tmpl
@@ -10,9 +10,7 @@
 
 {{define "unit_content"}}
   <div class="UnitDetails">
-    {{if.MobileOutline}}
-      {{.MobileOutline}}
-    {{end}}
+    {{.MobileOutline}}
     <div class="UnitDetails-outline">
       {{block "unit_outline" .}}{{end}}
     </div>
diff --git a/internal/frontend/unit.go b/internal/frontend/unit.go
index ca80ca8..6f8acd1 100644
--- a/internal/frontend/unit.go
+++ b/internal/frontend/unit.go
@@ -62,7 +62,7 @@
 	UnitContentName string
 
 	// Readme is the rendered readme HTML.
-	Readme *safehtml.HTML
+	Readme safehtml.HTML
 
 	// ExpandReadme is holds the expandable readme state.
 	ExpandReadme bool
@@ -77,9 +77,9 @@
 	// versions, licenses, imports, and importedby tabs.
 	PackageDetails interface{}
 
-	DocBody       *safehtml.HTML
-	DocOutline    *safehtml.HTML
-	MobileOutline *safehtml.HTML
+	DocBody       safehtml.HTML
+	DocOutline    safehtml.HTML
+	MobileOutline safehtml.HTML
 }
 
 var (
@@ -147,23 +147,23 @@
 		return err
 	}
 
-	var docBody, docOutline, mobileOutline *safehtml.HTML
+	var docBody, docOutline, mobileOutline safehtml.HTML
 	if unit.Documentation != nil {
 		b, err := godoc.Parse(unit.Documentation.HTML, godoc.BodySection)
 		if err != nil {
 			return err
 		}
-		docBody = &b
+		docBody = b
 		o, err := godoc.Parse(unit.Documentation.HTML, godoc.SidenavSection)
 		if err != nil {
 			return err
 		}
-		docOutline = &o
+		docOutline = o
 		m, err := godoc.Parse(unit.Documentation.HTML, godoc.SidenavMobileSection)
 		if err != nil {
 			return err
 		}
-		mobileOutline = &m
+		mobileOutline = m
 	}
 
 	tab := r.FormValue("tab")
@@ -238,16 +238,16 @@
 }
 
 // readmeContent renders the readme to html.
-func readmeContent(ctx context.Context, unit *internal.Unit) (*safehtml.HTML, error) {
+func readmeContent(ctx context.Context, unit *internal.Unit) (safehtml.HTML, error) {
 	if unit.IsRedistributable && unit.Readme != nil {
 		mi := moduleInfo(unit)
 		readme, err := ReadmeHTML(ctx, mi, unit.Readme)
 		if err != nil {
-			return nil, err
+			return safehtml.HTML{}, err
 		}
-		return &readme, nil
+		return readme, nil
 	}
-	return nil, nil
+	return safehtml.HTML{}, nil
 }
 
 // pageInfo determines the title and pageType for a given unit.