From 1e94e92fef284b4775539456919f20a4b8c082c9 Mon Sep 17 00:00:00 2001
From: Ralph Amissah <ralph@amissah.com>
Date: Sun, 6 Nov 2016 20:18:32 -0500
Subject: a bit of naming and tidying

---
 src/sdp/ao_abstract_doc_source.d | 193 ++++++++++++++++++---------------------
 src/sdp/ao_defaults.d            |   3 +-
 2 files changed, 90 insertions(+), 106 deletions(-)

(limited to 'src/sdp')

diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d
index 769d93c..8d2ff70 100644
--- a/src/sdp/ao_abstract_doc_source.d
+++ b/src/sdp/ao_abstract_doc_source.d
@@ -17,10 +17,8 @@ template SiSUdocAbstraction() {
     /+ ↓ abstraction struct init +/
     /+ initialize +/
     auto rgx = Rgx();
-    ObjComposite[] the_document_head_section;
     ObjComposite[][string] the_table_of_contents_section;
-    ObjComposite[] the_document_body_section;
-    ObjComposite[] the_bibliography_section;
+    ObjComposite[] the_document_head_section, the_document_body_section, the_bibliography_section;
     string[string] an_object, processing;
     string[] anchor_tags;
     string segment_object_belongs_to;
@@ -193,10 +191,10 @@ template SiSUdocAbstraction() {
           /+ object other than "code block" object
              (includes regular text paragraph, headings & blocks other than code) +/
           if ((matchFirst(line, rgx.heading_biblio)
-          || (type["heading_biblio"] == State.on))
+          || (type["biblio_section"] == State.on))
           && (!matchFirst(line, rgx.heading))
           && (!matchFirst(line, rgx.comment))) {
-            /+ within block object: biblio +/
+            /+ within section (block object): biblio +/
             _biblio_block_(line, type, bib_entry, biblio_entry_str_json, biblio_arr_json);
             debug(bibliobuild) {
               writeln("-  ", biblio_entry_str_json);
@@ -277,9 +275,9 @@ template SiSUdocAbstraction() {
                   debug(comment) {
                     writeln(line);
                   }
-                  an_object["nugget"] ~= line ~= "\n";
+                  an_object["body_nugget"] ~= line ~= "\n";
                   the_document_body_section ~=
-                    set_abstract_object.contents_comment(strip(an_object["nugget"]));
+                    set_abstract_object.contents_comment(strip(an_object["body_nugget"]));
                   _common_reset_(line_occur, an_object, type);
                   processing.remove("verse");
                   ++counter;
@@ -320,14 +318,14 @@ template SiSUdocAbstraction() {
                   debug(heading) {                         // heading
                     writeln(line);
                   }
-                  an_object["nugget"] ~= line ~= "\n";
+                  an_object["body_nugget"] ~= line ~= "\n";
                   ++line_occur["heading"];
                 } else if (line_occur["para"] > State.off) {
                   /+ paragraph +/
                   debug(para) {
                     writeln(line);
                   }
-                  an_object["nugget"] ~= line;
+                  an_object["body_nugget"] ~= line;
                   ++line_occur["para"];
                 }
               }
@@ -360,10 +358,10 @@ template SiSUdocAbstraction() {
               && (line_occur["heading"] > State.off)) {
                 /+ heading object (current line empty) +/
                 obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]);
-                an_object["bookindex"] =
-                  ("bookindex" in an_object) ? an_object["bookindex"] : "";
+                an_object["bookindex_nugget"] =
+                  ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
                 bookindex_unordered_hashes =
-                  bkidx_hash(an_object["bookindex"], obj_cite_number);
+                  bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
                 an_object["is"] = "heading";
                 auto substantive_object_and_anchor_tags_tuple =
                   obj_im.obj_inline_markup_and_anchor_tags(an_object, dochead_make_aa); // tuple this with anchor tags?
@@ -392,7 +390,7 @@ template SiSUdocAbstraction() {
                     an_object["is"]
                   ); // heading
                 an_object["attrib"] =
-                  obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+                  obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
                 ++heading_pointer;
                 debug(segments) {
                   writeln(an_object["lev_markup_number"]);
@@ -420,10 +418,10 @@ template SiSUdocAbstraction() {
               } else if ((type["para"] == State.on) && (line_occur["para"] > State.off)) {
                 /+ paragraph object (current line empty) +/
                 obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]);
-                an_object["bookindex"] =
-                  ("bookindex" in an_object) ? an_object["bookindex"] : "";
+                an_object["bookindex_nugget"] =
+                  ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
                 bookindex_unordered_hashes =
-                  bkidx_hash(an_object["bookindex"], obj_cite_number);
+                  bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
                 an_object["is"] = "para";
                 _node =
                   node_construct.node_emitter(
@@ -439,7 +437,7 @@ template SiSUdocAbstraction() {
                 an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
                 anchor_tags = substantive_object_and_anchor_tags_tuple[1];
                 an_object["attrib"] =
-                  obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+                  obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
                 the_document_body_section ~=
                   set_abstract_object.contents_para(
                     an_object["is"],
@@ -609,14 +607,14 @@ template SiSUdocAbstraction() {
       the_document_head_section ~= the_document_body_section[0];
       the_document_body_section=the_document_body_section[1..$];
       auto document_the = [
-        "head":            the_document_head_section,
-        "toc_seg":         the_table_of_contents_section["seg"],
-        "toc_scroll":      the_table_of_contents_section["scroll"],
-        "body":            the_document_body_section,
-        "endnotes_seg":    the_endnotes_section["seg"],
-        "endnotes_scroll": the_endnotes_section["scroll"],
-        // "glossary":        the_glossary_section, // TODO
-        "bibliography":    the_bibliography_section,
+        "head":             the_document_head_section,
+        "toc_seg":          the_table_of_contents_section["seg"],
+        "toc_scroll":       the_table_of_contents_section["scroll"],
+        "body":             the_document_body_section,
+        "endnotes_seg":     the_endnotes_section["seg"],
+        "endnotes_scroll":  the_endnotes_section["scroll"],
+        // "glossary":         the_glossary_section, // TODO
+        "bibliography":     the_bibliography_section,
         "bookindex_scroll": the_bookindex_section["scroll"],
         "bookindex_seg":    the_bookindex_section["seg"],
       ];
@@ -630,11 +628,11 @@ template SiSUdocAbstraction() {
     } /+ ← closed: abstract doc source +/
     /+ ↓ abstraction functions +/
     auto object_reset(ref string[string] an_object) {
-      an_object.remove("nugget");
+      an_object.remove("body_nugget");
       an_object.remove("substantive");
       an_object.remove("is");
       an_object.remove("attrib");
-      an_object.remove("bookindex");
+      an_object.remove("bookindex_nugget");
     }
     auto _common_reset_(
       ref int[string] line_occur,
@@ -852,7 +850,7 @@ template SiSUdocAbstraction() {
           debug(code) {                              // code (curly) line
             writeln(line);
           }
-          an_object["nugget"] ~= line ~= "\n";       // code (curly) line
+          an_object["body_nugget"] ~= line ~= "\n";       // code (curly) line
         }
       } else if (type["tic_code"] == TriState.on) {
         if (matchFirst(line, rgx.block_tic_close)) {
@@ -866,7 +864,7 @@ template SiSUdocAbstraction() {
           debug(code) {                              // code (tic) line
             writeln(line);
           }
-          an_object["nugget"] ~= line ~= "\n";       // code (tic) line
+          an_object["body_nugget"] ~= line ~= "\n";       // code (tic) line
         }
       }
     }
@@ -897,7 +895,7 @@ template SiSUdocAbstraction() {
       ref string[] biblio_arr_json
     ) {
       if (matchFirst(line, rgx.heading_biblio)) {
-        type["heading_biblio"] = TriState.on;
+        type["biblio_section"] = TriState.on;
       }
       if (line.empty) {
         debug {
@@ -1016,7 +1014,7 @@ template SiSUdocAbstraction() {
     ) {
       if (type["curly_poem"] == TriState.on) {
         if (matchFirst(line, rgx.block_curly_poem_close)) {
-          an_object["nugget"]="verse"; // check that this is as you please
+          an_object["body_nugget"]="verse"; // check that this is as you please
           debug(poem) {                            // poem (curly) close
             writefln(
               "* [poem curly] %s",
@@ -1024,7 +1022,7 @@ template SiSUdocAbstraction() {
             );
           }
           if (processing.length > 0) {
-            an_object["nugget"] = processing["verse"];
+            an_object["body_nugget"] = processing["verse"];
           }
           debug(poem) {                            // poem (curly) close
             writeln(__LINE__);
@@ -1038,7 +1036,7 @@ template SiSUdocAbstraction() {
             debug(poem) {                            // poem (curly) close
               writeln(
                 obj_cite_number,
-                an_object["nugget"]
+                an_object["body_nugget"]
               );
             }
             an_object["is"] = "verse";
@@ -1047,7 +1045,7 @@ template SiSUdocAbstraction() {
             an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
             anchor_tags = substantive_object_and_anchor_tags_tuple[1];
             an_object["attrib"] =
-              obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+              obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
             the_document_body_section ~=
               set_abstract_object.contents_block(
                 an_object["is"],
@@ -1076,12 +1074,12 @@ template SiSUdocAbstraction() {
           }
           if (type["verse_new"] == State.on) {
             verse_line=1;
-            an_object["nugget"] = processing["verse"];
+            an_object["body_nugget"] = processing["verse"];
             debug(poem) {                          // poem verse
               writefln(
                 "* %s curly\n%s",
                 obj_cite_number,
-                an_object["nugget"]
+                an_object["body_nugget"]
               );
             }
             processing.remove("verse");
@@ -1099,7 +1097,7 @@ template SiSUdocAbstraction() {
             an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
             anchor_tags = substantive_object_and_anchor_tags_tuple[1];
             an_object["attrib"] =
-              obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+              obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
             the_document_body_section ~=
               set_abstract_object.contents_block(
                 an_object["is"],
@@ -1114,7 +1112,7 @@ template SiSUdocAbstraction() {
         }
       } else if (type["tic_poem"] == TriState.on) {
         if (auto m = matchFirst(line, rgx.block_tic_close)) { // tic_poem_close
-          an_object["nugget"]="verse"; // check that this is as you please
+          an_object["body_nugget"]="verse"; // check that this is as you please
           debug(poem) {                            // poem (curly) close
             writefln(
               "* [poem tic] %s",
@@ -1122,7 +1120,7 @@ template SiSUdocAbstraction() {
             );
           }
           if (processing.length > 0) {       // needs looking at
-            an_object["nugget"] = processing["verse"];
+            an_object["body_nugget"] = processing["verse"];
           }
           if (an_object.length > 0) {
             debug(poem) {                            // poem (tic) close
@@ -1136,7 +1134,7 @@ template SiSUdocAbstraction() {
             an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
             anchor_tags = substantive_object_and_anchor_tags_tuple[1];
             an_object["attrib"] =
-              obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+              obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
             the_document_body_section ~=
               set_abstract_object.contents_block(
                 an_object["is"],
@@ -1164,12 +1162,12 @@ template SiSUdocAbstraction() {
           }
           if (type["verse_new"] == State.on) {
             verse_line=1;
-            an_object["nugget"] = processing["verse"];
+            an_object["body_nugget"] = processing["verse"];
             debug(poem) {                            // poem (tic) close
               writefln(
                 "* %s tic\n%s",
                 obj_cite_number,
-                an_object["nugget"]
+                an_object["body_nugget"]
               );
             }
             processing.remove("verse");
@@ -1188,7 +1186,7 @@ template SiSUdocAbstraction() {
             an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
             anchor_tags = substantive_object_and_anchor_tags_tuple[1];
             an_object["attrib"] =
-              obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+              obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
             the_document_body_section ~=
               set_abstract_object.contents_block(
                 an_object["is"],
@@ -1220,7 +1218,7 @@ template SiSUdocAbstraction() {
           debug(group) {                           // group
             writeln(line);
           }
-          an_object["nugget"] ~= line ~= "\n";     // build group array (or string)
+          an_object["body_nugget"] ~= line ~= "\n";     // build group array (or string)
         }
       } else if (type["tic_group"] == TriState.on) {
         if (matchFirst(line, rgx.block_tic_close)) {
@@ -1234,7 +1232,7 @@ template SiSUdocAbstraction() {
           debug(group) {                           // group
             writeln(line);
           }
-          an_object["nugget"] ~= line ~= "\n";     // build group array (or string)
+          an_object["body_nugget"] ~= line ~= "\n";     // build group array (or string)
         }
       }
     }
@@ -1255,7 +1253,7 @@ template SiSUdocAbstraction() {
           debug(block) {                           // block
             writeln(line);
           }
-          an_object["nugget"] ~= line ~= "\n";     // build block array (or string)
+          an_object["body_nugget"] ~= line ~= "\n";     // build block array (or string)
         }
       } else if (type["tic_block"] == TriState.on) {
         if (matchFirst(line, rgx.block_tic_close)) {
@@ -1269,7 +1267,7 @@ template SiSUdocAbstraction() {
           debug(block) {                           // block
             writeln(line);
           }
-          an_object["nugget"] ~= line ~= "\n";     // build block array (or string)
+          an_object["body_nugget"] ~= line ~= "\n";     // build block array (or string)
         }
       }
     }
@@ -1290,7 +1288,7 @@ template SiSUdocAbstraction() {
           debug(quote) {                           // quote
             writeln(line);
           }
-          an_object["nugget"] ~= line ~= "\n";     // build quote array (or string)
+          an_object["body_nugget"] ~= line ~= "\n";     // build quote array (or string)
         }
       } else if (type["tic_quote"] == TriState.on) {
         if (matchFirst(line, rgx.block_tic_close)) {
@@ -1304,7 +1302,7 @@ template SiSUdocAbstraction() {
           debug(quote) {                           // quote
             writeln(line);
           }
-          an_object["nugget"] ~= line ~= "\n";     // build quote array (or string)
+          an_object["body_nugget"] ~= line ~= "\n";     // build quote array (or string)
         }
       }
     }
@@ -1325,7 +1323,7 @@ template SiSUdocAbstraction() {
           debug(table) {                           // table
             writeln(line);
           }
-          an_object["nugget"] ~= line ~= "\n";     // build table array (or string)
+          an_object["body_nugget"] ~= line ~= "\n";     // build table array (or string)
         }
       } else if (type["tic_table"] == TriState.on) {
         if (matchFirst(line, rgx.block_tic_close)) {
@@ -1339,7 +1337,7 @@ template SiSUdocAbstraction() {
           debug(table) {                           // table
             writeln(line);
           }
-          an_object["nugget"] ~= line ~= "\n";     // build table array (or string)
+          an_object["body_nugget"] ~= line ~= "\n";     // build table array (or string)
         }
       }
     }
@@ -1368,10 +1366,10 @@ template SiSUdocAbstraction() {
       if (type["code"] == TriState.closing) {
         obj_cite_number =
           obj_cite_number_emit(type["obj_cite_number_status"]);
-        an_object["bookindex"] =
-          ("bookindex" in an_object) ? an_object["bookindex"] : "";
+        an_object["bookindex_nugget"] =
+          ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
         bookindex_unordered_hashes =
-          bkidx_hash(an_object["bookindex"], obj_cite_number);
+          bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
         an_object["is"] = "code";
         _node =
           node_construct.node_emitter(
@@ -1387,7 +1385,7 @@ template SiSUdocAbstraction() {
         an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
         anchor_tags = substantive_object_and_anchor_tags_tuple[1];
         an_object["attrib"] =
-          obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+          obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
         the_document_body_section ~=
           set_abstract_object.contents_block_code(
             an_object["is"],
@@ -1401,10 +1399,10 @@ template SiSUdocAbstraction() {
         type["blocks"] = TriState.off;
         type["code"] = TriState.off;
       } else if (type["poem"] == TriState.closing) {
-        an_object["bookindex"] =
-          ("bookindex" in an_object) ? an_object["bookindex"] : "";
+        an_object["bookindex_nugget"] =
+          ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
         bookindex_unordered_hashes =
-          bkidx_hash(an_object["bookindex"], obj_cite_number);
+          bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
         an_object["is"] = "verse"; // check also
         _node =
           node_construct.node_emitter(
@@ -1429,10 +1427,10 @@ template SiSUdocAbstraction() {
       } else if (type["table"] == TriState.closing) {
         obj_cite_number =
           obj_cite_number_emit(type["obj_cite_number_status"]);
-        an_object["bookindex"] =
-          ("bookindex" in an_object) ? an_object["bookindex"] : "";
+        an_object["bookindex_nugget"] =
+          ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
         bookindex_unordered_hashes =
-          bkidx_hash(an_object["bookindex"], obj_cite_number);
+          bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
         an_object["is"] = "table";
         _node =
           node_construct.node_emitter(
@@ -1448,7 +1446,7 @@ template SiSUdocAbstraction() {
         an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
         anchor_tags = substantive_object_and_anchor_tags_tuple[1];
         an_object["attrib"] =
-          obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+          obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
         the_document_body_section ~=
           set_abstract_object.contents_block(
             an_object["is"],
@@ -1464,10 +1462,10 @@ template SiSUdocAbstraction() {
       } else if (type["group"] == TriState.closing) {
         obj_cite_number =
           obj_cite_number_emit(type["obj_cite_number_status"]);
-        an_object["bookindex"] =
-          ("bookindex" in an_object) ? an_object["bookindex"] : "";
+        an_object["bookindex_nugget"] =
+          ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
         bookindex_unordered_hashes =
-          bkidx_hash(an_object["bookindex"], obj_cite_number);
+          bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
         an_object["is"] = "group";
         _node =
           node_construct.node_emitter(
@@ -1483,7 +1481,7 @@ template SiSUdocAbstraction() {
         an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
         anchor_tags = substantive_object_and_anchor_tags_tuple[1];
         an_object["attrib"] =
-          obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+          obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
         the_document_body_section ~=
           set_abstract_object.contents_block(
             an_object["is"],
@@ -1498,10 +1496,10 @@ template SiSUdocAbstraction() {
         type["group"] = TriState.off;
       } else if (type["block"] == TriState.closing) {
         obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]);
-        an_object["bookindex"] =
-          ("bookindex" in an_object) ? an_object["bookindex"] : "";
+        an_object["bookindex_nugget"] =
+          ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
         bookindex_unordered_hashes =
-          bkidx_hash(an_object["bookindex"], obj_cite_number);
+          bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
         an_object["is"] = "block";
         _node =
           node_construct.node_emitter(
@@ -1517,7 +1515,7 @@ template SiSUdocAbstraction() {
         an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
         anchor_tags = substantive_object_and_anchor_tags_tuple[1];
         an_object["attrib"] =
-          obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+          obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
         the_document_body_section ~=
           set_abstract_object.contents_block(
             an_object["is"],
@@ -1533,10 +1531,10 @@ template SiSUdocAbstraction() {
       } else if (type["quote"] == TriState.closing) {
         obj_cite_number =
           obj_cite_number_emit(type["obj_cite_number_status"]);
-        an_object["bookindex"] =
-          ("bookindex" in an_object) ? an_object["bookindex"] : "";
+        an_object["bookindex_nugget"] =
+          ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
         bookindex_unordered_hashes =
-          bkidx_hash(an_object["bookindex"], obj_cite_number);
+          bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
         an_object["is"] = "quote";
         _node =
           node_construct.node_emitter(
@@ -1552,7 +1550,7 @@ template SiSUdocAbstraction() {
         an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
         anchor_tags = substantive_object_and_anchor_tags_tuple[1];
         an_object["attrib"] =
-          obj_att.obj_attributes(an_object["is"], an_object["nugget"], _node);
+          obj_att.obj_attributes(an_object["is"], an_object["body_nugget"], _node);
         the_document_body_section ~=
           set_abstract_object.contents_block(
             an_object["is"],
@@ -1581,7 +1579,7 @@ template SiSUdocAbstraction() {
             to!string(m.captures[1]),
           );
         }
-        an_object["bookindex"] = to!string(m.captures[1]);
+        an_object["bookindex_nugget"] = to!string(m.captures[1]);
       } else if (auto m = match(line, rgx.book_index_open))  {
         /+ match open book_index +/
         type["book_index"] = State.on;
@@ -1596,7 +1594,7 @@ template SiSUdocAbstraction() {
         /+ book_index flag set +/
         if (auto m = match(line, rgx.book_index_close))  {
           type["book_index"] = State.off;
-          an_object["bookindex"] = book_idx_tmp ~ to!string(m.captures[1]);
+          an_object["bookindex_nugget"] = book_idx_tmp ~ to!string(m.captures[1]);
           debug(bookindexmatch) {                     // book index
             writefln(
               "* [bookindex] %s\n",
@@ -1761,17 +1759,17 @@ template SiSUdocAbstraction() {
       if (auto m = match(line, rgx.heading)) {
         /+ heading match +/
         type["heading"] = State.on;
-        type["heading_biblio"] = State.off;
+        type["biblio_section"] = State.off;
         type["para"] = State.off;
         ++line_occur["heading"];
-        an_object["nugget"] ~= line ~= "\n";
+        an_object["body_nugget"] ~= line ~= "\n";
         an_object["lev"] ~= m.captures[1];
         assertions_doc_structure(an_object, lv); // includes most of the logic for collapsed levels
         switch (an_object["lev"]) {
         case "A":
-          an_object["nugget"]=replaceFirst(an_object["nugget"],
+          an_object["body_nugget"]=replaceFirst(an_object["body_nugget"],
             rgx.variable_doc_title, (dochead_meta_aa["title"]["full"] ~ ","));
-          an_object["nugget"]=replaceFirst(an_object["nugget"],
+          an_object["body_nugget"]=replaceFirst(an_object["body_nugget"],
             rgx.variable_doc_author, dochead_meta_aa["creator"]["author"]);
           collapsed_lev["h0"] = 1;
           an_object["lev_collapsed_number"] =
@@ -1893,60 +1891,45 @@ template SiSUdocAbstraction() {
       ref string[string] indent,
       ref bool bullet,
       ref int[string] type,
-      ref int[string] line_occur
+      ref int[string] line_occur,
     ) {
       if (line_occur["para"] == State.off) {
         /+ para matches +/
+        type["para"] = State.on;
+        an_object["body_nugget"] ~= line;
+        indent=[
+          "hang_position" : "0",
+          "base_position" : "0",
+        ];
+        bullet = false;
         if (auto m = matchFirst(line, rgx.para_indent)) {
           debug(paraindent) {                    // para indent
             writeln(line);
           }
-          type["para"] = State.on;
-          an_object["nugget"] ~= line ~= "\n";   // is newline needed?
           indent["hang_position"] = to!string(m.captures[1]);
           indent["base_position"] = "0";
-          bullet = false;
         } else if (matchFirst(line, rgx.para_bullet)) {
           debug(parabullet) {                    // para bullet
             writeln(line);
           }
-          type["para"] = State.on;
-          an_object["nugget"] ~= line;
-          indent=[
-            "hang_position" : "0",
-            "base_position" : "0",
-          ];
           bullet = true;
         } else if (auto m = matchFirst(line, rgx.para_indent_hang)) {
           debug(paraindenthang) {                // para indent hang
             writeln(line);
           }
-          type["para"] = State.on;
-          an_object["nugget"] ~= line;
           indent=[
             "hang_position" : to!string(m.captures[1]),
             "base_position" : to!string(m.captures[2]),
           ];
-          bullet = false;
         } else if (auto m = matchFirst(line, rgx.para_bullet_indent)) {
           debug(parabulletindent) {              // para bullet indent
             writeln(line);
           }
-          type["para"] = State.on;
-          an_object["nugget"] ~= line;
           indent=[
             "hang_position" : to!string(m.captures[1]),
             "base_position" : "0",
           ];
           bullet = true;
-        } else {
-          type["para"] = State.on;
-          an_object["nugget"] ~= line;
-          indent=[
-            "hang_position" : "0",
-            "base_position" : "0",
-          ];
-          bullet = false;
         }
         ++line_occur["para"];
       }
@@ -2141,7 +2124,7 @@ template SiSUdocAbstraction() {
       )
       in { }
       body {
-        obj_txt["munge"]=obj_["nugget"].dup;
+        obj_txt["munge"]=obj_["body_nugget"].dup;
         obj_txt["munge"]=(match(obj_["is"], ctRegex!(`verse|code`)))
         ? obj_txt["munge"]
         : strip(obj_txt["munge"]);
@@ -2215,7 +2198,7 @@ template SiSUdocAbstraction() {
       )
       in { }
       body {
-        char[] heading_toc_ = to!(char[])(obj_["nugget"].dup.strip);
+        char[] heading_toc_ = to!(char[])(obj_["body_nugget"].dup.strip);
         heading_toc_ = _clean_heading_toc_(heading_toc_);
         auto attrib="";
         string toc_txt_;
diff --git a/src/sdp/ao_defaults.d b/src/sdp/ao_defaults.d
index 3cdd265..a53b827 100644
--- a/src/sdp/ao_defaults.d
+++ b/src/sdp/ao_defaults.d
@@ -319,7 +319,8 @@ template SiSUrgxInitFlags() {
       "header_make"          : 0,
       "header_meta"          : 0,
       "heading"              : 0,
-      "heading_biblio"       : 0,
+      "biblio_section"       : 0,
+      // "glossary_section"     : 0, // TODO
       "para"                 : 0,
       "blocks"               : 0, // 0..2 generic
       "code"                 : 0, // 0..2
-- 
cgit v1.2.3