diff options
| author | Ralph Amissah <ralph@amissah.com> | 2017-03-14 12:25:23 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2019-04-10 15:14:14 -0400 | 
| commit | 1eba4830ee85784dfe44e56be9508151349b7e4e (patch) | |
| tree | f66b538b5539eba10155e2a627f625f06a000a59 /src | |
| parent | work on outputs (diff) | |
org files minor touches
Diffstat (limited to 'src')
| -rw-r--r-- | src/sdp/ao_abstract_doc_source.d | 621 | ||||
| -rw-r--r-- | src/sdp/ao_defaults.d | 62 | ||||
| -rw-r--r-- | src/sdp/ao_read_source_files.d | 2 | ||||
| -rw-r--r-- | src/sdp/ao_rgx.d | 2 | ||||
| -rw-r--r-- | src/sdp/output_html.d | 455 | ||||
| -rw-r--r-- | src/sdp/output_xhtmls.d | 2 | 
6 files changed, 357 insertions, 787 deletions
| 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,    "&")          .replaceAll(rgx.xhtml_less_than,    "<")          .replaceAll(rgx.xhtml_greater_than, ">") -        .replaceAll(rgx.xhtml_line_break,   "<br />"); +        .replaceAll(rgx.xhtml_line_break,   "<br>");        return _txt;      }      string font_face(string _txt){ | 
