content/static: drop empty details page sections with exceptions

Drop all empty sections. Use airplane gopher image with a empty
message for packages without documentation.

Change-Id: I35e8d074b96b9b218799f4e4139ea3662a73eb62
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/257975
Trust: Jamal Carvalho <jamal@golang.org>
Run-TryBot: Jamal Carvalho <jamal@golang.org>
Reviewed-by: Julie Qiu <julie@golang.org>
TryBot-Result: kokoro <noreply+kokoro@google.com>
diff --git a/content/static/css/unit_details.css b/content/static/css/unit_details.css
index 85d8858..97c9da8 100644
--- a/content/static/css/unit_details.css
+++ b/content/static/css/unit_details.css
@@ -43,7 +43,7 @@
 }
 .UnitDetails-outline {
   display: none;
-  height: calc(100vh - 5.3475rem);
+  height: calc(100vh - 7.8475rem);
   margin-top: 2.5rem;
   position: sticky;
   top: 4.5rem;
diff --git a/content/static/css/unit_doc.css b/content/static/css/unit_doc.css
index 0dffb9f..aa448e8 100644
--- a/content/static/css/unit_doc.css
+++ b/content/static/css/unit_doc.css
@@ -30,3 +30,14 @@
   margin: auto 1rem auto 0;
   width: auto;
 }
+.UnitDoc-emptySection {
+  background-color: var(--gray-10);
+  color: var(--gray-2);
+  height: 12.25rem;
+  margin-top: 1.5rem;
+  text-align: center;
+}
+.UnitDoc-emptySection img {
+  height: 7.8125rem;
+  width: auto;
+}
diff --git a/content/static/html/helpers/_unit_doc.tmpl b/content/static/html/helpers/_unit_doc.tmpl
index 6e17bca..f50870e 100644
--- a/content/static/html/helpers/_unit_doc.tmpl
+++ b/content/static/html/helpers/_unit_doc.tmpl
@@ -10,7 +10,14 @@
       <img height="25px" width="20px" src="/static/img/pkg-icon-doc_20x12.svg">Documentation
     </h2>
     <div class="Documentation js-documentation">
-      {{.DocBody}}
+      {{if .DocBody.String}}
+        {{.DocBody}}
+      {{else}}
+        <div class="UnitDoc-emptySection">
+          <img src="/static/img/gopher-airplane.svg" alt="The Go Gopher"/>
+          <p>There is no documentation for this package.</p>
+        </div>
+      {{end}}
     </div>
   </div>
 {{end}}
diff --git a/content/static/html/helpers/_unit_outline.tmpl b/content/static/html/helpers/_unit_outline.tmpl
index 0159d21..cee8bc2 100644
--- a/content/static/html/helpers/_unit_outline.tmpl
+++ b/content/static/html/helpers/_unit_outline.tmpl
@@ -6,16 +6,23 @@
 
 {{define "unit_outline"}}
   <div class="UnitOutline-jumpTo">
-    <input class="js-jumpToInput" placeholder="Jump to">
+    <input class="js-jumpToInput" placeholder="Jump to"
+        {{if (not .DocOutline.String)}}disabled{{end}}>
   </div>
   <div class="UnitOutline">
-    <a class="UnitOutline-accordian" href="?readme#readme-top">README</a>
-    <a class="UnitOutline-accordian" href="#doc-top">Documentation</a>
-    <div class="UnitOutline-panel">
-      <div class="Documentation">
-        {{.DocOutline}}
+    {{if .Readme.String}}
+      <a class="UnitOutline-accordian" href="?readme#readme-top">README</a>
+    {{end}}
+    {{if (or .DocOutline.String .Unit.IsPackage)}}
+      <a class="UnitOutline-accordian" href="#doc-top">Documentation</a>
+      <div class="UnitOutline-panel">
+        <div class="Documentation">
+          {{.DocOutline}}
+        </div>
       </div>
-    </div>
-    <a class="UnitOutline-accordian" href="#directories-top">Directories</a>
+    {{end}}
+    {{if (or .Packages .NestedModules)}}
+      <a class="UnitOutline-accordian" href="#directories-top">Directories</a>
+    {{end}}
   </div>
 {{end}}
\ No newline at end of file
diff --git a/content/static/html/pages/unit_details.tmpl b/content/static/html/pages/unit_details.tmpl
index a96a23e..0015050 100644
--- a/content/static/html/pages/unit_details.tmpl
+++ b/content/static/html/pages/unit_details.tmpl
@@ -16,9 +16,15 @@
     </div>
     <div class="UnitDetails-content">
       {{if .CanShowDetails}}
-        {{block "unit_readme" .}}{{end}}
-        {{block "unit_doc" .}}{{end}}
-        {{block "unit_directories" .}}{{end}}
+        {{if .Readme.String}}
+          {{block "unit_readme" .}}{{end}}
+        {{end}}
+        {{if (or .DocBody.String .Unit.IsPackage)}}
+          {{block "unit_doc" .}}{{end}}
+        {{end}}
+        {{if (or .Packages .NestedModules)}}
+          {{block "unit_directories" .}}{{end}}
+        {{end}}
       {{else}}
         <h2>“{{.UnitContentName}}” not displayed due to license restrictions.</h2>
         See our <a href="/license-policy">license policy</a>.