From 1eba4830ee85784dfe44e56be9508151349b7e4e Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph@amissah.com>
Date: Tue, 14 Mar 2017 12:25:23 -0400
Subject: org files minor touches

---
 src/sdp/ao_abstract_doc_source.d | 621 ++++++++++++++++++++-------------------
 src/sdp/ao_defaults.d            |  62 ++--
 src/sdp/ao_read_source_files.d   |   2 +-
 src/sdp/ao_rgx.d                 |   2 +-
 src/sdp/output_html.d            | 455 ----------------------------
 src/sdp/output_xhtmls.d          |   2 +-
 6 files changed, 357 insertions(+), 787 deletions(-)

(limited to 'src/sdp')

diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d
index 066ef3a..82341cd 100644
--- a/src/sdp/ao_abstract_doc_source.d
+++ b/src/sdp/ao_abstract_doc_source.d
@@ -234,7 +234,7 @@ template SiSUdocAbstraction() {
     Opt                  opt_action_bool,
   ) {
     auto rgx = Rgx();
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(markup_sourcefile_content) == char[][]));
       static assert(is(typeof(dochead_make_aa)           == string[string][string]));
       static assert(is(typeof(dochead_meta_aa)           == string[string][string]));
@@ -386,6 +386,7 @@ template SiSUdocAbstraction() {
       } else if (!matchFirst(line, rgx.skip_from_regular_parse)) {
         /+ object other than "code block" object
            (includes regular text paragraph, headings & blocks other than code) +/
+        /+ heading, glossary, blurb, poem, group, block, quote, table +/
         if ((matchFirst(line, rgx.heading_biblio)
         || (type["biblio_section"] == State.on
         && (!matchFirst(line, rgx.heading_blurb_glossary))))
@@ -556,10 +557,6 @@ template SiSUdocAbstraction() {
             type["ocn_status"] = TriState.off;
           }
           continue;
-        } else if (type["poem"] == TriState.on) {
-          /+ within block object: poem +/
-          _poem_block_(line, an_object, type, cntr, obj_cite_number_poem, dochead_make_aa);
-          continue;
         /+ within block object: group +/
         } else if (type["group"] == TriState.on) {
           /+ within block object: group +/
@@ -569,6 +566,10 @@ template SiSUdocAbstraction() {
           /+ within block object: block +/
           _block_block_(line, an_object, type);
           continue;
+        } else if (type["poem"] == TriState.on) {
+          /+ within block object: poem +/
+          _poem_block_(line, an_object, type, cntr, obj_cite_number_poem, dochead_make_aa);
+          continue;
         } else if (type["quote"] == TriState.on) {
           /+ within block object: quote +/
           _quote_block_(line, an_object, type);
@@ -789,7 +790,8 @@ template SiSUdocAbstraction() {
               an_object.remove("lev_markup_number");
               processing.remove("verse");
               ++cntr;
-            } else if ((type["para"] == State.on) && (line_occur["para"] > State.off)) {
+            } else if ((type["para"] == State.on)
+            && (line_occur["para"] > State.off)) {
               /+ paragraph object (current line empty) +/
               obj_cite_number = ocn_emit(type["ocn_status"]);
               an_object["bookindex_nugget"] =
@@ -846,10 +848,9 @@ template SiSUdocAbstraction() {
       /+ unless (the_document_body_section.length == 0) ? +/
       if (the_document_body_section.length > 0) {
         if (((the_document_body_section[$-1].is_a == "para")
-        || (the_document_body_section[$-1].is_a == "heading")
-        || (the_document_body_section[$-1].is_a == "group"))
-        && (the_document_body_section.length > previous_length)
-      ) {
+          || (the_document_body_section[$-1].is_a == "heading")
+          || (the_document_body_section[$-1].is_a == "group"))
+        && (the_document_body_section.length > previous_length)) {
           if ((the_document_body_section[$-1].is_a == "heading")
           && (the_document_body_section[$-1].heading_lev_markup < 5)) {
             type["biblio_section"] = State.off;
@@ -1603,7 +1604,7 @@ template SiSUdocAbstraction() {
   } /+ ← closed: abstract doc source +/
   /+ ↓ abstraction functions +/
   auto object_reset(O)(ref O an_object) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(an_object) == string[string]));
     }
     an_object.remove("body_nugget");
@@ -1617,7 +1618,7 @@ template SiSUdocAbstraction() {
     return ref O an_object,
     return ref T type
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line_occur) == int[string]));
       static assert(is(typeof(an_object)  == string[string]));
       static assert(is(typeof(type)       == int[string]));
@@ -1632,7 +1633,7 @@ template SiSUdocAbstraction() {
     L            line,
     return ref T type
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line) == char[]));
       static assert(is(typeof(type) == int[string]));
     }
@@ -1682,7 +1683,7 @@ template SiSUdocAbstraction() {
     return ref T type,
     N            obj_cite_number_poem
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line)                 == char[]));
       static assert(is(typeof(type)                 == int[string]));
       static assert(is(typeof(obj_cite_number_poem) == string[string]));
@@ -1754,8 +1755,8 @@ template SiSUdocAbstraction() {
           line
         );
       }
-      type["blocks"] = TriState.on;
-      type["table"] = TriState.on;
+      type["blocks"]      = TriState.on;
+      type["table"]       = TriState.on;
       type["curly_table"] = TriState.on;
     } else if (matchFirst(line, rgx.block_tic_code_open)) {
       /+ tic code open +/
@@ -1822,8 +1823,8 @@ template SiSUdocAbstraction() {
           line
         );
       }
-      type["blocks"] = TriState.on;
-      type["table"] = TriState.on;
+      type["blocks"]    = TriState.on;
+      type["table"]     = TriState.on;
       type["tic_table"] = TriState.on;
     }
   }
@@ -1832,7 +1833,7 @@ template SiSUdocAbstraction() {
     return ref O an_object,
     return ref T type
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line)      == char[]));
       static assert(is(typeof(an_object) == string[string]));
       static assert(is(typeof(type)      == int[string]));
@@ -1869,7 +1870,7 @@ template SiSUdocAbstraction() {
     }
   }
   final string biblio_tag_map(A)(A abr) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(abr) == string));
     }
     auto btm = [
@@ -2013,6 +2014,88 @@ template SiSUdocAbstraction() {
     }
   }
   // 
