devtools/hackdoc: init

This is hackdoc, a documentation rendering tool for monorepos.

This is the first code iteration, that can only serve from a local git
checkout.

The code is incomplete, and is WIP.

Change-Id: I68ef7a991191c1bb1b0fdd2a8d8353aba642e28f
diff --git a/devtools/hackdoc/tpl/default.html b/devtools/hackdoc/tpl/default.html
new file mode 100644
index 0000000..3bfe62a
--- /dev/null
+++ b/devtools/hackdoc/tpl/default.html
@@ -0,0 +1,172 @@
+{{ define "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;
+}
+
+.wrapper {
+    display: flex;
+    flex-direction: row;
+    justify-content: center;
+    width: 100%;
+}
+
+.column {
+    max-width: 80em;
+    padding: 1rem 0 1rem 0;
+}
+
+.page {
+    background-color: #fefefe;
+    padding: 0.5rem 2rem 3rem 2rem;
+}
+
+.header {
+    font-size: 1.2em;
+    font-family: Consolas, monospace;
+    margin-top: 1rem;
+    padding: 0.5em 0 0.5em 0;
+}
+
+.header a {
+    text-decoration: none;
+}
+.header a:hover {
+    text-decoration: underline;
+}
+
+.header span.red {
+    color: #b30014;
+}
+
+.footer {
+    font-size: 0.8em;
+    color: #ccc;
+    font-weight: 800;
+    font-family: helvetica, arial, sans-serif;
+    padding: 0.5em 1em 1em;
+    text-align: right;
+}
+
+.footer a {
+    color: #bbb;
+}
+
+h1,h2,h3,h4 {
+    font-family: helvetica, arial, sans-serif;
+}
+
+h1 {
+    font-size: 1.6em;
+    padding: 1em 0 0 0;
+    font-weight: 800;
+}
+h2 {
+    font-size: 1.3em;
+    padding: 0.8em 0 0 0;
+    color: #333;
+    font-weight: 800;
+}
+h3 {
+    font-size: 1.2em;
+    padding: 0.4em 0 0 0;
+    color: #444;
+}
+h4 {
+    font-size: 1.0em;
+    color: #555;
+}
+code {
+    font-family: Consolas, monospace;
+    background-color: #f8f8f8;
+}
+pre {
+    background-color: #f8f8f8;
+    border: 1px solid #d8d8d8;
+    margin: 1em;
+    padding: 0.5em;
+    overflow: auto;
+}
+p {
+    margin-top: 0.8em;
+    line-height: 1.5em;
+}
+
+ul {
+    padding-top: 0.5em;
+}
+
+ul li {
+    padding-left: 1em;
+}
+
+ul li::before {
+    content: "•";
+    color: #333;;
+    display: inline-block;
+    width: 1em;
+    margin-left: -1em;
+}
+</style>
+{{ end }}
+{{ define "body" }}
+<div class="wrapper">
+    <div class="column">
+        <div class="page">
+            <div class="header">
+                <span class="red">hackdoc:</span><span>{{ .Path }}</span> <a href="{{ .GitwebURL }}">[git]</a>
+            </div>
+            {{ .Rendered }}
+        </div>
+        <div class="footer">
+            Generated by <a href="{{ .HackdocURL }}/devtools/hackdoc">hackdoc</a>.
+        </div>
+    </div>
+</div>
+{{ end }}