From ef17033a501980b450afebcdd85fbbfe215738e4 Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph@amissah.com>
Date: Thu, 1 Sep 2016 12:09:50 -0400
Subject: 0.6.7 re-arrange output

---
 org/output.org        | 2893 ++++++++++++++++++++++++-------------------------
 org/sdp.org           |    5 +-
 src/sdp.d             |    3 +-
 src/sdp/output_html.d | 1478 +++++++++++++++++++++++++
 src/sdp/output_hub.d  | 1477 +------------------------
 views/version.txt     |    2 +-
 6 files changed, 2931 insertions(+), 2927 deletions(-)
 create mode 100644 src/sdp/output_html.d

diff --git a/org/output.org b/org/output.org
index 9db43f4..6e50fbc 100644
--- a/org/output.org
+++ b/org/output.org
@@ -16,1321 +16,1314 @@
 * output                                                             :output:
 ** text                                                                :text:
 ** html [#A]                                                           :html:
-*** open
-
-#+name: output_html
-#+BEGIN_SRC d
-struct SDPoutputHTML {
-#+END_SRC
-
 *** css
 
-#+name: output_html
+#+name: output_html_css
 #+BEGIN_SRC d
-  auto html_css() {
-    string css;
-    css="/* SiSU css default stylesheet */
-        body {
-          color: black;
-          background: #ffffff;
-          background-color: #ffffff;
-        }
-        a:link {
-          color: #003399;
-          text-decoration: none;
-        }
-        a:visited {
-          color: #003399;
-          text-decoration: none;
-        }
-        a:hover {
-          color: #000000;
-          background-color: #f9f9aa;
-        }
-        a.lnkocn:link {
-          color: #777777;
-          text-decoration: none;
-        }
-        a:hover img {
-          background-color: #ffffff;
-        }
-        a:active {
-          color: #003399;
-          text-decoration: underline;
-        }
-        div {
-          margin-left: 0;
-          margin-right: 0;
-        }
-        div.p {
-          margin-left: 5%;
-          margin-right: 1%;
-        }
+auto html_css() {
+  string css;
+  css="/* SiSU css default stylesheet */
+      body {
+        color: black;
+        background: #ffffff;
+        background-color: #ffffff;
+      }
+      a:link {
+        color: #003399;
+        text-decoration: none;
+      }
+      a:visited {
+        color: #003399;
+        text-decoration: none;
+      }
+      a:hover {
+        color: #000000;
+        background-color: #f9f9aa;
+      }
+      a.lnkocn:link {
+        color: #777777;
+        text-decoration: none;
+      }
+      a:hover img {
+        background-color: #ffffff;
+      }
+      a:active {
+        color: #003399;
+        text-decoration: underline;
+      }
+      div {
+        margin-left: 0;
+        margin-right: 0;
+      }
+      div.p {
+        margin-left: 5%;
+        margin-right: 1%;
+      }
 
-        #top_band {
-          position: absolute;
-          top: 0;
-          bottom: 80px;
-          width: 100%;
-        }
-        #top_band_search {
-          position: absolute;
-          top: 0px;
-          right: 0px;
-          margin-left: 75%;
-          width: 20%;
-        }
-        #column_left {
-          position: absolute;
-          top: 80px;
-          left: 0;
-          margin-left: 1%;
-          width: 20%;
-        }
-        #column_center {
-          position: absolute;
-          top: 80px;
-          margin-left: 20%;
-          width: 55%;
-        }
-        #column_right {
-          position: absolute;
-          top: 80px;
-          right: 0px;
-          margin-left: 75%;
-          width: 25%;
-        }
-        #pane_major {
-          position: absolute;
-          top: 0px;
-          left: 0;
-          margin-left: 0;
-          width: 80%;
-        }
-        #pane_minor {
-          position: absolute;
-          top: 0px;
-          right: 0px;
-          margin-left: 75%;
-          width: 20%;
-          background-color: #aaaaaa;
-        }
-        .norm, .bold, .verse, .group, .block, .alt {
-          line-height: 133%;
-          margin-left: 0em;
-          margin-right: 2em;
-          margin-top: 12px;
-          margin-bottom: 0px;
-          padding-left: 0em;
-          text-indent: 0em;
-        }
-        p, h0, h1, h2, h3, h4, h5, h6, h7 {
-          display: block;
-          font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
-          font-size: 100%;
-          font-weight: normal;
-          line-height: 133%;
-          text-align: justify;
-          margin-left: 0em;
-          margin-right: 2em;
-          text-indent: 0mm;
-          margin-top: 0.8em;
-          margin-bottom: 0.8em;
-        }
-        /* indent */
-        p.norm { }
-        p.i1 {padding-left: 1em;}
-        p.i2 {padding-left: 2em;}
-        p.i3 {padding-left: 3em;}
-        p.i4 {padding-left: 4em;}
-        p.i5 {padding-left: 5em;}
-        p.i6 {padding-left: 6em;}
-        p.i7 {padding-left: 7em;}
-        p.i8 {padding-left: 8em;}
-        p.i9 {padding-left: 9em;}
-        /* hanging indent */
-        p.h0i0 {
-          padding-left: 0em;
-          text-indent:  0em;
-        }
-        p.h0i1 {
-          padding-left: 1em;
-          text-indent: -1em;
-        }
-        p.h0i2 {
-          padding-left: 2em;
-          text-indent: -2em;
-        }
-        p.h0i3 {
-          padding-left: 3em;
-          text-indent: -3em;
-        }
-        p.h0i4 {
-          padding-left: 4em;
-          text-indent: -4em;
-        }
-        p.h0i5 {
-          padding-left: 5em;
-          text-indent: -5em;
-        }
-        p.h0i6 {
-          padding-left: 6em;
-          text-indent: -6em;
-        }
-        p.h0i7 {
-          padding-left: 7em;
-          text-indent: -7em;
-        }
-        p.h0i8 {
-          padding-left: 8em;
-          text-indent: -8em;
-        }
-        p.h0i9 {
-          padding-left: 9em;
-          text-indent: -9em;
-        }
-        p.h1i0 {
-          padding-left: 0em;
-          text-indent:  1em;
-        }
-        p.h1i1 {
-          padding-left: 1em;
-          text-indent:  0em;
-        }
-        p.h1i2 {
-          padding-left: 2em;
-          text-indent: -1em;
-        }
-        p.h1i3 {
-          padding-left: 3em;
-          text-indent: -2em;
-        }
-        p.h1i4 {
-          padding-left: 4em;
-          text-indent: -3em;
-        }
-        p.h1i5 {
-          padding-left: 5em;
-          text-indent: -4em;
-        }
-        p.h1i6 {
-          padding-left: 6em;
-          text-indent: -5em;
-        }
-        p.h1i7 {
-          padding-left: 7em;
-          text-indent: -6em;
-        }
-        p.h1i8 {
-          padding-left: 8em;
-          text-indent: -7em;
-        }
-        p.h1i9 {
-          padding-left: 9em;
-          text-indent: -8em;
-        }
-        p.h2i0 {
-          padding-left: 0em;
-          text-indent:  2em;
-        }
-        p.h2i1 {
-          padding-left: 1em;
-          text-indent:  1em;
-        }
-        p.h2i2 {
-          padding-left: 2em;
-          text-indent:  0em;
-        }
-        p.h2i3 {
-          padding-left: 3em;
-          text-indent: -1em;
-        }
-        p.h2i4 {
-          padding-left: 4em;
-          text-indent: -2em;
-        }
-        p.h2i5 {
-          padding-left: 5em;
-          text-indent: -3em;
-        }
-        p.h2i6 {
-          padding-left: 6em;
-          text-indent: -4em;
-        }
-        p.h2i7 {
-          padding-left: 7em;
-          text-indent: -5em;
-        }
-        p.h2i8 {
-          padding-left: 8em;
-          text-indent: -6em;
-        }
-        p.h2i9 {
-          padding-left: 9em;
-          text-indent: -7em;
-        }
-        p.h3i0 {
-          padding-left: 0em;
-          text-indent:  3em;
-        }
-        p.h3i1 {
-          padding-left: 1em;
-          text-indent:  2em;
-        }
-        p.h3i2 {
-          padding-left: 2em;
-          text-indent:  1em;
-        }
-        p.h3i3 {
-          padding-left: 3em;
-          text-indent:  0em;
-        }
-        p.h3i4 {
-          padding-left: 4em;
-          text-indent: -1em;
-        }
-        p.h3i5 {
-          padding-left: 5em;
-          text-indent: -2em;
-        }
-        p.h3i6 {
-          padding-left: 6em;
-          text-indent: -3em;
-        }
-        p.h3i7 {
-          padding-left: 7em;
-          text-indent: -4em;
-        }
-        p.h3i8 {
-          padding-left: 8em;
-          text-indent: -5em;
-        }
-        p.h3i9 {
-          padding-left: 9em;
-          text-indent: -6em;
-        }
-        p.h4i0 {
-          padding-left: 0em;
-          text-indent:  4em;
-        }
-        p.h4i1 {
-          padding-left: 1em;
-          text-indent:  3em;
-        }
-        p.h4i2 {
-          padding-left: 2em;
-          text-indent:  2em;
-        }
-        p.h4i3 {
-          padding-left: 3em;
-          text-indent:  1em;
-        }
-        p.h4i4 {
-          padding-left: 4em;
-          text-indent:  0em;
-        }
-        p.h4i5 {
-          padding-left: 5em;
-          text-indent: -1em;
-        }
-        p.h4i6 {
-          padding-left: 6em;
-          text-indent: -2em;
-        }
-        p.h4i7 {
-          padding-left: 7em;
-          text-indent: -3em;
-        }
-        p.h4i8 {
-          padding-left: 8em;
-          text-indent: -4em;
-        }
-        p.h4i9 {
-          padding-left: 9em;
-          text-indent: -5em;
-        }
-        p.h5i0 {
-          padding-left: 0em;
-          text-indent:  5em;
-        }
-        p.h5i1 {
-          padding-left: 1em;
-          text-indent:  4em;
-        }
-        p.h5i2 {
-          padding-left: 2em;
-          text-indent:  3em;
-        }
-        p.h5i3 {
-          padding-left: 3em;
-          text-indent:  2em;
-        }
-        p.h5i4 {
-          padding-left: 4em;
-          text-indent:  1em;
-        }
-        p.h5i5 {
-          padding-left: 5em;
-          text-indent:  0em;
-        }
-        p.h5i6 {
-          padding-left: 6em;
-          text-indent: -1em;
-        }
-        p.h5i7 {
-          padding-left: 7em;
-          text-indent: -2em;
-        }
-        p.h5i8 {
-          padding-left: 8em;
-          text-indent: -3em;
-        }
-        p.h5i9 {
-          padding-left: 9em;
-          text-indent: -4em;
-        }
-        p.h6i0 {
-          padding-left: 0em;
-          text-indent:  6em;
-        }
-        p.h6i1 {
-          padding-left: 1em;
-          text-indent:  5em;
-        }
-        p.h6i2 {
-          padding-left: 2em;
-          text-indent:  4em;
-        }
-        p.h6i3 {
-          padding-left: 3em;
-          text-indent:  3em;
-        }
-        p.h6i4 {
-          padding-left: 4em;
-          text-indent:  2em;
-        }
-        p.h6i5 {
-          padding-left: 5em;
-          text-indent:  1em;
-        }
-        p.h6i6 {
-          padding-left: 6em;
-          text-indent:  0em;
-        }
-        p.h6i7 {
-          padding-left: 7em;
-          text-indent: -1em;
-        }
-        p.h6i8 {
-          padding-left: 8em;
-          text-indent: -2em;
-        }
-        p.h6i9 {
-          padding-left: 9em;
-          text-indent: -3em;
-        }
-        p.h7i0 {
-          padding-left: 0em;
-          text-indent:  7em;
-        }
-        p.h7i1 {
-          padding-left: 1em;
-          text-indent:  6em;
-        }
-        p.h7i2 {
-          padding-left: 2em;
-          text-indent:  5em;
-        }
-        p.h7i3 {
-          padding-left: 3em;
-          text-indent:  4em;
-        }
-        p.h7i4 {
-          padding-left: 4em;
-          text-indent:  3em;
-        }
-        p.h7i5 {
-          padding-left: 5em;
-          text-indent:  2em;
-        }
-        p.h7i6 {
-          padding-left: 6em;
-          text-indent:  1em;
-        }
-        p.h7i7 {
-          padding-left: 7em;
-          text-indent:  0em;
-        }
-        p.h7i8 {
-          padding-left: 8em;
-          text-indent: -1em;
-        }
-        p.h7i9 {
-          padding-left: 9em;
-          text-indent: -2em;
-        }
-        p.h8i0 {
-          padding-left: 0em;
-          text-indent:  8em;
-        }
-        p.h8i1 {
-          padding-left: 1em;
-          text-indent:  7em;
-        }
-        p.h8i2 {
-          padding-left: 2em;
-          text-indent:  6em;
-        }
-        p.h8i3 {
-          padding-left: 3em;
-          text-indent:  5em;
-        }
-        p.h8i4 {
-          padding-left: 4em;
-          text-indent:  4em;
-        }
-        p.h8i5 {
-          padding-left: 5em;
-          text-indent:  3em;
-        }
-        p.h8i6 {
-          padding-left: 6em;
-          text-indent:  2em;
-        }
-        p.h8i7 {
-          padding-left: 7em;
-          text-indent:  1em;
-        }
-        p.h8i8 {
-          padding-left: 8em;
-          text-indent:  0em;
-        }
-        p.h8i9 {
-          padding-left: 9em;
-          text-indent: -1em;
-        }
-        p.h9i0 {
-          padding-left: 0em;
-          text-indent:  9em;
-        }
-        p.h9i1 {
-          padding-left: 1em;
-          text-indent:  8em;
-        }
-        p.h9i2 {
-          padding-left: 2em;
-          text-indent:  7em;
-        }
-        p.h9i3 {
-          padding-left: 3em;
-          text-indent:  6em;
-        }
-        p.h9i4 {
-          padding-left: 4em;
-          text-indent:  5em;
-        }
-        p.h9i5 {
-          padding-left: 5em;
-          text-indent:  4em;
-        }
-        p.h9i6 {
-          padding-left: 6em;
-          text-indent:  3em;
-        }
-        p.h9i7 {
-          padding-left: 7em;
-          text-indent:  2em;
-        }
-        p.h9i8 {
-          padding-left: 8em;
-          text-indent:  1em;
-        }
-        p.h9i9 {
-          padding-left: 9em;
-          text-indent:  0em;
-        }
-        p.it0 {
-          margin-left: 0em;
-          margin-top: 6px;
-          margin-bottom: 0px;
-          line-height: 100%;
-        }
-        p.it1 {
-          margin-left: 1em;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          line-height: 100%;
-        }
-        p.it2 {
-          margin-left: 2em;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          line-height: 100%;
-        }
-        p.it3 {
-          margin-left: 3em;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          line-height: 100%;
-        }
-        p.it4 {
-          margin-left: 4em;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          line-height: 100%;
-        }
-        p.it5 {
-          margin-left: 5em;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          line-height: 100%;
-        }
-        p.it6 {
-          margin-left: 6em;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          line-height: 100%;
-        }
-        p.it7 {
-          margin-left: 7em;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          line-height: 100%;
-        }
-        p.it8 {
-          margin-left: 8em;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          line-height: 100%;
-        }
-        p.it9 {
-          margin-left: 9em;
-          margin-bottom: 0px;
-          margin-top: 0px;
-          line-height: 100%;
-        }
-        p.block { }
-        p.group { }
-        p.alt { }
-        p.verse {
-          margin-bottom: 6px;
-        }
-        p.code {
-          font-family: inconsolata, andale mono, courier new, courier, monospace;
-          font-size: 90%;
-          text-align: left;
-          background-color: #eeeeee;
-        }
-        p.caption {
-          text-align: left;
-          font-size: 80%;
-          display: inline;
-        }
-        p.endnote {
-          font-size: 96%;
-          line-height: 120%;
-          text-align: left;
-          margin-right: 15mm;
-        }
-        p.endnote_indent {
-          font-size: 96%;
-          line-height: 120%;
-          text-align: left;
-          margin-left: 2em;
-          margin-right: 15mm;
-        }
-        p.center {
-          text-align: center;
-        }
-        p.bold {
-          font-weight: bold;
-        }
-        p.bold_left {
-          font-weight: bold;
-          text-align: left;
-        }
-        p.centerbold {
-          text-align: center;
-          font-weight: bold;
-        }
-        p.em {
-          font-weight: bold;
-          font-style: normal;
-          background: #fff3b6;
-        }
-        p.small {
-          font-size: 80%;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          margin-right: 6px;
-          text-align: left;
-        }
-        .tiny, .tiny_left, .tiny_right, .tiny_center {
-          font-size: 10px;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          color: #777777;
-          margin-right: 6px;
-          text-align: left;
-        }
-        p.tiny { }
-        p.tiny_left {
-          margin-left: 0px;
-          margin-right: 0px;
-          text-align: left;
-        }
-        p.tiny_right {
-          margin-right: 1em;
-          text-align: right;
-        }
-        p.tiny_center {
-          margin-left: 0px;
-          margin-right: 0px;
-          text-align: center;
-        }
-        p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent {
-          font-size: 80%;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          margin-left: 2mm;
-          margin-right: 4px;
-          text-align: left;
-        }
-        p.pane { }
-        p.pane_title {
-          font-weight: bold;
-          margin-bottom: 0px;
-        }
-        p.pane_blurb {
-          font-size: 10px;
-          margin-bottom: 0px;
-        }
-        p.pane_link {
-          font-size: 10px;
-          margin-bottom: 0px;
-          margin-left: 4mm;
-        }
-        p.pane_indent {
-          font-size: 10px;
-          margin-bottom: 0px;
-          margin-left: 4mm;
-        }
-        p.concordance_word {
-          line-height: 150%;
-          font-weight: bold;
-          display: inline;
-          margin-top: 4px;
-          margin-bottom: 1px;
-        }
-        p.concordance_count {
-          font-size: 80%;
-          color: #777777;
-          display: inline;
-          margin-left: 0em;
-        }
-        p.concordance_object {
-          font-size: 80%;
-          line-height: 120%;
-          text-align: left;
-          margin-left: 3em;
-          margin-top: 1px;
-          margin-bottom: 3px;
-        }
-        p.book_index_lev1 {
-          line-height: 100%;
-          margin-top: 4px;
-          margin-bottom: 1px;
-        }
-        p.book_index_lev2 {
-          line-height: 100%;
-          text-align: left;
-          margin-left: 3em;
-          margin-top: 1px;
-          margin-bottom: 3px;
-        }
-        p.quickref {
-          font-size: 10px;
-          font-style: italic;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          color: #777777;
-          margin-right: 5px;
-          text-align: left;
-        }
-        p.bigref {
-          font-size: 11px;
-          font-weight: bold;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          color: #777777;
-          margin-right: 5px;
-          text-align: center;
-        }
-        p.letter {
-          font-weight: bold;
-          font-size: 80%;
-          margin-left: 0em;
-          margin-top: 2px;
-          margin-bottom: 2px;
-          margin-right: 6px;
-          text-align: left;
-          color: white;
-          background: #880000;
-        }
-        tt {
-          font-family: inconsolata, andale mono, courier new, courier, monospace;
-          background-color: #eeeeee;
-        }
-        label.ocn {
-          width: 2%;
-          float: right;
-          top: 0;
-          font-size: 10px;
-          margin-top: 0px;
-          margin-bottom: 5px;
-          color: #777777;
-          margin-right: 5px;
-          text-align: right;
-          background-color: #ffffff;
-        }
-        table { }
-        tr { }
-        th,td {
-          vertical-align: top;
-          text-align: left;
-        }
-        th {
-          font-weight: bold;
-        }
-        p.left,th.left,td.left {
-          text-align: left;
-        }
-        p.small_left,th.small_left,td.small_left {
-          text-align: left;
-          font-size: 80%;
-        }
-        p.right,th.right,td.right {
-          text-align: right;
-        }
-        #horizontal_links {
-          background: #eeeeee;
-          margin-left: 5%;
-          margin-right: 5%;
-        }
-        #horizontal {
-          margin: 0;
-          padding: 0 0 0 10px;
-          border-top: 1px solid #000077;
-          border-bottom: 1px solid #000077;
-        }
-        #horizontal li {
-          margin: 0 0 0 0;
-          padding: 0 16px 0 0;
-          display: inline;
-          list-style-type: none;
-          text-align: left;
-          background: none;
-        }
-        #horizontal a {
-          line-height: 12px;
-          margin: 0 0 0 0;
-          text-decoration: none;
-          color: #000077;
-        }
-        #horizontal a.active, #horizontal a:hover {
-          border-bottom: 2px solid #777777;
-          padding-bottom: 2px;
-          color: #000077;
-        }
-        #horizontal a:hover {
-          color: #000077;
-        }
-        #document_versions {
-          position: absolute;
-          top: 10mm;
-          right: 2%;
-          width: 12%;
-          float: right;
-        }
-        #vertical_links {
-          position: absolute;
-          top: 10mm;
-          right: 0px;
-          width: 20%;
-          background: #dddddd;
-          float: right;
-        }
-        #vertical {
-          padding: 0 12px 0px 0px;
-          margin-left: 2%;
-          margin-right: 2%;
-        }
-        #vertical li {
-          display: block;
-          list-style-type: none;
-        }
-        #vertical a {
-          line-height: 12px;
-          text-decoration: none;
-          color: #000077;
-        }
-        #vertical a.active, #vertical a:hover {
-          border-bottom: 2px solid #777777;
-          padding-bottom: 2px;
-          color: #000077;
-        }
-        ul, li {
-          list-style-type: none;
-          list-style: none;
-          padding-left: 20px;
-          display: block;
-          font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
-          font-weight: normal;
-          line-height: 150%;
-          text-align: left;
-          text-indent: 0mm;
-          margin-left: 1em;
-          margin-right: 2em;
-          margin-top: 3px;
-          margin-bottom: 3px;
-        }
-        li {
-          background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
-        }
-        ul {
-        }
-        li.bullet { margin-left: 1em; }
-        li.i1 { margin-left: 2em; }
-        li.i2 { margin-left: 3em; }
-        li.i3 { margin-left: 4em; }
-        li.i4 { margin-left: 5em; }
-        li.i5 { margin-left: 6em; }
-        li.i6 { margin-left: 7em; }
-        li.i7 { margin-left: 8em; }
-        li.i8 { margin-left: 9em; }
-        li.i9 { margin-left: 10em; }
-        li.doc, li.ref, li.refcenter {
-          margin-top: 0px;
-          margin-bottom: 0px;
-          margin-right: 0px;
-          font-size: 8px;
-          font-style: normal;
-          text-align: left;
-        }
-        li.doc {
-          background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
-          padding-left: 16px;
-          margin-left: 10px;
-          margin-right: 0px;
-        }
-        li.ref {
-          background: none;
-          padding-left: 0;
-          margin-left: 0;
-          color: #777777;
-        }
-        li.refcenter {
-          background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
-          padding-left: 20px;
-          margin-left: 10%;
-          font-size: 9px;
-          color: #777777;
-          text-align: center;
-        }
-        li.refbold {
-          list-style-type: none;
-          padding-left: 16px;
-          margin-left: 0;
-          margin-right: 10mm;
-          font-weight: bold;
-        }
-        h0, h1, h2, h3, h4, h5, h6, h7 {
-          font-weight: bold;
-          line-height: 120%;
-          text-align: left;
-          margin-top: 20px;
-          margin-bottom: 10px;
-        }
-        h4.norm, h5.norm, h6.norm, h7.norm {
-          margin-top: 10px;
-          margin-bottom: 0px;
-        }
-        h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {
-          text-align: center;
-        }
-        h0 { font-size: 125%; }
-        h1 { font-size: 120%; }
-        h2 { font-size: 115%; }
-        h3 { font-size: 110%; }
-        h4 { font-size: 105%; }
-        h5 { font-size: 100%; }
-        h6 { font-size: 100%; }
-        h7 { font-size: 100%; }
-        h1.i {margin-left: 2em;}
-        h2.i {margin-left: 3em;}
-        h3.i {margin-left: 4em;}
-        h4.i {margin-left: 5em;}
-        h5.i {margin-left: 6em;}
-        h6.i {margin-left: 7em;}
-        h7.i {margin-left: 8em;}
-        h8.i {margin-left: 9em;}
-        h9.i {margin-left: 10em;}
-        h1.top_band {
-          display: inline;
-          text-align: left;
-          margin-top: 0;
-          margin-left: 4mm;
-          text-indent: 0mm;
-          font-weight: bold;
-          font-size: 120%;
-        }
-        h2.top_band_tiny {
-          font-size: 10px;
-          font-weight: normal;
-          margin-top: 0px;
-          margin-left: 4mm;
-          text-indent: 0mm;
-          margin-bottom: 0px;
-          color: #777777;
-          margin-left: 140px;
-          margin-right: 0px;
-          text-align: left;
-        }
-        p.top_band {
-          display: inline;
-          text-align: left;
-          margin-top: 0;
-          margin-left: 140px;
-          text-indent: 0mm;
-          font-weight: bold;
-          font-size: 120%;
-        }
-        p.top_band_tiny {
-          font-size: 10px;
-          margin-top: 0px;
-          margin-bottom: 0px;
-          color: #777777;
-          margin-left: 140px;
-          margin-right: 0px;
-          text-align: left;
-        }
-        p.top_band_image {
-          float: left;
-          display: inline;
-          text-align: left;
-          margin-top: 0;
-          margin-left: 1mm;
-          text-indent: 0mm;
-          margin-right: 1mm;
-        }
-        .banner, .subbanner {
-          font-weight: bold;
-          text-align: center;
-          margin-left: 10mm;
-          margin-right: 15mm;
-          margin-top: 20px;
-          margin-bottom: 10px;
-        }
-        h0.banner {
-          font-size: 125%;
-        }
-        h1.banner {
-          font-size: 120%;
-        }
-        h1.subbanner {
-          font-size: 115%;
-        }
-        h2.banner {
-          font-size: 110%;
-        }
-        h3.banner {
-          color: #990000;
-          font-size: 105%;
-        }
-        h4.banner {
-          color: #ff0000;
-          font-size: 100%;
-        }
-        h5.banner {
-        }
-        h6.banner {
-        }
-        h7.banner {
-        }
-        .toc {
-          font-weight: normal;
-          margin-top: 6px;
-          margin-bottom: 6px;
-        }
-        h0.toc {
-          margin-left: 1em;
-          font-size: 120%;
-          line-height: 150%;
-        }
-        h1.toc {
-          margin-left: 1em;
-          font-size: 115%;
-          line-height: 150%;
-        }
-        h2.toc {
-          margin-left: 2em;
-          font-size: 110%;
-          line-height: 140%;
-        }
-        h3.toc {
-          margin-left: 3em;
-          font-size: 105%;
-          line-height: 120%;
-        }
-        h4.toc {
-          margin-left: 4em;
-          font-size: 100%;
-          line-height: 120%;
-        }
-        h5.toc {
-          margin-left: 5em;
-          font-size: 95%;
-          line-height: 110%;
-        }
-        h6.toc {
-          margin-left: 6em;
-          font-size: 90%;
-          line-height: 110%;
-        }
-        h7.toc {
-          margin-left: 7em;
-          font-size: 85%;
-          line-height: 100%;
-        }
-        .microtoc {
-          margin-top: 2px;
-          margin-bottom: 2px;
-        }
-        h0.microtoc {
-          margin-left: 0mm;
-          font-size: 120%;
-        }
-        h1.microtoc {
-          margin-left: 0mm;
-          font-size: 115%;
-        }
-        h2.microtoc {
-          margin-left: 5mm;
-          font-size: 110%;
-        }
-        h3.microtoc {
-          margin-left: 10mm;
-          font-size: 105%;
-        }
-        h4.microtoc {
-          margin-left: 15mm;
-          font-weight: normal;
-          font-size: 100%;
-        }
-        h5.microtoc {
-          margin-left: 20mm;
-          font-weight: normal;
-          font-size: 95%;
-        }
-        h6.microtoc {
-          margin-left: 25mm;
-          font-weight: normal;
-          font-size: 90%;
-        }
-        h7.microtoc {
-          margin-left: 30mm;
-          font-weight: normal;
-          font-size: 85%;
-        }
-        .subtoc {
-          margin-right: 34%;
-          font-weight: normal;
-        }
-        h5.subtoc {
-          margin-left: 2em;
-          font-size: 80%;
-          margin-top: 2px;
-          margin-bottom: 2px;
-        }
-        h6.subtoc {
-          margin-left: 3em;
-          font-size: 75%;
-          margin-top: 0px;
-          margin-bottom: 0px;
-        }
-        h7.subtoc {
-          margin-left: 4em;
-          font-size: 70%;
-          margin-top: 0px;
-          margin-bottom: 0px;
-        }
-        div.substance {
-          width: 100%;
-          background-color: #ffffff;
-        }
-        div.ocn {
-          width: 5%;
-          float: right;
-          top: 0;
-          background-color: #ffffff;
-        }
-        div.endnote {
-          width: 95%;
-          background-color: #fffffff;
-        }
-        div.toc {
-          position: absolute;
-          float: left;
-          margin: 0;
-          padding: 0;
-          padding-top: 0.5em;
-          border: 0;
-          width: 13em;
-          background-color: #eeeeee;
-          margin-right:1em;
-        }
-        div.summary {
-          margin: 0;
-          padding: 0;
-          border-left: 13em solid #eeeeee;
-          padding-left: 1em;
-          background-color: #eeeeee;
-        }
-        div.content, div.main_column {
-          margin: 0;
-          padding: 0;
-          border-left: 13em solid #ffffff;
-          padding-left: 1em;
-          padding-right: 1em;
-        }
-        div.content0, div.main_column0 {
-          margin: 0;
-          padding: 0;
-          border-left: 0% solid #ffffff;
-          padding-left: 5%;
-        }
-        div.scroll {
-          margin: 0;
-          padding: 0;
-          padding-left: 1em;
-          padding-right: 1em;
-        }
-        div.content:after {
-          content:' ';
-          clear:both;
-          display:block;
-          height:0;
-          overflow:hidden
-        }
-        div.footer {
-          clear:left;
-          padding: 0.5em;
-          font-size: 80%;
-          margin: 0;
-        }
-        div.toc ul {
-          list-style: none;
-          padding: 0;
-          margin: 0;
-        }
-        div.toc li ul a, li ul span.currentlink
-        {
-          font-weight: normal;
-          font-size: 90%;
-          padding-left: 2em;
-          background-color: #eeeeee;
-        }
-        div.toc a, span.currentlink{
-          display:block;
-          text-decoration: none;
-          padding-left: 0.5em;
-          color: #0000aa;
-        }
-        hr {
-          width: 90%;
-        }
-        span.currentlink {
-          text-decoration: none;
-          background-color: #aaaaf9;
-        }
-        div.toc a:visited {
-          color: #0000aa;
-        }
-        div.toc a:hover {
-          color: #000000;
-          background-color: #f9f9aa;
-        }
-        .minitoc {
-          font-weight: normal;
-          margin-top: 2px;
-          margin-bottom: 2px;
-        }
-        h1.minitoc, h2.minitoc, h3.minitoc {
-          margin-left: 0em;
-          font-weight: bold;
-          text-align: left;
-          font-size: 90%;
-          margin-top: 4px;
-          margin-bottom: 4px;
-        }
-        h4.minitoc {
-          margin-left: 0em;
-          font-size: 90%;
-        }
-        h5.minitoc {
-          margin-left: 1em;
-          font-size: 85%;
-        }
-        h6.minitoc {
-          margin-left: 2em;
-          font-size: 85%;
-        }
-        h7.minitoc {
-          margin-left: 3em;
-          font-size: 80%;
-        }
-        h0.minitoc {
-          margin-left: 0em;
-          font-size: 90%;
-        }
-        h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {
-          text-align: center
-        }
-        h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {
-          text-align: center;
-          color: #ff0000;
-          margin-left: 5mm;
-          text-indent: 5mm;
-          margin-top: 30px;
-          margin-bottom: 20px;
-          margin-right: 15mm;
-        }
-        h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {
-          text-align: center;
-          color: #990000;
-          margin-left: 5mm;
-          text-indent: 5mm;
-          margin-top: 30px;
-          margin-bottom: 20px;
-          margin-right: 15mm;
-    }";
-    return css;
+      #top_band {
+        position: absolute;
+        top: 0;
+        bottom: 80px;
+        width: 100%;
+      }
+      #top_band_search {
+        position: absolute;
+        top: 0px;
+        right: 0px;
+        margin-left: 75%;
+        width: 20%;
+      }
+      #column_left {
+        position: absolute;
+        top: 80px;
+        left: 0;
+        margin-left: 1%;
+        width: 20%;
+      }
+      #column_center {
+        position: absolute;
+        top: 80px;
+        margin-left: 20%;
+        width: 55%;
+      }
+      #column_right {
+        position: absolute;
+        top: 80px;
+        right: 0px;
+        margin-left: 75%;
+        width: 25%;
+      }
+      #pane_major {
+        position: absolute;
+        top: 0px;
+        left: 0;
+        margin-left: 0;
+        width: 80%;
+      }
+      #pane_minor {
+        position: absolute;
+        top: 0px;
+        right: 0px;
+        margin-left: 75%;
+        width: 20%;
+        background-color: #aaaaaa;
+      }
+      .norm, .bold, .verse, .group, .block, .alt {
+        line-height: 133%;
+        margin-left: 0em;
+        margin-right: 2em;
+        margin-top: 12px;
+        margin-bottom: 0px;
+        padding-left: 0em;
+        text-indent: 0em;
+      }
+      p, h0, h1, h2, h3, h4, h5, h6, h7 {
+        display: block;
+        font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
+        font-size: 100%;
+        font-weight: normal;
+        line-height: 133%;
+        text-align: justify;
+        margin-left: 0em;
+        margin-right: 2em;
+        text-indent: 0mm;
+        margin-top: 0.8em;
+        margin-bottom: 0.8em;
+      }
+      /* indent */
+      p.norm { }
+      p.i1 {padding-left: 1em;}
+      p.i2 {padding-left: 2em;}
+      p.i3 {padding-left: 3em;}
+      p.i4 {padding-left: 4em;}
+      p.i5 {padding-left: 5em;}
+      p.i6 {padding-left: 6em;}
+      p.i7 {padding-left: 7em;}
+      p.i8 {padding-left: 8em;}
+      p.i9 {padding-left: 9em;}
+      /* hanging indent */
+      p.h0i0 {
+        padding-left: 0em;
+        text-indent:  0em;
+      }
+      p.h0i1 {
+        padding-left: 1em;
+        text-indent: -1em;
+      }
+      p.h0i2 {
+        padding-left: 2em;
+        text-indent: -2em;
+      }
+      p.h0i3 {
+        padding-left: 3em;
+        text-indent: -3em;
+      }
+      p.h0i4 {
+        padding-left: 4em;
+        text-indent: -4em;
+      }
+      p.h0i5 {
+        padding-left: 5em;
+        text-indent: -5em;
+      }
+      p.h0i6 {
+        padding-left: 6em;
+        text-indent: -6em;
+      }
+      p.h0i7 {
+        padding-left: 7em;
+        text-indent: -7em;
+      }
+      p.h0i8 {
+        padding-left: 8em;
+        text-indent: -8em;
+      }
+      p.h0i9 {
+        padding-left: 9em;
+        text-indent: -9em;
+      }
+      p.h1i0 {
+        padding-left: 0em;
+        text-indent:  1em;
+      }
+      p.h1i1 {
+        padding-left: 1em;
+        text-indent:  0em;
+      }
+      p.h1i2 {
+        padding-left: 2em;
+        text-indent: -1em;
+      }
+      p.h1i3 {
+        padding-left: 3em;
+        text-indent: -2em;
+      }
+      p.h1i4 {
+        padding-left: 4em;
+        text-indent: -3em;
+      }
+      p.h1i5 {
+        padding-left: 5em;
+        text-indent: -4em;
+      }
+      p.h1i6 {
+        padding-left: 6em;
+        text-indent: -5em;
+      }
+      p.h1i7 {
+        padding-left: 7em;
+        text-indent: -6em;
+      }
+      p.h1i8 {
+        padding-left: 8em;
+        text-indent: -7em;
+      }
+      p.h1i9 {
+        padding-left: 9em;
+        text-indent: -8em;
+      }
+      p.h2i0 {
+        padding-left: 0em;
+        text-indent:  2em;
+      }
+      p.h2i1 {
+        padding-left: 1em;
+        text-indent:  1em;
+      }
+      p.h2i2 {
+        padding-left: 2em;
+        text-indent:  0em;
+      }
+      p.h2i3 {
+        padding-left: 3em;
+        text-indent: -1em;
+      }
+      p.h2i4 {
+        padding-left: 4em;
+        text-indent: -2em;
+      }
+      p.h2i5 {
+        padding-left: 5em;
+        text-indent: -3em;
+      }
+      p.h2i6 {
+        padding-left: 6em;
+        text-indent: -4em;
+      }
+      p.h2i7 {
+        padding-left: 7em;
+        text-indent: -5em;
+      }
+      p.h2i8 {
+        padding-left: 8em;
+        text-indent: -6em;
+      }
+      p.h2i9 {
+        padding-left: 9em;
+        text-indent: -7em;
+      }
+      p.h3i0 {
+        padding-left: 0em;
+        text-indent:  3em;
+      }
+      p.h3i1 {
+        padding-left: 1em;
+        text-indent:  2em;
+      }
+      p.h3i2 {
+        padding-left: 2em;
+        text-indent:  1em;
+      }
+      p.h3i3 {
+        padding-left: 3em;
+        text-indent:  0em;
+      }
+      p.h3i4 {
+        padding-left: 4em;
+        text-indent: -1em;
+      }
+      p.h3i5 {
+        padding-left: 5em;
+        text-indent: -2em;
+      }
+      p.h3i6 {
+        padding-left: 6em;
+        text-indent: -3em;
+      }
+      p.h3i7 {
+        padding-left: 7em;
+        text-indent: -4em;
+      }
+      p.h3i8 {
+        padding-left: 8em;
+        text-indent: -5em;
+      }
+      p.h3i9 {
+        padding-left: 9em;
+        text-indent: -6em;
+      }
+      p.h4i0 {
+        padding-left: 0em;
+        text-indent:  4em;
+      }
+      p.h4i1 {
+        padding-left: 1em;
+        text-indent:  3em;
+      }
+      p.h4i2 {
+        padding-left: 2em;
+        text-indent:  2em;
+      }
+      p.h4i3 {
+        padding-left: 3em;
+        text-indent:  1em;
+      }
+      p.h4i4 {
+        padding-left: 4em;
+        text-indent:  0em;
+      }
+      p.h4i5 {
+        padding-left: 5em;
+        text-indent: -1em;
+      }
+      p.h4i6 {
+        padding-left: 6em;
+        text-indent: -2em;
+      }
+      p.h4i7 {
+        padding-left: 7em;
+        text-indent: -3em;
+      }
+      p.h4i8 {
+        padding-left: 8em;
+        text-indent: -4em;
+      }
+      p.h4i9 {
+        padding-left: 9em;
+        text-indent: -5em;
+      }
+      p.h5i0 {
+        padding-left: 0em;
+        text-indent:  5em;
+      }
+      p.h5i1 {
+        padding-left: 1em;
+        text-indent:  4em;
+      }
+      p.h5i2 {
+        padding-left: 2em;
+        text-indent:  3em;
+      }
+      p.h5i3 {
+        padding-left: 3em;
+        text-indent:  2em;
+      }
+      p.h5i4 {
+        padding-left: 4em;
+        text-indent:  1em;
+      }
+      p.h5i5 {
+        padding-left: 5em;
+        text-indent:  0em;
+      }
+      p.h5i6 {
+        padding-left: 6em;
+        text-indent: -1em;
+      }
+      p.h5i7 {
+        padding-left: 7em;
+        text-indent: -2em;
+      }
+      p.h5i8 {
+        padding-left: 8em;
+        text-indent: -3em;
+      }
+      p.h5i9 {
+        padding-left: 9em;
+        text-indent: -4em;
+      }
+      p.h6i0 {
+        padding-left: 0em;
+        text-indent:  6em;
+      }
+      p.h6i1 {
+        padding-left: 1em;
+        text-indent:  5em;
+      }
+      p.h6i2 {
+        padding-left: 2em;
+        text-indent:  4em;
+      }
+      p.h6i3 {
+        padding-left: 3em;
+        text-indent:  3em;
+      }
+      p.h6i4 {
+        padding-left: 4em;
+        text-indent:  2em;
+      }
+      p.h6i5 {
+        padding-left: 5em;
+        text-indent:  1em;
+      }
+      p.h6i6 {
+        padding-left: 6em;
+        text-indent:  0em;
+      }
+      p.h6i7 {
+        padding-left: 7em;
+        text-indent: -1em;
+      }
+      p.h6i8 {
+        padding-left: 8em;
+        text-indent: -2em;
+      }
+      p.h6i9 {
+        padding-left: 9em;
+        text-indent: -3em;
+      }
+      p.h7i0 {
+        padding-left: 0em;
+        text-indent:  7em;
+      }
+      p.h7i1 {
+        padding-left: 1em;
+        text-indent:  6em;
+      }
+      p.h7i2 {
+        padding-left: 2em;
+        text-indent:  5em;
+      }
+      p.h7i3 {
+        padding-left: 3em;
+        text-indent:  4em;
+      }
+      p.h7i4 {
+        padding-left: 4em;
+        text-indent:  3em;
+      }
+      p.h7i5 {
+        padding-left: 5em;
+        text-indent:  2em;
+      }
+      p.h7i6 {
+        padding-left: 6em;
+        text-indent:  1em;
+      }
+      p.h7i7 {
+        padding-left: 7em;
+        text-indent:  0em;
+      }
+      p.h7i8 {
+        padding-left: 8em;
+        text-indent: -1em;
+      }
+      p.h7i9 {
+        padding-left: 9em;
+        text-indent: -2em;
+      }
+      p.h8i0 {
+        padding-left: 0em;
+        text-indent:  8em;
+      }
+      p.h8i1 {
+        padding-left: 1em;
+        text-indent:  7em;
+      }
+      p.h8i2 {
+        padding-left: 2em;
+        text-indent:  6em;
+      }
+      p.h8i3 {
+        padding-left: 3em;
+        text-indent:  5em;
+      }
+      p.h8i4 {
+        padding-left: 4em;
+        text-indent:  4em;
+      }
+      p.h8i5 {
+        padding-left: 5em;
+        text-indent:  3em;
+      }
+      p.h8i6 {
+        padding-left: 6em;
+        text-indent:  2em;
+      }
+      p.h8i7 {
+        padding-left: 7em;
+        text-indent:  1em;
+      }
+      p.h8i8 {
+        padding-left: 8em;
+        text-indent:  0em;
+      }
+      p.h8i9 {
+        padding-left: 9em;
+        text-indent: -1em;
+      }
+      p.h9i0 {
+        padding-left: 0em;
+        text-indent:  9em;
+      }
+      p.h9i1 {
+        padding-left: 1em;
+        text-indent:  8em;
+      }
+      p.h9i2 {
+        padding-left: 2em;
+        text-indent:  7em;
+      }
+      p.h9i3 {
+        padding-left: 3em;
+        text-indent:  6em;
+      }
+      p.h9i4 {
+        padding-left: 4em;
+        text-indent:  5em;
+      }
+      p.h9i5 {
+        padding-left: 5em;
+        text-indent:  4em;
+      }
+      p.h9i6 {
+        padding-left: 6em;
+        text-indent:  3em;
+      }
+      p.h9i7 {
+        padding-left: 7em;
+        text-indent:  2em;
+      }
+      p.h9i8 {
+        padding-left: 8em;
+        text-indent:  1em;
+      }
+      p.h9i9 {
+        padding-left: 9em;
+        text-indent:  0em;
+      }
+      p.it0 {
+        margin-left: 0em;
+        margin-top: 6px;
+        margin-bottom: 0px;
+        line-height: 100%;
+      }
+      p.it1 {
+        margin-left: 1em;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        line-height: 100%;
+      }
+      p.it2 {
+        margin-left: 2em;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        line-height: 100%;
+      }
+      p.it3 {
+        margin-left: 3em;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        line-height: 100%;
+      }
+      p.it4 {
+        margin-left: 4em;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        line-height: 100%;
+      }
+      p.it5 {
+        margin-left: 5em;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        line-height: 100%;
+      }
+      p.it6 {
+        margin-left: 6em;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        line-height: 100%;
+      }
+      p.it7 {
+        margin-left: 7em;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        line-height: 100%;
+      }
+      p.it8 {
+        margin-left: 8em;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        line-height: 100%;
+      }
+      p.it9 {
+        margin-left: 9em;
+        margin-bottom: 0px;
+        margin-top: 0px;
+        line-height: 100%;
+      }
+      p.block { }
+      p.group { }
+      p.alt { }
+      p.verse {
+        margin-bottom: 6px;
+      }
+      p.code {
+        font-family: inconsolata, andale mono, courier new, courier, monospace;
+        font-size: 90%;
+        text-align: left;
+        background-color: #eeeeee;
+      }
+      p.caption {
+        text-align: left;
+        font-size: 80%;
+        display: inline;
+      }
+      p.endnote {
+        font-size: 96%;
+        line-height: 120%;
+        text-align: left;
+        margin-right: 15mm;
+      }
+      p.endnote_indent {
+        font-size: 96%;
+        line-height: 120%;
+        text-align: left;
+        margin-left: 2em;
+        margin-right: 15mm;
+      }
+      p.center {
+        text-align: center;
+      }
+      p.bold {
+        font-weight: bold;
+      }
+      p.bold_left {
+        font-weight: bold;
+        text-align: left;
+      }
+      p.centerbold {
+        text-align: center;
+        font-weight: bold;
+      }
+      p.em {
+        font-weight: bold;
+        font-style: normal;
+        background: #fff3b6;
+      }
+      p.small {
+        font-size: 80%;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        margin-right: 6px;
+        text-align: left;
+      }
+      .tiny, .tiny_left, .tiny_right, .tiny_center {
+        font-size: 10px;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        color: #777777;
+        margin-right: 6px;
+        text-align: left;
+      }
+      p.tiny { }
+      p.tiny_left {
+        margin-left: 0px;
+        margin-right: 0px;
+        text-align: left;
+      }
+      p.tiny_right {
+        margin-right: 1em;
+        text-align: right;
+      }
+      p.tiny_center {
+        margin-left: 0px;
+        margin-right: 0px;
+        text-align: center;
+      }
+      p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent {
+        font-size: 80%;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        margin-left: 2mm;
+        margin-right: 4px;
+        text-align: left;
+      }
+      p.pane { }
+      p.pane_title {
+        font-weight: bold;
+        margin-bottom: 0px;
+      }
+      p.pane_blurb {
+        font-size: 10px;
+        margin-bottom: 0px;
+      }
+      p.pane_link {
+        font-size: 10px;
+        margin-bottom: 0px;
+        margin-left: 4mm;
+      }
+      p.pane_indent {
+        font-size: 10px;
+        margin-bottom: 0px;
+        margin-left: 4mm;
+      }
+      p.concordance_word {
+        line-height: 150%;
+        font-weight: bold;
+        display: inline;
+        margin-top: 4px;
+        margin-bottom: 1px;
+      }
+      p.concordance_count {
+        font-size: 80%;
+        color: #777777;
+        display: inline;
+        margin-left: 0em;
+      }
+      p.concordance_object {
+        font-size: 80%;
+        line-height: 120%;
+        text-align: left;
+        margin-left: 3em;
+        margin-top: 1px;
+        margin-bottom: 3px;
+      }
+      p.book_index_lev1 {
+        line-height: 100%;
+        margin-top: 4px;
+        margin-bottom: 1px;
+      }
+      p.book_index_lev2 {
+        line-height: 100%;
+        text-align: left;
+        margin-left: 3em;
+        margin-top: 1px;
+        margin-bottom: 3px;
+      }
+      p.quickref {
+        font-size: 10px;
+        font-style: italic;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        color: #777777;
+        margin-right: 5px;
+        text-align: left;
+      }
+      p.bigref {
+        font-size: 11px;
+        font-weight: bold;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        color: #777777;
+        margin-right: 5px;
+        text-align: center;
+      }
+      p.letter {
+        font-weight: bold;
+        font-size: 80%;
+        margin-left: 0em;
+        margin-top: 2px;
+        margin-bottom: 2px;
+        margin-right: 6px;
+        text-align: left;
+        color: white;
+        background: #880000;
+      }
+      tt {
+        font-family: inconsolata, andale mono, courier new, courier, monospace;
+        background-color: #eeeeee;
+      }
+      label.ocn {
+        width: 2%;
+        float: right;
+        top: 0;
+        font-size: 10px;
+        margin-top: 0px;
+        margin-bottom: 5px;
+        color: #777777;
+        margin-right: 5px;
+        text-align: right;
+        background-color: #ffffff;
+      }
+      table { }
+      tr { }
+      th,td {
+        vertical-align: top;
+        text-align: left;
+      }
+      th {
+        font-weight: bold;
+      }
+      p.left,th.left,td.left {
+        text-align: left;
+      }
+      p.small_left,th.small_left,td.small_left {
+        text-align: left;
+        font-size: 80%;
+      }
+      p.right,th.right,td.right {
+        text-align: right;
+      }
+      #horizontal_links {
+        background: #eeeeee;
+        margin-left: 5%;
+        margin-right: 5%;
+      }
+      #horizontal {
+        margin: 0;
+        padding: 0 0 0 10px;
+        border-top: 1px solid #000077;
+        border-bottom: 1px solid #000077;
+      }
+      #horizontal li {
+        margin: 0 0 0 0;
+        padding: 0 16px 0 0;
+        display: inline;
+        list-style-type: none;
+        text-align: left;
+        background: none;
+      }
+      #horizontal a {
+        line-height: 12px;
+        margin: 0 0 0 0;
+        text-decoration: none;
+        color: #000077;
+      }
+      #horizontal a.active, #horizontal a:hover {
+        border-bottom: 2px solid #777777;
+        padding-bottom: 2px;
+        color: #000077;
+      }
+      #horizontal a:hover {
+        color: #000077;
+      }
+      #document_versions {
+        position: absolute;
+        top: 10mm;
+        right: 2%;
+        width: 12%;
+        float: right;
+      }
+      #vertical_links {
+        position: absolute;
+        top: 10mm;
+        right: 0px;
+        width: 20%;
+        background: #dddddd;
+        float: right;
+      }
+      #vertical {
+        padding: 0 12px 0px 0px;
+        margin-left: 2%;
+        margin-right: 2%;
+      }
+      #vertical li {
+        display: block;
+        list-style-type: none;
+      }
+      #vertical a {
+        line-height: 12px;
+        text-decoration: none;
+        color: #000077;
+      }
+      #vertical a.active, #vertical a:hover {
+        border-bottom: 2px solid #777777;
+        padding-bottom: 2px;
+        color: #000077;
+      }
+      ul, li {
+        list-style-type: none;
+        list-style: none;
+        padding-left: 20px;
+        display: block;
+        font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
+        font-weight: normal;
+        line-height: 150%;
+        text-align: left;
+        text-indent: 0mm;
+        margin-left: 1em;
+        margin-right: 2em;
+        margin-top: 3px;
+        margin-bottom: 3px;
+      }
+      li {
+        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
+      }
+      ul {
+      }
+      li.bullet { margin-left: 1em; }
+      li.i1 { margin-left: 2em; }
+      li.i2 { margin-left: 3em; }
+      li.i3 { margin-left: 4em; }
+      li.i4 { margin-left: 5em; }
+      li.i5 { margin-left: 6em; }
+      li.i6 { margin-left: 7em; }
+      li.i7 { margin-left: 8em; }
+      li.i8 { margin-left: 9em; }
+      li.i9 { margin-left: 10em; }
+      li.doc, li.ref, li.refcenter {
+        margin-top: 0px;
+        margin-bottom: 0px;
+        margin-right: 0px;
+        font-size: 8px;
+        font-style: normal;
+        text-align: left;
+      }
+      li.doc {
+        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
+        padding-left: 16px;
+        margin-left: 10px;
+        margin-right: 0px;
+      }
+      li.ref {
+        background: none;
+        padding-left: 0;
+        margin-left: 0;
+        color: #777777;
+      }
+      li.refcenter {
+        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
+        padding-left: 20px;
+        margin-left: 10%;
+        font-size: 9px;
+        color: #777777;
+        text-align: center;
+      }
+      li.refbold {
+        list-style-type: none;
+        padding-left: 16px;
+        margin-left: 0;
+        margin-right: 10mm;
+        font-weight: bold;
+      }
+      h0, h1, h2, h3, h4, h5, h6, h7 {
+        font-weight: bold;
+        line-height: 120%;
+        text-align: left;
+        margin-top: 20px;
+        margin-bottom: 10px;
+      }
+      h4.norm, h5.norm, h6.norm, h7.norm {
+        margin-top: 10px;
+        margin-bottom: 0px;
+      }
+      h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {
+        text-align: center;
+      }
+      h0 { font-size: 125%; }
+      h1 { font-size: 120%; }
+      h2 { font-size: 115%; }
+      h3 { font-size: 110%; }
+      h4 { font-size: 105%; }
+      h5 { font-size: 100%; }
+      h6 { font-size: 100%; }
+      h7 { font-size: 100%; }
+      h1.i {margin-left: 2em;}
+      h2.i {margin-left: 3em;}
+      h3.i {margin-left: 4em;}
+      h4.i {margin-left: 5em;}
+      h5.i {margin-left: 6em;}
+      h6.i {margin-left: 7em;}
+      h7.i {margin-left: 8em;}
+      h8.i {margin-left: 9em;}
+      h9.i {margin-left: 10em;}
+      h1.top_band {
+        display: inline;
+        text-align: left;
+        margin-top: 0;
+        margin-left: 4mm;
+        text-indent: 0mm;
+        font-weight: bold;
+        font-size: 120%;
+      }
+      h2.top_band_tiny {
+        font-size: 10px;
+        font-weight: normal;
+        margin-top: 0px;
+        margin-left: 4mm;
+        text-indent: 0mm;
+        margin-bottom: 0px;
+        color: #777777;
+        margin-left: 140px;
+        margin-right: 0px;
+        text-align: left;
+      }
+      p.top_band {
+        display: inline;
+        text-align: left;
+        margin-top: 0;
+        margin-left: 140px;
+        text-indent: 0mm;
+        font-weight: bold;
+        font-size: 120%;
+      }
+      p.top_band_tiny {
+        font-size: 10px;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        color: #777777;
+        margin-left: 140px;
+        margin-right: 0px;
+        text-align: left;
+      }
+      p.top_band_image {
+        float: left;
+        display: inline;
+        text-align: left;
+        margin-top: 0;
+        margin-left: 1mm;
+        text-indent: 0mm;
+        margin-right: 1mm;
+      }
+      .banner, .subbanner {
+        font-weight: bold;
+        text-align: center;
+        margin-left: 10mm;
+        margin-right: 15mm;
+        margin-top: 20px;
+        margin-bottom: 10px;
+      }
+      h0.banner {
+        font-size: 125%;
+      }
+      h1.banner {
+        font-size: 120%;
+      }
+      h1.subbanner {
+        font-size: 115%;
+      }
+      h2.banner {
+        font-size: 110%;
+      }
+      h3.banner {
+        color: #990000;
+        font-size: 105%;
+      }
+      h4.banner {
+        color: #ff0000;
+        font-size: 100%;
+      }
+      h5.banner {
+      }
+      h6.banner {
+      }
+      h7.banner {
+      }
+      .toc {
+        font-weight: normal;
+        margin-top: 6px;
+        margin-bottom: 6px;
+      }
+      h0.toc {
+        margin-left: 1em;
+        font-size: 120%;
+        line-height: 150%;
+      }
+      h1.toc {
+        margin-left: 1em;
+        font-size: 115%;
+        line-height: 150%;
+      }
+      h2.toc {
+        margin-left: 2em;
+        font-size: 110%;
+        line-height: 140%;
+      }
+      h3.toc {
+        margin-left: 3em;
+        font-size: 105%;
+        line-height: 120%;
+      }
+      h4.toc {
+        margin-left: 4em;
+        font-size: 100%;
+        line-height: 120%;
+      }
+      h5.toc {
+        margin-left: 5em;
+        font-size: 95%;
+        line-height: 110%;
+      }
+      h6.toc {
+        margin-left: 6em;
+        font-size: 90%;
+        line-height: 110%;
+      }
+      h7.toc {
+        margin-left: 7em;
+        font-size: 85%;
+        line-height: 100%;
+      }
+      .microtoc {
+        margin-top: 2px;
+        margin-bottom: 2px;
+      }
+      h0.microtoc {
+        margin-left: 0mm;
+        font-size: 120%;
+      }
+      h1.microtoc {
+        margin-left: 0mm;
+        font-size: 115%;
+      }
+      h2.microtoc {
+        margin-left: 5mm;
+        font-size: 110%;
+      }
+      h3.microtoc {
+        margin-left: 10mm;
+        font-size: 105%;
+      }
+      h4.microtoc {
+        margin-left: 15mm;
+        font-weight: normal;
+        font-size: 100%;
+      }
+      h5.microtoc {
+        margin-left: 20mm;
+        font-weight: normal;
+        font-size: 95%;
+      }
+      h6.microtoc {
+        margin-left: 25mm;
+        font-weight: normal;
+        font-size: 90%;
+      }
+      h7.microtoc {
+        margin-left: 30mm;
+        font-weight: normal;
+        font-size: 85%;
+      }
+      .subtoc {
+        margin-right: 34%;
+        font-weight: normal;
+      }
+      h5.subtoc {
+        margin-left: 2em;
+        font-size: 80%;
+        margin-top: 2px;
+        margin-bottom: 2px;
+      }
+      h6.subtoc {
+        margin-left: 3em;
+        font-size: 75%;
+        margin-top: 0px;
+        margin-bottom: 0px;
+      }
+      h7.subtoc {
+        margin-left: 4em;
+        font-size: 70%;
+        margin-top: 0px;
+        margin-bottom: 0px;
+      }
+      div.substance {
+        width: 100%;
+        background-color: #ffffff;
+      }
+      div.ocn {
+        width: 5%;
+        float: right;
+        top: 0;
+        background-color: #ffffff;
+      }
+      div.endnote {
+        width: 95%;
+        background-color: #fffffff;
+      }
+      div.toc {
+        position: absolute;
+        float: left;
+        margin: 0;
+        padding: 0;
+        padding-top: 0.5em;
+        border: 0;
+        width: 13em;
+        background-color: #eeeeee;
+        margin-right:1em;
+      }
+      div.summary {
+        margin: 0;
+        padding: 0;
+        border-left: 13em solid #eeeeee;
+        padding-left: 1em;
+        background-color: #eeeeee;
+      }
+      div.content, div.main_column {
+        margin: 0;
+        padding: 0;
+        border-left: 13em solid #ffffff;
+        padding-left: 1em;
+        padding-right: 1em;
+      }
+      div.content0, div.main_column0 {
+        margin: 0;
+        padding: 0;
+        border-left: 0% solid #ffffff;
+        padding-left: 5%;
+      }
+      div.scroll {
+        margin: 0;
+        padding: 0;
+        padding-left: 1em;
+        padding-right: 1em;
+      }
+      div.content:after {
+        content:' ';
+        clear:both;
+        display:block;
+        height:0;
+        overflow:hidden
+      }
+      div.footer {
+        clear:left;
+        padding: 0.5em;
+        font-size: 80%;
+        margin: 0;
+      }
+      div.toc ul {
+        list-style: none;
+        padding: 0;
+        margin: 0;
+      }
+      div.toc li ul a, li ul span.currentlink
+      {
+        font-weight: normal;
+        font-size: 90%;
+        padding-left: 2em;
+        background-color: #eeeeee;
+      }
+      div.toc a, span.currentlink{
+        display:block;
+        text-decoration: none;
+        padding-left: 0.5em;
+        color: #0000aa;
+      }
+      hr {
+        width: 90%;
+      }
+      span.currentlink {
+        text-decoration: none;
+        background-color: #aaaaf9;
+      }
+      div.toc a:visited {
+        color: #0000aa;
+      }
+      div.toc a:hover {
+        color: #000000;
+        background-color: #f9f9aa;
+      }
+      .minitoc {
+        font-weight: normal;
+        margin-top: 2px;
+        margin-bottom: 2px;
+      }
+      h1.minitoc, h2.minitoc, h3.minitoc {
+        margin-left: 0em;
+        font-weight: bold;
+        text-align: left;
+        font-size: 90%;
+        margin-top: 4px;
+        margin-bottom: 4px;
+      }
+      h4.minitoc {
+        margin-left: 0em;
+        font-size: 90%;
+      }
+      h5.minitoc {
+        margin-left: 1em;
+        font-size: 85%;
+      }
+      h6.minitoc {
+        margin-left: 2em;
+        font-size: 85%;
+      }
+      h7.minitoc {
+        margin-left: 3em;
+        font-size: 80%;
+      }
+      h0.minitoc {
+        margin-left: 0em;
+        font-size: 90%;
+      }
+      h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {
+        text-align: center
+      }
+      h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {
+        text-align: center;
+        color: #ff0000;
+        margin-left: 5mm;
+        text-indent: 5mm;
+        margin-top: 30px;
+        margin-bottom: 20px;
+        margin-right: 15mm;
+      }
+      h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {
+        text-align: center;
+        color: #990000;
+        margin-left: 5mm;
+        text-indent: 5mm;
+        margin-top: 30px;
+        margin-bottom: 20px;
+        margin-right: 15mm;
+  }";
+  return css;
+}
+auto css_write() {
+  auto pth_css= "_sisu/css";
+  auto pth_css_fn= pth_css ~ "/html.css";
+  try {
+    mkdirRecurse(pth_css);
+    auto f = File(pth_css_fn, "w");
+    f.writeln(html_css);
+    // foreach (o; doc) {
+    //   f.writeln(o);
+    // }
   }
-  auto css_write() {
-    auto pth_css= "_sisu/css";
-    auto pth_css_fn= pth_css ~ "/html.css";
-    try {
-      mkdirRecurse(pth_css);
-      auto f = File(pth_css_fn, "w");
-      f.writeln(html_css);
-      // foreach (o; doc) {
-      //   f.writeln(o);
-      // }
-    }
-    catch (ErrnoException ex) {
-      // Handle error
-    }
+  catch (ErrnoException ex) {
+    // Handle error
   }
+}
 #+END_SRC
 
 *** html
@@ -1338,69 +1331,69 @@ struct SDPoutputHTML {
 
 #+name: output_html
 #+BEGIN_SRC d
-  auto html_toc(O)(
-    auto ref const O         obj,
-  ) {
-    string o;
-    o = format(q"◎<h%s class="toc"><a href="#%s">%s</a></h%s>◎",
-    obj.heading_attrib.lev_markup_number,
-    obj.obj_cite_number,
-    obj.object,
-    obj.heading_attrib.lev_markup_number
-    );
-    return o;
-  }
-  auto html_heading(O)(
-    auto ref const O         obj,
-  ) {
-    string o;
-    o = format(q"◎<br><hr /><br>
-    <div class="substance">
-      <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
-      <h%s class="norm" id="%s"><a name="%s"></a>
-        %s
-      </h%s>
-    </div>
-    ◎",
-    obj.obj_cite_number,
-    obj.obj_cite_number,
-    obj.heading_attrib.lev_markup_number,
-    obj.obj_cite_number,
-    obj.obj_cite_number,
-    obj.object,
-    obj.heading_attrib.lev_markup_number
-    );
-    return o;
-  }
-  auto html_para(O)(
-    auto ref const O         obj,
-  ) {
-    string o;
-    o = format(q"◎<div class="substance">
-      <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
-      <p class="h%si%s" id="%s">
-        %s
-      </p>
-    </div>
-    ◎",
-    obj.obj_cite_number,
-    obj.obj_cite_number,
-    obj.para_attrib.indent_first,
-    obj.para_attrib.indent_second,
-    obj.obj_cite_number,
-    obj.object
-    );
-    return o;
-  }
+auto html_toc(O)(
+  auto ref const O         obj,
+) {
+  string o;
+  o = format(q"◎<h%s class="toc"><a href="#%s">%s</a></h%s>◎",
+  obj.heading_attrib.lev_markup_number,
+  obj.obj_cite_number,
+  obj.object,
+  obj.heading_attrib.lev_markup_number
+  );
+  return o;
+}
+auto html_heading(O)(
+  auto ref const O         obj,
+) {
+  string o;
+  o = format(q"◎<br><hr /><br>
+  <div class="substance">
+    <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
+    <h%s class="norm" id="%s"><a name="%s"></a>
+      %s
+    </h%s>
+  </div>
+  ◎",
+  obj.obj_cite_number,
+  obj.obj_cite_number,
+  obj.heading_attrib.lev_markup_number,
+  obj.obj_cite_number,
+  obj.obj_cite_number,
+  obj.object,
+  obj.heading_attrib.lev_markup_number
+  );
+  return o;
+}
+auto html_para(O)(
+  auto ref const O         obj,
+) {
+  string o;
+  o = format(q"◎<div class="substance">
+    <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
+    <p class="h%si%s" id="%s">
+      %s
+    </p>
+  </div>
+  ◎",
+  obj.obj_cite_number,
+  obj.obj_cite_number,
+  obj.para_attrib.indent_first,
+  obj.para_attrib.indent_second,
+  obj.obj_cite_number,
+  obj.object
+  );
+  return o;
+}
 #+END_SRC
 
 **** html scroll head & tail
 
 #+name: output_html
 #+BEGIN_SRC d
-  auto scroll_head() {
-    string o;
-    o = format(q"◎
+auto scroll_head() {
+  string o;
+  o = format(q"◎
 <!DOCTYPE html>
 <html>
 <head>
@@ -1429,103 +1422,96 @@ struct SDPoutputHTML {
 <body lang="en">
 <a name="top" id="top"></a>
 ◎");
-    return o;
-  }
-  auto scroll_tail() {
-    string o;
-    o = format(q"◎
+  return o;
+}
+auto scroll_tail() {
+  string o;
+  o = format(q"◎
 <a name="bottom" id="bottom"></a>
 <a name="end" id="end"></a>
 </div>
 </body>
 </html>
 ◎");
-    return o;
-  }
+  return o;
+}
 #+END_SRC
 
 **** html scroll
 
 #+name: output_html
 #+BEGIN_SRC d
-  auto scroll(C)(
-    auto ref const C         contents,
-    string[][string][string] bookindex_unordered_hashes,
-    JSONValue[]              biblio,
-    string[string][string]   dochead_make,
-    string[string][string]   dochead_meta,
-    string                   fn_src,
-    bool[string]             opt_action_bool
-  ) {
-    auto rgx = Rgx();
-    string[] toc;
-    string[] body_;
-    string[] doc;
-    foreach (obj; contents) {
-      if (obj.use == "content") {
-        switch (obj.is_a) {
-        case "heading":
-          toc ~= html_toc(obj);
-          body_ ~= html_heading(obj);
-          break;
-        case "para":
-          body_ ~= html_para(obj);
-          break;
-        case "verse":
-          body_ ~= html_para(obj);
-          // body_ ~= html_verse(obj);
-          break;
-        case "group":
-          body_ ~= html_para(obj);
-          // body_ ~= html_group(obj);
-          break;
-        case "block":
-          body_ ~= html_para(obj);
-          // body_ ~= html_block(obj);
-          break;
-        case "quote":
-          body_ ~= html_para(obj);
-          // body_ ~= html_quote(obj);
-          break;
-        case "table":
-          body_ ~= html_para(obj);
-          // body_ ~= html_table(obj);
-          break;
-        case "code":
-          body_ ~= html_para(obj);
-          // body_ ~= html_code(obj);
-          break;
-        default:
-          body_ ~= html_para(obj);
-          break;
-        }
+void scroll(C)(
+  auto ref const C         contents,
+  string[][string][string] bookindex_unordered_hashes,
+  JSONValue[]              biblio,
+  string[string][string]   dochead_make,
+  string[string][string]   dochead_meta,
+  string                   fn_src,
+  bool[string]             opt_action_bool
+) {
+  auto rgx = Rgx();
+  string[] toc;
+  string[] body_;
+  string[] doc;
+  foreach (obj; contents) {
+    if (obj.use == "content") {
+      switch (obj.is_a) {
+      case "heading":
+        toc ~= html_toc(obj);
+        body_ ~= html_heading(obj);
+        break;
+      case "para":
+        body_ ~= html_para(obj);
+        break;
+      case "verse":
+        body_ ~= html_para(obj);
+        // body_ ~= html_verse(obj);
+        break;
+      case "group":
+        body_ ~= html_para(obj);
+        // body_ ~= html_group(obj);
+        break;
+      case "block":
+        body_ ~= html_para(obj);
+        // body_ ~= html_block(obj);
+        break;
+      case "quote":
+        body_ ~= html_para(obj);
+        // body_ ~= html_quote(obj);
+        break;
+      case "table":
+        body_ ~= html_para(obj);
+        // body_ ~= html_table(obj);
+        break;
+      case "code":
+        body_ ~= html_para(obj);
+        // body_ ~= html_code(obj);
+        break;
+      default:
+        body_ ~= html_para(obj);
+        break;
       }
     }
-    doc = scroll_head ~ toc ~ body_ ~ scroll_tail;
-    auto m = matchFirst(fn_src, rgx.src_fn);
-    auto fn = m["fn_base"] ~ ".html";
-    auto pth_html = "en/html";
-    auto pth_seg = pth_html ~ "/" ~ m["fn_base"];
-    auto pth_html_fn = pth_html ~ "/" ~ fn;
-    // auto pth_css= "_sisu/css";
-    // auto pth_css_fn= pth_css ~ "/html.css";
-    try {
-      mkdirRecurse(pth_seg);
-      auto f = File(pth_html_fn, "w");
-      foreach (o; doc) {
-        f.writeln(o);
-      }
-    }
-    catch (ErrnoException ex) {
-      // Handle error
+  }
+  doc = scroll_head ~ toc ~ body_ ~ scroll_tail;
+  auto m = matchFirst(fn_src, rgx.src_fn);
+  auto fn = m["fn_base"] ~ ".html";
+  auto pth_html = "en/html";
+  auto pth_seg = pth_html ~ "/" ~ m["fn_base"];
+  auto pth_html_fn = pth_html ~ "/" ~ fn;
+  // auto pth_css= "_sisu/css";
+  // auto pth_css_fn= pth_css ~ "/html.css";
+  try {
+    mkdirRecurse(pth_seg);
+    auto f = File(pth_html_fn, "w");
+    foreach (o; doc) {
+      f.writeln(o);
     }
   }
-#+END_SRC
-
-*** close
-
-#+name: output_html
-#+BEGIN_SRC d
+  catch (ErrnoException ex) {
+    // Handle error
+  }
 }
 #+END_SRC
 
@@ -1537,6 +1523,8 @@ struct SDPoutputHTML {
 * tangles                                                            :tangle:
 ** code structure:                                                :output.d:
 
+**** hub
+
 #+BEGIN_SRC d :tangle ../src/sdp/output_hub.d
 /+
   output hub
@@ -1566,6 +1554,7 @@ template SiSUoutputHub() {
         // text.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make, dochead_meta, fn_src, opt_action_bool);
       }
       if (opt_action_bool["html"]) {
+        mixin SiSUoutputHTML;
         auto html=SDPoutputHTML();
         html.css_write;
         html.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make, dochead_meta, fn_src, opt_action_bool);
@@ -1586,6 +1575,16 @@ template SiSUoutputHub() {
         writeln("pgsql processing");
       }
     }
+  }
+}
+#+END_SRC
+
+**** html
+
+#+BEGIN_SRC d :tangle ../src/sdp/output_html.d
+template SiSUoutputHTML() {
+  struct SDPoutputHTML {
+    <<output_html_css>>
     <<output_html>>
   }
 }
diff --git a/org/sdp.org b/org/sdp.org
index 7377f77..d5a8410 100644
--- a/org/sdp.org
+++ b/org/sdp.org
@@ -24,7 +24,7 @@ struct Version {
   int minor;
   int patch;
 }
-enum ver = Version(0, 6, 6);
+enum ver = Version(0, 6, 7);
 #+END_SRC
 
 * sdp.d   sisu document parser                                       :sdp.d:
@@ -56,7 +56,8 @@ import
   ao_read_config_files,       // sdp/ao_read_config_files.d
   ao_read_source_files,       // sdp/ao_read_source_files.d
   ao_rgx,                     // sdp/ao_rgx.d
-  output_hub;                 // output_hub.d
+  output_hub,                 // output_hub.d
+  output_html;                // output_html.d
 #+END_SRC
 
 ***** notes
diff --git a/src/sdp.d b/src/sdp.d
index afc87a0..f3acc9c 100755
--- a/src/sdp.d
+++ b/src/sdp.d
@@ -16,7 +16,8 @@ import
   ao_read_config_files,       // sdp/ao_read_config_files.d
   ao_read_source_files,       // sdp/ao_read_source_files.d
   ao_rgx,                     // sdp/ao_rgx.d
-  output_hub;                 // output_hub.d
+  output_hub,                 // output_hub.d
+  output_html;                // output_html.d
 /+ sdlang http://sdlang.org +/
 import sdlang;                            // sdlang.d
 /+ std +/
diff --git a/src/sdp/output_html.d b/src/sdp/output_html.d
new file mode 100644
index 0000000..6e4aecf
--- /dev/null
+++ b/src/sdp/output_html.d
@@ -0,0 +1,1478 @@
+template SiSUoutputHTML() {
+  struct SDPoutputHTML {
+    auto html_css() {
+      string css;
+      css="/* SiSU css default stylesheet */
+          body {
+            color: black;
+            background: #ffffff;
+            background-color: #ffffff;
+          }
+          a:link {
+            color: #003399;
+            text-decoration: none;
+          }
+          a:visited {
+            color: #003399;
+            text-decoration: none;
+          }
+          a:hover {
+            color: #000000;
+            background-color: #f9f9aa;
+          }
+          a.lnkocn:link {
+            color: #777777;
+            text-decoration: none;
+          }
+          a:hover img {
+            background-color: #ffffff;
+          }
+          a:active {
+            color: #003399;
+            text-decoration: underline;
+          }
+          div {
+            margin-left: 0;
+            margin-right: 0;
+          }
+          div.p {
+            margin-left: 5%;
+            margin-right: 1%;
+          }
+    
+          #top_band {
+            position: absolute;
+            top: 0;
+            bottom: 80px;
+            width: 100%;
+          }
+          #top_band_search {
+            position: absolute;
+            top: 0px;
+            right: 0px;
+            margin-left: 75%;
+            width: 20%;
+          }
+          #column_left {
+            position: absolute;
+            top: 80px;
+            left: 0;
+            margin-left: 1%;
+            width: 20%;
+          }
+          #column_center {
+            position: absolute;
+            top: 80px;
+            margin-left: 20%;
+            width: 55%;
+          }
+          #column_right {
+            position: absolute;
+            top: 80px;
+            right: 0px;
+            margin-left: 75%;
+            width: 25%;
+          }
+          #pane_major {
+            position: absolute;
+            top: 0px;
+            left: 0;
+            margin-left: 0;
+            width: 80%;
+          }
+          #pane_minor {
+            position: absolute;
+            top: 0px;
+            right: 0px;
+            margin-left: 75%;
+            width: 20%;
+            background-color: #aaaaaa;
+          }
+          .norm, .bold, .verse, .group, .block, .alt {
+            line-height: 133%;
+            margin-left: 0em;
+            margin-right: 2em;
+            margin-top: 12px;
+            margin-bottom: 0px;
+            padding-left: 0em;
+            text-indent: 0em;
+          }
+          p, h0, h1, h2, h3, h4, h5, h6, h7 {
+            display: block;
+            font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
+            font-size: 100%;
+            font-weight: normal;
+            line-height: 133%;
+            text-align: justify;
+            margin-left: 0em;
+            margin-right: 2em;
+            text-indent: 0mm;
+            margin-top: 0.8em;
+            margin-bottom: 0.8em;
+          }
+          /* indent */
+          p.norm { }
+          p.i1 {padding-left: 1em;}
+          p.i2 {padding-left: 2em;}
+          p.i3 {padding-left: 3em;}
+          p.i4 {padding-left: 4em;}
+          p.i5 {padding-left: 5em;}
+          p.i6 {padding-left: 6em;}
+          p.i7 {padding-left: 7em;}
+          p.i8 {padding-left: 8em;}
+          p.i9 {padding-left: 9em;}
+          /* hanging indent */
+          p.h0i0 {
+            padding-left: 0em;
+            text-indent:  0em;
+          }
+          p.h0i1 {
+            padding-left: 1em;
+            text-indent: -1em;
+          }
+          p.h0i2 {
+            padding-left: 2em;
+            text-indent: -2em;
+          }
+          p.h0i3 {
+            padding-left: 3em;
+            text-indent: -3em;
+          }
+          p.h0i4 {
+            padding-left: 4em;
+            text-indent: -4em;
+          }
+          p.h0i5 {
+            padding-left: 5em;
+            text-indent: -5em;
+          }
+          p.h0i6 {
+            padding-left: 6em;
+            text-indent: -6em;
+          }
+          p.h0i7 {
+            padding-left: 7em;
+            text-indent: -7em;
+          }
+          p.h0i8 {
+            padding-left: 8em;
+            text-indent: -8em;
+          }
+          p.h0i9 {
+            padding-left: 9em;
+            text-indent: -9em;
+          }
+          p.h1i0 {
+            padding-left: 0em;
+            text-indent:  1em;
+          }
+          p.h1i1 {
+            padding-left: 1em;
+            text-indent:  0em;
+          }
+          p.h1i2 {
+            padding-left: 2em;
+            text-indent: -1em;
+          }
+          p.h1i3 {
+            padding-left: 3em;
+            text-indent: -2em;
+          }
+          p.h1i4 {
+            padding-left: 4em;
+            text-indent: -3em;
+          }
+          p.h1i5 {
+            padding-left: 5em;
+            text-indent: -4em;
+          }
+          p.h1i6 {
+            padding-left: 6em;
+            text-indent: -5em;
+          }
+          p.h1i7 {
+            padding-left: 7em;
+            text-indent: -6em;
+          }
+          p.h1i8 {
+            padding-left: 8em;
+            text-indent: -7em;
+          }
+          p.h1i9 {
+            padding-left: 9em;
+            text-indent: -8em;
+          }
+          p.h2i0 {
+            padding-left: 0em;
+            text-indent:  2em;
+          }
+          p.h2i1 {
+            padding-left: 1em;
+            text-indent:  1em;
+          }
+          p.h2i2 {
+            padding-left: 2em;
+            text-indent:  0em;
+          }
+          p.h2i3 {
+            padding-left: 3em;
+            text-indent: -1em;
+          }
+          p.h2i4 {
+            padding-left: 4em;
+            text-indent: -2em;
+          }
+          p.h2i5 {
+            padding-left: 5em;
+            text-indent: -3em;
+          }
+          p.h2i6 {
+            padding-left: 6em;
+            text-indent: -4em;
+          }
+          p.h2i7 {
+            padding-left: 7em;
+            text-indent: -5em;
+          }
+          p.h2i8 {
+            padding-left: 8em;
+            text-indent: -6em;
+          }
+          p.h2i9 {
+            padding-left: 9em;
+            text-indent: -7em;
+          }
+          p.h3i0 {
+            padding-left: 0em;
+            text-indent:  3em;
+          }
+          p.h3i1 {
+            padding-left: 1em;
+            text-indent:  2em;
+          }
+          p.h3i2 {
+            padding-left: 2em;
+            text-indent:  1em;
+          }
+          p.h3i3 {
+            padding-left: 3em;
+            text-indent:  0em;
+          }
+          p.h3i4 {
+            padding-left: 4em;
+            text-indent: -1em;
+          }
+          p.h3i5 {
+            padding-left: 5em;
+            text-indent: -2em;
+          }
+          p.h3i6 {
+            padding-left: 6em;
+            text-indent: -3em;
+          }
+          p.h3i7 {
+            padding-left: 7em;
+            text-indent: -4em;
+          }
+          p.h3i8 {
+            padding-left: 8em;
+            text-indent: -5em;
+          }
+          p.h3i9 {
+            padding-left: 9em;
+            text-indent: -6em;
+          }
+          p.h4i0 {
+            padding-left: 0em;
+            text-indent:  4em;
+          }
+          p.h4i1 {
+            padding-left: 1em;
+            text-indent:  3em;
+          }
+          p.h4i2 {
+            padding-left: 2em;
+            text-indent:  2em;
+          }
+          p.h4i3 {
+            padding-left: 3em;
+            text-indent:  1em;
+          }
+          p.h4i4 {
+            padding-left: 4em;
+            text-indent:  0em;
+          }
+          p.h4i5 {
+            padding-left: 5em;
+            text-indent: -1em;
+          }
+          p.h4i6 {
+            padding-left: 6em;
+            text-indent: -2em;
+          }
+          p.h4i7 {
+            padding-left: 7em;
+            text-indent: -3em;
+          }
+          p.h4i8 {
+            padding-left: 8em;
+            text-indent: -4em;
+          }
+          p.h4i9 {
+            padding-left: 9em;
+            text-indent: -5em;
+          }
+          p.h5i0 {
+            padding-left: 0em;
+            text-indent:  5em;
+          }
+          p.h5i1 {
+            padding-left: 1em;
+            text-indent:  4em;
+          }
+          p.h5i2 {
+            padding-left: 2em;
+            text-indent:  3em;
+          }
+          p.h5i3 {
+            padding-left: 3em;
+            text-indent:  2em;
+          }
+          p.h5i4 {
+            padding-left: 4em;
+            text-indent:  1em;
+          }
+          p.h5i5 {
+            padding-left: 5em;
+            text-indent:  0em;
+          }
+          p.h5i6 {
+            padding-left: 6em;
+            text-indent: -1em;
+          }
+          p.h5i7 {
+            padding-left: 7em;
+            text-indent: -2em;
+          }
+          p.h5i8 {
+            padding-left: 8em;
+            text-indent: -3em;
+          }
+          p.h5i9 {
+            padding-left: 9em;
+            text-indent: -4em;
+          }
+          p.h6i0 {
+            padding-left: 0em;
+            text-indent:  6em;
+          }
+          p.h6i1 {
+            padding-left: 1em;
+            text-indent:  5em;
+          }
+          p.h6i2 {
+            padding-left: 2em;
+            text-indent:  4em;
+          }
+          p.h6i3 {
+            padding-left: 3em;
+            text-indent:  3em;
+          }
+          p.h6i4 {
+            padding-left: 4em;
+            text-indent:  2em;
+          }
+          p.h6i5 {
+            padding-left: 5em;
+            text-indent:  1em;
+          }
+          p.h6i6 {
+            padding-left: 6em;
+            text-indent:  0em;
+          }
+          p.h6i7 {
+            padding-left: 7em;
+            text-indent: -1em;
+          }
+          p.h6i8 {
+            padding-left: 8em;
+            text-indent: -2em;
+          }
+          p.h6i9 {
+            padding-left: 9em;
+            text-indent: -3em;
+          }
+          p.h7i0 {
+            padding-left: 0em;
+            text-indent:  7em;
+          }
+          p.h7i1 {
+            padding-left: 1em;
+            text-indent:  6em;
+          }
+          p.h7i2 {
+            padding-left: 2em;
+            text-indent:  5em;
+          }
+          p.h7i3 {
+            padding-left: 3em;
+            text-indent:  4em;
+          }
+          p.h7i4 {
+            padding-left: 4em;
+            text-indent:  3em;
+          }
+          p.h7i5 {
+            padding-left: 5em;
+            text-indent:  2em;
+          }
+          p.h7i6 {
+            padding-left: 6em;
+            text-indent:  1em;
+          }
+          p.h7i7 {
+            padding-left: 7em;
+            text-indent:  0em;
+          }
+          p.h7i8 {
+            padding-left: 8em;
+            text-indent: -1em;
+          }
+          p.h7i9 {
+            padding-left: 9em;
+            text-indent: -2em;
+          }
+          p.h8i0 {
+            padding-left: 0em;
+            text-indent:  8em;
+          }
+          p.h8i1 {
+            padding-left: 1em;
+            text-indent:  7em;
+          }
+          p.h8i2 {
+            padding-left: 2em;
+            text-indent:  6em;
+          }
+          p.h8i3 {
+            padding-left: 3em;
+            text-indent:  5em;
+          }
+          p.h8i4 {
+            padding-left: 4em;
+            text-indent:  4em;
+          }
+          p.h8i5 {
+            padding-left: 5em;
+            text-indent:  3em;
+          }
+          p.h8i6 {
+            padding-left: 6em;
+            text-indent:  2em;
+          }
+          p.h8i7 {
+            padding-left: 7em;
+            text-indent:  1em;
+          }
+          p.h8i8 {
+            padding-left: 8em;
+            text-indent:  0em;
+          }
+          p.h8i9 {
+            padding-left: 9em;
+            text-indent: -1em;
+          }
+          p.h9i0 {
+            padding-left: 0em;
+            text-indent:  9em;
+          }
+          p.h9i1 {
+            padding-left: 1em;
+            text-indent:  8em;
+          }
+          p.h9i2 {
+            padding-left: 2em;
+            text-indent:  7em;
+          }
+          p.h9i3 {
+            padding-left: 3em;
+            text-indent:  6em;
+          }
+          p.h9i4 {
+            padding-left: 4em;
+            text-indent:  5em;
+          }
+          p.h9i5 {
+            padding-left: 5em;
+            text-indent:  4em;
+          }
+          p.h9i6 {
+            padding-left: 6em;
+            text-indent:  3em;
+          }
+          p.h9i7 {
+            padding-left: 7em;
+            text-indent:  2em;
+          }
+          p.h9i8 {
+            padding-left: 8em;
+            text-indent:  1em;
+          }
+          p.h9i9 {
+            padding-left: 9em;
+            text-indent:  0em;
+          }
+          p.it0 {
+            margin-left: 0em;
+            margin-top: 6px;
+            margin-bottom: 0px;
+            line-height: 100%;
+          }
+          p.it1 {
+            margin-left: 1em;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            line-height: 100%;
+          }
+          p.it2 {
+            margin-left: 2em;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            line-height: 100%;
+          }
+          p.it3 {
+            margin-left: 3em;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            line-height: 100%;
+          }
+          p.it4 {
+            margin-left: 4em;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            line-height: 100%;
+          }
+          p.it5 {
+            margin-left: 5em;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            line-height: 100%;
+          }
+          p.it6 {
+            margin-left: 6em;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            line-height: 100%;
+          }
+          p.it7 {
+            margin-left: 7em;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            line-height: 100%;
+          }
+          p.it8 {
+            margin-left: 8em;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            line-height: 100%;
+          }
+          p.it9 {
+            margin-left: 9em;
+            margin-bottom: 0px;
+            margin-top: 0px;
+            line-height: 100%;
+          }
+          p.block { }
+          p.group { }
+          p.alt { }
+          p.verse {
+            margin-bottom: 6px;
+          }
+          p.code {
+            font-family: inconsolata, andale mono, courier new, courier, monospace;
+            font-size: 90%;
+            text-align: left;
+            background-color: #eeeeee;
+          }
+          p.caption {
+            text-align: left;
+            font-size: 80%;
+            display: inline;
+          }
+          p.endnote {
+            font-size: 96%;
+            line-height: 120%;
+            text-align: left;
+            margin-right: 15mm;
+          }
+          p.endnote_indent {
+            font-size: 96%;
+            line-height: 120%;
+            text-align: left;
+            margin-left: 2em;
+            margin-right: 15mm;
+          }
+          p.center {
+            text-align: center;
+          }
+          p.bold {
+            font-weight: bold;
+          }
+          p.bold_left {
+            font-weight: bold;
+            text-align: left;
+          }
+          p.centerbold {
+            text-align: center;
+            font-weight: bold;
+          }
+          p.em {
+            font-weight: bold;
+            font-style: normal;
+            background: #fff3b6;
+          }
+          p.small {
+            font-size: 80%;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            margin-right: 6px;
+            text-align: left;
+          }
+          .tiny, .tiny_left, .tiny_right, .tiny_center {
+            font-size: 10px;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            color: #777777;
+            margin-right: 6px;
+            text-align: left;
+          }
+          p.tiny { }
+          p.tiny_left {
+            margin-left: 0px;
+            margin-right: 0px;
+            text-align: left;
+          }
+          p.tiny_right {
+            margin-right: 1em;
+            text-align: right;
+          }
+          p.tiny_center {
+            margin-left: 0px;
+            margin-right: 0px;
+            text-align: center;
+          }
+          p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent {
+            font-size: 80%;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            margin-left: 2mm;
+            margin-right: 4px;
+            text-align: left;
+          }
+          p.pane { }
+          p.pane_title {
+            font-weight: bold;
+            margin-bottom: 0px;
+          }
+          p.pane_blurb {
+            font-size: 10px;
+            margin-bottom: 0px;
+          }
+          p.pane_link {
+            font-size: 10px;
+            margin-bottom: 0px;
+            margin-left: 4mm;
+          }
+          p.pane_indent {
+            font-size: 10px;
+            margin-bottom: 0px;
+            margin-left: 4mm;
+          }
+          p.concordance_word {
+            line-height: 150%;
+            font-weight: bold;
+            display: inline;
+            margin-top: 4px;
+            margin-bottom: 1px;
+          }
+          p.concordance_count {
+            font-size: 80%;
+            color: #777777;
+            display: inline;
+            margin-left: 0em;
+          }
+          p.concordance_object {
+            font-size: 80%;
+            line-height: 120%;
+            text-align: left;
+            margin-left: 3em;
+            margin-top: 1px;
+            margin-bottom: 3px;
+          }
+          p.book_index_lev1 {
+            line-height: 100%;
+            margin-top: 4px;
+            margin-bottom: 1px;
+          }
+          p.book_index_lev2 {
+            line-height: 100%;
+            text-align: left;
+            margin-left: 3em;
+            margin-top: 1px;
+            margin-bottom: 3px;
+          }
+          p.quickref {
+            font-size: 10px;
+            font-style: italic;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            color: #777777;
+            margin-right: 5px;
+            text-align: left;
+          }
+          p.bigref {
+            font-size: 11px;
+            font-weight: bold;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            color: #777777;
+            margin-right: 5px;
+            text-align: center;
+          }
+          p.letter {
+            font-weight: bold;
+            font-size: 80%;
+            margin-left: 0em;
+            margin-top: 2px;
+            margin-bottom: 2px;
+            margin-right: 6px;
+            text-align: left;
+            color: white;
+            background: #880000;
+          }
+          tt {
+            font-family: inconsolata, andale mono, courier new, courier, monospace;
+            background-color: #eeeeee;
+          }
+          label.ocn {
+            width: 2%;
+            float: right;
+            top: 0;
+            font-size: 10px;
+            margin-top: 0px;
+            margin-bottom: 5px;
+            color: #777777;
+            margin-right: 5px;
+            text-align: right;
+            background-color: #ffffff;
+          }
+          table { }
+          tr { }
+          th,td {
+            vertical-align: top;
+            text-align: left;
+          }
+          th {
+            font-weight: bold;
+          }
+          p.left,th.left,td.left {
+            text-align: left;
+          }
+          p.small_left,th.small_left,td.small_left {
+            text-align: left;
+            font-size: 80%;
+          }
+          p.right,th.right,td.right {
+            text-align: right;
+          }
+          #horizontal_links {
+            background: #eeeeee;
+            margin-left: 5%;
+            margin-right: 5%;
+          }
+          #horizontal {
+            margin: 0;
+            padding: 0 0 0 10px;
+            border-top: 1px solid #000077;
+            border-bottom: 1px solid #000077;
+          }
+          #horizontal li {
+            margin: 0 0 0 0;
+            padding: 0 16px 0 0;
+            display: inline;
+            list-style-type: none;
+            text-align: left;
+            background: none;
+          }
+          #horizontal a {
+            line-height: 12px;
+            margin: 0 0 0 0;
+            text-decoration: none;
+            color: #000077;
+          }
+          #horizontal a.active, #horizontal a:hover {
+            border-bottom: 2px solid #777777;
+            padding-bottom: 2px;
+            color: #000077;
+          }
+          #horizontal a:hover {
+            color: #000077;
+          }
+          #document_versions {
+            position: absolute;
+            top: 10mm;
+            right: 2%;
+            width: 12%;
+            float: right;
+          }
+          #vertical_links {
+            position: absolute;
+            top: 10mm;
+            right: 0px;
+            width: 20%;
+            background: #dddddd;
+            float: right;
+          }
+          #vertical {
+            padding: 0 12px 0px 0px;
+            margin-left: 2%;
+            margin-right: 2%;
+          }
+          #vertical li {
+            display: block;
+            list-style-type: none;
+          }
+          #vertical a {
+            line-height: 12px;
+            text-decoration: none;
+            color: #000077;
+          }
+          #vertical a.active, #vertical a:hover {
+            border-bottom: 2px solid #777777;
+            padding-bottom: 2px;
+            color: #000077;
+          }
+          ul, li {
+            list-style-type: none;
+            list-style: none;
+            padding-left: 20px;
+            display: block;
+            font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
+            font-weight: normal;
+            line-height: 150%;
+            text-align: left;
+            text-indent: 0mm;
+            margin-left: 1em;
+            margin-right: 2em;
+            margin-top: 3px;
+            margin-bottom: 3px;
+          }
+          li {
+            background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
+          }
+          ul {
+          }
+          li.bullet { margin-left: 1em; }
+          li.i1 { margin-left: 2em; }
+          li.i2 { margin-left: 3em; }
+          li.i3 { margin-left: 4em; }
+          li.i4 { margin-left: 5em; }
+          li.i5 { margin-left: 6em; }
+          li.i6 { margin-left: 7em; }
+          li.i7 { margin-left: 8em; }
+          li.i8 { margin-left: 9em; }
+          li.i9 { margin-left: 10em; }
+          li.doc, li.ref, li.refcenter {
+            margin-top: 0px;
+            margin-bottom: 0px;
+            margin-right: 0px;
+            font-size: 8px;
+            font-style: normal;
+            text-align: left;
+          }
+          li.doc {
+            background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
+            padding-left: 16px;
+            margin-left: 10px;
+            margin-right: 0px;
+          }
+          li.ref {
+            background: none;
+            padding-left: 0;
+            margin-left: 0;
+            color: #777777;
+          }
+          li.refcenter {
+            background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
+            padding-left: 20px;
+            margin-left: 10%;
+            font-size: 9px;
+            color: #777777;
+            text-align: center;
+          }
+          li.refbold {
+            list-style-type: none;
+            padding-left: 16px;
+            margin-left: 0;
+            margin-right: 10mm;
+            font-weight: bold;
+          }
+          h0, h1, h2, h3, h4, h5, h6, h7 {
+            font-weight: bold;
+            line-height: 120%;
+            text-align: left;
+            margin-top: 20px;
+            margin-bottom: 10px;
+          }
+          h4.norm, h5.norm, h6.norm, h7.norm {
+            margin-top: 10px;
+            margin-bottom: 0px;
+          }
+          h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {
+            text-align: center;
+          }
+          h0 { font-size: 125%; }
+          h1 { font-size: 120%; }
+          h2 { font-size: 115%; }
+          h3 { font-size: 110%; }
+          h4 { font-size: 105%; }
+          h5 { font-size: 100%; }
+          h6 { font-size: 100%; }
+          h7 { font-size: 100%; }
+          h1.i {margin-left: 2em;}
+          h2.i {margin-left: 3em;}
+          h3.i {margin-left: 4em;}
+          h4.i {margin-left: 5em;}
+          h5.i {margin-left: 6em;}
+          h6.i {margin-left: 7em;}
+          h7.i {margin-left: 8em;}
+          h8.i {margin-left: 9em;}
+          h9.i {margin-left: 10em;}
+          h1.top_band {
+            display: inline;
+            text-align: left;
+            margin-top: 0;
+            margin-left: 4mm;
+            text-indent: 0mm;
+            font-weight: bold;
+            font-size: 120%;
+          }
+          h2.top_band_tiny {
+            font-size: 10px;
+            font-weight: normal;
+            margin-top: 0px;
+            margin-left: 4mm;
+            text-indent: 0mm;
+            margin-bottom: 0px;
+            color: #777777;
+            margin-left: 140px;
+            margin-right: 0px;
+            text-align: left;
+          }
+          p.top_band {
+            display: inline;
+            text-align: left;
+            margin-top: 0;
+            margin-left: 140px;
+            text-indent: 0mm;
+            font-weight: bold;
+            font-size: 120%;
+          }
+          p.top_band_tiny {
+            font-size: 10px;
+            margin-top: 0px;
+            margin-bottom: 0px;
+            color: #777777;
+            margin-left: 140px;
+            margin-right: 0px;
+            text-align: left;
+          }
+          p.top_band_image {
+            float: left;
+            display: inline;
+            text-align: left;
+            margin-top: 0;
+            margin-left: 1mm;
+            text-indent: 0mm;
+            margin-right: 1mm;
+          }
+          .banner, .subbanner {
+            font-weight: bold;
+            text-align: center;
+            margin-left: 10mm;
+            margin-right: 15mm;
+            margin-top: 20px;
+            margin-bottom: 10px;
+          }
+          h0.banner {
+            font-size: 125%;
+          }
+          h1.banner {
+            font-size: 120%;
+          }
+          h1.subbanner {
+            font-size: 115%;
+          }
+          h2.banner {
+            font-size: 110%;
+          }
+          h3.banner {
+            color: #990000;
+            font-size: 105%;
+          }
+          h4.banner {
+            color: #ff0000;
+            font-size: 100%;
+          }
+          h5.banner {
+          }
+          h6.banner {
+          }
+          h7.banner {
+          }
+          .toc {
+            font-weight: normal;
+            margin-top: 6px;
+            margin-bottom: 6px;
+          }
+          h0.toc {
+            margin-left: 1em;
+            font-size: 120%;
+            line-height: 150%;
+          }
+          h1.toc {
+            margin-left: 1em;
+            font-size: 115%;
+            line-height: 150%;
+          }
+          h2.toc {
+            margin-left: 2em;
+            font-size: 110%;
+            line-height: 140%;
+          }
+          h3.toc {
+            margin-left: 3em;
+            font-size: 105%;
+            line-height: 120%;
+          }
+          h4.toc {
+            margin-left: 4em;
+            font-size: 100%;
+            line-height: 120%;
+          }
+          h5.toc {
+            margin-left: 5em;
+            font-size: 95%;
+            line-height: 110%;
+          }
+          h6.toc {
+            margin-left: 6em;
+            font-size: 90%;
+            line-height: 110%;
+          }
+          h7.toc {
+            margin-left: 7em;
+            font-size: 85%;
+            line-height: 100%;
+          }
+          .microtoc {
+            margin-top: 2px;
+            margin-bottom: 2px;
+          }
+          h0.microtoc {
+            margin-left: 0mm;
+            font-size: 120%;
+          }
+          h1.microtoc {
+            margin-left: 0mm;
+            font-size: 115%;
+          }
+          h2.microtoc {
+            margin-left: 5mm;
+            font-size: 110%;
+          }
+          h3.microtoc {
+            margin-left: 10mm;
+            font-size: 105%;
+          }
+          h4.microtoc {
+            margin-left: 15mm;
+            font-weight: normal;
+            font-size: 100%;
+          }
+          h5.microtoc {
+            margin-left: 20mm;
+            font-weight: normal;
+            font-size: 95%;
+          }
+          h6.microtoc {
+            margin-left: 25mm;
+            font-weight: normal;
+            font-size: 90%;
+          }
+          h7.microtoc {
+            margin-left: 30mm;
+            font-weight: normal;
+            font-size: 85%;
+          }
+          .subtoc {
+            margin-right: 34%;
+            font-weight: normal;
+          }
+          h5.subtoc {
+            margin-left: 2em;
+            font-size: 80%;
+            margin-top: 2px;
+            margin-bottom: 2px;
+          }
+          h6.subtoc {
+            margin-left: 3em;
+            font-size: 75%;
+            margin-top: 0px;
+            margin-bottom: 0px;
+          }
+          h7.subtoc {
+            margin-left: 4em;
+            font-size: 70%;
+            margin-top: 0px;
+            margin-bottom: 0px;
+          }
+          div.substance {
+            width: 100%;
+            background-color: #ffffff;
+          }
+          div.ocn {
+            width: 5%;
+            float: right;
+            top: 0;
+            background-color: #ffffff;
+          }
+          div.endnote {
+            width: 95%;
+            background-color: #fffffff;
+          }
+          div.toc {
+            position: absolute;
+            float: left;
+            margin: 0;
+            padding: 0;
+            padding-top: 0.5em;
+            border: 0;
+            width: 13em;
+            background-color: #eeeeee;
+            margin-right:1em;
+          }
+          div.summary {
+            margin: 0;
+            padding: 0;
+            border-left: 13em solid #eeeeee;
+            padding-left: 1em;
+            background-color: #eeeeee;
+          }
+          div.content, div.main_column {
+            margin: 0;
+            padding: 0;
+            border-left: 13em solid #ffffff;
+            padding-left: 1em;
+            padding-right: 1em;
+          }
+          div.content0, div.main_column0 {
+            margin: 0;
+            padding: 0;
+            border-left: 0% solid #ffffff;
+            padding-left: 5%;
+          }
+          div.scroll {
+            margin: 0;
+            padding: 0;
+            padding-left: 1em;
+            padding-right: 1em;
+          }
+          div.content:after {
+            content:' ';
+            clear:both;
+            display:block;
+            height:0;
+            overflow:hidden
+          }
+          div.footer {
+            clear:left;
+            padding: 0.5em;
+            font-size: 80%;
+            margin: 0;
+          }
+          div.toc ul {
+            list-style: none;
+            padding: 0;
+            margin: 0;
+          }
+          div.toc li ul a, li ul span.currentlink
+          {
+            font-weight: normal;
+            font-size: 90%;
+            padding-left: 2em;
+            background-color: #eeeeee;
+          }
+          div.toc a, span.currentlink{
+            display:block;
+            text-decoration: none;
+            padding-left: 0.5em;
+            color: #0000aa;
+          }
+          hr {
+            width: 90%;
+          }
+          span.currentlink {
+            text-decoration: none;
+            background-color: #aaaaf9;
+          }
+          div.toc a:visited {
+            color: #0000aa;
+          }
+          div.toc a:hover {
+            color: #000000;
+            background-color: #f9f9aa;
+          }
+          .minitoc {
+            font-weight: normal;
+            margin-top: 2px;
+            margin-bottom: 2px;
+          }
+          h1.minitoc, h2.minitoc, h3.minitoc {
+            margin-left: 0em;
+            font-weight: bold;
+            text-align: left;
+            font-size: 90%;
+            margin-top: 4px;
+            margin-bottom: 4px;
+          }
+          h4.minitoc {
+            margin-left: 0em;
+            font-size: 90%;
+          }
+          h5.minitoc {
+            margin-left: 1em;
+            font-size: 85%;
+          }
+          h6.minitoc {
+            margin-left: 2em;
+            font-size: 85%;
+          }
+          h7.minitoc {
+            margin-left: 3em;
+            font-size: 80%;
+          }
+          h0.minitoc {
+            margin-left: 0em;
+            font-size: 90%;
+          }
+          h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {
+            text-align: center
+          }
+          h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {
+            text-align: center;
+            color: #ff0000;
+            margin-left: 5mm;
+            text-indent: 5mm;
+            margin-top: 30px;
+            margin-bottom: 20px;
+            margin-right: 15mm;
+          }
+          h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {
+            text-align: center;
+            color: #990000;
+            margin-left: 5mm;
+            text-indent: 5mm;
+            margin-top: 30px;
+            margin-bottom: 20px;
+            margin-right: 15mm;
+      }";
+      return css;
+    }
+    auto css_write() {
+      auto pth_css= "_sisu/css";
+      auto pth_css_fn= pth_css ~ "/html.css";
+      try {
+        mkdirRecurse(pth_css);
+        auto f = File(pth_css_fn, "w");
+        f.writeln(html_css);
+        // foreach (o; doc) {
+        //   f.writeln(o);
+        // }
+      }
+      catch (ErrnoException ex) {
+        // Handle error
+      }
+    }
+    auto html_toc(O)(
+      auto ref const O         obj,
+    ) {
+      string o;
+      o = format(q"◎<h%s class="toc"><a href="#%s">%s</a></h%s>◎",
+      obj.heading_attrib.lev_markup_number,
+      obj.obj_cite_number,
+      obj.object,
+      obj.heading_attrib.lev_markup_number
+      );
+      return o;
+    }
+    auto html_heading(O)(
+      auto ref const O         obj,
+    ) {
+      string o;
+      o = format(q"◎<br><hr /><br>
+      <div class="substance">
+        <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
+        <h%s class="norm" id="%s"><a name="%s"></a>
+          %s
+        </h%s>
+      </div>
+      ◎",
+      obj.obj_cite_number,
+      obj.obj_cite_number,
+      obj.heading_attrib.lev_markup_number,
+      obj.obj_cite_number,
+      obj.obj_cite_number,
+      obj.object,
+      obj.heading_attrib.lev_markup_number
+      );
+      return o;
+    }
+    auto html_para(O)(
+      auto ref const O         obj,
+    ) {
+      string o;
+      o = format(q"◎<div class="substance">
+        <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
+        <p class="h%si%s" id="%s">
+          %s
+        </p>
+      </div>
+      ◎",
+      obj.obj_cite_number,
+      obj.obj_cite_number,
+      obj.para_attrib.indent_first,
+      obj.para_attrib.indent_second,
+      obj.obj_cite_number,
+      obj.object
+      );
+      return o;
+    }
+    auto scroll_head() {
+      string o;
+      o = format(q"◎
+    <!DOCTYPE html>
+    <html>
+    <head>
+      <meta charset="utf-8">
+      <title>
+        Title
+      </title>
+    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+      <meta name="dc.title" content="Title" />
+      <meta name="dc.author" content="Author" />
+      <meta name="dc.publisher" content="SiSU http://www.jus.uio.no/sisu (this copy)" />
+      <meta name="dc.date" content="year" />
+      <meta name="dc.date.created" content="year" />
+      <meta name="dc.date.issued" content="year" />
+      <meta name="dc.date.available" content="year" />
+      <meta name="dc.date.valid" content="year" />
+      <meta name="dc.date.modified" content="year" />
+      <meta name="dc.language" content="US" />
+      <meta name="dc.rights" content="Copyright: Copyright (C) year holder />
+      <meta name="generator" content="sdp [SiSU 7.1.8 of 2016w08/5 (2016-02-26)] (n*x and D)" />
+        <link rel="generator" href="http://www.sisudoc.org/" />
+      <link rel="shortcut icon" href="../_sisu/image/rb7.ico" />
+      <link href="../../_sisu/css/html.css" rel="stylesheet">
+      <link href="../../../_sisu/css/html.css" rel="stylesheet">
+    </head>
+    <body lang="en">
+    <a name="top" id="top"></a>
+    ◎");
+      return o;
+    }
+    auto scroll_tail() {
+      string o;
+      o = format(q"◎
+    <a name="bottom" id="bottom"></a>
+    <a name="end" id="end"></a>
+    </div>
+    </body>
+    </html>
+    ◎");
+      return o;
+    }
+    void scroll(C)(
+      auto ref const C         contents,
+      string[][string][string] bookindex_unordered_hashes,
+      JSONValue[]              biblio,
+      string[string][string]   dochead_make,
+      string[string][string]   dochead_meta,
+      string                   fn_src,
+      bool[string]             opt_action_bool
+    ) {
+      auto rgx = Rgx();
+      string[] toc;
+      string[] body_;
+      string[] doc;
+      foreach (obj; contents) {
+        if (obj.use == "content") {
+          switch (obj.is_a) {
+          case "heading":
+            toc ~= html_toc(obj);
+            body_ ~= html_heading(obj);
+            break;
+          case "para":
+            body_ ~= html_para(obj);
+            break;
+          case "verse":
+            body_ ~= html_para(obj);
+            // body_ ~= html_verse(obj);
+            break;
+          case "group":
+            body_ ~= html_para(obj);
+            // body_ ~= html_group(obj);
+            break;
+          case "block":
+            body_ ~= html_para(obj);
+            // body_ ~= html_block(obj);
+            break;
+          case "quote":
+            body_ ~= html_para(obj);
+            // body_ ~= html_quote(obj);
+            break;
+          case "table":
+            body_ ~= html_para(obj);
+            // body_ ~= html_table(obj);
+            break;
+          case "code":
+            body_ ~= html_para(obj);
+            // body_ ~= html_code(obj);
+            break;
+          default:
+            body_ ~= html_para(obj);
+            break;
+          }
+        }
+      }
+      doc = scroll_head ~ toc ~ body_ ~ scroll_tail;
+      auto m = matchFirst(fn_src, rgx.src_fn);
+      auto fn = m["fn_base"] ~ ".html";
+      auto pth_html = "en/html";
+      auto pth_seg = pth_html ~ "/" ~ m["fn_base"];
+      auto pth_html_fn = pth_html ~ "/" ~ fn;
+      // auto pth_css= "_sisu/css";
+      // auto pth_css_fn= pth_css ~ "/html.css";
+      try {
+        mkdirRecurse(pth_seg);
+        auto f = File(pth_html_fn, "w");
+        foreach (o; doc) {
+          f.writeln(o);
+        }
+      }
+      catch (ErrnoException ex) {
+        // Handle error
+      }
+    }
+  }
+}
diff --git a/src/sdp/output_hub.d b/src/sdp/output_hub.d
index 6ecfcb4..8c21fa9 100644
--- a/src/sdp/output_hub.d
+++ b/src/sdp/output_hub.d
@@ -26,6 +26,7 @@ template SiSUoutputHub() {
         // text.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make, dochead_meta, fn_src, opt_action_bool);
       }
       if (opt_action_bool["html"]) {
+        mixin SiSUoutputHTML;
         auto html=SDPoutputHTML();
         html.css_write;
         html.scroll(contents, bookindex_unordered_hashes, biblio, dochead_make, dochead_meta, fn_src, opt_action_bool);
@@ -46,1481 +47,5 @@ template SiSUoutputHub() {
         writeln("pgsql processing");
       }
     }