+  void _group_block_(L,O,T)(
+    return ref L line,
+    return ref O an_object,
+    return ref T type
+  ) {
+    debug(asserts) {
+      static assert(is(typeof(line)      == char[]));
+      static assert(is(typeof(an_object) == string[string]));
+      static assert(is(typeof(type)      == int[string]));
+    }
+    auto rgx = Rgx();
+    if (type["curly_group"] == State.on) {
+      if (matchFirst(line, rgx.block_curly_group_close)) {
+        debug(group) {
+          writeln(line);
+        }
+        type["blocks"]      = TriState.closing;
+        type["group"]       = TriState.closing;
+        type["curly_group"] = TriState.off;
+      } else {
+        debug(group) {
+          writeln(line);
+        }
+        an_object[an_object_key] ~= line ~= "\n";   // build group array (or string)
+      }
+    } else if (type["tic_group"] == TriState.on) {
+      if (matchFirst(line, rgx.block_tic_close)) {
+        debug(group) {
+          writeln(line);
+        }
+        type["blocks"]    = TriState.closing;
+        type["group"]     = TriState.closing;
+        type["tic_group"] = TriState.off;
+      } else {
+        debug(group) {                              // group
+          writeln(line);
+        }
+        an_object[an_object_key] ~= line ~= "\n";   // build group array (or string)
+      }
+    }
+  }
+  void _block_block_(L,O,T)(
+    return ref L line,
+    return ref O an_object,
+    return ref T type
+  ) {
+    debug(asserts) {
+      static assert(is(typeof(line)      == char[]));
+      static assert(is(typeof(an_object) == string[string]));
+      static assert(is(typeof(type)      == int[string]));
+    }
+    auto rgx = Rgx();
+    if (type["curly_block"] == TriState.on) {
+      if (matchFirst(line, rgx.block_curly_block_close)) {
+        debug(block) {                             // block (curly) close
+          writeln(line);
+        }
+        type["blocks"]      = TriState.closing;
+        type["block"]       = TriState.closing;
+        type["curly_block"] = TriState.off;
+      } else {
+        debug(block) {
+          writeln(line);
+        }
+        an_object[an_object_key] ~= line ~= "\n";   // build block array (or string)
+      }
+    } else if (type["tic_block"] == TriState.on) {
+      if (matchFirst(line, rgx.block_tic_close)) {
+        debug(block) {
+          writeln(line);
+        }
+        type["blocks"]    = TriState.closing;
+        type["block"]     = TriState.closing;
+        type["tic_block"] = TriState.off;
+      } else {
+        debug(block) {
+          writeln(line);
+        }
+        an_object[an_object_key] ~= line ~= "\n";   // build block array (or string)
+      }
+    }
+  }
   void _poem_block_(L,O,T,C,N,Ma)(
     L     line,
     return ref O an_object,
@@ -2021,7 +2104,7 @@ template SiSUdocAbstraction() {
     N            obj_cite_number_poem,
     Ma           dochead_make_aa,
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line)                 == char[]));
       static assert(is(typeof(an_object)            == string[string]));
       static assert(is(typeof(type)                 == int[string]));
@@ -2227,94 +2310,12 @@ template SiSUdocAbstraction() {
       }
     }
   }
-  void _group_block_(L,O,T)(
-    return ref L line,
-    return ref O an_object,
-    return ref T type
-  ) {
-    debug(asserts){
-      static assert(is(typeof(line)      == char[]));
-      static assert(is(typeof(an_object) == string[string]));
-      static assert(is(typeof(type)      == int[string]));
-    }
-    auto rgx = Rgx();
-    if (type["curly_group"] == State.on) {
-      if (matchFirst(line, rgx.block_curly_group_close)) {
-        debug(group) {                              // group (curly) close
-          writeln(line);
-        }
-        type["blocks"] = TriState.closing;
-        type["group"] = TriState.closing;
-        type["curly_group"] = TriState.off;
-      } else {
-        debug(group) {                              // group
-          writeln(line);
-        }
-        an_object[an_object_key] ~= line ~= "\n";   // build group array (or string)
-      }
-    } else if (type["tic_group"] == TriState.on) {
-      if (matchFirst(line, rgx.block_tic_close)) {
-        debug(group) {                              // group (tic) close
-          writeln(line);
-        }
-        type["blocks"] = TriState.closing;
-        type["group"] = TriState.closing;
-        type["tic_group"] = TriState.off;
-      } else {
-        debug(group) {                              // group
-          writeln(line);
-        }
-        an_object[an_object_key] ~= line ~= "\n";   // build group array (or string)
-      }
-    }
-  }
-  void _block_block_(L,O,T)(
-    return ref L line,
-    return ref O an_object,
-    return ref T type
-  ) {
-    debug(asserts){
-      static assert(is(typeof(line)      == char[]));
-      static assert(is(typeof(an_object) == string[string]));
-      static assert(is(typeof(type)      == int[string]));
-    }
-    auto rgx = Rgx();
-    if (type["curly_block"] == TriState.on) {
-      if (matchFirst(line, rgx.block_curly_block_close)) {
-        debug(block) {                             // block (curly) close
-          writeln(line);
-        }
-        type["blocks"] = TriState.closing;
-        type["block"] = TriState.closing;
-        type["curly_block"] = TriState.off;
-      } else {
-        debug(block) {                             // block
-          writeln(line);
-        }
-        an_object[an_object_key] ~= line ~= "\n";   // build block array (or string)
-      }
-    } else if (type["tic_block"] == TriState.on) {
-      if (matchFirst(line, rgx.block_tic_close)) {
-        debug(block) {                              // block (tic) close
-          writeln(line);
-        }
-        type["blocks"] = TriState.closing;
-        type["block"] = TriState.closing;
-        type["tic_block"] = TriState.off;
-      } else {
-        debug(block) {                             // block
-          writeln(line);
-        }
-        an_object[an_object_key] ~= line ~= "\n";   // build block array (or string)
-      }
-    }
-  }
   void _quote_block_(L,O,T)(
     return ref L line,
     return ref O an_object,
     return ref T type
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line)      == char[]));
       static assert(is(typeof(an_object) == string[string]));
       static assert(is(typeof(type)      == int[string]));
