*: docs pass

Change-Id: I87ca80d3f7728ed407071468ac233e6ad4574929
diff --git a/devtools/hackdoc/tpl/base.html b/devtools/hackdoc/tpl/base.html
index 5fd861a..8b93b39 100644
--- a/devtools/hackdoc/tpl/base.html
+++ b/devtools/hackdoc/tpl/base.html
@@ -3,9 +3,358 @@
     <head>
         <meta charset="utf-8">
         <title>hackdoc:{{ .Title }}</title>
-        {{ template "head" . }}
+        <style type="text/css">
+html, body, div, span, applet, object, iframe,
+h1, h2, h3, h4, h5, h6, p, blockquote, pre,
+a, abbr, acronym, address, big, cite, code,
+del, dfn, em, img, ins, kbd, q, s, samp,
+small, strike, strong, sub, sup, tt, var,
+b, u, i, center,
+dl, dt, dd, ol, ul, li,
+fieldset, form, label, legend,
+table, caption, tbody, tfoot, thead, tr, th, td,
+article, aside, canvas, details, embed, 
+figure, figcaption, footer, header, hgroup, 
+menu, nav, output, ruby, section, summary,
+time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	font-size: 100%;
+	font: inherit;
+	vertical-align: baseline;
+}
+/* HTML5 display-role reset for older browsers */
+article, aside, details, figcaption, figure, 
+footer, header, hgroup, menu, nav, section {
+	display: block;
+}
+body {
+	line-height: 1;
+}
+ol, ul {
+	list-style: none;
+}
+blockquote, q {
+	quotes: none;
+}
+blockquote:before, blockquote:after,
+q:before, q:after {
+	content: '';
+	content: none;
+}
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
+
+body {
+    font-size: 14px;
+    line-height: 1.25em;
+    background-color: #f0f0f0;
+}
+
+html {
+    /* Cursed snippet to prevent entire page being shifted left when scrollbar
+       appears. */
+    overflow-x: hidden;
+    margin-right: calc(-1 * (100vw - 100%));
+}
+
+.wrapper {
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+    width: 100%;
+    font-family: 'Open Sans', sans-serif;
+}
+
+.column {
+    width: 80em;
+    padding: 1rem 0 1rem 0;
+}
+
+.page {
+    background-color: #fefefe;
+    width: 100%;
+
+    display: flex;
+    flex-direction: row;
+    justify-content: space-between;
+}
+
+.content {
+    order: 1;
+    padding: 1rem 1rem 3rem 3rem;
+    width: 55em;
+}
+
+.sidebar {
+    order: 2;
+    width: 20em;
+    margin-left: 1em;
+    padding-top: 1rem;
+    padding-bottom: 3rem;
+}
+
+.sidebar ul {
+    padding: .5em;
+    border: 1px solid #ddd;
+    margin-top: 1em;
+    margin-right: 2em;
+    background-color: #f8f8f8;
+    font-size: 1em;
+}
+
+
+.header {
+    font-size: 1.2em;
+    font-family: Consolas, monospace;
+    margin-top: 1rem;
+    display: inline-flex;
+    background-color: #fefefe;
+    width: 100%;
+}
+
+.headerInner {
+    padding: 1em 1em 1em 3em;
+}
+
+.header a {
+    text-decoration: none;
+}
+.header a:hover {
+    text-decoration: underline;
+}
+
+.header span.red {
+    color: #b30014;
+}
+
+.header span.part {
+    color: #666;
+    padding-left: 0.2em;
+}
+
+.header span.part a {
+    color: rgb(27, 106, 203);
+}
+.header span.part a:visited {
+    color: rgb(27, 106, 203);
+}
+
+.topbar {
+    min-height: 1em;
+    padding: 1em 1em 1em 3.5em;
+}
+
+.topbar a {
+    text-decoration: none;
+    color: #333;
+    font-size: 1em;
+}
+.topbar a:hover {
+    text-decoration: underline;
+}
+
+.topbar span {
+    margin-right: 2em;
+}
+
+.footer {
+    font-size: 0.8em;
+    color: #ccc;
+    font-weight: 800;
+    padding: 0.5em 1em 1em;
+    text-align: right;
+}
+
+.footer .left {
+    float: left;
+}
+
+.footer .right {
+    float: right;
+}
+
+.footer a {
+    color: #bbb;
+}
+
+.page h1 {
+    font-size: 1.9em;
+    padding: 1em 0 0 0;
+    font-weight: 400;
+    color: #000;
+}
+
+.page p + h1 {
+    padding: 2em 0 0 0;
+}
+
+.page h2 {
+    font-size: 1.5em;
+    padding: 1.6em 0 0 0;
+    color: #000;
+    font-weight: 400;
+}
+
+.page h3 {
+    font-size: 1.4em;
+    padding: 0.4em 0 0 0;
+    color: #333;
+}
+
+.page h4 {
+    font-size: 1.0em;
+    color: #444;
+}
+
+.page strong {
+    font-weight: 600;
+}
+
+.page code {
+    font-family: Consolas, monospace;
+    background-color: #f8f8f8;
+}
+
+.page pre {
+    background-color: #f8f8f8;
+    border: 1px solid #d8d8d8;
+    margin: 2em 1em 2em 1em;
+    padding: 0.5em;
+    overflow: auto;
+    max-width: 60em;
+}
+
+.page h1 + p {
+    margin-top: 2em;
+}
+
+.page h2 + p {
+    margin-top: 1em;
+}
+
+.page h3 + p {
+    margin-top: 1em;
+}
+
+.page h4 + p {
+    margin-top: 1em;
+}
+
+
+.page p + p {
+    margin-top: 1em;
+}
+
+.page p {
+    line-height: 1.6em;
+}
+
+.page :not(li) > ul {
+    padding-top: 0.5em;
+    line-height: 1.5em;
+}
+
+.page ul li {
+    padding-left: 1em;
+}
+
+.page :not(li) > ul > li::before {
+    content: "•";
+    color: #333;;
+    display: inline-block;
+    width: 1em;
+    margin-left: -0.5em;
+}
+
+.page li > ul > li::before {
+    content: "◦";
+    color: #333;;
+    display: inline-block;
+    width: 1em;
+    margin-left: -0.5em;
+}
+
+.page img {
+    max-width: 50em;
+    margin: 1em 0 1em 0;
+    display: block;
+}
+
+.page table {
+    border: 1px solid #ddd;
+    width: 100%;
+    max-width: 100%;
+    margin-bottom: 20px;
+    margin-top: 20px;
+}
+
+.page table th {
+    border-bottom-width: 2px;
+    border: 1px solid #ddd;
+    border: 1px solid #e36372;
+    padding: 5px;
+    text-align: left;
+    vertical-align: bottom;
+    background-color: #e36372;
+    font-weight: 800;
+    color: #fff;
+}
+.page table td {
+    border: 1px solid #e36372;
+    padding: 5px;
+    vertical-align: top;
+    background-color: #ffdbdf;
+}
+
+.page table code {
+    font-family: Consolas, monospace;
+    background-color: #fcedef;
+}
+
+.toc {
+    padding: .5em;
+    border: 1px solid #ddd;
+    background-color: #f8f8f8;
+    margin: 2em;
+    max-width: 30em;
+    font-size: 1em;
+}
+
+.toc a {
+    text-decoration: none;
+}
+
+        </style>
     </head>
     <body>
-        {{ template "body" . }}
+        <div class="wrapper">
+            <div class="column">
+                <div class="header">
+                    <div class="headerInner">
+                        {{ template "header" . }}
+                    </div>
+                </div>
+                <div class="topbar">
+                    {{ template "topbar" . }}
+                </div>
+
+                <div class="page">
+                    <div class="sidebar">
+                        <h3>Page Info</h3>
+                        <ul>
+                            {{ range .WebLinks }}
+                            <li><a href="{{.LinkURL}}">View {{.Kind}} ({{ .LinkLabel }})</a></li>
+                            {{ end }}
+                            <li><a href="{{ .HackdocURL }}/devtools/hackdoc">Generated by hackdoc</a></li>
+                        </ul>
+                    </div>
+                    {{ .Rendered }}
+                </div>
+            </div>
+        </div>
     </body>
 </html>