-    struct SDPoutputHTML {
-      auto html_css() {
-        string css;
-        css="/* SiSU css default stylesheet */
-            body {
-              color: black;
-              background: #ffffff;
-              background-color: #ffffff;
-            }
-            a:link {
-              color: #003399;
-              text-decoration: none;
-            }
-            a:visited {
-              color: #003399;
-              text-decoration: none;
-            }
-            a:hover {
-              color: #000000;
-              background-color: #f9f9aa;
-            }
-            a.lnkocn:link {
-              color: #777777;
-              text-decoration: none;
-            }
-            a:hover img {
-              background-color: #ffffff;
-            }
-            a:active {
-              color: #003399;
-              text-decoration: underline;
-            }
-            div {
-              margin-left: 0;
-              margin-right: 0;
-            }
-            div.p {
-              margin-left: 5%;
-              margin-right: 1%;
-            }
-    
-            #top_band {
-              position: absolute;
-              top: 0;
-              bottom: 80px;
-              width: 100%;
-            }
-            #top_band_search {
-              position: absolute;
-              top: 0px;
-              right: 0px;
-              margin-left: 75%;
-              width: 20%;
-            }
-            #column_left {
-              position: absolute;
-              top: 80px;
-              left: 0;
-              margin-left: 1%;
-              width: 20%;
-            }
-            #column_center {
-              position: absolute;
-              top: 80px;
-              margin-left: 20%;
-              width: 55%;
-            }
-            #column_right {
-              position: absolute;
-              top: 80px;
-              right: 0px;
-              margin-left: 75%;
-              width: 25%;
-            }
-            #pane_major {
-              position: absolute;
-              top: 0px;
-              left: 0;
-              margin-left: 0;
-              width: 80%;
-            }
-            #pane_minor {
-              position: absolute;
-              top: 0px;
-              right: 0px;
-              margin-left: 75%;
-              width: 20%;
-              background-color: #aaaaaa;
-            }
-            .norm, .bold, .verse, .group, .block, .alt {
-              line-height: 133%;
-              margin-left: 0em;
-              margin-right: 2em;
-              margin-top: 12px;
-              margin-bottom: 0px;
-              padding-left: 0em;
-              text-indent: 0em;
-            }
-            p, h0, h1, h2, h3, h4, h5, h6, h7 {
-              display: block;
-              font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
-              font-size: 100%;
-              font-weight: normal;
-              line-height: 133%;
-              text-align: justify;
-              margin-left: 0em;
-              margin-right: 2em;
-              text-indent: 0mm;
-              margin-top: 0.8em;
-              margin-bottom: 0.8em;
-            }
-            /* indent */
-            p.norm { }
-            p.i1 {padding-left: 1em;}
-            p.i2 {padding-left: 2em;}
-            p.i3 {padding-left: 3em;}
-            p.i4 {padding-left: 4em;}
-            p.i5 {padding-left: 5em;}
-            p.i6 {padding-left: 6em;}
-            p.i7 {padding-left: 7em;}
-            p.i8 {padding-left: 8em;}
-            p.i9 {padding-left: 9em;}
-            /* hanging indent */
-            p.h0i0 {
-              padding-left: 0em;
-              text-indent:  0em;
-            }
-            p.h0i1 {
-              padding-left: 1em;
-              text-indent: -1em;
-            }
-            p.h0i2 {
-              padding-left: 2em;
-              text-indent: -2em;
-            }
-            p.h0i3 {
-              padding-left: 3em;
-              text-indent: -3em;
-            }
-            p.h0i4 {
-              padding-left: 4em;
-              text-indent: -4em;
-            }
-            p.h0i5 {
-              padding-left: 5em;
-              text-indent: -5em;
-            }
-            p.h0i6 {
-              padding-left: 6em;
-              text-indent: -6em;
-            }
-            p.h0i7 {
-              padding-left: 7em;
-              text-indent: -7em;
-            }
-            p.h0i8 {
-              padding-left: 8em;
-              text-indent: -8em;
-            }
-            p.h0i9 {
-              padding-left: 9em;
-              text-indent: -9em;
-            }
-            p.h1i0 {
-              padding-left: 0em;
-              text-indent:  1em;
-            }
-            p.h1i1 {
-              padding-left: 1em;
-              text-indent:  0em;
-            }
-            p.h1i2 {
-              padding-left: 2em;
-              text-indent: -1em;
-            }
-            p.h1i3 {
-              padding-left: 3em;
-              text-indent: -2em;
-            }
-            p.h1i4 {
-              padding-left: 4em;
-              text-indent: -3em;
-            }
-            p.h1i5 {
-              padding-left: 5em;
-              text-indent: -4em;
-            }
-            p.h1i6 {
-              padding-left: 6em;
-              text-indent: -5em;
-            }
-            p.h1i7 {
-              padding-left: 7em;
-              text-indent: -6em;
-            }
-            p.h1i8 {
-              padding-left: 8em;
-              text-indent: -7em;
-            }
-            p.h1i9 {
-              padding-left: 9em;
-              text-indent: -8em;
-            }
-            p.h2i0 {
-              padding-left: 0em;
-              text-indent:  2em;
-            }
-            p.h2i1 {
-              padding-left: 1em;
-              text-indent:  1em;
-            }
-            p.h2i2 {
-              padding-left: 2em;
-              text-indent:  0em;
-            }
-            p.h2i3 {
-              padding-left: 3em;
-              text-indent: -1em;
-            }
-            p.h2i4 {
-              padding-left: 4em;
-              text-indent: -2em;
-            }
-            p.h2i5 {
-              padding-left: 5em;
-              text-indent: -3em;
-            }
-            p.h2i6 {
-              padding-left: 6em;
-              text-indent: -4em;
-            }
-            p.h2i7 {
-              padding-left: 7em;
-              text-indent: -5em;
-            }
-            p.h2i8 {
-              padding-left: 8em;
-              text-indent: -6em;
-            }
-            p.h2i9 {
-              padding-left: 9em;
-              text-indent: -7em;
-            }
-            p.h3i0 {
-              padding-left: 0em;
-              text-indent:  3em;
-            }
-            p.h3i1 {
-              padding-left: 1em;
-              text-indent:  2em;
-            }
-            p.h3i2 {
-              padding-left: 2em;
-              text-indent:  1em;
-            }
-            p.h3i3 {
-              padding-left: 3em;
-              text-indent:  0em;
-            }
-            p.h3i4 {
-              padding-left: 4em;
-              text-indent: -1em;
-            }
-            p.h3i5 {
-              padding-left: 5em;
-              text-indent: -2em;
-            }
-            p.h3i6 {
-              padding-left: 6em;
-              text-indent: -3em;
-            }
-            p.h3i7 {
-              padding-left: 7em;
-              text-indent: -4em;
-            }
-            p.h3i8 {
-              padding-left: 8em;
-              text-indent: -5em;
-            }
-            p.h3i9 {
-              padding-left: 9em;
-              text-indent: -6em;
-            }
-            p.h4i0 {
-              padding-left: 0em;
-              text-indent:  4em;
-            }
-            p.h4i1 {
-              padding-left: 1em;
-              text-indent:  3em;
-            }
-            p.h4i2 {
-              padding-left: 2em;
-              text-indent:  2em;
-            }
-            p.h4i3 {
-              padding-left: 3em;
-              text-indent:  1em;
-            }
-            p.h4i4 {
-              padding-left: 4em;
-              text-indent:  0em;
-            }
-            p.h4i5 {
-              padding-left: 5em;
-              text-indent: -1em;
-            }
-            p.h4i6 {
-              padding-left: 6em;
-              text-indent: -2em;
-            }
-            p.h4i7 {
-              padding-left: 7em;
-              text-indent: -3em;
-            }
-            p.h4i8 {
-              padding-left: 8em;
-              text-indent: -4em;
-            }
-            p.h4i9 {
-              padding-left: 9em;
-              text-indent: -5em;
-            }
-            p.h5i0 {
-              padding-left: 0em;
-              text-indent:  5em;
-            }
-            p.h5i1 {
-              padding-left: 1em;
-              text-indent:  4em;
-            }
-            p.h5i2 {
-              padding-left: 2em;
-              text-indent:  3em;
-            }
-            p.h5i3 {
-              padding-left: 3em;
-              text-indent:  2em;
-            }
-            p.h5i4 {
-              padding-left: 4em;
-              text-indent:  1em;
-            }
-            p.h5i5 {
-              padding-left: 5em;
-              text-indent:  0em;
-            }
-            p.h5i6 {
-              padding-left: 6em;
-              text-indent: -1em;
-            }
-            p.h5i7 {
-              padding-left: 7em;
-              text-indent: -2em;
-            }
-            p.h5i8 {
-              padding-left: 8em;
-              text-indent: -3em;
-            }
-            p.h5i9 {
-              padding-left: 9em;
-              text-indent: -4em;
-            }
-            p.h6i0 {
-              padding-left: 0em;
-              text-indent:  6em;
-            }
-            p.h6i1 {
-              padding-left: 1em;
-              text-indent:  5em;
-            }
-            p.h6i2 {
-              padding-left: 2em;
-              text-indent:  4em;
-            }
-            p.h6i3 {
-              padding-left: 3em;
-              text-indent:  3em;
-            }
-            p.h6i4 {
-              padding-left: 4em;
-              text-indent:  2em;
-            }
-            p.h6i5 {
-              padding-left: 5em;
-              text-indent:  1em;
-            }
-            p.h6i6 {
-              padding-left: 6em;
-              text-indent:  0em;
-            }
-            p.h6i7 {
-              padding-left: 7em;
-              text-indent: -1em;
-            }
-            p.h6i8 {
-              padding-left: 8em;
-              text-indent: -2em;
-            }
-            p.h6i9 {
-              padding-left: 9em;
-              text-indent: -3em;
-            }
-            p.h7i0 {
-              padding-left: 0em;
-              text-indent:  7em;
-            }
-            p.h7i1 {
-              padding-left: 1em;
-              text-indent:  6em;
-            }
-            p.h7i2 {
-              padding-left: 2em;
-              text-indent:  5em;
-            }
-            p.h7i3 {
-              padding-left: 3em;
-              text-indent:  4em;
-            }
-            p.h7i4 {
-              padding-left: 4em;
-              text-indent:  3em;
-            }
-            p.h7i5 {
-              padding-left: 5em;
-              text-indent:  2em;
-            }
-            p.h7i6 {
-              padding-left: 6em;
-              text-indent:  1em;
-            }
-            p.h7i7 {
-              padding-left: 7em;
-              text-indent:  0em;
-            }
-            p.h7i8 {
-              padding-left: 8em;
-              text-indent: -1em;
-            }
-            p.h7i9 {
-              padding-left: 9em;
-              text-indent: -2em;
-            }
-            p.h8i0 {
-              padding-left: 0em;
-              text-indent:  8em;
-            }
-            p.h8i1 {
-              padding-left: 1em;
-              text-indent:  7em;
-            }
-            p.h8i2 {
-              padding-left: 2em;
-              text-indent:  6em;
-            }
-            p.h8i3 {
-              padding-left: 3em;
-              text-indent:  5em;
-            }
-            p.h8i4 {
-              padding-left: 4em;
-              text-indent:  4em;
-            }
-            p.h8i5 {
-              padding-left: 5em;
-              text-indent:  3em;
-            }
-            p.h8i6 {
-              padding-left: 6em;
-              text-indent:  2em;
-            }
-            p.h8i7 {
-              padding-left: 7em;
-              text-indent:  1em;
-            }
-            p.h8i8 {
-              padding-left: 8em;
-              text-indent:  0em;
-            }
-            p.h8i9 {
-              padding-left: 9em;
-              text-indent: -1em;
-            }
-            p.h9i0 {
-              padding-left: 0em;
-              text-indent:  9em;
-            }
-            p.h9i1 {
-              padding-left: 1em;
-              text-indent:  8em;
-            }
-            p.h9i2 {
-              padding-left: 2em;
-              text-indent:  7em;
-            }
-            p.h9i3 {
-              padding-left: 3em;
-              text-indent:  6em;
-            }
-            p.h9i4 {
-              padding-left: 4em;
-              text-indent:  5em;
-            }
-            p.h9i5 {
-              padding-left: 5em;
-              text-indent:  4em;
-            }
-            p.h9i6 {
-              padding-left: 6em;
-              text-indent:  3em;
-            }
-            p.h9i7 {
-              padding-left: 7em;
-              text-indent:  2em;
-            }
-            p.h9i8 {
-              padding-left: 8em;
-              text-indent:  1em;
-            }
-            p.h9i9 {
-              padding-left: 9em;
-              text-indent:  0em;
-            }
-            p.it0 {
-              margin-left: 0em;
-              margin-top: 6px;
-              margin-bottom: 0px;
-              line-height: 100%;
-            }
-            p.it1 {
-              margin-left: 1em;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              line-height: 100%;
-            }
-            p.it2 {
-              margin-left: 2em;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              line-height: 100%;
-            }
-            p.it3 {
-              margin-left: 3em;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              line-height: 100%;
-            }
-            p.it4 {
-              margin-left: 4em;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              line-height: 100%;
-            }
-            p.it5 {
-              margin-left: 5em;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              line-height: 100%;
-            }
-            p.it6 {
-              margin-left: 6em;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              line-height: 100%;
-            }
-            p.it7 {
-              margin-left: 7em;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              line-height: 100%;
-            }
-            p.it8 {
-              margin-left: 8em;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              line-height: 100%;
-            }
-            p.it9 {
-              margin-left: 9em;
-              margin-bottom: 0px;
-              margin-top: 0px;
-              line-height: 100%;
-            }
-            p.block { }
-            p.group { }
-            p.alt { }
-            p.verse {
-              margin-bottom: 6px;
-            }
-            p.code {
-              font-family: inconsolata, andale mono, courier new, courier, monospace;
-              font-size: 90%;
-              text-align: left;
-              background-color: #eeeeee;
-            }
-            p.caption {
-              text-align: left;
-              font-size: 80%;
-              display: inline;
-            }
-            p.endnote {
-              font-size: 96%;
-              line-height: 120%;
-              text-align: left;
-              margin-right: 15mm;
-            }
-            p.endnote_indent {
-              font-size: 96%;
-              line-height: 120%;
-              text-align: left;
-              margin-left: 2em;
-              margin-right: 15mm;
-            }
-            p.center {
-              text-align: center;
-            }
-            p.bold {
-              font-weight: bold;
-            }
-            p.bold_left {
-              font-weight: bold;
-              text-align: left;
-            }
-            p.centerbold {
-              text-align: center;
-              font-weight: bold;
-            }
-            p.em {
-              font-weight: bold;
-              font-style: normal;
-              background: #fff3b6;
-            }
-            p.small {
-              font-size: 80%;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              margin-right: 6px;
-              text-align: left;
-            }
-            .tiny, .tiny_left, .tiny_right, .tiny_center {
-              font-size: 10px;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              color: #777777;
-              margin-right: 6px;
-              text-align: left;
-            }
-            p.tiny { }
-            p.tiny_left {
-              margin-left: 0px;
-              margin-right: 0px;
-              text-align: left;
-            }
-            p.tiny_right {
-              margin-right: 1em;
-              text-align: right;
-            }
-            p.tiny_center {
-              margin-left: 0px;
-              margin-right: 0px;
-              text-align: center;
-            }
-            p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent {
-              font-size: 80%;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              margin-left: 2mm;
-              margin-right: 4px;
-              text-align: left;
-            }
-            p.pane { }
-            p.pane_title {
-              font-weight: bold;
-              margin-bottom: 0px;
-            }
-            p.pane_blurb {
-              font-size: 10px;
-              margin-bottom: 0px;
-            }
-            p.pane_link {
-              font-size: 10px;
-              margin-bottom: 0px;
-              margin-left: 4mm;
-            }
-            p.pane_indent {
-              font-size: 10px;
-              margin-bottom: 0px;
-              margin-left: 4mm;
-            }
-            p.concordance_word {
-              line-height: 150%;
-              font-weight: bold;
-              display: inline;
-              margin-top: 4px;
-              margin-bottom: 1px;
-            }
-            p.concordance_count {
-              font-size: 80%;
-              color: #777777;
-              display: inline;
-              margin-left: 0em;
-            }
-            p.concordance_object {
-              font-size: 80%;
-              line-height: 120%;
-              text-align: left;
-              margin-left: 3em;
-              margin-top: 1px;
-              margin-bottom: 3px;
-            }
-            p.book_index_lev1 {
-              line-height: 100%;
-              margin-top: 4px;
-              margin-bottom: 1px;
-            }
-            p.book_index_lev2 {
-              line-height: 100%;
-              text-align: left;
-              margin-left: 3em;
-              margin-top: 1px;
-              margin-bottom: 3px;
-            }
-            p.quickref {
-              font-size: 10px;
-              font-style: italic;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              color: #777777;
-              margin-right: 5px;
-              text-align: left;
-            }
-            p.bigref {
-              font-size: 11px;
-              font-weight: bold;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              color: #777777;
-              margin-right: 5px;
-              text-align: center;
-            }
-            p.letter {
-              font-weight: bold;
-              font-size: 80%;
-              margin-left: 0em;
-              margin-top: 2px;
-              margin-bottom: 2px;
-              margin-right: 6px;
-              text-align: left;
-              color: white;
-              background: #880000;
-            }
-            tt {
-              font-family: inconsolata, andale mono, courier new, courier, monospace;
-              background-color: #eeeeee;
-            }
-            label.ocn {
-              width: 2%;
-              float: right;
-              top: 0;
-              font-size: 10px;
-              margin-top: 0px;
-              margin-bottom: 5px;
-              color: #777777;
-              margin-right: 5px;
-              text-align: right;
-              background-color: #ffffff;
-            }
-            table { }
-            tr { }
-            th,td {
-              vertical-align: top;
-              text-align: left;
-            }
-            th {
-              font-weight: bold;
-            }
-            p.left,th.left,td.left {
-              text-align: left;
-            }
-            p.small_left,th.small_left,td.small_left {
-              text-align: left;
-              font-size: 80%;
-            }
-            p.right,th.right,td.right {
-              text-align: right;
-            }
-            #horizontal_links {
-              background: #eeeeee;
-              margin-left: 5%;
-              margin-right: 5%;
-            }
-            #horizontal {
-              margin: 0;
-              padding: 0 0 0 10px;
-              border-top: 1px solid #000077;
-              border-bottom: 1px solid #000077;
-            }
-            #horizontal li {
-              margin: 0 0 0 0;
-              padding: 0 16px 0 0;
-              display: inline;
-              list-style-type: none;
-              text-align: left;
-              background: none;
-            }
-            #horizontal a {
-              line-height: 12px;
-              margin: 0 0 0 0;
-              text-decoration: none;
-              color: #000077;
-            }
-            #horizontal a.active, #horizontal a:hover {
-              border-bottom: 2px solid #777777;
-              padding-bottom: 2px;
-              color: #000077;
-            }
-            #horizontal a:hover {
-              color: #000077;
-            }
-            #document_versions {
-              position: absolute;
-              top: 10mm;
-              right: 2%;
-              width: 12%;
-              float: right;
-            }
-            #vertical_links {
-              position: absolute;
-              top: 10mm;
-              right: 0px;
-              width: 20%;
-              background: #dddddd;
-              float: right;
-            }
-            #vertical {
-              padding: 0 12px 0px 0px;
-              margin-left: 2%;
-              margin-right: 2%;
-            }
-            #vertical li {
-              display: block;
-              list-style-type: none;
-            }
-            #vertical a {
-              line-height: 12px;
-              text-decoration: none;
-              color: #000077;
-            }
-            #vertical a.active, #vertical a:hover {
-              border-bottom: 2px solid #777777;
-              padding-bottom: 2px;
-              color: #000077;
-            }
-            ul, li {
-              list-style-type: none;
-              list-style: none;
-              padding-left: 20px;
-              display: block;
-              font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;
-              font-weight: normal;
-              line-height: 150%;
-              text-align: left;
-              text-indent: 0mm;
-              margin-left: 1em;
-              margin-right: 2em;
-              margin-top: 3px;
-              margin-bottom: 3px;
-            }
-            li {
-              background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
-            }
-            ul {
-            }
-            li.bullet { margin-left: 1em; }
-            li.i1 { margin-left: 2em; }
-            li.i2 { margin-left: 3em; }
-            li.i3 { margin-left: 4em; }
-            li.i4 { margin-left: 5em; }
-            li.i5 { margin-left: 6em; }
-            li.i6 { margin-left: 7em; }
-            li.i7 { margin-left: 8em; }
-            li.i8 { margin-left: 9em; }
-            li.i9 { margin-left: 10em; }
-            li.doc, li.ref, li.refcenter {
-              margin-top: 0px;
-              margin-bottom: 0px;
-              margin-right: 0px;
-              font-size: 8px;
-              font-style: normal;
-              text-align: left;
-            }
-            li.doc {
-              background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
-              padding-left: 16px;
-              margin-left: 10px;
-              margin-right: 0px;
-            }
-            li.ref {
-              background: none;
-              padding-left: 0;
-              margin-left: 0;
-              color: #777777;
-            }
-            li.refcenter {
-              background: url(../image_sys/bullet_09.png) no-repeat 0px 6px;
-              padding-left: 20px;
-              margin-left: 10%;
-              font-size: 9px;
-              color: #777777;
-              text-align: center;
-            }
-            li.refbold {
-              list-style-type: none;
-              padding-left: 16px;
-              margin-left: 0;
-              margin-right: 10mm;
-              font-weight: bold;
-            }
-            h0, h1, h2, h3, h4, h5, h6, h7 {
-              font-weight: bold;
-              line-height: 120%;
-              text-align: left;
-              margin-top: 20px;
-              margin-bottom: 10px;
-            }
-            h4.norm, h5.norm, h6.norm, h7.norm {
-              margin-top: 10px;
-              margin-bottom: 0px;
-            }
-            h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {
-              text-align: center;
-            }
-            h0 { font-size: 125%; }
-            h1 { font-size: 120%; }
-            h2 { font-size: 115%; }
-            h3 { font-size: 110%; }
-            h4 { font-size: 105%; }
-            h5 { font-size: 100%; }
-            h6 { font-size: 100%; }
-            h7 { font-size: 100%; }
-            h1.i {margin-left: 2em;}
-            h2.i {margin-left: 3em;}
-            h3.i {margin-left: 4em;}
-            h4.i {margin-left: 5em;}
-            h5.i {margin-left: 6em;}
-            h6.i {margin-left: 7em;}
-            h7.i {margin-left: 8em;}
-            h8.i {margin-left: 9em;}
-            h9.i {margin-left: 10em;}
-            h1.top_band {
-              display: inline;
-              text-align: left;
-              margin-top: 0;
-              margin-left: 4mm;
-              text-indent: 0mm;
-              font-weight: bold;
-              font-size: 120%;
-            }
-            h2.top_band_tiny {
-              font-size: 10px;
-              font-weight: normal;
-              margin-top: 0px;
-              margin-left: 4mm;
-              text-indent: 0mm;
-              margin-bottom: 0px;
-              color: #777777;
-              margin-left: 140px;
-              margin-right: 0px;
-              text-align: left;
-            }
-            p.top_band {
-              display: inline;
-              text-align: left;
-              margin-top: 0;
-              margin-left: 140px;
-              text-indent: 0mm;
-              font-weight: bold;
-              font-size: 120%;
-            }
-            p.top_band_tiny {
-              font-size: 10px;
-              margin-top: 0px;
-              margin-bottom: 0px;
-              color: #777777;
-              margin-left: 140px;
-              margin-right: 0px;
-              text-align: left;
-            }
-            p.top_band_image {
-              float: left;
-              display: inline;
-              text-align: left;
-              margin-top: 0;
-              margin-left: 1mm;
-              text-indent: 0mm;
-              margin-right: 1mm;
-            }
-            .banner, .subbanner {
-              font-weight: bold;
-              text-align: center;
-              margin-left: 10mm;
-              margin-right: 15mm;
-              margin-top: 20px;
-              margin-bottom: 10px;
-            }
-            h0.banner {
-              font-size: 125%;
-            }
-            h1.banner {
-              font-size: 120%;
-            }
-            h1.subbanner {
-              font-size: 115%;
-            }
-            h2.banner {
-              font-size: 110%;
-            }
-            h3.banner {
-              color: #990000;
-              font-size: 105%;
-            }
-            h4.banner {
-              color: #ff0000;
-              font-size: 100%;
-            }
-            h5.banner {
-            }
-            h6.banner {
-            }
-            h7.banner {
-            }
-            .toc {
-              font-weight: normal;
-              margin-top: 6px;
-              margin-bottom: 6px;
-            }
-            h0.toc {
-              margin-left: 1em;
-              font-size: 120%;
-              line-height: 150%;
-            }
-            h1.toc {
-              margin-left: 1em;
-              font-size: 115%;
-              line-height: 150%;
-            }
-            h2.toc {
-              margin-left: 2em;
-              font-size: 110%;
-              line-height: 140%;
-            }
-            h3.toc {
-              margin-left: 3em;
-              font-size: 105%;
-              line-height: 120%;
-            }
-            h4.toc {
-              margin-left: 4em;
-              font-size: 100%;
-              line-height: 120%;
-            }
-            h5.toc {
-              margin-left: 5em;
-              font-size: 95%;
-              line-height: 110%;
-            }
-            h6.toc {
-              margin-left: 6em;
-              font-size: 90%;
-              line-height: 110%;
-            }
-            h7.toc {
-              margin-left: 7em;
-              font-size: 85%;
-              line-height: 100%;
-            }
-            .microtoc {
-              margin-top: 2px;
-              margin-bottom: 2px;
-            }
-            h0.microtoc {
-              margin-left: 0mm;
-              font-size: 120%;
-            }
-            h1.microtoc {
-              margin-left: 0mm;
-              font-size: 115%;
-            }
-            h2.microtoc {
-              margin-left: 5mm;
-              font-size: 110%;
-            }
-            h3.microtoc {
-              margin-left: 10mm;
-              font-size: 105%;
-            }
-            h4.microtoc {
-              margin-left: 15mm;
-              font-weight: normal;
-              font-size: 100%;
-            }
-            h5.microtoc {
-              margin-left: 20mm;
-              font-weight: normal;
-              font-size: 95%;
-            }
-            h6.microtoc {
-              margin-left: 25mm;
-              font-weight: normal;
-              font-size: 90%;
-            }
-            h7.microtoc {
-              margin-left: 30mm;
-              font-weight: normal;
-              font-size: 85%;
-            }
-            .subtoc {
-              margin-right: 34%;
-              font-weight: normal;
-            }
-            h5.subtoc {
-              margin-left: 2em;
-              font-size: 80%;
-              margin-top: 2px;
-              margin-bottom: 2px;
-            }
-            h6.subtoc {
-              margin-left: 3em;
-              font-size: 75%;
-              margin-top: 0px;
-              margin-bottom: 0px;
-            }
-            h7.subtoc {
-              margin-left: 4em;
-              font-size: 70%;
-              margin-top: 0px;
-              margin-bottom: 0px;
-            }
-            div.substance {
-              width: 100%;
-              background-color: #ffffff;
-            }
-            div.ocn {
-              width: 5%;
-              float: right;
-              top: 0;
-              background-color: #ffffff;
-            }
-            div.endnote {
-              width: 95%;
-              background-color: #fffffff;
-            }
-            div.toc {
-              position: absolute;
-              float: left;
-              margin: 0;
-              padding: 0;
-              padding-top: 0.5em;
-              border: 0;
-              width: 13em;
-              background-color: #eeeeee;
-              margin-right:1em;
-            }
-            div.summary {
-              margin: 0;
-              padding: 0;
-              border-left: 13em solid #eeeeee;
-              padding-left: 1em;
-              background-color: #eeeeee;
-            }
-            div.content, div.main_column {
-              margin: 0;
-              padding: 0;
-              border-left: 13em solid #ffffff;
-              padding-left: 1em;
-              padding-right: 1em;
-            }
-            div.content0, div.main_column0 {
-              margin: 0;
-              padding: 0;
-              border-left: 0% solid #ffffff;
-              padding-left: 5%;
-            }
-            div.scroll {
-              margin: 0;
-              padding: 0;
-              padding-left: 1em;
-              padding-right: 1em;
-            }
-            div.content:after {
-              content:' ';
-              clear:both;
-              display:block;
-              height:0;
-              overflow:hidden
-            }
-            div.footer {
-              clear:left;
-              padding: 0.5em;
-              font-size: 80%;
-              margin: 0;
-            }
-            div.toc ul {
-              list-style: none;
-              padding: 0;
-              margin: 0;
-            }
-            div.toc li ul a, li ul span.currentlink
-            {
-              font-weight: normal;
-              font-size: 90%;
-              padding-left: 2em;
-              background-color: #eeeeee;
-            }
-            div.toc a, span.currentlink{
-              display:block;
-              text-decoration: none;
-              padding-left: 0.5em;
-              color: #0000aa;
-            }
-            hr {
-              width: 90%;
-            }
-            span.currentlink {
-              text-decoration: none;
-              background-color: #aaaaf9;
-            }
-            div.toc a:visited {
-              color: #0000aa;
-            }
-            div.toc a:hover {
-              color: #000000;
-              background-color: #f9f9aa;
-            }
-            .minitoc {
-              font-weight: normal;
-              margin-top: 2px;
-              margin-bottom: 2px;
-            }
-            h1.minitoc, h2.minitoc, h3.minitoc {
-              margin-left: 0em;
-              font-weight: bold;
-              text-align: left;
-              font-size: 90%;
-              margin-top: 4px;
-              margin-bottom: 4px;
-            }
-            h4.minitoc {
-              margin-left: 0em;
-              font-size: 90%;
-            }
-            h5.minitoc {
-              margin-left: 1em;
-              font-size: 85%;
-            }
-            h6.minitoc {
-              margin-left: 2em;
-              font-size: 85%;
-            }
-            h7.minitoc {
-              margin-left: 3em;
-              font-size: 80%;
-            }
-            h0.minitoc {
-              margin-left: 0em;
-              font-size: 90%;
-            }
-            h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {
-              text-align: center
-            }
-            h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {
-              text-align: center;
-              color: #ff0000;
-              margin-left: 5mm;
-              text-indent: 5mm;
-              margin-top: 30px;
-              margin-bottom: 20px;
-              margin-right: 15mm;
-            }
-            h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {
-              text-align: center;
-              color: #990000;
-              margin-left: 5mm;
-              text-indent: 5mm;
-              margin-top: 30px;
-              margin-bottom: 20px;
-              margin-right: 15mm;
-        }";
-        return css;
-      }
-      auto css_write() {
-        auto pth_css= "_sisu/css";
-        auto pth_css_fn= pth_css ~ "/html.css";
-        try {
-          mkdirRecurse(pth_css);
-          auto f = File(pth_css_fn, "w");
-          f.writeln(html_css);
-          // foreach (o; doc) {
-          //   f.writeln(o);
-          // }
-        }
-        catch (ErrnoException ex) {
-          // Handle error
-        }
-      }
-      auto html_toc(O)(
-        auto ref const O         obj,
-      ) {
-        string o;
-        o = format(q"◎<h%s class="toc"><a href="#%s">%s</a></h%s>◎",
-        obj.heading_attrib.lev_markup_number,
-        obj.obj_cite_number,
-        obj.object,
-        obj.heading_attrib.lev_markup_number
-        );
-        return o;
-      }
-      auto html_heading(O)(
-        auto ref const O         obj,
-      ) {
-        string o;
-        o = format(q"◎<br><hr /><br>
-        <div class="substance">
-          <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
-          <h%s class="norm" id="%s"><a name="%s"></a>
-            %s
-          </h%s>
-        </div>
-        ◎",
-        obj.obj_cite_number,
-        obj.obj_cite_number,
-        obj.heading_attrib.lev_markup_number,
-        obj.obj_cite_number,
-        obj.obj_cite_number,
-        obj.object,
-        obj.heading_attrib.lev_markup_number
-        );
-        return o;
-      }
-      auto html_para(O)(
-        auto ref const O         obj,
-      ) {
-        string o;
-        o = format(q"◎<div class="substance">
-          <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label>
-          <p class="h%si%s" id="%s">
-            %s
-          </p>
-        </div>
-        ◎",
-        obj.obj_cite_number,
-        obj.obj_cite_number,
-        obj.para_attrib.indent_first,
-        obj.para_attrib.indent_second,
-        obj.obj_cite_number,
-        obj.object
-        );
-        return o;
-      }
-      auto scroll_head() {
-        string o;
-        o = format(q"◎
-    <!DOCTYPE html>
-    <html>
-    <head>
-      <meta charset="utf-8">
-      <title>
-        Title
-      </title>
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-      <meta name="dc.title" content="Title" />
-      <meta name="dc.author" content="Author" />
-      <meta name="dc.publisher" content="SiSU http://www.jus.uio.no/sisu (this copy)" />
-      <meta name="dc.date" content="year" />
-      <meta name="dc.date.created" content="year" />
-      <meta name="dc.date.issued" content="year" />
-      <meta name="dc.date.available" content="year" />
-      <meta name="dc.date.valid" content="year" />
-      <meta name="dc.date.modified" content="year" />
-      <meta name="dc.language" content="US" />
-      <meta name="dc.rights" content="Copyright: Copyright (C) year holder />
-      <meta name="generator" content="sdp [SiSU 7.1.8 of 2016w08/5 (2016-02-26)] (n*x and D)" />
-        <link rel="generator" href="http://www.sisudoc.org/" />
-      <link rel="shortcut icon" href="../_sisu/image/rb7.ico" />
-      <link href="../../_sisu/css/html.css" rel="stylesheet">
-      <link href="../../../_sisu/css/html.css" rel="stylesheet">
-    </head>
-    <body lang="en">
-    <a name="top" id="top"></a>
-    ◎");
-        return o;
-      }
-      auto scroll_tail() {
-        string o;
-        o = format(q"◎
-    <a name="bottom" id="bottom"></a>
-    <a name="end" id="end"></a>
-    </div>
-    </body>
-    </html>
-    ◎");
-        return o;
-      }
-      auto scroll(C)(
-        auto ref const C         contents,
-        string[][string][string] bookindex_unordered_hashes,
-        JSONValue[]              biblio,
-        string[string][string]   dochead_make,
-        string[string][string]   dochead_meta,
-        string                   fn_src,
-        bool[string]             opt_action_bool
-      ) {
-        auto rgx = Rgx();
-        string[] toc;
-        string[] body_;
-        string[] doc;
-        foreach (obj; contents) {
-          if (obj.use == "content") {
-            switch (obj.is_a) {
-            case "heading":
-              toc ~= html_toc(obj);
-              body_ ~= html_heading(obj);
-              break;
-            case "para":
-              body_ ~= html_para(obj);
-              break;
-            case "verse":
-              body_ ~= html_para(obj);
-              // body_ ~= html_verse(obj);
-              break;
-            case "group":
-              body_ ~= html_para(obj);
-              // body_ ~= html_group(obj);
-              break;
-            case "block":
-              body_ ~= html_para(obj);
-              // body_ ~= html_block(obj);
-              break;
-            case "quote":
-              body_ ~= html_para(obj);
-              // body_ ~= html_quote(obj);
-              break;
-            case "table":
-              body_ ~= html_para(obj);
-              // body_ ~= html_table(obj);
-              break;
-            case "code":
-              body_ ~= html_para(obj);
-              // body_ ~= html_code(obj);
-              break;
-            default:
-              body_ ~= html_para(obj);
-              break;
-            }
-          }
-        }
-        doc = scroll_head ~ toc ~ body_ ~ scroll_tail;
-        auto m = matchFirst(fn_src, rgx.src_fn);
-        auto fn = m["fn_base"] ~ ".html";
-        auto pth_html = "en/html";
-        auto pth_seg = pth_html ~ "/" ~ m["fn_base"];
-        auto pth_html_fn = pth_html ~ "/" ~ fn;
-        // auto pth_css= "_sisu/css";
-        // auto pth_css_fn= pth_css ~ "/html.css";
-        try {
-          mkdirRecurse(pth_seg);
-          auto f = File(pth_html_fn, "w");
-          foreach (o; doc) {
-            f.writeln(o);
-          }
-        }
-        catch (ErrnoException ex) {
-          // Handle error
-        }
-      }
-    }
   }
 }
diff --git a/views/version.txt b/views/version.txt
index 1936da9..074c093 100644
--- a/views/version.txt
+++ b/views/version.txt
@@ -4,4 +4,4 @@ struct Version {
   int minor;
   int patch;
 }
-enum ver = Version(0, 6, 6);
+enum ver = Version(0, 6, 7);
-- 
cgit v1.2.3