@@ -2325,8 +2326,8 @@ template SiSUdocAbstraction() {
         debug(quote) {                              // quote (curly) close
           writeln(line);
         }
-        type["blocks"] = TriState.closing;
-        type["quote"] = TriState.closing;
+        type["blocks"]      = TriState.closing;
+        type["quote"]       = TriState.closing;
         type["curly_quote"] = TriState.off;
       } else {
         debug(quote) {
@@ -2339,8 +2340,8 @@ template SiSUdocAbstraction() {
         debug(quote) {                              // quote (tic) close
           writeln(line);
         }
-        type["blocks"] = TriState.closing;
-        type["quote"] = TriState.closing;
+        type["blocks"]    = TriState.closing;
+        type["quote"]     = TriState.closing;
         type["tic_quote"] = TriState.off;
       } else {
         debug(quote) {
@@ -2355,7 +2356,7 @@ template SiSUdocAbstraction() {
     return ref O an_object,
     return ref T type
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line)      == char[]));
       static assert(is(typeof(an_object) == string[string]));
       static assert(is(typeof(type)      == int[string]));
@@ -2392,8 +2393,8 @@ template SiSUdocAbstraction() {
     }
   }
   void _block_flag_line_empty_(B)(
-    B                            bookindex_extract_hash,
-    char[]                       line,
+    B                                   bookindex_extract_hash,
+    char[]                              line,
     return ref string[string]           an_object,
     return ref ObjGenericComposite[]    the_document_body_section,
     return ref string[][string][string] bookindex_unordered_hashes,
@@ -2414,14 +2415,18 @@ template SiSUdocAbstraction() {
       "code block status: closed"
     );
     assertions_flag_types_block_status_none_or_closed(type);
-    if (type["code"] == TriState.closing) {
+    if (type["group"] == TriState.closing) {
       obj_cite_number =
         ocn_emit(type["ocn_status"]);
       an_object["bookindex_nugget"] =
         ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
       bookindex_unordered_hashes =
-        bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
-      an_object["is"] = "code";
+        bookindex_extract_hash.bookindex_nugget_hash(
+          an_object["bookindex_nugget"],
+          obj_cite_number,
+          segment_anchor_tag_that_object_belongs_to
+        );
+      an_object["is"] = "group";
       auto comp_obj_location =
         node_construct.node_location_emitter(
           content_non_header,
@@ -2435,57 +2440,33 @@ template SiSUdocAbstraction() {
         obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
       an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
       anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
-      comp_obj_code                             = comp_obj_code.init;
-      comp_obj_code.use                         = "body";
-      comp_obj_code.is_of                       = "block";
-      comp_obj_code.is_a                        = "code";
-      comp_obj_code.ocn                         = obj_cite_number;
-      comp_obj_code.obj_cite_number             = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
-      comp_obj_code.text                        = an_object["substantive"];
-      comp_obj_code.inline_notes_reg            = substantive_obj_misc_tuple[sObj.notes_reg];
-      comp_obj_code.inline_notes_star           = substantive_obj_misc_tuple[sObj.notes_star];
-      comp_obj_code.inline_links                = substantive_obj_misc_tuple[sObj.links];
-      the_document_body_section                 ~= comp_obj_code;
+      comp_obj_block                            = comp_obj_block.init;
+      comp_obj_block.use                        = "body";
+      comp_obj_block.is_of                      = "block";
+      comp_obj_block.is_a                       = "group";
+      comp_obj_block.ocn                        = obj_cite_number;
+      comp_obj_block.obj_cite_number            = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+      comp_obj_block.text                       = an_object["substantive"];
+      comp_obj_block.inline_notes_reg           = substantive_obj_misc_tuple[sObj.notes_reg];
+      comp_obj_block.inline_notes_star          = substantive_obj_misc_tuple[sObj.notes_star];
+      comp_obj_block.inline_links               = substantive_obj_misc_tuple[sObj.links];
+      the_document_body_section                 ~= comp_obj_block;
+      type["blocks"]                            = TriState.off;
+      type["group"]                             = TriState.off;
       object_reset(an_object);
       processing.remove("verse");
       ++cntr;
-      type["blocks"] = TriState.off;
-      type["code"] = TriState.off;
-    } else if (type["poem"] == TriState.closing) {
+    } else if (type["block"] == TriState.closing) {
+      obj_cite_number = ocn_emit(type["ocn_status"]);
       an_object["bookindex_nugget"] =
         ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
       bookindex_unordered_hashes =
-        bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
-      an_object["is"] = "verse"; // check also
-      auto comp_obj_location =
-        node_construct.node_location_emitter(
-          content_non_header,
-          segment_anchor_tag_that_object_belongs_to,
+        bookindex_extract_hash.bookindex_nugget_hash(
+          an_object["bookindex_nugget"],
           obj_cite_number,
-          cntr,
-          heading_ptr-1,
-          an_object["is"]
+          segment_anchor_tag_that_object_belongs_to
         );
-      comp_obj_poem_ocn                         = comp_obj_poem_ocn.init;
-      comp_obj_poem_ocn.use                     = "body";
-      comp_obj_poem_ocn.is_of                   = "block";
-      comp_obj_poem_ocn.is_a                    = "poem";
-      comp_obj_poem_ocn.ocn                     = obj_cite_number;
-      comp_obj_poem_ocn.obj_cite_number         = (obj_cite_number_poem["start"], obj_cite_number_poem["end"]);
-      comp_obj_poem_ocn.text                    = ""; // an_object["substantive"];
-      the_document_body_section                 ~= comp_obj_poem_ocn;
-      object_reset(an_object);
-      processing.remove("verse");
-      type["blocks"] = TriState.off;
-      type["poem"] = TriState.off;
-    } else if (type["table"] == TriState.closing) {
-      obj_cite_number =
-        ocn_emit(type["ocn_status"]);
-      an_object["bookindex_nugget"] =
-        ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
-      bookindex_unordered_hashes =
-        bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
-      an_object["is"] = "table";
+      an_object["is"] = "block";
       auto comp_obj_location =
         node_construct.node_location_emitter(
           content_non_header,
@@ -2494,7 +2475,7 @@ template SiSUdocAbstraction() {
           cntr,
           heading_ptr-1,
           an_object["is"]
-        );
+         );
       auto substantive_obj_misc_tuple =
         obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
       an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
@@ -2502,7 +2483,7 @@ template SiSUdocAbstraction() {
       comp_obj_block                            = comp_obj_block.init;
       comp_obj_block.use                        = "body";
       comp_obj_block.is_of                      = "block";
-      comp_obj_block.is_a                       = "table";
+      comp_obj_block.is_a                       = "block";
       comp_obj_block.ocn                        = obj_cite_number;
       comp_obj_block.obj_cite_number            = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
       comp_obj_block.text                       = an_object["substantive"];
@@ -2510,19 +2491,23 @@ template SiSUdocAbstraction() {
       comp_obj_block.inline_notes_star          = substantive_obj_misc_tuple[sObj.notes_star];
       comp_obj_block.inline_links               = substantive_obj_misc_tuple[sObj.links];
       the_document_body_section                 ~= comp_obj_block;
+      type["blocks"]                            = TriState.off;
+      type["block"]                             = TriState.off;
       object_reset(an_object);
       processing.remove("verse");
       ++cntr;
-      type["blocks"] = TriState.off;
-      type["table"] = TriState.off;
-    } else if (type["group"] == TriState.closing) {
+    } else if (type["code"] == TriState.closing) {
       obj_cite_number =
         ocn_emit(type["ocn_status"]);
       an_object["bookindex_nugget"] =
         ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
       bookindex_unordered_hashes =
-        bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
-      an_object["is"] = "group";
+        bookindex_extract_hash.bookindex_nugget_hash(
+          an_object["bookindex_nugget"],
+          obj_cite_number,
+          segment_anchor_tag_that_object_belongs_to
+        );
+      an_object["is"] = "code";
       auto comp_obj_location =
         node_construct.node_location_emitter(
           content_non_header,
@@ -2536,29 +2521,32 @@ template SiSUdocAbstraction() {
         obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
       an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
       anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
-      comp_obj_block                            = comp_obj_block.init;
-      comp_obj_block.use                        = "body";
-      comp_obj_block.is_of                      = "block";
-      comp_obj_block.is_a                       = "group";
-      comp_obj_block.ocn                        = obj_cite_number;
-      comp_obj_block.obj_cite_number            = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
-      comp_obj_block.text                       = an_object["substantive"];
-      comp_obj_block.inline_notes_reg           = substantive_obj_misc_tuple[sObj.notes_reg];
-      comp_obj_block.inline_notes_star          = substantive_obj_misc_tuple[sObj.notes_star];
-      comp_obj_block.inline_links               = substantive_obj_misc_tuple[sObj.links];
-      the_document_body_section                 ~= comp_obj_block;
+      comp_obj_code                             = comp_obj_code.init;
+      comp_obj_code.use                         = "body";
+      comp_obj_code.is_of                       = "block";
+      comp_obj_code.is_a                        = "code";
+      comp_obj_code.ocn                         = obj_cite_number;
+      comp_obj_code.obj_cite_number             = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+      comp_obj_code.text                        = an_object["substantive"];
+      comp_obj_code.inline_notes_reg            = substantive_obj_misc_tuple[sObj.notes_reg];
+      comp_obj_code.inline_notes_star           = substantive_obj_misc_tuple[sObj.notes_star];
+      comp_obj_code.inline_links                = substantive_obj_misc_tuple[sObj.links];
+      the_document_body_section                 ~= comp_obj_code;
+      type["blocks"]                            = TriState.off;
+      type["code"]                              = TriState.off;
       object_reset(an_object);
       processing.remove("verse");
       ++cntr;
-      type["blocks"] = TriState.off;
-      type["group"] = TriState.off;
-    } else if (type["block"] == TriState.closing) {
-      obj_cite_number = ocn_emit(type["ocn_status"]);
+    } else if (type["poem"] == TriState.closing) {
       an_object["bookindex_nugget"] =
         ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
       bookindex_unordered_hashes =
-        bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
-      an_object["is"] = "block";
+        bookindex_extract_hash.bookindex_nugget_hash(
+          an_object["bookindex_nugget"],
+          obj_cite_number,
+          segment_anchor_tag_that_object_belongs_to
+        );
+      an_object["is"] = "verse"; // check also
       auto comp_obj_location =
         node_construct.node_location_emitter(
           content_non_header,
@@ -2567,15 +2555,48 @@ template SiSUdocAbstraction() {
           cntr,
           heading_ptr-1,
           an_object["is"]
-         );
+        );
+      comp_obj_poem_ocn                         = comp_obj_poem_ocn.init;
+      comp_obj_poem_ocn.use                     = "body";
+      comp_obj_poem_ocn.is_of                   = "block";
+      comp_obj_poem_ocn.is_a                    = "poem";
+      comp_obj_poem_ocn.ocn                     = obj_cite_number;
+      comp_obj_poem_ocn.obj_cite_number         = (obj_cite_number_poem["start"], obj_cite_number_poem["end"]);
+      comp_obj_poem_ocn.text                    = ""; // an_object["substantive"];
+      the_document_body_section                 ~= comp_obj_poem_ocn;
+      type["blocks"]                            = TriState.off;
+      type["poem"]                              = TriState.off;
+      object_reset(an_object);
+      processing.remove("verse");
+    } else if (type["quote"] == TriState.closing) {
+      obj_cite_number =
+        ocn_emit(type["ocn_status"]);
+      an_object["bookindex_nugget"] =
+        ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
+      bookindex_unordered_hashes =
+        bookindex_extract_hash.bookindex_nugget_hash(
+          an_object["bookindex_nugget"],
+          obj_cite_number,
+          segment_anchor_tag_that_object_belongs_to
+        );
+      an_object["is"] = "quote";
+      auto comp_obj_location =
+        node_construct.node_location_emitter(
+          content_non_header,
+          segment_anchor_tag_that_object_belongs_to,
+          obj_cite_number,
+          cntr,
+          heading_ptr-1,
+          an_object["is"]
+        );
       auto substantive_obj_misc_tuple =
-        obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
-      an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
+        obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa); // ...
+      an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; // ...
       anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
       comp_obj_block                            = comp_obj_block.init;
       comp_obj_block.use                        = "body";
       comp_obj_block.is_of                      = "block";
-      comp_obj_block.is_a                       = "block";
+      comp_obj_block.is_a                       = "quote";
       comp_obj_block.ocn                        = obj_cite_number;
       comp_obj_block.obj_cite_number            = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
       comp_obj_block.text                       = an_object["substantive"];
@@ -2587,15 +2608,19 @@ template SiSUdocAbstraction() {
       processing.remove("verse");
       ++cntr;
       type["blocks"] = TriState.off;
-      type["block"] = TriState.off;
-    } else if (type["quote"] == TriState.closing) {
+      type["quote"] = TriState.off;
+    } else if (type["table"] == TriState.closing) {
       obj_cite_number =
         ocn_emit(type["ocn_status"]);
       an_object["bookindex_nugget"] =
         ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
       bookindex_unordered_hashes =
-        bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_number, segment_anchor_tag_that_object_belongs_to);
-      an_object["is"] = "quote";
+        bookindex_extract_hash.bookindex_nugget_hash(
+          an_object["bookindex_nugget"],
+          obj_cite_number,
+          segment_anchor_tag_that_object_belongs_to
+        );
+      an_object["is"] = "table";
       auto comp_obj_location =
         node_construct.node_location_emitter(
           content_non_header,
@@ -2606,13 +2631,13 @@ template SiSUdocAbstraction() {
           an_object["is"]
         );
       auto substantive_obj_misc_tuple =
-        obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa); // ...
-      an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; // ...
+        obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, dochead_make_aa);
+      an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
       anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];
       comp_obj_block                            = comp_obj_block.init;
       comp_obj_block.use                        = "body";
       comp_obj_block.is_of                      = "block";
-      comp_obj_block.is_a                       = "quote";
+      comp_obj_block.is_a                       = "table";
       comp_obj_block.ocn                        = obj_cite_number;
       comp_obj_block.obj_cite_number            = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
       comp_obj_block.text                       = an_object["substantive"];
@@ -2620,11 +2645,11 @@ template SiSUdocAbstraction() {
       comp_obj_block.inline_notes_star          = substantive_obj_misc_tuple[sObj.notes_star];
       comp_obj_block.inline_links               = substantive_obj_misc_tuple[sObj.links];
       the_document_body_section                 ~= comp_obj_block;
+      type["blocks"]                            = TriState.off;
+      type["table"]                             = TriState.off;
       object_reset(an_object);
       processing.remove("verse");
       ++cntr;
-      type["blocks"] = TriState.off;
-      type["quote"] = TriState.off;
     }
   }
   auto _book_index_(L,I,O,T,B)(
@@ -2634,7 +2659,7 @@ template SiSUdocAbstraction() {
     return ref T  type,
     B             opt_action_bool,
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line)            == char[]));
       static assert(is(typeof(book_idx_tmp)    == string));
       static assert(is(typeof(an_object)       == string[string]));
@@ -2693,7 +2718,7 @@ template SiSUdocAbstraction() {
     return ref R heading_match_rgx,
     return ref T type
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line)                                    == char[]));
       static assert(is(typeof(dochead_make_identify_unmarked_headings) == string));
       static assert(is(typeof(heading_match_str)                       == string[string]));
@@ -2784,7 +2809,7 @@ template SiSUdocAbstraction() {
     return ref R heading_match_rgx,
     return ref T type
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line)              == char[]));
       static assert(is(typeof(line_occur)        == int[string]));
       static assert(is(typeof(heading_match_rgx) == Regex!(char)[string]));
@@ -2850,7 +2875,7 @@ template SiSUdocAbstraction() {
     return ref T  type,
     return ref Me dochead_meta_aa,
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line)            == char[]));
       static assert(is(typeof(line_occur)      == int[string]));
       static assert(is(typeof(an_object)       == string[string]));
