diff options
| author | Ralph Amissah <ralph@amissah.com> | 2018-06-19 12:17:37 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2019-04-10 15:14:15 -0400 | 
| commit | 4101c83a16ce715c84d353572bd0f231059bfbac (patch) | |
| tree | 5e84eb93addb7e63bcc3dbd7ede0e66d64f735df | |
| parent | doc abstraction run only when processing flags require (diff) | |
make string object_number a property of int o_n
| -rw-r--r-- | org/meta_abstraction.org | 548 | ||||
| -rw-r--r-- | org/output_xmls.org | 2 | ||||
| -rw-r--r-- | org/sdp.org | 6 | ||||
| -rw-r--r-- | src/sdp/meta/metadoc_from_src.d | 451 | ||||
| -rw-r--r-- | src/sdp/meta/metadoc_summary.d | 6 | ||||
| -rw-r--r-- | src/sdp/meta/object_setter.d | 69 | ||||
| -rw-r--r-- | src/sdp/output/epub3.d | 2 | 
7 files changed, 541 insertions, 543 deletions
| diff --git a/org/meta_abstraction.org b/org/meta_abstraction.org index 3d6f6b0..3b21446 100644 --- a/org/meta_abstraction.org +++ b/org/meta_abstraction.org @@ -509,7 +509,6 @@ comp_obj_heading_.typeinfo.is_of             = "para";  comp_obj_heading_.typeinfo.is_a              = "heading";  comp_obj_heading_.text                       = "Table of Contents";  comp_obj_heading_.node.ocn                   = 0; -comp_obj_heading_.node.object_number         = "";  comp_obj_heading_.misc.object_number_off     = "";  comp_obj_heading_.misc.object_number_type    = 0;  comp_obj_heading_.tags.segment_anchor_tag    = "toc"; @@ -686,7 +685,6 @@ if there is a glossary section you need to:        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "Glossary";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "_part_glossary"; @@ -705,7 +703,6 @@ if there is a glossary section you need to:        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "Glossary";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "glossary"; @@ -727,7 +724,6 @@ if there is a glossary section you need to:        comp_obj_para.typeinfo.is_a             = "glossary";        comp_obj_para.text                      = line.to!string.strip;        comp_obj_para.node.ocn                  = 0; -      comp_obj_para.node.object_number        = "";        comp_obj_para.misc.object_number_off    = "";        comp_obj_para.misc.object_number_type   = 0;        comp_obj_para.attrib.indent_hang        = indent["hang_position"]; @@ -810,7 +806,6 @@ if there is a blurb section you need to:        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "Blurb";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "_part_blurb"; @@ -829,7 +824,6 @@ if there is a blurb section you need to:        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "Blurb";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "blurb"; @@ -851,7 +845,6 @@ if there is a blurb section you need to:        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = line.to!string;        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "blurb"; @@ -870,7 +863,6 @@ if there is a blurb section you need to:        comp_obj_para.typeinfo.is_a             = "blurb";        comp_obj_para.text                      = munge.url_links(line.to!string.strip).replaceFirst(rgx.para_attribs, "");        comp_obj_para.node.ocn                  = 0; -      comp_obj_para.node.object_number        = "";        comp_obj_para.misc.object_number_off    = "";        comp_obj_para.misc.object_number_type   = 0;        comp_obj_para.attrib.indent_hang        = indent["hang_position"]; @@ -1281,26 +1273,25 @@ if ((obj_type_status["heading"] == State.on)      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);    an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];    anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags]; -  comp_obj_para                                          = comp_obj_para.init; -  comp_obj_para.typeinfo.of_part                         = "body"; -  comp_obj_para.typeinfo.of_section                      = "body"; -  comp_obj_para.typeinfo.is_of                           = "para"; -  comp_obj_para.typeinfo.is_a                            = "para"; -  comp_obj_para.text                                     = an_object["substantive"].to!string.strip; -  comp_obj_para.node.ocn                                 = obj_cite_digits.digit; -  comp_obj_para.node.object_number                       = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -  comp_obj_para.misc.object_number_off                   = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -  comp_obj_para.misc.object_number_bkidx                 = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -  comp_obj_para.misc.object_number_type                  = obj_cite_digits.type; -  comp_obj_para.attrib.indent_hang                       = indent["hang_position"]; -  comp_obj_para.attrib.indent_base                       = indent["base_position"]; -  comp_obj_para.attrib.bullet                            = bullet; -  comp_obj_para.tags.anchor_tags                         = anchor_tags; -  comp_obj_para.has.inline_notes_reg                     = substantive_obj_misc_tuple[sObj.notes_reg]; -  comp_obj_para.has.inline_notes_star                    = substantive_obj_misc_tuple[sObj.notes_star]; -  comp_obj_para.has.inline_links                         = substantive_obj_misc_tuple[sObj.links]; -  comp_obj_para.has.contains_image_without_dimensions    = substantive_obj_misc_tuple[sObj.image_no_dimensions]; -  the_document_body_section                              ~= comp_obj_para; +  comp_obj_para                                             = comp_obj_para.init; +  comp_obj_para.typeinfo.of_part                            = "body"; +  comp_obj_para.typeinfo.of_section                         = "body"; +  comp_obj_para.typeinfo.is_of                              = "para"; +  comp_obj_para.typeinfo.is_a                               = "para"; +  comp_obj_para.text                                        = an_object["substantive"].to!string.strip; +  comp_obj_para.node.ocn                                    = obj_cite_digits.digit; +  comp_obj_para.misc.object_number_off                      = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +  comp_obj_para.misc.o_n_book_index                         = obj_cite_digits.bkidx; +  comp_obj_para.misc.object_number_type                     = obj_cite_digits.type; +  comp_obj_para.attrib.indent_hang                          = indent["hang_position"]; +  comp_obj_para.attrib.indent_base                          = indent["base_position"]; +  comp_obj_para.attrib.bullet                               = bullet; +  comp_obj_para.tags.anchor_tags                            = anchor_tags; +  comp_obj_para.has.inline_notes_reg                        = substantive_obj_misc_tuple[sObj.notes_reg]; +  comp_obj_para.has.inline_notes_star                       = substantive_obj_misc_tuple[sObj.notes_star]; +  comp_obj_para.has.inline_links                            = substantive_obj_misc_tuple[sObj.links]; +  comp_obj_para.has.contains_image_without_dimensions       = substantive_obj_misc_tuple[sObj.image_no_dimensions]; +  the_document_body_section                                 ~= comp_obj_para;    _common_reset_(line_occur, an_object, obj_type_status);    indent=[      "hang_position" : 0, @@ -1413,7 +1404,6 @@ if (an_object["glossary_nugget"].length == 0) {    comp_obj_heading_.typeinfo.is_a              = "heading";    comp_obj_heading_.text                       = "(skip) there is no Glossary section";    comp_obj_heading_.node.ocn                   = 0; -  comp_obj_heading_.node.object_number         = "";    comp_obj_heading_.misc.object_number_off     = "";    comp_obj_heading_.misc.object_number_type    = 0;    comp_obj_heading_.node.marked_up_level       = "B"; @@ -1452,7 +1442,6 @@ if (biblio_ordered.length > 0) {    comp_obj_heading_.typeinfo.is_a              = "heading";    comp_obj_heading_.text                       = "Bibliography";    comp_obj_heading_.node.ocn                   = 0; -  comp_obj_heading_.node.object_number         = "";    comp_obj_heading_.misc.object_number_off     = "";    comp_obj_heading_.misc.object_number_type    = 0;    comp_obj_heading_.tags.segment_anchor_tag    = "_part_bibliography"; @@ -1469,7 +1458,6 @@ if (biblio_ordered.length > 0) {    comp_obj_heading_.typeinfo.is_a              = "heading";    comp_obj_heading_.text                       = "Bibliography";    comp_obj_heading_.node.ocn                   = 0; -  comp_obj_heading_.node.object_number         = "";    comp_obj_heading_.misc.object_number_off     = "";    comp_obj_heading_.misc.object_number_type    = 0;    comp_obj_heading_.tags.segment_anchor_tag    = "bibliography"; @@ -1488,7 +1476,6 @@ if (biblio_ordered.length > 0) {    comp_obj_heading_.typeinfo.is_a              = "heading";    comp_obj_heading_.text                       = "(skip) there is no Bibliography";    comp_obj_heading_.node.ocn                   = 0; -  comp_obj_heading_.node.object_number         = "";    comp_obj_heading_.misc.object_number_off     = "";    comp_obj_heading_.misc.object_number_type    = 0;    comp_obj_heading_.node.marked_up_level       = "B"; @@ -1527,7 +1514,6 @@ foreach (entry; biblio_ordered) {    comp_obj_para.typeinfo.is_a             = "bibliography";    comp_obj_para.text                      = out_.to!string.strip;    comp_obj_para.node.ocn                  = 0; -  comp_obj_para.node.object_number        = "";    comp_obj_para.misc.object_number_off    = "";    comp_obj_para.misc.object_number_type   = 0;    comp_obj_para.attrib.indent_hang        = 0; @@ -1613,7 +1599,6 @@ if (an_object["blurb_nugget"].length == 0) {    comp_obj_heading_.typeinfo.is_a              = "heading";    comp_obj_heading_.text                       = "(skip) there is no Blurb section";    comp_obj_heading_.node.ocn                   = 0; -  comp_obj_para.node.object_number             = "";    comp_obj_para.misc.object_number_off         = "";    comp_obj_para.misc.object_number_type        = 0;    comp_obj_heading_.tags.segment_anchor_tag    = ""; @@ -1645,7 +1630,6 @@ comp_obj_toc.typeinfo.of_section       = "toc";  comp_obj_toc.typeinfo.is_of            = "para";  comp_obj_toc.typeinfo.is_a             = "toc";  comp_obj_toc.node.ocn                  = 0; -comp_obj_toc.node.object_number        = "";  comp_obj_toc.misc.object_number_off    = "";  comp_obj_toc.misc.object_number_type   = 0;  comp_obj_toc.attrib.indent_hang        = indent["hang_position"]; @@ -2002,7 +1986,6 @@ foreach (ref obj; the_document_head_section) {          "Title OCN should be 1 not: " ~ obj.node.ocn.to!string); // bug introduced 0.18.1        +/        obj.node.ocn = 1; -      obj.node.object_number = "1";        obj.misc.object_number_type = OCNtype.ocn;      }      /+ dom structure (marked up & collapsed) +/ @@ -2021,7 +2004,7 @@ foreach (ref obj; the_document_head_section) {  }  #+END_SRC -***** ↻ Loop section: toc +***** ↻ Loop section: toc [to]  #+name: abs_post  #+BEGIN_SRC d @@ -2082,7 +2065,7 @@ if (the_table_of_contents_section["scroll"].length > 1) {  }  #+END_SRC -***** ↻ Loop section: document body +***** ↻ Loop section: document body [bd]  #+name: abs_post  #+BEGIN_SRC d @@ -2126,7 +2109,7 @@ if (the_document_body_section.length > 1) {  auto images=uniq(_images.sort());  #+END_SRC -***** ↻ Loop section: endnotes +***** ↻ Loop section: endnotes [en]  - endnotes have their own number, (also use in node) and they belong to calling object @@ -2145,7 +2128,6 @@ if (the_endnotes_section.length > 1) {        }        obj_cite_digits = ocn_emit(OCNstatus.on);        obj.node.ocn = obj_cite_digits.digit; -      obj.node.object_number = obj_cite_digits.on.to!string;        if (obj.node.heading_lev_markup <= 4) {          segnames_0_4 ~= obj.tags.segment_anchor_tag;          if (obj.node.heading_lev_markup == 4) { @@ -2174,7 +2156,7 @@ if (the_endnotes_section.length > 1) {  }  #+END_SRC -***** ↻ Loop section: glossary +***** ↻ Loop section: glossary [gl]  - add glossary numbering, (also use in node) no need to show in text @@ -2189,7 +2171,6 @@ if (the_glossary_section.length > 1) {        }        obj_cite_digits = ocn_emit(OCNstatus.on);        obj.node.ocn = obj_cite_digits.digit; -      obj.node.object_number = obj_cite_digits.on.to!string;        if (obj.node.heading_lev_markup <= 4) {          segnames_0_4 ~= obj.tags.segment_anchor_tag;          if (obj.node.heading_lev_markup == 4) { @@ -2216,13 +2197,12 @@ if (the_glossary_section.length > 1) {      } else if (obj.typeinfo.is_a == "glossary") {        obj_cite_digits = ocn_emit(OCNstatus.on);        obj.node.ocn = obj_cite_digits.digit; -      obj.node.object_number = obj_cite_digits.on.to!string;      }    }  }  #+END_SRC -***** ↻ Loop section: bibliography +***** ↻ Loop section: bibliography [bb]  - add bibliography numbering, (also use in node) no need to show in text @@ -2237,7 +2217,6 @@ if (the_bibliography_section.length > 1) {        }        obj_cite_digits = ocn_emit(OCNstatus.on);        obj.node.ocn = obj_cite_digits.digit; -      obj.node.object_number = obj_cite_digits.on.to!string; // check        if (obj.node.heading_lev_markup <= 4) {          segnames_0_4 ~= obj.tags.segment_anchor_tag;          if (obj.node.heading_lev_markup == 4) { @@ -2264,13 +2243,12 @@ if (the_bibliography_section.length > 1) {      } else if (obj.typeinfo.is_a == "bibliography") {        obj_cite_digits = ocn_emit(OCNstatus.on);        obj.node.ocn = obj_cite_digits.on; -      obj.node.object_number = obj_cite_digits.on.to!string;      }    }  }  #+END_SRC -***** ↻ Loop section: book index (scroll, seg) +***** ↻ Loop section: book index (scroll, seg) [bi]  - add book index numbering?, (also use in node) no need to show in text @@ -2290,7 +2268,6 @@ if (the_bookindex_section["scroll"].length > 1) {        }        obj_cite_digits = ocn_emit(OCNstatus.on);        obj.node.ocn = obj_cite_digits.on; -      obj.node.object_number = obj_cite_digits.on.to!string;        if (obj.node.heading_lev_markup <= 4) {          segnames_0_4 ~= obj.tags.segment_anchor_tag;          if (obj.node.heading_lev_markup == 4) { @@ -2315,10 +2292,10 @@ if (the_bookindex_section["scroll"].length > 1) {        }        obj = obj_heading_ancestors(obj, lv_ancestors_txt);      } else if (obj.typeinfo.is_a == "bookindex") { -      obj_cite_digits = ocn_emit(OCNstatus.bkidx); -      obj.node.ocn = obj_cite_digits.digit; -      obj.misc.object_number_bkidx = obj_cite_digits.bkidx.to!string; -      obj.misc.object_number_type = OCNtype.bkidx; +      obj_cite_digits                   = ocn_emit(OCNstatus.bkidx); +      obj.node.ocn                      = obj_cite_digits.digit; +      obj.misc.o_n_book_index           = obj_cite_digits.bkidx; +      obj.misc.object_number_type       = OCNtype.bkidx;      }    }    /+ seg +/ @@ -2330,7 +2307,6 @@ if (the_bookindex_section["scroll"].length > 1) {          writeln(obj.text);        }        obj.node.ocn = ++ocn_; -      obj.node.object_number = obj.node.ocn.to!string;        if (obj.node.heading_lev_markup <= 4) {          segnames_0_4 ~= obj.tags.segment_anchor_tag;          if (obj.node.heading_lev_markup == 4) { @@ -2356,8 +2332,8 @@ if (the_bookindex_section["scroll"].length > 1) {        obj = obj_heading_ancestors(obj, lv_ancestors_txt);      } else if (obj.typeinfo.is_a == "bookindex") {        ocn_bidx_ = ++ocn_bkidx_; -      obj.misc.object_number_bkidx = ocn_bidx_.to!string; // FIX need to distinguish from regular ocn -      obj.misc.object_number_type = OCNtype.bkidx; +      obj.misc.o_n_book_index           = ocn_bidx_; // FIX need to distinguish from regular ocn +      obj.misc.object_number_type       = OCNtype.bkidx;      }    }    /+ TODO assert failure, reinstate @@ -2367,7 +2343,7 @@ if (the_bookindex_section["scroll"].length > 1) {  }  #+END_SRC -***** ↻ Loop section: blurb +***** ↻ Loop section: blurb [bl]  #+name: abs_post  #+BEGIN_SRC d @@ -2380,7 +2356,6 @@ if (the_blurb_section.length > 1) {        }        obj_cite_digits = ocn_emit(OCNstatus.on);        obj.node.ocn = obj_cite_digits.on; -      obj.node.object_number = obj_cite_digits.on.to!string;        if (obj.node.heading_lev_markup <= 4) {          segnames_0_4 ~= obj.tags.segment_anchor_tag;          if (obj.node.heading_lev_markup == 4) { @@ -2429,7 +2404,6 @@ comp_obj_heading_.typeinfo.of_section        = "empty";  comp_obj_heading_.typeinfo.is_of             = "para";  comp_obj_heading_.typeinfo.is_a              = "heading";  comp_obj_heading_.node.ocn                   = 0; -comp_obj_para.node.object_number             = "";  comp_obj_para.misc.object_number_off         = "";  comp_obj_para.misc.object_number_type        = 0;  comp_obj_heading_.tags.segment_anchor_tag    = ""; @@ -3394,21 +3368,20 @@ void _poem_block_(L,O,T,C,N,CMM)(              = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);            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.typeinfo.of_part           = "body"; -          comp_obj_block.typeinfo.of_section        = "body"; -          comp_obj_block.typeinfo.is_of             = "block"; -          comp_obj_block.typeinfo.is_a              = "verse"; -          comp_obj_block.node.ocn                   = obj_cite_digits.on; -          comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -          comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -          comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -          comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -          comp_obj_block.text                       = an_object["substantive"]; -          comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -          comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -          comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -          the_document_body_section                 ~= comp_obj_block; +          comp_obj_block                               = comp_obj_block.init; +          comp_obj_block.typeinfo.of_part              = "body"; +          comp_obj_block.typeinfo.of_section           = "body"; +          comp_obj_block.typeinfo.is_of                = "block"; +          comp_obj_block.typeinfo.is_a                 = "verse"; +          comp_obj_block.node.ocn                      = obj_cite_digits.on; +          comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +          comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +          comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +          comp_obj_block.text                          = an_object["substantive"]; +          comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +          comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +          comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +          the_document_body_section                    ~= comp_obj_block;          }          object_reset(an_object);          processing.remove("verse"); @@ -3452,21 +3425,20 @@ void _poem_block_(L,O,T,C,N,CMM)(            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);          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.typeinfo.of_part           = "body"; -        comp_obj_block.typeinfo.of_section        = "body"; -        comp_obj_block.typeinfo.is_of             = "block"; -        comp_obj_block.typeinfo.is_a              = "verse"; -        comp_obj_block.node.ocn                   = obj_cite_digits.on; -        comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -        comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -        comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -        comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -        comp_obj_block.text                       = an_object["substantive"]; -        comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -        comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -        comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -        the_document_body_section                 ~= comp_obj_block; +        comp_obj_block                               = comp_obj_block.init; +        comp_obj_block.typeinfo.of_part              = "body"; +        comp_obj_block.typeinfo.of_section           = "body"; +        comp_obj_block.typeinfo.is_of                = "block"; +        comp_obj_block.typeinfo.is_a                 = "verse"; +        comp_obj_block.node.ocn                      = obj_cite_digits.on; +        comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +        comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +        comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +        comp_obj_block.text                          = an_object["substantive"]; +        comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +        comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +        comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +        the_document_body_section                    ~= comp_obj_block;          object_reset(an_object);          processing.remove("verse");          ++cntr; @@ -3495,22 +3467,21 @@ void _poem_block_(L,O,T,C,N,CMM)(            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);          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.typeinfo.of_part           = "body"; -        comp_obj_block.typeinfo.of_section        = "body"; -        comp_obj_block.typeinfo.is_of             = "block"; -        comp_obj_block.typeinfo.is_a              = "verse"; -        comp_obj_block.node.ocn                   = obj_cite_digits.on; -        comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -        comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -        comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -        comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -        comp_obj_block.text                       = an_object["substantive"]; -        comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -        comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -        comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -        the_document_body_section                 ~= comp_obj_block; -        object_number_poem["end"]               = obj_cite_digits.on.to!string; +        comp_obj_block                               = comp_obj_block.init; +        comp_obj_block.typeinfo.of_part              = "body"; +        comp_obj_block.typeinfo.of_section           = "body"; +        comp_obj_block.typeinfo.is_of                = "block"; +        comp_obj_block.typeinfo.is_a                 = "verse"; +        comp_obj_block.node.ocn                      = obj_cite_digits.on; +        comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +        comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +        comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +        comp_obj_block.text                          = an_object["substantive"]; +        comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +        comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +        comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +        the_document_body_section                    ~= comp_obj_block; +        object_number_poem["end"]                    = obj_cite_digits.on.to!string;          object_reset(an_object);          processing.remove("verse");          ++cntr; @@ -3553,21 +3524,20 @@ void _poem_block_(L,O,T,C,N,CMM)(            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);          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.typeinfo.of_part           = "body"; -        comp_obj_block.typeinfo.of_section        = "body"; -        comp_obj_block.typeinfo.is_of             = "block"; -        comp_obj_block.typeinfo.is_a              = "verse"; -        comp_obj_block.node.ocn                   = obj_cite_digits.on; -        comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -        comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -        comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -        comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -        comp_obj_block.text                       = an_object["substantive"]; -        comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -        comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -        comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -        the_document_body_section                 ~= comp_obj_block; +        comp_obj_block                               = comp_obj_block.init; +        comp_obj_block.typeinfo.of_part              = "body"; +        comp_obj_block.typeinfo.of_section           = "body"; +        comp_obj_block.typeinfo.is_of                = "block"; +        comp_obj_block.typeinfo.is_a                 = "verse"; +        comp_obj_block.node.ocn                      = obj_cite_digits.on; +        comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +        comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +        comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +        comp_obj_block.text                          = an_object["substantive"]; +        comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +        comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +        comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +        the_document_body_section                    ~= comp_obj_block;          object_reset(an_object);          processing.remove("verse");          ++cntr; @@ -3696,15 +3666,14 @@ void _table_closed_make_special_notation_table_(N,CMM)(      an_object["is"] = "table";      auto substantive_obj_misc_tuple        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, "body_nugget", conf_make_meta); -    an_object["substantive"]                  = substantive_obj_misc_tuple[sObj.content]; -    comp_obj_block.node.ocn                   = obj_cite_digits.on; -    comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -    comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -    comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -    comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -    comp_obj_block                            = table_instructions(comp_obj_block, an_object["table_head"]); -    comp_obj_block                            = table_substantive_munge_special(comp_obj_block, an_object["substantive"]); -    the_document_body_section                 ~= comp_obj_block; +    an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content]; +    comp_obj_block.node.ocn                      = obj_cite_digits.on; +    comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +    comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +    comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +    comp_obj_block                               = table_instructions(comp_obj_block, an_object["table_head"]); +    comp_obj_block                               = table_substantive_munge_special(comp_obj_block, an_object["substantive"]); +    the_document_body_section                    ~= comp_obj_block;      object_reset(an_object);      processing.remove("verse");      ++cntr; @@ -3770,23 +3739,22 @@ void _block_flag_line_empty_(B,N,CMM)(        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);      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.typeinfo.of_part           = "body"; -    comp_obj_block.typeinfo.of_section        = "body"; -    comp_obj_block.typeinfo.is_of             = "block"; -    comp_obj_block.typeinfo.is_a              = "quote"; -    comp_obj_block.node.ocn                   = obj_cite_digits.on; -    comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -    comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -    comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -    comp_obj_block.misc.object_number_type    = obj_cite_digit_type; -    comp_obj_block.text                       = an_object["substantive"]; -    comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -    comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -    comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -    the_document_body_section                 ~= comp_obj_block; -    obj_type_status["blocks"]                 = TriState.off; -    obj_type_status["quote"]                  = TriState.off; +    comp_obj_block                               = comp_obj_block.init; +    comp_obj_block.typeinfo.of_part              = "body"; +    comp_obj_block.typeinfo.of_section           = "body"; +    comp_obj_block.typeinfo.is_of                = "block"; +    comp_obj_block.typeinfo.is_a                 = "quote"; +    comp_obj_block.node.ocn                      = obj_cite_digits.on; +    comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +    comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +    comp_obj_block.misc.object_number_type       = obj_cite_digit_type; +    comp_obj_block.text                          = an_object["substantive"]; +    comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +    comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +    comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +    the_document_body_section                    ~= comp_obj_block; +    obj_type_status["blocks"]                    = TriState.off; +    obj_type_status["quote"]                     = TriState.off;      object_reset(an_object);      processing.remove("verse");      ++cntr; @@ -3820,23 +3788,22 @@ void _block_flag_line_empty_(B,N,CMM)(        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);      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.typeinfo.of_part           = "body"; -    comp_obj_block.typeinfo.of_section        = "body"; -    comp_obj_block.typeinfo.is_of             = "block"; -    comp_obj_block.typeinfo.is_a              = "group"; -    comp_obj_block.node.ocn                   = obj_cite_digits.on; -    comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -    comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -    comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -    comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -    comp_obj_block.text                       = an_object["substantive"]; -    comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -    comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -    comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -    the_document_body_section                 ~= comp_obj_block; -    obj_type_status["blocks"]                 = TriState.off; -    obj_type_status["group"]                  = TriState.off; +    comp_obj_block                               = comp_obj_block.init; +    comp_obj_block.typeinfo.of_part              = "body"; +    comp_obj_block.typeinfo.of_section           = "body"; +    comp_obj_block.typeinfo.is_of                = "block"; +    comp_obj_block.typeinfo.is_a                 = "group"; +    comp_obj_block.node.ocn                      = obj_cite_digits.on; +    comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +    comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +    comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +    comp_obj_block.text                          = an_object["substantive"]; +    comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +    comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +    comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +    the_document_body_section                    ~= comp_obj_block; +    obj_type_status["blocks"]                    = TriState.off; +    obj_type_status["group"]                     = TriState.off;      object_reset(an_object);      processing.remove("verse");      ++cntr; @@ -3868,24 +3835,23 @@ void _block_flag_line_empty_(B,N,CMM)(        );      auto substantive_obj_misc_tuple        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); -    an_object["substantive"]                  = substantive_obj_misc_tuple[sObj.content]; -    comp_obj_block                            = comp_obj_block.init; -    comp_obj_block.typeinfo.of_part           = "body"; -    comp_obj_block.typeinfo.of_section        = "body"; -    comp_obj_block.typeinfo.is_of             = "block"; -    comp_obj_block.typeinfo.is_a              = "block"; -    comp_obj_block.node.ocn                   = obj_cite_digits.on; -    comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -    comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -    comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -    comp_obj_block.misc.object_number_type    = obj_cite_digit_type; -    comp_obj_block.text                       = an_object["substantive"]; -    comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -    comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -    comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -    the_document_body_section                 ~= comp_obj_block; -    obj_type_status["blocks"]                 = TriState.off; -    obj_type_status["block"]                  = TriState.off; +    an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content]; +    comp_obj_block                               = comp_obj_block.init; +    comp_obj_block.typeinfo.of_part              = "body"; +    comp_obj_block.typeinfo.of_section           = "body"; +    comp_obj_block.typeinfo.is_of                = "block"; +    comp_obj_block.typeinfo.is_a                 = "block"; +    comp_obj_block.node.ocn                      = obj_cite_digits.on; +    comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +    comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +    comp_obj_block.misc.object_number_type       = obj_cite_digit_type; +    comp_obj_block.text                          = an_object["substantive"]; +    comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +    comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +    comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +    the_document_body_section                    ~= comp_obj_block; +    obj_type_status["blocks"]                    = TriState.off; +    obj_type_status["block"]                     = TriState.off;      object_reset(an_object);      processing.remove("verse");      ++cntr; @@ -3914,20 +3880,19 @@ void _block_flag_line_empty_(B,N,CMM)(          heading_ptr-1,          an_object["is"]        ); -    comp_obj_poem_ocn                            = comp_obj_poem_ocn.init; -    comp_obj_poem_ocn.typeinfo.of_part           = "body"; -    comp_obj_poem_ocn.typeinfo.of_section        = "body"; -    comp_obj_poem_ocn.typeinfo.is_of             = "block"; -    comp_obj_poem_ocn.typeinfo.is_a              = "poem"; -    comp_obj_poem_ocn.node.ocn                   = obj_cite_digits.on; -    comp_obj_poem_ocn.node.object_number         = (object_number_poem["start"] ~ "..." ~ object_number_poem["end"]); -    comp_obj_poem_ocn.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; // -    comp_obj_poem_ocn.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; // -    comp_obj_poem_ocn.misc.object_number_type    = obj_cite_digits.type; -    comp_obj_poem_ocn.text                        = ""; -    the_document_body_section                     ~= comp_obj_poem_ocn; -    obj_type_status["blocks"]                     = TriState.off; -    obj_type_status["poem"]                       = TriState.off; +    comp_obj_poem_ocn                               = comp_obj_poem_ocn.init; +    comp_obj_poem_ocn.typeinfo.of_part              = "body"; +    comp_obj_poem_ocn.typeinfo.of_section           = "body"; +    comp_obj_poem_ocn.typeinfo.is_of                = "block"; +    comp_obj_poem_ocn.typeinfo.is_a                 = "poem"; +    comp_obj_poem_ocn.node.ocn                      = obj_cite_digits.on; +    comp_obj_poem_ocn.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; // +    comp_obj_poem_ocn.misc.o_n_book_index           = obj_cite_digits.bkidx; // +    comp_obj_poem_ocn.misc.object_number_type       = obj_cite_digits.type; +    comp_obj_poem_ocn.text                          = ""; +    the_document_body_section                       ~= comp_obj_poem_ocn; +    obj_type_status["blocks"]                       = TriState.off; +    obj_type_status["poem"]                         = TriState.off;      object_reset(an_object);      processing.remove("verse");  #+END_SRC @@ -3960,23 +3925,22 @@ void _block_flag_line_empty_(B,N,CMM)(        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);      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.typeinfo.of_part            = "body"; -    comp_obj_code.typeinfo.of_section         = "body"; -    comp_obj_code.typeinfo.is_of              = "block"; -    comp_obj_code.typeinfo.is_a               = "code"; -    comp_obj_code.node.ocn                    = obj_cite_digits.on; -    comp_obj_code.node.object_number          = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -    comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -    comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -    comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -    comp_obj_code.text                        = an_object["substantive"]; -    comp_obj_code.has.inline_notes_reg        = substantive_obj_misc_tuple[sObj.notes_reg]; -    comp_obj_code.has.inline_notes_star       = substantive_obj_misc_tuple[sObj.notes_star]; -    comp_obj_code.has.inline_links            = substantive_obj_misc_tuple[sObj.links]; -    the_document_body_section                 ~= comp_obj_code; -    obj_type_status["blocks"]                 = TriState.off; -    obj_type_status["code"]                   = TriState.off; +    comp_obj_code                                = comp_obj_code.init; +    comp_obj_code.typeinfo.of_part               = "body"; +    comp_obj_code.typeinfo.of_section            = "body"; +    comp_obj_code.typeinfo.is_of                 = "block"; +    comp_obj_code.typeinfo.is_a                  = "code"; +    comp_obj_code.node.ocn                       = obj_cite_digits.on; +    comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +    comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +    comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +    comp_obj_code.text                           = an_object["substantive"]; +    comp_obj_code.has.inline_notes_reg           = substantive_obj_misc_tuple[sObj.notes_reg]; +    comp_obj_code.has.inline_notes_star          = substantive_obj_misc_tuple[sObj.notes_star]; +    comp_obj_code.has.inline_links               = substantive_obj_misc_tuple[sObj.links]; +    the_document_body_section                    ~= comp_obj_code; +    obj_type_status["blocks"]                    = TriState.off; +    obj_type_status["code"]                      = TriState.off;      object_reset(an_object);      processing.remove("verse");      ++cntr; @@ -4009,18 +3973,17 @@ void _block_flag_line_empty_(B,N,CMM)(        );      auto substantive_obj_misc_tuple        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); -    an_object["substantive"]                  = substantive_obj_misc_tuple[sObj.content]; -    comp_obj_block                            = comp_obj_block.init; -    comp_obj_block.node.ocn                   = obj_cite_digits.on; -    comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -    comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -    comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -    comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -    comp_obj_block = table_instructions(comp_obj_block, an_object["table_head"]); -    comp_obj_block = table_substantive_munge(comp_obj_block, an_object["substantive"]); -    the_document_body_section                 ~= comp_obj_block; -    obj_type_status["blocks"]                 = TriState.off; -    obj_type_status["table"]                  = TriState.off; +    an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content]; +    comp_obj_block                               = comp_obj_block.init; +    comp_obj_block.node.ocn                      = obj_cite_digits.on; +    comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +    comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +    comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +    comp_obj_block                               = table_instructions(comp_obj_block, an_object["table_head"]); +    comp_obj_block                               = table_substantive_munge(comp_obj_block, an_object["substantive"]); +    the_document_body_section                    ~= comp_obj_block; +    obj_type_status["blocks"]                    = TriState.off; +    obj_type_status["table"]                     = TriState.off;      object_reset(an_object);      processing.remove("verse");      ++cntr; @@ -5446,7 +5409,6 @@ static struct ObjInlineMarkup {        comp_obj_toc.typeinfo.is_of             = "para";        comp_obj_toc.typeinfo.is_a              = "toc";        comp_obj_toc.node.ocn                   = 0; -      comp_obj_toc.node.object_number         = "";        comp_obj_toc.misc.object_number_off     = "";        comp_obj_toc.misc.object_number_type    = 0;        comp_obj_toc.attrib.indent_hang         = indent["hang_position"]; @@ -5466,7 +5428,6 @@ static struct ObjInlineMarkup {        comp_obj_toc.typeinfo.is_of             = "para";        comp_obj_toc.typeinfo.is_a              = "toc";        comp_obj_toc.node.ocn                   = 0; -      comp_obj_toc.node.object_number         = "";        comp_obj_toc.misc.object_number_off     = "";        comp_obj_toc.misc.object_number_type    = 0;        comp_obj_toc.attrib.indent_hang         = indent["hang_position"]; @@ -5482,7 +5443,6 @@ static struct ObjInlineMarkup {      comp_obj_toc.typeinfo.is_of               = "para";      comp_obj_toc.typeinfo.is_a                = "toc";      comp_obj_toc.node.ocn                     = 0; -    comp_obj_toc.node.object_number           = "";      comp_obj_toc.misc.object_number_off       = "";      comp_obj_toc.misc.object_number_type      = 0;      comp_obj_toc.attrib.bullet                = false; @@ -6337,7 +6297,6 @@ struct BookIndexReportSection {        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "Book Index";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "_part_book_index"; @@ -6357,7 +6316,6 @@ struct BookIndexReportSection {        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "Index";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "bookindex"; @@ -6435,7 +6393,6 @@ struct BookIndexReportSection {          comp_obj_para.typeinfo.is_a             = "bookindex";          comp_obj_para.text                      = bi_tmp_scroll.to!string.strip;          comp_obj_para.node.ocn                  = 0; -        comp_obj_para.node.object_number        = "";          comp_obj_para.misc.object_number_off    = "";          comp_obj_para.misc.object_number_type   = 0;          comp_obj_para.tags.anchor_tags          = bi_tmp_tags; @@ -6452,7 +6409,6 @@ struct BookIndexReportSection {        comp_obj_heading_                            = comp_obj_heading_.init;        comp_obj_heading_.text                       = "(skip) there is no Book Index";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.node.marked_up_level       = "B"; @@ -6596,7 +6552,6 @@ struct NotesSection {        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "Endnotes";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "_part_endnotes"; @@ -6614,7 +6569,6 @@ struct NotesSection {        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "Endnotes";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "endnotes"; @@ -6634,7 +6588,6 @@ struct NotesSection {        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "(skip) there are no Endnotes";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.node.marked_up_level       = "B"; @@ -6652,7 +6605,6 @@ struct NotesSection {        comp_obj_endnote_.typeinfo.is_of             = "para";        comp_obj_endnote_.typeinfo.is_a              = "endnote";        comp_obj_endnote_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_endnote_.attrib.indent_hang         = 0; @@ -7026,29 +6978,28 @@ struct NodeStructureMetadata {        break;      }      ObjGenericComposite _comp_obj_heading_; -    _comp_obj_heading_                               = _comp_obj_heading_.init; -    _comp_obj_heading_.typeinfo.of_part              = "body"; -    _comp_obj_heading_.typeinfo.of_section           = "body"; -    _comp_obj_heading_.typeinfo.is_of                = "para"; -    _comp_obj_heading_.typeinfo.is_a                 = "heading"; -    _comp_obj_heading_.text                          = _text.to!string.strip; -    _comp_obj_heading_.node.ocn                      = obj_cite_digits.on; -    _comp_obj_heading_.node.object_number            = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -    _comp_obj_heading_.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -    _comp_obj_heading_.misc.object_number_type       = obj_cite_digits.type; -    _comp_obj_heading_.tags.segment_anchor_tag       = segment_anchor_tag.to!string; -    _comp_obj_heading_.node.marked_up_level          = lev; -    _comp_obj_heading_.node.heading_lev_markup       = (!(lev_markup_number.empty) ? lev_markup_number.to!int : 0); -    _comp_obj_heading_.node.heading_lev_collapsed    = (!(lev_collapsed_number.empty) ? lev_collapsed_number.to!int : 0); -    _comp_obj_heading_.node.parent_ocn               = p_["object_number"]; -    _comp_obj_heading_.node.parent_lev_markup        = p_["lev_markup_number"]; -    _comp_obj_heading_.tags.heading_ancestors_text   = lv_ancestors_txt; -    _comp_obj_heading_.ptr.doc_object                = cntr_; -    _comp_obj_heading_.ptr.html_segnames             = ((lev_markup_number == "4") ? html_segnames_ptr : 0); -    _comp_obj_heading_.ptr.heading                   = ptr_; -    _comp_obj_heading_.has.inline_notes_reg          = flag_notes_reg; -    _comp_obj_heading_.has.inline_notes_star         = flag_notes_star; -    _comp_obj_heading_.has.inline_links              = flag_links; +    _comp_obj_heading_                                  = _comp_obj_heading_.init; +    _comp_obj_heading_.typeinfo.of_part                 = "body"; +    _comp_obj_heading_.typeinfo.of_section              = "body"; +    _comp_obj_heading_.typeinfo.is_of                   = "para"; +    _comp_obj_heading_.typeinfo.is_a                    = "heading"; +    _comp_obj_heading_.text                             = _text.to!string.strip; +    _comp_obj_heading_.node.ocn                         = obj_cite_digits.on; +    _comp_obj_heading_.misc.object_number_off           = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +    _comp_obj_heading_.misc.object_number_type          = obj_cite_digits.type; +    _comp_obj_heading_.tags.segment_anchor_tag          = segment_anchor_tag.to!string; +    _comp_obj_heading_.node.marked_up_level             = lev; +    _comp_obj_heading_.node.heading_lev_markup          = (!(lev_markup_number.empty) ? lev_markup_number.to!int : 0); +    _comp_obj_heading_.node.heading_lev_collapsed       = (!(lev_collapsed_number.empty) ? lev_collapsed_number.to!int : 0); +    _comp_obj_heading_.node.parent_ocn                  = p_["object_number"]; +    _comp_obj_heading_.node.parent_lev_markup           = p_["lev_markup_number"]; +    _comp_obj_heading_.tags.heading_ancestors_text      = lv_ancestors_txt; +    _comp_obj_heading_.ptr.doc_object                   = cntr_; +    _comp_obj_heading_.ptr.html_segnames                = ((lev_markup_number == "4") ? html_segnames_ptr : 0); +    _comp_obj_heading_.ptr.heading                      = ptr_; +    _comp_obj_heading_.has.inline_notes_reg             = flag_notes_reg; +    _comp_obj_heading_.has.inline_notes_star            = flag_notes_star; +    _comp_obj_heading_.has.inline_links                 = flag_links;      debug(node) {        if (lev_markup_number.match(rgx.levels_numbered_headings)) {          writeln("* ", _node.to!string); @@ -7361,32 +7312,51 @@ template ObjectSetter() {  #+END_SRC  ** 1. initialize structs                                            :struct: +*** heading attribute + +#+BEGIN_SRC d +struct HeadingAttrib { +  string lev                            = "9"; +  int    heading_lev_markup             = 9; +  int    heading_lev_collapsed          = 9; +  int[]  closes_lev_collapsed           = []; +  int[]  closes_lev_markup              = []; +  int    array_ptr                      = 0; +  int    heading_array_ptr_segments     = 0; +} +#+END_SRC +  *** [#A] _composite object_  #+name: meta_structs_init  #+BEGIN_SRC d -struct DocObj_TypeInfo_ { +struct DocObj_TypeInfo_ {                                   // typeinfo    string                 of_part                            = ""; // frontmatter, body, backmatter    string                 of_section                         = ""; // toc, body, glossary, biography, book index, blurb    string                 is_of                              = ""; // para, block ?    string                 is_a                               = ""; // heading, para, table, code block, group, ...  } -struct DocObj_TxtAttrib_ { +struct DocObj_TxtAttrib_ {                                  // attrib    int                    indent_base                        = 0;    int                    indent_hang                        = 0;    bool                   bullet                             = false;    string                 language                           = ""; // not implemented, consider  } -struct DocObj_Has_ { +struct DocObj_Has_ {                                        // has    bool                   inline_links                       = false;    bool                   inline_notes_reg                   = false;    bool                   inline_notes_star                  = false;    bool                   contains_image_without_dimensions  = false;  } -struct DocObj_Node_ { +struct DocObj_Node_ {                                       // node    string[string][string] node; -  int                    ocn                                = 0; // duplicated as string with object_number -  string                 object_number                      = ""; // duplicated as int with ocn may apply additional info for backmatter (glossary, biblio etc.) +  int                    ocn                                = 0; +  string object_number() const @property { +    return (ocn==0) +      ? "" +      : ocn.to!string; +  } +  string                 ocn_type                           = ""; // code duplicated typeinfo is_a    string                 marked_up_level                    = "9";    int                    heading_lev_markup                 = 9;    int                    heading_lev_collapsed              = 9; @@ -7397,22 +7367,22 @@ struct DocObj_Node_ {    int                    parent_ocn                         = 0;    int[]                  ancestors                          = [];  } -struct DocObj_Table_ { +struct DocObj_Table_ {                                      // table    int                    number_of_columns                  = 0;    double[]               column_widths                      = [];    string[]               column_aligns                      = [];    bool                   heading                            = false;    bool                   walls                              = false; // not implemented  } -struct DocObj_CodeBlock_ { +struct DocObj_CodeBlock_ {                                  // code_block    string                 syntax                             = "";  } -struct DocObj_Pointer_ { +struct DocObj_Pointer_ {                                    // ptr    int                    doc_object                         = 0;    int                    html_segnames                      = 0;    int                    heading                            = 0;  } -struct DocObj_Tags_ { +struct DocObj_Tags_ {                                       // tags    string[]               heading_ancestors_text             = [ "", "", "", "", "", "", "", "", ];    string                 segment_anchor_tag                 = "";    string                 segname_prev                       = ""; @@ -7420,10 +7390,46 @@ struct DocObj_Tags_ {    string[]               lev4_subtoc                        = [];    string[]               anchor_tags                        = [];  } -struct DocObj_Misc_ { -  string                 object_number_bkidx              = ""; -  string                 object_number_off                = ""; -  int                    object_number_type               = 0; // { ocn, non, bkidx } +struct DocObj_Misc_ {                                       // misc +  int                    o_n_substantive                    = 0; +  int                    o_n_non_substantive                = 0; +  int                    o_n_glossary                       = 0; +  int                    o_n_bibliography                   = 0; +  int                    o_n_book_index                     = 0; +  int                    o_n_blurb                          = 0; +  string object_number_substantive() const @property { +    return (o_n_substantive==0) +      ? "" +      : o_n_substantive.to!string; +  } +  string object_number_non_substantive() const @property { +    return (o_n_non_substantive==0) +      ? "" +      : o_n_non_substantive.to!string; +  } +  string object_number_glossary() const @property { +    return (o_n_glossary==0) +      ? "" +      : o_n_glossary.to!string; +  } +  string object_number_bibliography() const @property { +    return (o_n_bibliography==0) +      ? "" +      : o_n_bibliography.to!string; +  } +  string object_number_book_index() const @property { +    return (o_n_book_index==0) +      ? "" +      : o_n_book_index.to!string; +  } +  string object_number_blurb() const @property { +    return (o_n_blurb==0) +      ? "" +      : o_n_blurb.to!string; +  } +  string                 object_number_off                  = ""; +  bool                   visible_object_number              = false; +  int                    object_number_type                 = 0; // { ocn, non, bkidx }  }  struct ObjGenericComposite {    string                 text                               = ""; diff --git a/org/output_xmls.org b/org/output_xmls.org index db81b28..58f251a 100644 --- a/org/output_xmls.org +++ b/org/output_xmls.org @@ -1929,7 +1929,7 @@ xmlns="urn:oasis:names:tc:opendocument:xmlns:container">  #+name: output_epub3_constructs  #+BEGIN_SRC d -string epub3_oebps_content(D,I,P)(D doc_abstraction, I doc_matters, P parts) { +string epub3_oebps_content(D,M,P)(D doc_abstraction, M doc_matters, P parts) {    auto xhtml_format = outputXHTMLs();    auto pth_epub3 = SiSUpathsEPUB!()(doc_matters.output_path, doc_matters.src.language);    string uuid = "18275d951861c77f78acd05672c9906924c59f18a2e0ba06dad95959693e9bd8"; // TODO sort uuid in doc_matters! diff --git a/org/sdp.org b/org/sdp.org index ac80370..4144630 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -971,7 +971,7 @@ auto markup = InlineMarkup();  string[string] check = [    "last_object_number" : "NA [debug \"checkdoc\" not run]",    "last_object_number_body"  : "0", -  "last_object_number_bkidx" : "0", +  "last_object_number_book_index" : "0",  ];  foreach (k; doc_matters.xml.keys_seq.seg) {    foreach (obj; doc_abstraction[k]) { @@ -986,7 +986,7 @@ foreach (k; doc_matters.xml.keys_seq.seg) {        }        if (k == "bookindex_seg") {          if (obj.misc.object_number_type == 2) { -          check["last_object_number_bkidx"] = obj.misc.object_number_bkidx; +          check["last_object_number_book_index"] = obj.misc.object_number_book_index;          }        }      } @@ -1036,7 +1036,7 @@ writefln(    ? (to!int(doc_abstraction["bookindex_seg"].length))    : 0,    "  last book idx ocn:", -  to!int(check["last_object_number_bkidx"]), +  to!int(check["last_object_number_book_index"]),    "length blurb:",    (doc_abstraction["blurb"].length > 1)    ? (to!int(doc_abstraction["blurb"].length)) diff --git a/src/sdp/meta/metadoc_from_src.d b/src/sdp/meta/metadoc_from_src.d index fab23e3..cc9cffa 100644 --- a/src/sdp/meta/metadoc_from_src.d +++ b/src/sdp/meta/metadoc_from_src.d @@ -332,7 +332,6 @@ template SiSUdocAbstraction() {      comp_obj_heading_.typeinfo.is_a              = "heading";      comp_obj_heading_.text                       = "Table of Contents";      comp_obj_heading_.node.ocn                   = 0; -    comp_obj_heading_.node.object_number         = "";      comp_obj_heading_.misc.object_number_off     = "";      comp_obj_heading_.misc.object_number_type    = 0;      comp_obj_heading_.tags.segment_anchor_tag    = "toc"; @@ -473,7 +472,6 @@ template SiSUdocAbstraction() {                comp_obj_heading_.typeinfo.is_a              = "heading";                comp_obj_heading_.text                       = "Glossary";                comp_obj_heading_.node.ocn                   = 0; -              comp_obj_heading_.node.object_number         = "";                comp_obj_heading_.misc.object_number_off     = "";                comp_obj_heading_.misc.object_number_type    = 0;                comp_obj_heading_.tags.segment_anchor_tag    = "_part_glossary"; @@ -492,7 +490,6 @@ template SiSUdocAbstraction() {                comp_obj_heading_.typeinfo.is_a              = "heading";                comp_obj_heading_.text                       = "Glossary";                comp_obj_heading_.node.ocn                   = 0; -              comp_obj_heading_.node.object_number         = "";                comp_obj_heading_.misc.object_number_off     = "";                comp_obj_heading_.misc.object_number_type    = 0;                comp_obj_heading_.tags.segment_anchor_tag    = "glossary"; @@ -514,7 +511,6 @@ template SiSUdocAbstraction() {                comp_obj_para.typeinfo.is_a             = "glossary";                comp_obj_para.text                      = line.to!string.strip;                comp_obj_para.node.ocn                  = 0; -              comp_obj_para.node.object_number        = "";                comp_obj_para.misc.object_number_off    = "";                comp_obj_para.misc.object_number_type   = 0;                comp_obj_para.attrib.indent_hang        = indent["hang_position"]; @@ -584,7 +580,6 @@ template SiSUdocAbstraction() {                comp_obj_heading_.typeinfo.is_a              = "heading";                comp_obj_heading_.text                       = "Blurb";                comp_obj_heading_.node.ocn                   = 0; -              comp_obj_heading_.node.object_number         = "";                comp_obj_heading_.misc.object_number_off     = "";                comp_obj_heading_.misc.object_number_type    = 0;                comp_obj_heading_.tags.segment_anchor_tag    = "_part_blurb"; @@ -603,7 +598,6 @@ template SiSUdocAbstraction() {                comp_obj_heading_.typeinfo.is_a              = "heading";                comp_obj_heading_.text                       = "Blurb";                comp_obj_heading_.node.ocn                   = 0; -              comp_obj_heading_.node.object_number         = "";                comp_obj_heading_.misc.object_number_off     = "";                comp_obj_heading_.misc.object_number_type    = 0;                comp_obj_heading_.tags.segment_anchor_tag    = "blurb"; @@ -625,7 +619,6 @@ template SiSUdocAbstraction() {                comp_obj_heading_.typeinfo.is_a              = "heading";                comp_obj_heading_.text                       = line.to!string;                comp_obj_heading_.node.ocn                   = 0; -              comp_obj_heading_.node.object_number         = "";                comp_obj_heading_.misc.object_number_off     = "";                comp_obj_heading_.misc.object_number_type    = 0;                comp_obj_heading_.tags.segment_anchor_tag    = "blurb"; @@ -644,7 +637,6 @@ template SiSUdocAbstraction() {                comp_obj_para.typeinfo.is_a             = "blurb";                comp_obj_para.text                      = munge.url_links(line.to!string.strip).replaceFirst(rgx.para_attribs, "");                comp_obj_para.node.ocn                  = 0; -              comp_obj_para.node.object_number        = "";                comp_obj_para.misc.object_number_off    = "";                comp_obj_para.misc.object_number_type   = 0;                comp_obj_para.attrib.indent_hang        = indent["hang_position"]; @@ -953,26 +945,25 @@ template SiSUdocAbstraction() {                  = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);                an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];                anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags]; -              comp_obj_para                                          = comp_obj_para.init; -              comp_obj_para.typeinfo.of_part                         = "body"; -              comp_obj_para.typeinfo.of_section                      = "body"; -              comp_obj_para.typeinfo.is_of                           = "para"; -              comp_obj_para.typeinfo.is_a                            = "para"; -              comp_obj_para.text                                     = an_object["substantive"].to!string.strip; -              comp_obj_para.node.ocn                                 = obj_cite_digits.digit; -              comp_obj_para.node.object_number                       = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -              comp_obj_para.misc.object_number_off                   = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -              comp_obj_para.misc.object_number_bkidx                 = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -              comp_obj_para.misc.object_number_type                  = obj_cite_digits.type; -              comp_obj_para.attrib.indent_hang                       = indent["hang_position"]; -              comp_obj_para.attrib.indent_base                       = indent["base_position"]; -              comp_obj_para.attrib.bullet                            = bullet; -              comp_obj_para.tags.anchor_tags                         = anchor_tags; -              comp_obj_para.has.inline_notes_reg                     = substantive_obj_misc_tuple[sObj.notes_reg]; -              comp_obj_para.has.inline_notes_star                    = substantive_obj_misc_tuple[sObj.notes_star]; -              comp_obj_para.has.inline_links                         = substantive_obj_misc_tuple[sObj.links]; -              comp_obj_para.has.contains_image_without_dimensions    = substantive_obj_misc_tuple[sObj.image_no_dimensions]; -              the_document_body_section                              ~= comp_obj_para; +              comp_obj_para                                             = comp_obj_para.init; +              comp_obj_para.typeinfo.of_part                            = "body"; +              comp_obj_para.typeinfo.of_section                         = "body"; +              comp_obj_para.typeinfo.is_of                              = "para"; +              comp_obj_para.typeinfo.is_a                               = "para"; +              comp_obj_para.text                                        = an_object["substantive"].to!string.strip; +              comp_obj_para.node.ocn                                    = obj_cite_digits.digit; +              comp_obj_para.misc.object_number_off                      = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +              comp_obj_para.misc.o_n_book_index                         = obj_cite_digits.bkidx; +              comp_obj_para.misc.object_number_type                     = obj_cite_digits.type; +              comp_obj_para.attrib.indent_hang                          = indent["hang_position"]; +              comp_obj_para.attrib.indent_base                          = indent["base_position"]; +              comp_obj_para.attrib.bullet                               = bullet; +              comp_obj_para.tags.anchor_tags                            = anchor_tags; +              comp_obj_para.has.inline_notes_reg                        = substantive_obj_misc_tuple[sObj.notes_reg]; +              comp_obj_para.has.inline_notes_star                       = substantive_obj_misc_tuple[sObj.notes_star]; +              comp_obj_para.has.inline_links                            = substantive_obj_misc_tuple[sObj.links]; +              comp_obj_para.has.contains_image_without_dimensions       = substantive_obj_misc_tuple[sObj.image_no_dimensions]; +              the_document_body_section                                 ~= comp_obj_para;                _common_reset_(line_occur, an_object, obj_type_status);                indent=[                  "hang_position" : 0, @@ -1059,7 +1050,6 @@ template SiSUdocAbstraction() {        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "(skip) there is no Glossary section";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.node.marked_up_level       = "B"; @@ -1088,7 +1078,6 @@ template SiSUdocAbstraction() {        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "Bibliography";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "_part_bibliography"; @@ -1105,7 +1094,6 @@ template SiSUdocAbstraction() {        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "Bibliography";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.tags.segment_anchor_tag    = "bibliography"; @@ -1124,7 +1112,6 @@ template SiSUdocAbstraction() {        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "(skip) there is no Bibliography";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_heading_.node.object_number         = "";        comp_obj_heading_.misc.object_number_off     = "";        comp_obj_heading_.misc.object_number_type    = 0;        comp_obj_heading_.node.marked_up_level       = "B"; @@ -1157,7 +1144,6 @@ template SiSUdocAbstraction() {        comp_obj_para.typeinfo.is_a             = "bibliography";        comp_obj_para.text                      = out_.to!string.strip;        comp_obj_para.node.ocn                  = 0; -      comp_obj_para.node.object_number        = "";        comp_obj_para.misc.object_number_off    = "";        comp_obj_para.misc.object_number_type   = 0;        comp_obj_para.attrib.indent_hang        = 0; @@ -1195,7 +1181,6 @@ template SiSUdocAbstraction() {        comp_obj_heading_.typeinfo.is_a              = "heading";        comp_obj_heading_.text                       = "(skip) there is no Blurb section";        comp_obj_heading_.node.ocn                   = 0; -      comp_obj_para.node.object_number             = "";        comp_obj_para.misc.object_number_off         = "";        comp_obj_para.misc.object_number_type        = 0;        comp_obj_heading_.tags.segment_anchor_tag    = ""; @@ -1221,7 +1206,6 @@ template SiSUdocAbstraction() {      comp_obj_toc.typeinfo.is_of            = "para";      comp_obj_toc.typeinfo.is_a             = "toc";      comp_obj_toc.node.ocn                  = 0; -    comp_obj_toc.node.object_number        = "";      comp_obj_toc.misc.object_number_off    = "";      comp_obj_toc.misc.object_number_type   = 0;      comp_obj_toc.attrib.indent_hang        = indent["hang_position"]; @@ -1471,7 +1455,6 @@ template SiSUdocAbstraction() {              "Title OCN should be 1 not: " ~ obj.node.ocn.to!string); // bug introduced 0.18.1            +/            obj.node.ocn = 1; -          obj.node.object_number = "1";            obj.misc.object_number_type = OCNtype.ocn;          }          /+ dom structure (marked up & collapsed) +/ @@ -1594,7 +1577,6 @@ template SiSUdocAbstraction() {            }            obj_cite_digits = ocn_emit(OCNstatus.on);            obj.node.ocn = obj_cite_digits.digit; -          obj.node.object_number = obj_cite_digits.on.to!string;            if (obj.node.heading_lev_markup <= 4) {              segnames_0_4 ~= obj.tags.segment_anchor_tag;              if (obj.node.heading_lev_markup == 4) { @@ -1630,7 +1612,6 @@ template SiSUdocAbstraction() {            }            obj_cite_digits = ocn_emit(OCNstatus.on);            obj.node.ocn = obj_cite_digits.digit; -          obj.node.object_number = obj_cite_digits.on.to!string;            if (obj.node.heading_lev_markup <= 4) {              segnames_0_4 ~= obj.tags.segment_anchor_tag;              if (obj.node.heading_lev_markup == 4) { @@ -1657,7 +1638,6 @@ template SiSUdocAbstraction() {          } else if (obj.typeinfo.is_a == "glossary") {            obj_cite_digits = ocn_emit(OCNstatus.on);            obj.node.ocn = obj_cite_digits.digit; -          obj.node.object_number = obj_cite_digits.on.to!string;          }        }      } @@ -1670,7 +1650,6 @@ template SiSUdocAbstraction() {            }            obj_cite_digits = ocn_emit(OCNstatus.on);            obj.node.ocn = obj_cite_digits.digit; -          obj.node.object_number = obj_cite_digits.on.to!string; // check            if (obj.node.heading_lev_markup <= 4) {              segnames_0_4 ~= obj.tags.segment_anchor_tag;              if (obj.node.heading_lev_markup == 4) { @@ -1697,7 +1676,6 @@ template SiSUdocAbstraction() {          } else if (obj.typeinfo.is_a == "bibliography") {            obj_cite_digits = ocn_emit(OCNstatus.on);            obj.node.ocn = obj_cite_digits.on; -          obj.node.object_number = obj_cite_digits.on.to!string;          }        }      } @@ -1715,7 +1693,6 @@ template SiSUdocAbstraction() {            }            obj_cite_digits = ocn_emit(OCNstatus.on);            obj.node.ocn = obj_cite_digits.on; -          obj.node.object_number = obj_cite_digits.on.to!string;            if (obj.node.heading_lev_markup <= 4) {              segnames_0_4 ~= obj.tags.segment_anchor_tag;              if (obj.node.heading_lev_markup == 4) { @@ -1740,10 +1717,10 @@ template SiSUdocAbstraction() {            }            obj = obj_heading_ancestors(obj, lv_ancestors_txt);          } else if (obj.typeinfo.is_a == "bookindex") { -          obj_cite_digits = ocn_emit(OCNstatus.bkidx); -          obj.node.ocn = obj_cite_digits.digit; -          obj.misc.object_number_bkidx = obj_cite_digits.bkidx.to!string; -          obj.misc.object_number_type = OCNtype.bkidx; +          obj_cite_digits                   = ocn_emit(OCNstatus.bkidx); +          obj.node.ocn                      = obj_cite_digits.digit; +          obj.misc.o_n_book_index           = obj_cite_digits.bkidx; +          obj.misc.object_number_type       = OCNtype.bkidx;          }        }        /+ seg +/ @@ -1755,7 +1732,6 @@ template SiSUdocAbstraction() {              writeln(obj.text);            }            obj.node.ocn = ++ocn_; -          obj.node.object_number = obj.node.ocn.to!string;            if (obj.node.heading_lev_markup <= 4) {              segnames_0_4 ~= obj.tags.segment_anchor_tag;              if (obj.node.heading_lev_markup == 4) { @@ -1781,8 +1757,8 @@ template SiSUdocAbstraction() {            obj = obj_heading_ancestors(obj, lv_ancestors_txt);          } else if (obj.typeinfo.is_a == "bookindex") {            ocn_bidx_ = ++ocn_bkidx_; -          obj.misc.object_number_bkidx = ocn_bidx_.to!string; // FIX need to distinguish from regular ocn -          obj.misc.object_number_type = OCNtype.bkidx; +          obj.misc.o_n_book_index           = ocn_bidx_; // FIX need to distinguish from regular ocn +          obj.misc.object_number_type       = OCNtype.bkidx;          }        }        /+ TODO assert failure, reinstate @@ -1799,7 +1775,6 @@ template SiSUdocAbstraction() {            }            obj_cite_digits = ocn_emit(OCNstatus.on);            obj.node.ocn = obj_cite_digits.on; -          obj.node.object_number = obj_cite_digits.on.to!string;            if (obj.node.heading_lev_markup <= 4) {              segnames_0_4 ~= obj.tags.segment_anchor_tag;              if (obj.node.heading_lev_markup == 4) { @@ -1842,7 +1817,6 @@ template SiSUdocAbstraction() {      comp_obj_heading_.typeinfo.is_of             = "para";      comp_obj_heading_.typeinfo.is_a              = "heading";      comp_obj_heading_.node.ocn                   = 0; -    comp_obj_para.node.object_number             = "";      comp_obj_para.misc.object_number_off         = "";      comp_obj_para.misc.object_number_type        = 0;      comp_obj_heading_.tags.segment_anchor_tag    = ""; @@ -2413,21 +2387,20 @@ template SiSUdocAbstraction() {                = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);              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.typeinfo.of_part           = "body"; -            comp_obj_block.typeinfo.of_section        = "body"; -            comp_obj_block.typeinfo.is_of             = "block"; -            comp_obj_block.typeinfo.is_a              = "verse"; -            comp_obj_block.node.ocn                   = obj_cite_digits.on; -            comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -            comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -            comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -            comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -            comp_obj_block.text                       = an_object["substantive"]; -            comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -            comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -            comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -            the_document_body_section                 ~= comp_obj_block; +            comp_obj_block                               = comp_obj_block.init; +            comp_obj_block.typeinfo.of_part              = "body"; +            comp_obj_block.typeinfo.of_section           = "body"; +            comp_obj_block.typeinfo.is_of                = "block"; +            comp_obj_block.typeinfo.is_a                 = "verse"; +            comp_obj_block.node.ocn                      = obj_cite_digits.on; +            comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +            comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +            comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +            comp_obj_block.text                          = an_object["substantive"]; +            comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +            comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +            comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +            the_document_body_section                    ~= comp_obj_block;            }            object_reset(an_object);            processing.remove("verse"); @@ -2471,21 +2444,20 @@ template SiSUdocAbstraction() {              = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);            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.typeinfo.of_part           = "body"; -          comp_obj_block.typeinfo.of_section        = "body"; -          comp_obj_block.typeinfo.is_of             = "block"; -          comp_obj_block.typeinfo.is_a              = "verse"; -          comp_obj_block.node.ocn                   = obj_cite_digits.on; -          comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -          comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -          comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -          comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -          comp_obj_block.text                       = an_object["substantive"]; -          comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -          comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -          comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -          the_document_body_section                 ~= comp_obj_block; +          comp_obj_block                               = comp_obj_block.init; +          comp_obj_block.typeinfo.of_part              = "body"; +          comp_obj_block.typeinfo.of_section           = "body"; +          comp_obj_block.typeinfo.is_of                = "block"; +          comp_obj_block.typeinfo.is_a                 = "verse"; +          comp_obj_block.node.ocn                      = obj_cite_digits.on; +          comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +          comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +          comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +          comp_obj_block.text                          = an_object["substantive"]; +          comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +          comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +          comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +          the_document_body_section                    ~= comp_obj_block;            object_reset(an_object);            processing.remove("verse");            ++cntr; @@ -2514,22 +2486,21 @@ template SiSUdocAbstraction() {              = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);            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.typeinfo.of_part           = "body"; -          comp_obj_block.typeinfo.of_section        = "body"; -          comp_obj_block.typeinfo.is_of             = "block"; -          comp_obj_block.typeinfo.is_a              = "verse"; -          comp_obj_block.node.ocn                   = obj_cite_digits.on; -          comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -          comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -          comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -          comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -          comp_obj_block.text                       = an_object["substantive"]; -          comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -          comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -          comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -          the_document_body_section                 ~= comp_obj_block; -          object_number_poem["end"]               = obj_cite_digits.on.to!string; +          comp_obj_block                               = comp_obj_block.init; +          comp_obj_block.typeinfo.of_part              = "body"; +          comp_obj_block.typeinfo.of_section           = "body"; +          comp_obj_block.typeinfo.is_of                = "block"; +          comp_obj_block.typeinfo.is_a                 = "verse"; +          comp_obj_block.node.ocn                      = obj_cite_digits.on; +          comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +          comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +          comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +          comp_obj_block.text                          = an_object["substantive"]; +          comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +          comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +          comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +          the_document_body_section                    ~= comp_obj_block; +          object_number_poem["end"]                    = obj_cite_digits.on.to!string;            object_reset(an_object);            processing.remove("verse");            ++cntr; @@ -2572,21 +2543,20 @@ template SiSUdocAbstraction() {              = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);            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.typeinfo.of_part           = "body"; -          comp_obj_block.typeinfo.of_section        = "body"; -          comp_obj_block.typeinfo.is_of             = "block"; -          comp_obj_block.typeinfo.is_a              = "verse"; -          comp_obj_block.node.ocn                   = obj_cite_digits.on; -          comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -          comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -          comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -          comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -          comp_obj_block.text                       = an_object["substantive"]; -          comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -          comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -          comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -          the_document_body_section                 ~= comp_obj_block; +          comp_obj_block                               = comp_obj_block.init; +          comp_obj_block.typeinfo.of_part              = "body"; +          comp_obj_block.typeinfo.of_section           = "body"; +          comp_obj_block.typeinfo.is_of                = "block"; +          comp_obj_block.typeinfo.is_a                 = "verse"; +          comp_obj_block.node.ocn                      = obj_cite_digits.on; +          comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +          comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +          comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +          comp_obj_block.text                          = an_object["substantive"]; +          comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +          comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +          comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +          the_document_body_section                    ~= comp_obj_block;            object_reset(an_object);            processing.remove("verse");            ++cntr; @@ -2872,15 +2842,14 @@ template SiSUdocAbstraction() {        an_object["is"] = "table";        auto substantive_obj_misc_tuple          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, "body_nugget", conf_make_meta); -      an_object["substantive"]                  = substantive_obj_misc_tuple[sObj.content]; -      comp_obj_block.node.ocn                   = obj_cite_digits.on; -      comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -      comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -      comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -      comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -      comp_obj_block                            = table_instructions(comp_obj_block, an_object["table_head"]); -      comp_obj_block                            = table_substantive_munge_special(comp_obj_block, an_object["substantive"]); -      the_document_body_section                 ~= comp_obj_block; +      an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content]; +      comp_obj_block.node.ocn                      = obj_cite_digits.on; +      comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +      comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +      comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +      comp_obj_block                               = table_instructions(comp_obj_block, an_object["table_head"]); +      comp_obj_block                               = table_substantive_munge_special(comp_obj_block, an_object["substantive"]); +      the_document_body_section                    ~= comp_obj_block;        object_reset(an_object);        processing.remove("verse");        ++cntr; @@ -2932,23 +2901,22 @@ template SiSUdocAbstraction() {          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);        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.typeinfo.of_part           = "body"; -      comp_obj_block.typeinfo.of_section        = "body"; -      comp_obj_block.typeinfo.is_of             = "block"; -      comp_obj_block.typeinfo.is_a              = "quote"; -      comp_obj_block.node.ocn                   = obj_cite_digits.on; -      comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -      comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -      comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -      comp_obj_block.misc.object_number_type    = obj_cite_digit_type; -      comp_obj_block.text                       = an_object["substantive"]; -      comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -      comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -      comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -      the_document_body_section                 ~= comp_obj_block; -      obj_type_status["blocks"]                 = TriState.off; -      obj_type_status["quote"]                  = TriState.off; +      comp_obj_block                               = comp_obj_block.init; +      comp_obj_block.typeinfo.of_part              = "body"; +      comp_obj_block.typeinfo.of_section           = "body"; +      comp_obj_block.typeinfo.is_of                = "block"; +      comp_obj_block.typeinfo.is_a                 = "quote"; +      comp_obj_block.node.ocn                      = obj_cite_digits.on; +      comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +      comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +      comp_obj_block.misc.object_number_type       = obj_cite_digit_type; +      comp_obj_block.text                          = an_object["substantive"]; +      comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +      comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +      comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +      the_document_body_section                    ~= comp_obj_block; +      obj_type_status["blocks"]                    = TriState.off; +      obj_type_status["quote"]                     = TriState.off;        object_reset(an_object);        processing.remove("verse");        ++cntr; @@ -2976,23 +2944,22 @@ template SiSUdocAbstraction() {          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);        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.typeinfo.of_part           = "body"; -      comp_obj_block.typeinfo.of_section        = "body"; -      comp_obj_block.typeinfo.is_of             = "block"; -      comp_obj_block.typeinfo.is_a              = "group"; -      comp_obj_block.node.ocn                   = obj_cite_digits.on; -      comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -      comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -      comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -      comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -      comp_obj_block.text                       = an_object["substantive"]; -      comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -      comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -      comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -      the_document_body_section                 ~= comp_obj_block; -      obj_type_status["blocks"]                 = TriState.off; -      obj_type_status["group"]                  = TriState.off; +      comp_obj_block                               = comp_obj_block.init; +      comp_obj_block.typeinfo.of_part              = "body"; +      comp_obj_block.typeinfo.of_section           = "body"; +      comp_obj_block.typeinfo.is_of                = "block"; +      comp_obj_block.typeinfo.is_a                 = "group"; +      comp_obj_block.node.ocn                      = obj_cite_digits.on; +      comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +      comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +      comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +      comp_obj_block.text                          = an_object["substantive"]; +      comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +      comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +      comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +      the_document_body_section                    ~= comp_obj_block; +      obj_type_status["blocks"]                    = TriState.off; +      obj_type_status["group"]                     = TriState.off;        object_reset(an_object);        processing.remove("verse");        ++cntr; @@ -3018,24 +2985,23 @@ template SiSUdocAbstraction() {          );        auto substantive_obj_misc_tuple          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); -      an_object["substantive"]                  = substantive_obj_misc_tuple[sObj.content]; -      comp_obj_block                            = comp_obj_block.init; -      comp_obj_block.typeinfo.of_part           = "body"; -      comp_obj_block.typeinfo.of_section        = "body"; -      comp_obj_block.typeinfo.is_of             = "block"; -      comp_obj_block.typeinfo.is_a              = "block"; -      comp_obj_block.node.ocn                   = obj_cite_digits.on; -      comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -      comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -      comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -      comp_obj_block.misc.object_number_type    = obj_cite_digit_type; -      comp_obj_block.text                       = an_object["substantive"]; -      comp_obj_block.has.inline_notes_reg       = substantive_obj_misc_tuple[sObj.notes_reg]; -      comp_obj_block.has.inline_notes_star      = substantive_obj_misc_tuple[sObj.notes_star]; -      comp_obj_block.has.inline_links           = substantive_obj_misc_tuple[sObj.links]; -      the_document_body_section                 ~= comp_obj_block; -      obj_type_status["blocks"]                 = TriState.off; -      obj_type_status["block"]                  = TriState.off; +      an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content]; +      comp_obj_block                               = comp_obj_block.init; +      comp_obj_block.typeinfo.of_part              = "body"; +      comp_obj_block.typeinfo.of_section           = "body"; +      comp_obj_block.typeinfo.is_of                = "block"; +      comp_obj_block.typeinfo.is_a                 = "block"; +      comp_obj_block.node.ocn                      = obj_cite_digits.on; +      comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +      comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +      comp_obj_block.misc.object_number_type       = obj_cite_digit_type; +      comp_obj_block.text                          = an_object["substantive"]; +      comp_obj_block.has.inline_notes_reg          = substantive_obj_misc_tuple[sObj.notes_reg]; +      comp_obj_block.has.inline_notes_star         = substantive_obj_misc_tuple[sObj.notes_star]; +      comp_obj_block.has.inline_links              = substantive_obj_misc_tuple[sObj.links]; +      the_document_body_section                    ~= comp_obj_block; +      obj_type_status["blocks"]                    = TriState.off; +      obj_type_status["block"]                     = TriState.off;        object_reset(an_object);        processing.remove("verse");        ++cntr; @@ -3058,20 +3024,19 @@ template SiSUdocAbstraction() {            heading_ptr-1,            an_object["is"]          ); -      comp_obj_poem_ocn                            = comp_obj_poem_ocn.init; -      comp_obj_poem_ocn.typeinfo.of_part           = "body"; -      comp_obj_poem_ocn.typeinfo.of_section        = "body"; -      comp_obj_poem_ocn.typeinfo.is_of             = "block"; -      comp_obj_poem_ocn.typeinfo.is_a              = "poem"; -      comp_obj_poem_ocn.node.ocn                   = obj_cite_digits.on; -      comp_obj_poem_ocn.node.object_number         = (object_number_poem["start"] ~ "..." ~ object_number_poem["end"]); -      comp_obj_poem_ocn.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; // -      comp_obj_poem_ocn.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; // -      comp_obj_poem_ocn.misc.object_number_type    = obj_cite_digits.type; -      comp_obj_poem_ocn.text                        = ""; -      the_document_body_section                     ~= comp_obj_poem_ocn; -      obj_type_status["blocks"]                     = TriState.off; -      obj_type_status["poem"]                       = TriState.off; +      comp_obj_poem_ocn                               = comp_obj_poem_ocn.init; +      comp_obj_poem_ocn.typeinfo.of_part              = "body"; +      comp_obj_poem_ocn.typeinfo.of_section           = "body"; +      comp_obj_poem_ocn.typeinfo.is_of                = "block"; +      comp_obj_poem_ocn.typeinfo.is_a                 = "poem"; +      comp_obj_poem_ocn.node.ocn                      = obj_cite_digits.on; +      comp_obj_poem_ocn.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; // +      comp_obj_poem_ocn.misc.o_n_book_index           = obj_cite_digits.bkidx; // +      comp_obj_poem_ocn.misc.object_number_type       = obj_cite_digits.type; +      comp_obj_poem_ocn.text                          = ""; +      the_document_body_section                       ~= comp_obj_poem_ocn; +      obj_type_status["blocks"]                       = TriState.off; +      obj_type_status["poem"]                         = TriState.off;        object_reset(an_object);        processing.remove("verse");      } else if (obj_type_status["code"] == TriState.closing) { @@ -3098,23 +3063,22 @@ template SiSUdocAbstraction() {          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta);        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.typeinfo.of_part            = "body"; -      comp_obj_code.typeinfo.of_section         = "body"; -      comp_obj_code.typeinfo.is_of              = "block"; -      comp_obj_code.typeinfo.is_a               = "code"; -      comp_obj_code.node.ocn                    = obj_cite_digits.on; -      comp_obj_code.node.object_number          = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -      comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -      comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -      comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -      comp_obj_code.text                        = an_object["substantive"]; -      comp_obj_code.has.inline_notes_reg        = substantive_obj_misc_tuple[sObj.notes_reg]; -      comp_obj_code.has.inline_notes_star       = substantive_obj_misc_tuple[sObj.notes_star]; -      comp_obj_code.has.inline_links            = substantive_obj_misc_tuple[sObj.links]; -      the_document_body_section                 ~= comp_obj_code; -      obj_type_status["blocks"]                 = TriState.off; -      obj_type_status["code"]                   = TriState.off; +      comp_obj_code                                = comp_obj_code.init; +      comp_obj_code.typeinfo.of_part               = "body"; +      comp_obj_code.typeinfo.of_section            = "body"; +      comp_obj_code.typeinfo.is_of                 = "block"; +      comp_obj_code.typeinfo.is_a                  = "code"; +      comp_obj_code.node.ocn                       = obj_cite_digits.on; +      comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +      comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +      comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +      comp_obj_code.text                           = an_object["substantive"]; +      comp_obj_code.has.inline_notes_reg           = substantive_obj_misc_tuple[sObj.notes_reg]; +      comp_obj_code.has.inline_notes_star          = substantive_obj_misc_tuple[sObj.notes_star]; +      comp_obj_code.has.inline_links               = substantive_obj_misc_tuple[sObj.links]; +      the_document_body_section                    ~= comp_obj_code; +      obj_type_status["blocks"]                    = TriState.off; +      obj_type_status["code"]                      = TriState.off;        object_reset(an_object);        processing.remove("verse");        ++cntr; @@ -3141,18 +3105,17 @@ template SiSUdocAbstraction() {          );        auto substantive_obj_misc_tuple          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); -      an_object["substantive"]                  = substantive_obj_misc_tuple[sObj.content]; -      comp_obj_block                            = comp_obj_block.init; -      comp_obj_block.node.ocn                   = obj_cite_digits.on; -      comp_obj_block.node.object_number         = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -      comp_obj_block.misc.object_number_off     = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -      comp_obj_block.misc.object_number_bkidx   = (obj_cite_digits.bkidx==0) ? "" : obj_cite_digits.bkidx.to!string; -      comp_obj_block.misc.object_number_type    = obj_cite_digits.type; -      comp_obj_block = table_instructions(comp_obj_block, an_object["table_head"]); -      comp_obj_block = table_substantive_munge(comp_obj_block, an_object["substantive"]); -      the_document_body_section                 ~= comp_obj_block; -      obj_type_status["blocks"]                 = TriState.off; -      obj_type_status["table"]                  = TriState.off; +      an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content]; +      comp_obj_block                               = comp_obj_block.init; +      comp_obj_block.node.ocn                      = obj_cite_digits.on; +      comp_obj_block.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +      comp_obj_block.misc.o_n_book_index           = obj_cite_digits.bkidx; +      comp_obj_block.misc.object_number_type       = obj_cite_digits.type; +      comp_obj_block                               = table_instructions(comp_obj_block, an_object["table_head"]); +      comp_obj_block                               = table_substantive_munge(comp_obj_block, an_object["substantive"]); +      the_document_body_section                    ~= comp_obj_block; +      obj_type_status["blocks"]                    = TriState.off; +      obj_type_status["table"]                     = TriState.off;        object_reset(an_object);        processing.remove("verse");        ++cntr; @@ -4345,7 +4308,6 @@ template SiSUdocAbstraction() {          comp_obj_toc.typeinfo.is_of             = "para";          comp_obj_toc.typeinfo.is_a              = "toc";          comp_obj_toc.node.ocn                   = 0; -        comp_obj_toc.node.object_number         = "";          comp_obj_toc.misc.object_number_off     = "";          comp_obj_toc.misc.object_number_type    = 0;          comp_obj_toc.attrib.indent_hang         = indent["hang_position"]; @@ -4365,7 +4327,6 @@ template SiSUdocAbstraction() {          comp_obj_toc.typeinfo.is_of             = "para";          comp_obj_toc.typeinfo.is_a              = "toc";          comp_obj_toc.node.ocn                   = 0; -        comp_obj_toc.node.object_number         = "";          comp_obj_toc.misc.object_number_off     = "";          comp_obj_toc.misc.object_number_type    = 0;          comp_obj_toc.attrib.indent_hang         = indent["hang_position"]; @@ -4381,7 +4342,6 @@ template SiSUdocAbstraction() {        comp_obj_toc.typeinfo.is_of               = "para";        comp_obj_toc.typeinfo.is_a                = "toc";        comp_obj_toc.node.ocn                     = 0; -      comp_obj_toc.node.object_number           = "";        comp_obj_toc.misc.object_number_off       = "";        comp_obj_toc.misc.object_number_type      = 0;        comp_obj_toc.attrib.bullet                = false; @@ -5085,7 +5045,6 @@ template SiSUdocAbstraction() {          comp_obj_heading_.typeinfo.is_a              = "heading";          comp_obj_heading_.text                       = "Book Index";          comp_obj_heading_.node.ocn                   = 0; -        comp_obj_heading_.node.object_number         = "";          comp_obj_heading_.misc.object_number_off     = "";          comp_obj_heading_.misc.object_number_type    = 0;          comp_obj_heading_.tags.segment_anchor_tag    = "_part_book_index"; @@ -5105,7 +5064,6 @@ template SiSUdocAbstraction() {          comp_obj_heading_.typeinfo.is_a              = "heading";          comp_obj_heading_.text                       = "Index";          comp_obj_heading_.node.ocn                   = 0; -        comp_obj_heading_.node.object_number         = "";          comp_obj_heading_.misc.object_number_off     = "";          comp_obj_heading_.misc.object_number_type    = 0;          comp_obj_heading_.tags.segment_anchor_tag    = "bookindex"; @@ -5183,7 +5141,6 @@ template SiSUdocAbstraction() {            comp_obj_para.typeinfo.is_a             = "bookindex";            comp_obj_para.text                      = bi_tmp_scroll.to!string.strip;            comp_obj_para.node.ocn                  = 0; -          comp_obj_para.node.object_number        = "";            comp_obj_para.misc.object_number_off    = "";            comp_obj_para.misc.object_number_type   = 0;            comp_obj_para.tags.anchor_tags          = bi_tmp_tags; @@ -5200,7 +5157,6 @@ template SiSUdocAbstraction() {          comp_obj_heading_                            = comp_obj_heading_.init;          comp_obj_heading_.text                       = "(skip) there is no Book Index";          comp_obj_heading_.node.ocn                   = 0; -        comp_obj_heading_.node.object_number         = "";          comp_obj_heading_.misc.object_number_off     = "";          comp_obj_heading_.misc.object_number_type    = 0;          comp_obj_heading_.node.marked_up_level       = "B"; @@ -5315,7 +5271,6 @@ template SiSUdocAbstraction() {          comp_obj_heading_.typeinfo.is_a              = "heading";          comp_obj_heading_.text                       = "Endnotes";          comp_obj_heading_.node.ocn                   = 0; -        comp_obj_heading_.node.object_number         = "";          comp_obj_heading_.misc.object_number_off     = "";          comp_obj_heading_.misc.object_number_type    = 0;          comp_obj_heading_.tags.segment_anchor_tag    = "_part_endnotes"; @@ -5333,7 +5288,6 @@ template SiSUdocAbstraction() {          comp_obj_heading_.typeinfo.is_a              = "heading";          comp_obj_heading_.text                       = "Endnotes";          comp_obj_heading_.node.ocn                   = 0; -        comp_obj_heading_.node.object_number         = "";          comp_obj_heading_.misc.object_number_off     = "";          comp_obj_heading_.misc.object_number_type    = 0;          comp_obj_heading_.tags.segment_anchor_tag    = "endnotes"; @@ -5353,7 +5307,6 @@ template SiSUdocAbstraction() {          comp_obj_heading_.typeinfo.is_a              = "heading";          comp_obj_heading_.text                       = "(skip) there are no Endnotes";          comp_obj_heading_.node.ocn                   = 0; -        comp_obj_heading_.node.object_number         = "";          comp_obj_heading_.misc.object_number_off     = "";          comp_obj_heading_.misc.object_number_type    = 0;          comp_obj_heading_.node.marked_up_level       = "B"; @@ -5371,7 +5324,6 @@ template SiSUdocAbstraction() {          comp_obj_endnote_.typeinfo.is_of             = "para";          comp_obj_endnote_.typeinfo.is_a              = "endnote";          comp_obj_endnote_.node.ocn                   = 0; -        comp_obj_heading_.node.object_number         = "";          comp_obj_heading_.misc.object_number_off     = "";          comp_obj_heading_.misc.object_number_type    = 0;          comp_obj_endnote_.attrib.indent_hang         = 0; @@ -5685,29 +5637,28 @@ template SiSUdocAbstraction() {          break;        }        ObjGenericComposite _comp_obj_heading_; -      _comp_obj_heading_                               = _comp_obj_heading_.init; -      _comp_obj_heading_.typeinfo.of_part              = "body"; -      _comp_obj_heading_.typeinfo.of_section           = "body"; -      _comp_obj_heading_.typeinfo.is_of                = "para"; -      _comp_obj_heading_.typeinfo.is_a                 = "heading"; -      _comp_obj_heading_.text                          = _text.to!string.strip; -      _comp_obj_heading_.node.ocn                      = obj_cite_digits.on; -      _comp_obj_heading_.node.object_number            = (obj_cite_digits.on==0)    ? "" : obj_cite_digits.on.to!string; -      _comp_obj_heading_.misc.object_number_off        = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; -      _comp_obj_heading_.misc.object_number_type       = obj_cite_digits.type; -      _comp_obj_heading_.tags.segment_anchor_tag       = segment_anchor_tag.to!string; -      _comp_obj_heading_.node.marked_up_level          = lev; -      _comp_obj_heading_.node.heading_lev_markup       = (!(lev_markup_number.empty) ? lev_markup_number.to!int : 0); -      _comp_obj_heading_.node.heading_lev_collapsed    = (!(lev_collapsed_number.empty) ? lev_collapsed_number.to!int : 0); -      _comp_obj_heading_.node.parent_ocn               = p_["object_number"]; -      _comp_obj_heading_.node.parent_lev_markup        = p_["lev_markup_number"]; -      _comp_obj_heading_.tags.heading_ancestors_text   = lv_ancestors_txt; -      _comp_obj_heading_.ptr.doc_object                = cntr_; -      _comp_obj_heading_.ptr.html_segnames             = ((lev_markup_number == "4") ? html_segnames_ptr : 0); -      _comp_obj_heading_.ptr.heading                   = ptr_; -      _comp_obj_heading_.has.inline_notes_reg          = flag_notes_reg; -      _comp_obj_heading_.has.inline_notes_star         = flag_notes_star; -      _comp_obj_heading_.has.inline_links              = flag_links; +      _comp_obj_heading_                                  = _comp_obj_heading_.init; +      _comp_obj_heading_.typeinfo.of_part                 = "body"; +      _comp_obj_heading_.typeinfo.of_section              = "body"; +      _comp_obj_heading_.typeinfo.is_of                   = "para"; +      _comp_obj_heading_.typeinfo.is_a                    = "heading"; +      _comp_obj_heading_.text                             = _text.to!string.strip; +      _comp_obj_heading_.node.ocn                         = obj_cite_digits.on; +      _comp_obj_heading_.misc.object_number_off           = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; +      _comp_obj_heading_.misc.object_number_type          = obj_cite_digits.type; +      _comp_obj_heading_.tags.segment_anchor_tag          = segment_anchor_tag.to!string; +      _comp_obj_heading_.node.marked_up_level             = lev; +      _comp_obj_heading_.node.heading_lev_markup          = (!(lev_markup_number.empty) ? lev_markup_number.to!int : 0); +      _comp_obj_heading_.node.heading_lev_collapsed       = (!(lev_collapsed_number.empty) ? lev_collapsed_number.to!int : 0); +      _comp_obj_heading_.node.parent_ocn                  = p_["object_number"]; +      _comp_obj_heading_.node.parent_lev_markup           = p_["lev_markup_number"]; +      _comp_obj_heading_.tags.heading_ancestors_text      = lv_ancestors_txt; +      _comp_obj_heading_.ptr.doc_object                   = cntr_; +      _comp_obj_heading_.ptr.html_segnames                = ((lev_markup_number == "4") ? html_segnames_ptr : 0); +      _comp_obj_heading_.ptr.heading                      = ptr_; +      _comp_obj_heading_.has.inline_notes_reg             = flag_notes_reg; +      _comp_obj_heading_.has.inline_notes_star            = flag_notes_star; +      _comp_obj_heading_.has.inline_links                 = flag_links;        debug(node) {          if (lev_markup_number.match(rgx.levels_numbered_headings)) {            writeln("* ", _node.to!string); diff --git a/src/sdp/meta/metadoc_summary.d b/src/sdp/meta/metadoc_summary.d index 3167677..a025411 100644 --- a/src/sdp/meta/metadoc_summary.d +++ b/src/sdp/meta/metadoc_summary.d @@ -24,7 +24,7 @@ template SiSUabstractionSummary() {        string[string] check = [          "last_object_number" : "NA [debug \"checkdoc\" not run]",          "last_object_number_body"  : "0", -        "last_object_number_bkidx" : "0", +        "last_object_number_book_index" : "0",        ];        foreach (k; doc_matters.xml.keys_seq.seg) {          foreach (obj; doc_abstraction[k]) { @@ -39,7 +39,7 @@ template SiSUabstractionSummary() {              }              if (k == "bookindex_seg") {                if (obj.misc.object_number_type == 2) { -                check["last_object_number_bkidx"] = obj.misc.object_number_bkidx; +                check["last_object_number_book_index"] = obj.misc.object_number_book_index;                }              }            } @@ -83,7 +83,7 @@ template SiSUabstractionSummary() {          ? (to!int(doc_abstraction["bookindex_seg"].length))          : 0,          "  last book idx ocn:", -        to!int(check["last_object_number_bkidx"]), +        to!int(check["last_object_number_book_index"]),          "length blurb:",          (doc_abstraction["blurb"].length > 1)          ? (to!int(doc_abstraction["blurb"].length)) diff --git a/src/sdp/meta/object_setter.d b/src/sdp/meta/object_setter.d index 840a71c..967f9ec 100644 --- a/src/sdp/meta/object_setter.d +++ b/src/sdp/meta/object_setter.d @@ -6,28 +6,33 @@  module sdp.meta.object_setter;  template ObjectSetter() {    /+ structs +/ -  struct DocObj_TypeInfo_ { +  struct DocObj_TypeInfo_ {                                   // typeinfo      string                 of_part                            = ""; // frontmatter, body, backmatter      string                 of_section                         = ""; // toc, body, glossary, biography, book index, blurb      string                 is_of                              = ""; // para, block ?      string                 is_a                               = ""; // heading, para, table, code block, group, ...    } -  struct DocObj_TxtAttrib_ { +  struct DocObj_TxtAttrib_ {                                  // attrib      int                    indent_base                        = 0;      int                    indent_hang                        = 0;      bool                   bullet                             = false;      string                 language                           = ""; // not implemented, consider    } -  struct DocObj_Has_ { +  struct DocObj_Has_ {                                        // has      bool                   inline_links                       = false;      bool                   inline_notes_reg                   = false;      bool                   inline_notes_star                  = false;      bool                   contains_image_without_dimensions  = false;    } -  struct DocObj_Node_ { +  struct DocObj_Node_ {                                       // node      string[string][string] node; -    int                    ocn                                = 0; // duplicated as string with object_number -    string                 object_number                      = ""; // duplicated as int with ocn may apply additional info for backmatter (glossary, biblio etc.) +    int                    ocn                                = 0; +    string object_number() const @property { +      return (ocn==0) +        ? "" +        : ocn.to!string; +    } +    string                 ocn_type                           = ""; // code duplicated typeinfo is_a      string                 marked_up_level                    = "9";      int                    heading_lev_markup                 = 9;      int                    heading_lev_collapsed              = 9; @@ -38,22 +43,22 @@ template ObjectSetter() {      int                    parent_ocn                         = 0;      int[]                  ancestors                          = [];    } -  struct DocObj_Table_ { +  struct DocObj_Table_ {                                      // table      int                    number_of_columns                  = 0;      double[]               column_widths                      = [];      string[]               column_aligns                      = [];      bool                   heading                            = false;      bool                   walls                              = false; // not implemented    } -  struct DocObj_CodeBlock_ { +  struct DocObj_CodeBlock_ {                                  // code_block      string                 syntax                             = "";    } -  struct DocObj_Pointer_ { +  struct DocObj_Pointer_ {                                    // ptr      int                    doc_object                         = 0;      int                    html_segnames                      = 0;      int                    heading                            = 0;    } -  struct DocObj_Tags_ { +  struct DocObj_Tags_ {                                       // tags      string[]               heading_ancestors_text             = [ "", "", "", "", "", "", "", "", ];      string                 segment_anchor_tag                 = "";      string                 segname_prev                       = ""; @@ -61,10 +66,46 @@ template ObjectSetter() {      string[]               lev4_subtoc                        = [];      string[]               anchor_tags                        = [];    } -  struct DocObj_Misc_ { -    string                 object_number_bkidx              = ""; -    string                 object_number_off                = ""; -    int                    object_number_type               = 0; // { ocn, non, bkidx } +  struct DocObj_Misc_ {                                       // misc +    int                    o_n_substantive                    = 0; +    int                    o_n_non_substantive                = 0; +    int                    o_n_glossary                       = 0; +    int                    o_n_bibliography                   = 0; +    int                    o_n_book_index                     = 0; +    int                    o_n_blurb                          = 0; +    string object_number_substantive() const @property { +      return (o_n_substantive==0) +        ? "" +        : o_n_substantive.to!string; +    } +    string object_number_non_substantive() const @property { +      return (o_n_non_substantive==0) +        ? "" +        : o_n_non_substantive.to!string; +    } +    string object_number_glossary() const @property { +      return (o_n_glossary==0) +        ? "" +        : o_n_glossary.to!string; +    } +    string object_number_bibliography() const @property { +      return (o_n_bibliography==0) +        ? "" +        : o_n_bibliography.to!string; +    } +    string object_number_book_index() const @property { +      return (o_n_book_index==0) +        ? "" +        : o_n_book_index.to!string; +    } +    string object_number_blurb() const @property { +      return (o_n_blurb==0) +        ? "" +        : o_n_blurb.to!string; +    } +    string                 object_number_off                  = ""; +    bool                   visible_object_number              = false; +    int                    object_number_type                 = 0; // { ocn, non, bkidx }    }    struct ObjGenericComposite {      string                 text                               = ""; diff --git a/src/sdp/output/epub3.d b/src/sdp/output/epub3.d index 303898d..82d8764 100644 --- a/src/sdp/output/epub3.d +++ b/src/sdp/output/epub3.d @@ -29,7 +29,7 @@ template outputEPub3() {    </rootfiles>¶") ~ "\n</container>\n";      return o;    } -  string epub3_oebps_content(D,I,P)(D doc_abstraction, I doc_matters, P parts) { +  string epub3_oebps_content(D,M,P)(D doc_abstraction, M doc_matters, P parts) {      auto xhtml_format = outputXHTMLs();      auto pth_epub3 = SiSUpathsEPUB!()(doc_matters.output_path, doc_matters.src.language);      string uuid = "18275d951861c77f78acd05672c9906924c59f18a2e0ba06dad95959693e9bd8"; // TODO sort uuid in doc_matters! | 