@@ -3004,7 +3029,7 @@ template SiSUdocAbstraction() {
     return ref T  type,
     return ref C  line_occur,
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(line)          == char[]));
       static assert(is(typeof(an_object)     == string[string]));
       static assert(is(typeof(an_object_key) == string));
@@ -3105,7 +3130,7 @@ template SiSUdocAbstraction() {
       n_foot_sp_plus = 0;
     }
     string url_links(Ot)(Ot obj_txt_in) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
       /+ url matched +/
@@ -3159,7 +3184,7 @@ template SiSUdocAbstraction() {
       return obj_txt_in;
     }
     auto footnotes_endnotes_markup_and_number_or_stars(Ot)(Ot obj_txt_in, bool reset_note_numbers) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
       /+ endnotes (regular) +/
@@ -3216,7 +3241,7 @@ template SiSUdocAbstraction() {
     }
     private auto object_notes_and_links_(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
     in {
-      debug(asserts){
+      debug(asserts) {
         assert(is(typeof(obj_txt_in) == string));
       }
     }
@@ -3270,17 +3295,18 @@ template SiSUdocAbstraction() {
     }
     invariant() {
     }
-    auto para(Ot)(Ot obj_txt_in)
+    auto munge_heading(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
     body {
       obj_txt["munge"]=(obj_txt_in)
-        .replaceFirst(rgx.para_attribs, "")
-        .replaceFirst(rgx.obj_cite_number_off_all, "");
-      auto t = object_notes_and_links_(obj_txt["munge"]);
+       .replaceFirst(rgx.heading, "")
+       .replaceFirst(rgx.obj_cite_number_off_all, "")
+       .strip;
+      auto t = object_notes_and_links_(obj_txt["munge"], reset_note_numbers);
       debug(munge) {
         writeln(__LINE__);
         writeln(obj_txt_in);
@@ -3289,18 +3315,19 @@ template SiSUdocAbstraction() {
       }
       return t;
     }
-    auto heading(Ot)(Ot obj_txt_in, bool reset_note_numbers=false)
+    invariant() {
+    }
+    auto munge_para(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
     body {
       obj_txt["munge"]=(obj_txt_in)
-       .replaceFirst(rgx.heading, "")
-       .replaceFirst(rgx.obj_cite_number_off_all, "")
-       .strip;
-      auto t = object_notes_and_links_(obj_txt["munge"], reset_note_numbers);
+        .replaceFirst(rgx.para_attribs, "")
+        .replaceFirst(rgx.obj_cite_number_off_all, "");
+      auto t = object_notes_and_links_(obj_txt["munge"]);
       debug(munge) {
         writeln(__LINE__);
         writeln(obj_txt_in);
@@ -3309,22 +3336,7 @@ template SiSUdocAbstraction() {
       }
       return t;
     }
-    invariant() {
-    }
-    string code(Ot)(Ot obj_txt_in)
-    in {
-      debug(asserts){
-        assert(is(typeof(obj_txt_in) == string));
-      }
-    }
-    body {
-      obj_txt_in = (obj_txt_in).replaceAll(rgx.two_spaces, mkup.nbsp ~ mkup.nbsp);
-      obj_txt["munge"] = obj_txt_in;
-      return obj_txt["munge"];
-    }
-    invariant() {
-    }
-    auto group(string obj_txt_in)
+    auto munge_group(string obj_txt_in)
     in { }
     body {
       obj_txt["munge"]=obj_txt_in;
@@ -3333,9 +3345,9 @@ template SiSUdocAbstraction() {
     }
     invariant() {
     }
-    auto block(Ot)(Ot obj_txt_in)
+    auto munge_block(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
@@ -3346,9 +3358,9 @@ template SiSUdocAbstraction() {
     }
     invariant() {
     }
-    auto verse(Ot)(Ot obj_txt_in)
+    auto munge_verse(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
@@ -3359,9 +3371,22 @@ template SiSUdocAbstraction() {
     }
     invariant() {
     }
-    string quote(Ot)(Ot obj_txt_in)
+    string munge_code(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
+        assert(is(typeof(obj_txt_in) == string));
+      }
+    }
+    body {
+      obj_txt_in = (obj_txt_in).replaceAll(rgx.two_spaces, mkup.nbsp ~ mkup.nbsp);
+      obj_txt["munge"] = obj_txt_in;
+      return obj_txt["munge"];
+    }
+    invariant() {
+    }
+    string munge_table(Ot)(Ot obj_txt_in)
+    in {
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
@@ -3371,9 +3396,9 @@ template SiSUdocAbstraction() {
     }
     invariant() {
     }
-    string table(Ot)(Ot obj_txt_in)
+    string munge_quote(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
@@ -3383,9 +3408,9 @@ template SiSUdocAbstraction() {
     }
     invariant() {
     }
-    string comment(Ot)(Ot obj_txt_in)
+    string munge_comment(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
@@ -3406,15 +3431,15 @@ template SiSUdocAbstraction() {
       Ma dochead_make_aa
     )
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_)            == string[string]));
         static assert(is(typeof(obj_key_)        == string));
         static assert(is(typeof(dochead_make_aa) == string[string][string]));
       }
     }
     body {
-      obj_txt["munge"]=obj_[obj_key_].dup;
-      obj_txt["munge"]=(match(obj_["is"], ctRegex!(`verse|code`)))
+      obj_txt["munge"] = obj_[obj_key_].dup;
+      obj_txt["munge"] = (match(obj_["is"], ctRegex!(`verse|code`)))
       ? obj_txt["munge"]
       : strip(obj_txt["munge"]);
       static __gshared string[] anchor_tags_ = [];
@@ -3435,37 +3460,38 @@ template SiSUdocAbstraction() {
         } else if (obj_["lev"] == "1") {
           writeln("heading anchor tag missing: ", obj_txt["munge"]);
         }
-        x =munge.heading(obj_txt["munge"], reset_note_numbers);
+        x =munge.munge_heading(obj_txt["munge"], reset_note_numbers);
         reset_note_numbers=false;
         goto default;
       case "para":
-        x = munge.para(obj_txt["munge"]);
+        x = munge.munge_para(obj_txt["munge"]);
         goto default;
       case "group":
-        x = munge.group(obj_txt["munge"]);
+        x = munge.munge_group(obj_txt["munge"]);
         goto default;
       case "block":
-        x = munge.block(obj_txt["munge"]);
+        x = munge.munge_block(obj_txt["munge"]);
         goto default;
       case "verse":
-        x = munge.verse(obj_txt["munge"]);
+        x = munge.munge_verse(obj_txt["munge"]);
         goto default;
       case "code":
-        obj_txt["munge"]=munge.code(obj_txt["munge"]);
-        break;
-      case "quote":
-        obj_txt["munge"]=munge.quote(obj_txt["munge"]);
+        obj_txt["munge"] = munge.munge_code(obj_txt["munge"]);
         break;
       case "table":
-        obj_txt["munge"]=munge.table(obj_txt["munge"]);
+        obj_txt["munge"] = munge.munge_table(obj_txt["munge"]);
+        break;
+      case "quote":
+        obj_txt["munge"] = munge.munge_quote(obj_txt["munge"]);
         break;
       case "comment":
-        obj_txt["munge"]=munge.comment(obj_txt["munge"]);
+        obj_txt["munge"] = munge.munge_comment(obj_txt["munge"]);
         break;
       case "doc_end_reset":
         munge.initialize_note_numbers();
         break;
       default:
+        /+ para, heading, group, block, verse +/
         obj_txt["munge"]=x[0];
         obj_notes_and_links["notes_reg"]  = x[1];
         obj_notes_and_links["notes_star"] = x[2];
@@ -3487,7 +3513,7 @@ template SiSUdocAbstraction() {
     auto _clean_heading_toc_(Toc)(
       Toc heading_toc_,
     ) {
-     debug(asserts){
+     debug(asserts) {
        static assert(is(typeof(heading_toc_) == char[]));
      }
      auto m = matchFirst(cast(char[]) heading_toc_, rgx.heading);
@@ -3505,7 +3531,7 @@ template SiSUdocAbstraction() {
       Toc          the_table_of_contents_section,
     )
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_)                                      == string[string]));
         static assert(is(typeof(dochead_make_aa)                           == string[string][string]));
         static assert(is(typeof(segment_anchor_tag_that_object_belongs_to) == string));
@@ -3662,13 +3688,12 @@ template SiSUdocAbstraction() {
       O  obj_,
       Ma dochead_make_aa
     ) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(munge_)          == string));
         static assert(is(typeof(obj_)            == string[string]));
         static assert(is(typeof(dochead_make_aa) == string[string][string]));
       }
       if (dochead_make_aa["make"]["num_top"].length > 0) {
-        // if (!(match(munge_, rgx.heading_anchor_tag))) {
         static __gshared int heading_num_top_level=9;
         static __gshared int heading_num_depth=2;
         static __gshared int heading_num_0 = 0;
@@ -3796,7 +3821,7 @@ template SiSUdocAbstraction() {
   
   
     static string _make_segment_anchor_tags_if_none_provided(M,Lv)(M munge_, Lv lev_) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(munge_) == string));
         static assert(is(typeof(lev_)   == string));
       }
@@ -3875,7 +3900,7 @@ template SiSUdocAbstraction() {
       OH _comp_obj_heading,
     )
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_is_)           == string));
         static assert(is(typeof(obj_raw)           == string));
         static assert(is(typeof(_comp_obj_heading) == ObjGenericComposite));
@@ -3942,7 +3967,7 @@ template SiSUdocAbstraction() {
     string _obj_attributes;
     string _para_and_blocks(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
@@ -3970,121 +3995,121 @@ template SiSUdocAbstraction() {
       }
       return _obj_attributes;
     }
-    string _para(Ot)(Ot obj_txt_in)
+    string _heading(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
     body {
       _obj_attributes = " \"use\": \"content\","
       ~ " \"of\": \"para\","
-      ~ " \"is\": \"para\"";
+      ~ " \"is\": \"heading\"";
       return _obj_attributes;
     }
     invariant() {
     }
-    string _heading(Ot)(Ot obj_txt_in)
+    string _para(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
     body {
       _obj_attributes = " \"use\": \"content\","
       ~ " \"of\": \"para\","
-      ~ " \"is\": \"heading\"";
+      ~ " \"is\": \"para\"";
       return _obj_attributes;
     }
     invariant() {
     }
-    string _code(Ot)(Ot obj_txt_in)
+    string _group(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
     body {
       _obj_attributes = " \"use\": \"content\","
       ~ " \"of\": \"block\","
-      ~ " \"is\": \"code\"";
+      ~ " \"is\": \"group\"";
       return _obj_attributes;
     }
     invariant() {
     }
-    string _group(Ot)(Ot obj_txt_in)
+    string _block(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
     body {
       _obj_attributes = " \"use\": \"content\","
       ~ " \"of\": \"block\","
-      ~ " \"is\": \"group\"";
+      ~ " \"is\": \"block\"";
       return _obj_attributes;
     }
     invariant() {
     }
-    string _block(Ot)(Ot obj_txt_in)
+    string _verse(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
     body {
       _obj_attributes = " \"use\": \"content\","
       ~ " \"of\": \"block\","
-      ~ " \"is\": \"block\"";
+      ~ " \"is\": \"verse\"";
       return _obj_attributes;
     }
     invariant() {
     }
-    string _verse(Ot)(Ot obj_txt_in)
+    string _code(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
     body {
       _obj_attributes = " \"use\": \"content\","
       ~ " \"of\": \"block\","
-      ~ " \"is\": \"verse\"";
+      ~ " \"is\": \"code\"";
       return _obj_attributes;
     }
     invariant() {
     }
-    string _quote(Ot)(Ot obj_txt_in)
+    string _table(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
     body {
       _obj_attributes = " \"use\": \"content\","
       ~ " \"of\": \"block\","
-      ~ " \"is\": \"quote\"";
+      ~ " \"is\": \"table\"";
       return _obj_attributes;
     }
     invariant() {
     }
-    string _table(Ot)(Ot obj_txt_in)
+    string _quote(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
     body {
       _obj_attributes = " \"use\": \"content\","
       ~ " \"of\": \"block\","
-      ~ " \"is\": \"table\"";
+      ~ " \"is\": \"quote\"";
       return _obj_attributes;
     }
     invariant() {
     }
     string _comment(Ot)(Ot obj_txt_in)
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(obj_txt_in) == string));
       }
     }
@@ -4101,7 +4126,7 @@ template SiSUdocAbstraction() {
       Oi obj_is_,
       OH _comp_obj_heading,
     ) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(_obj_attrib)       == string));
         static assert(is(typeof(obj_is_)           == string));
         static assert(is(typeof(_comp_obj_heading) == ObjGenericComposite));
@@ -4139,7 +4164,7 @@ template SiSUdocAbstraction() {
       S  segment_anchor_tag,
     )
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(bookindex_section) == string));
         static assert(is(typeof(obj_cite_number)   == int));
       }
@@ -4213,7 +4238,7 @@ template SiSUdocAbstraction() {
     auto bookindex_report_indented(BI)(
       BI bookindex_unordered_hashes
     ) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
       }
       auto mainkeys=
@@ -4244,7 +4269,7 @@ template SiSUdocAbstraction() {
     auto bookindex_write_section(BI)(
       BI bookindex_unordered_hashes
     ) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string]));
       }
       auto mainkeys=bookindex_unordered_hashes.byKey.array.sort().release;
@@ -4275,7 +4300,7 @@ template SiSUdocAbstraction() {
       N  obj_cite_number,
       B  opt_action_bool,
     ) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(bookindex_unordered_hashes)                == string[][string][string]));
         static assert(is(typeof(obj_cite_number)                           == int));
         static assert(is(typeof(opt_action_bool)                           == bool[string]));
@@ -4597,7 +4622,7 @@ template SiSUdocAbstraction() {
       return ref BJ bib_arr_json
     )
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(biblio_unsorted_incomplete) == string[]));
         static assert(is(typeof(bib_arr_json)               == JSONValue[]));
       }
@@ -4628,7 +4653,7 @@ template SiSUdocAbstraction() {
       Bi            biblio_unordered,
       return ref BJ bib_arr_json
     ) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(biblio_unordered) == string[]));
         static assert(is(typeof(bib_arr_json)     == JSONValue[]));
       }
@@ -4659,7 +4684,7 @@ template SiSUdocAbstraction() {
       return biblio_unsorted_array_of_json_objects;
     }
     final private JSONValue[] biblio_sort(BJ)(BJ biblio_unordered) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(biblio_unordered) == JSONValue[]));
       }
       JSONValue[] biblio_sorted_;
@@ -4677,7 +4702,7 @@ template SiSUdocAbstraction() {
       return biblio_sorted_;
     }
     void biblio_debug(BJ)(BJ biblio_sorted) {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(biblio_sorted) == JSONValue[]));
       }
       debug(biblio0) {
@@ -4704,7 +4729,7 @@ template SiSUdocAbstraction() {
       I  is_
     )
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(lev_markup_number)  == string));
         static assert(is(typeof(segment_anchor_tag) == string));
         static assert(is(typeof(obj_cite_number_)   == int));
@@ -4770,7 +4795,7 @@ template SiSUdocAbstraction() {
       fL  flag_links,
     )
     in {
-      debug(asserts){
+      debug(asserts) {
         static assert(is(typeof(_text)                == string));
         static assert(is(typeof(lev)                  == string));
         static assert(is(typeof(lev_markup_number)    == string));
@@ -4949,7 +4974,7 @@ template SiSUdocAbstraction() {
     O  an_object,
     Lv lv
   ) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(an_object) == string[string]));
       static assert(is(typeof(lv)        == int[string]));
     }
@@ -5125,7 +5150,7 @@ template SiSUdocAbstraction() {
     }
   }
   auto assertions_flag_types_block_status_none_or_closed(T)(T type) {
-    debug(asserts){
+    debug(asserts) {
       static assert(is(typeof(type) == int[string]));
     }
     assert(
diff --git a/src/sdp/ao_defaults.d b/src/sdp/ao_defaults.d
index a5fda94..b6a3eb9 100644
--- a/src/sdp/ao_defaults.d
+++ b/src/sdp/ao_defaults.d
@@ -260,37 +260,37 @@ template SiSUrgxInitFlags() {
   /+ regex flags +/
   int[string] flags_type_init() {
     int[string] flags_type_init = [
-      "make_headings"        : 0,
-      "header_make"          : 0,
-      "header_meta"          : 0,
-      "heading"              : 0,
-      "biblio_section"       : 0,
-      "glossary_section"     : 0,
-      "blurb_section"        : 0,
-      "para"                 : 0,
-      "blocks"               : 0, // 0..2 generic
-      "code"                 : 0, // 0..2
-      "poem"                 : 0, // 0..2
-      "table"                : 0, // 0..2
-      "group"                : 0, // 0..2
-      "block"                : 0, // 0..2
-      "quote"                : 0, // 0..2
-      "verse_new"            : 0,
-      "curly_code"           : 0,
-      "curly_poem"           : 0,
-      "curly_table"          : 0,
-      "curly_group"          : 0,
-      "curly_block"          : 0,
-      "curly_quote"          : 0,
-      "tic_code"             : 0,
-      "tic_poem"             : 0,
-      "tic_table"            : 0,
-      "tic_group"            : 0,
-      "tic_block"            : 0,
-      "tic_quote"            : 0,
-      "ocn_status"           : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
-      "ocn_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
-      "book_index"           : 0,
+      "make_headings"              : 0,
+      "header_make"                : 0,
+      "header_meta"                : 0,
+      "heading"                    : 0,
+      "biblio_section"             : 0,
+      "glossary_section"           : 0,
+      "blurb_section"              : 0,
+      "para"                       : 0,
+      "blocks"                     : 0, // 0..2 generic
+      "code"                       : 0, // 0..2
+      "poem"                       : 0, // 0..2
+      "table"                      : 0, // 0..2
+      "group"                      : 0, // 0..2
+      "block"                      : 0, // 0..2
+      "quote"                      : 0, // 0..2
+      "verse_new"                  : 0,
+      "curly_code"                 : 0,
+      "curly_poem"                 : 0,
+      "curly_group"                : 0,
+      "curly_block"                : 0,
+      "curly_quote"                : 0,
+      "curly_table"                : 0,
+      "tic_code"                   : 0,
+      "tic_poem"                   : 0,
+      "tic_group"                  : 0,
+      "tic_block"                  : 0,
+      "tic_quote"                  : 0,
+      "tic_table"                  : 0,
+      "ocn_status"                 : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
+      "ocn_status_multi_obj"       : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings
+      "book_index"                 : 0,
     ];
     return flags_type_init;
   }
diff --git a/src/sdp/ao_read_source_files.d b/src/sdp/ao_read_source_files.d
index a6459b2..4acfe41 100644
--- a/src/sdp/ao_read_source_files.d
+++ b/src/sdp/ao_read_source_files.d
@@ -99,7 +99,7 @@ template SiSUrawMarkupContent() {
     }
     final private char[][] markupSourceLineArray(in char[] src_text) {
       char[][] source_line_arr =
-        split(cast(char[]) src_text, rgx.newline_eol_strip_preceeding);
+        split(cast(char[]) src_text, rgx.newline_eol_strip_preceding);
       return source_line_arr;
     }
     auto markupSourceReadIn(in string fn_src) {
diff --git a/src/sdp/ao_rgx.d b/src/sdp/ao_rgx.d
index 20535d0..109b0cf 100644
--- a/src/sdp/ao_rgx.d
+++ b/src/sdp/ao_rgx.d
@@ -20,7 +20,7 @@ template SiSUrgxInit() {
     static trailing_comma                                 = ctRegex!(",[ ]*$");
     static trailing_linebreak                             = ctRegex!(",[ ]{1,2}\\\\\\\\\n[ ]{4}$","m");
     static newline_eol_delimiter                          = ctRegex!("\n");
-    static newline_eol_strip_preceeding                   = ctRegex!("[ ]*\n");
+    static newline_eol_strip_preceding                    = ctRegex!("[ ]*\n");
     static newline_eol_delimiter_only                     = ctRegex!("^\n");
     static line_delimiter_ws_strip                        = ctRegex!("[ ]*\n[ ]*");
     static para_delimiter                                 = ctRegex!("\n[ ]*\n+");
diff --git a/src/sdp/output_html.d b/src/sdp/output_html.d
index d356ee5..cc330b2 100644
--- a/src/sdp/output_html.d
+++ b/src/sdp/output_html.d
@@ -464,54 +464,6 @@ template outputHTML() {
       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;
@@ -946,66 +898,6 @@ template outputHTML() {
       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 { }
@@ -1085,33 +977,6 @@ template outputHTML() {
       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;
@@ -1145,35 +1010,6 @@ template outputHTML() {
       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;
@@ -1209,73 +1045,6 @@ template outputHTML() {
     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;
@@ -1296,51 +1065,6 @@ template outputHTML() {
     }
     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%;
@@ -1352,9 +1076,6 @@ template outputHTML() {
       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%; }
@@ -1372,88 +1093,6 @@ template outputHTML() {
     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;
@@ -1499,46 +1138,6 @@ template outputHTML() {
       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;
@@ -1656,60 +1255,6 @@ template outputHTML() {
     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;
   }
diff --git a/src/sdp/output_xhtmls.d b/src/sdp/output_xhtmls.d
index d39298c..dcbc8f8 100644
--- a/src/sdp/output_xhtmls.d
+++ b/src/sdp/output_xhtmls.d
@@ -30,7 +30,7 @@ template outputXHTMLs() {
         .replaceAll(rgx.xhtml_ampersand,    "&amp;")
         .replaceAll(rgx.xhtml_less_than,    "&lt;")
         .replaceAll(rgx.xhtml_greater_than, "&gt;")
-        .replaceAll(rgx.xhtml_line_break,   "<br />");
+        .replaceAll(rgx.xhtml_line_break,   "<br>");
       return _txt;
     }
     string font_face(string _txt){
-- 
cgit v1.2.3