aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sdp/ao_abstract_doc_source.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/sdp/ao_abstract_doc_source.d')
-rw-r--r--src/sdp/ao_abstract_doc_source.d1554
1 files changed, 664 insertions, 890 deletions
diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d
index b89c1e1..1580238 100644
--- a/src/sdp/ao_abstract_doc_source.d
+++ b/src/sdp/ao_abstract_doc_source.d
@@ -17,13 +17,12 @@ template SiSUdocAbstraction() {
/+ ↓ abstraction struct init +/
/+ initialize +/
auto rgx = Rgx();
- ObjComposite[][string] the_table_of_contents_section;
- ObjComposite[] the_document_head_section, the_document_body_section, the_bibliography_section, the_glossary_section, the_blurb_section;
+ ObjGenericComposite[][string] the_table_of_contents_section;
+ ObjGenericComposite[] the_document_head_section, the_document_body_section, the_bibliography_section, the_glossary_section, the_blurb_section;
string[string] an_object, processing;
string an_object_key;
string[] anchor_tags;
string segment_anchor_tag_that_object_belongs_to;
- auto set_abstract_object = ObjectAbstractSet();
auto note_section = NotesSection();
/+ enum +/
enum State { off, on }
@@ -72,13 +71,12 @@ template SiSUdocAbstraction() {
auto bookindex_extract_hash = BookIndexNuggetHash();
string[][string][string] bkidx_hash(
string bookindex_section,
- int obj_cite_number
+ int obj_cite_number
) {
return bookindex_extract_hash.bookindex_nugget_hash(bookindex_section, obj_cite_number);
}
/+ node +/
- string[string] _node_heading_str;
- int[string] _node_heading_int;
+ ObjGenericComposite comp_obj_heading, comp_obj_location, comp_obj_block, comp_obj_code, comp_obj_poem_ocn, comp_obj_comment;
auto node_construct = NodeStructureMetadata();
/+ ↓ abstract marked up document +/
auto abstract_doc_source(
@@ -101,10 +99,9 @@ template SiSUdocAbstraction() {
destroy(processing);
destroy(biblio_arr_json);
}
- auto node_heading_int_ = node_metadata_heading_int;
- auto node_heading_str_ = node_metadata_heading_str;
auto node_para_int_ = node_metadata_para_int;
auto node_para_str_ = node_metadata_para_str;
+ ObjGenericComposite comp_obj_heading_, comp_obj_para, comp_obj_toc;
line_occur = [
"heading" : 0,
"para" : 0,
@@ -162,22 +159,20 @@ template SiSUdocAbstraction() {
string toc_txt_;
an_object["glossary_nugget"] = "";
an_object["blurb_nugget"] = "";
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "toc";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "1";
- node_heading_int_["heading_lev_markup"] = 4;
- node_heading_int_["heading_lev_collapsed"] = 2;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- auto toc_head =
- set_abstract_object.contents_heading(
- "Table of Contents", // nugget/object
- node_heading_str_,
- node_heading_int_,
- ["toc"], // anchor tag
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Table of Contents";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.segment_anchor_tag = "toc";
+ comp_obj_heading_.marked_up_level = "1";
+ comp_obj_heading_.heading_lev_markup = 4;
+ comp_obj_heading_.heading_lev_collapsed = 2;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.anchor_tags = ["toc"];
+ auto toc_head = comp_obj_heading_;
the_table_of_contents_section = [
"seg": [toc_head],
"scroll": [toc_head],
@@ -265,54 +260,47 @@ template SiSUdocAbstraction() {
line_occur["para"] = State.off;
an_object_key="glossary_nugget"; //
if (matchFirst(line, rgx.heading_glossary)) {
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "B";
- node_heading_int_["heading_lev_markup"] = 1;
- node_heading_int_["heading_lev_collapsed"] = 1;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_glossary_section ~=
- set_abstract_object.contents_heading(
- "Glossary", // nugget/object
- node_heading_str_,
- node_heading_int_,
- [""], // anchor tag
- );
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "glossary";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "1";
- node_heading_int_["heading_lev_markup"] = 4;
- node_heading_int_["heading_lev_collapsed"] = 2;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_glossary_section ~=
- set_abstract_object.contents_heading(
- "Glossary", // nugget/object
- node_heading_str_,
- node_heading_int_,
- ["glossary"], // anchor tag
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Glossary";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.marked_up_level = "B";
+ comp_obj_heading_.heading_lev_markup = 1;
+ comp_obj_heading_.heading_lev_collapsed = 1;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ the_glossary_section ~= comp_obj_heading_;
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Glossary";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.segment_anchor_tag = "glossary";
+ comp_obj_heading_.marked_up_level = "1";
+ comp_obj_heading_.heading_lev_markup = 4;
+ comp_obj_heading_.heading_lev_collapsed = 2;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.anchor_tags = ["glossary"];
+ the_glossary_section ~= comp_obj_heading_;
// } else if (matchFirst(line, rgx.heading)) {
// _heading_matched_(line, line_occur, an_object, an_object_key, lv, collapsed_lev, type, dochead_meta_aa); // levels?
} else {
_para_match_(line, an_object, an_object_key, indent, bullet, type, line_occur);
- node_para_str_["is"] = "para";
- node_para_str_["attrib"] = "";
- node_para_int_["ocn"] = 0;
- node_para_int_["indent_hang"] = indent["hang_position"];
- node_para_int_["indent_base"] = indent["base_position"];
- node_para_int_["bullet"] = (bullet) ? 1 : 0;
- the_glossary_section ~=
- set_abstract_object.contents_para(
- to!string(line), // an_object["substantive"],
- node_para_str_,
- node_para_int_,
- );
+ comp_obj_para = comp_obj_para.init;
+ comp_obj_para.use = "content";
+ comp_obj_para.of = "para";
+ comp_obj_para.is_a = "para";
+ comp_obj_para.text = to!string(line).strip;
+ comp_obj_para.ocn = 0;
+ comp_obj_para.obj_cite_number = "0";
+ comp_obj_para.indent_hang = indent["hang_position"];
+ comp_obj_para.indent_base = indent["base_position"];
+ comp_obj_para.bullet = bullet;
+ the_glossary_section ~= comp_obj_para;
}
type["ocn_status"] = TriState.off;
}
@@ -341,71 +329,60 @@ template SiSUdocAbstraction() {
line_occur["para"] = State.off;
an_object_key="blurb_nugget";
if (matchFirst(line, rgx.heading_blurb)) {
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "B";
- node_heading_int_["heading_lev_markup"] = 1;
- node_heading_int_["heading_lev_collapsed"] = 1;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_blurb_section ~=
- set_abstract_object.contents_heading(
- "Blurb", // nugget/object
- node_heading_str_,
- node_heading_int_,
- [""], // anchor tag
- );
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "blurb";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "1";
- node_heading_int_["heading_lev_markup"] = 4;
- node_heading_int_["heading_lev_collapsed"] = 2;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_blurb_section ~=
- set_abstract_object.contents_heading(
- "Blurb", // nugget/object
- node_heading_str_,
- node_heading_int_,
- ["blurb"], // anchor tag
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Blurb";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.marked_up_level = "B";
+ comp_obj_heading_.heading_lev_markup = 1;
+ comp_obj_heading_.heading_lev_collapsed = 1;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ the_blurb_section ~= comp_obj_heading_;
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Blurb";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.segment_anchor_tag = "blurb";
+ comp_obj_heading_.marked_up_level = "1";
+ comp_obj_heading_.heading_lev_markup = 4;
+ comp_obj_heading_.heading_lev_collapsed = 2;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.anchor_tags = ["blurb"];
+ the_blurb_section ~= comp_obj_heading_;
} else if ((matchFirst(line, rgx.heading))
&& (opt_action_bool["backmatter"] && opt_action_bool["section_blurb"])) {
- _heading_matched_(line, line_occur, an_object, an_object_key, lv, collapsed_lev, type, dochead_meta_aa); // levels?
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "blurb";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = to!string(an_object["lev"]);
- node_heading_int_["heading_lev_markup"] = to!int(an_object["lev_markup_number"]); // make int, remove need to conv
- node_heading_int_["heading_lev_collapsed"] = to!int(an_object["lev_collapsed_number"]); // make int, remove need to conv
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_blurb_section ~=
- set_abstract_object.contents_heading(
- to!string(line), // an_object["substantive"],
- node_heading_str_,
- node_heading_int_,
- [""], // anchor tag
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = to!string(line);
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.segment_anchor_tag = "blurb";
+ comp_obj_heading_.marked_up_level = to!string(an_object["lev"]);
+ comp_obj_heading_.heading_lev_markup = to!int(an_object["lev_markup_number"]); // make int, remove need to conv
+ comp_obj_heading_.heading_lev_collapsed = to!int(an_object["lev_collapsed_number"]); // make int, remove need to conv
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ the_blurb_section ~= comp_obj_heading_;
} else {
_para_match_(line, an_object, an_object_key, indent, bullet, type, line_occur);
- node_para_str_["is"] = "para";
- node_para_str_["attrib"] = "";
- node_para_int_["ocn"] = obj_cite_number;
- node_para_int_["indent_hang"] = indent["hang_position"];
- node_para_int_["indent_base"] = indent["base_position"];
- node_para_int_["bullet"] = (bullet) ? 1 : 0;
- the_blurb_section ~=
- set_abstract_object.contents_para(
- to!string(line), // an_object["substantive"],
- node_para_str_,
- node_para_int_,
- );
+ comp_obj_para = comp_obj_para.init;
+ comp_obj_para.use = "content";
+ comp_obj_para.of = "para";
+ comp_obj_para.is_a = "para";
+ comp_obj_para.text = to!string(line).strip;
+ comp_obj_para.ocn = obj_cite_number;
+ comp_obj_para.obj_cite_number = to!string(obj_cite_number);
+ comp_obj_para.indent_hang = indent["hang_position"];
+ comp_obj_para.indent_base = indent["base_position"];
+ comp_obj_para.bullet = bullet;
+ the_blurb_section ~= comp_obj_para;
}
type["ocn_status"] = TriState.off;
}
@@ -486,8 +463,12 @@ template SiSUdocAbstraction() {
writeln(line);
}
an_object[an_object_key] ~= line ~= "\n";
- the_document_body_section ~=
- set_abstract_object.contents_comment(strip(an_object[an_object_key]));
+ comp_obj_comment = comp_obj_comment.init;
+ comp_obj_comment.use = "comment";
+ comp_obj_comment.of = "comment";
+ comp_obj_comment.is_a = "comment";
+ comp_obj_comment.text = an_object[an_object_key].strip;
+ the_document_body_section ~= comp_obj_comment;
_common_reset_(line_occur, an_object, type);
processing.remove("verse");
++cntr;
@@ -548,13 +529,12 @@ template SiSUdocAbstraction() {
the_document_body_section,
bookindex_unordered_hashes,
obj_cite_number,
- _node_heading_str,
- _node_heading_int,
+ comp_obj_heading,
cntr,
type,
obj_cite_number_poem,
dochead_make_aa
- ); // watch
+ );
} else {
/+ line.empty, post contents, empty variables: +/
assert(
@@ -597,8 +577,9 @@ template SiSUdocAbstraction() {
html_segnames_ptr = html_segnames_ptr_cntr;
html_segnames_ptr_cntr++;
}
- auto _node_t =
+ auto comp_obj_heading =
node_construct.node_emitter_heading(
+ an_object["substantive"], // string
an_object["lev"], // string
an_object["lev_markup_number"], // string
an_object["lev_collapsed_number"], // string
@@ -609,22 +590,12 @@ template SiSUdocAbstraction() {
an_object["is"], // string
html_segnames_ptr, // int
);
- _node_heading_str = _node_t[0];
- _node_heading_int = _node_t[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
++heading_ptr;
debug(segments) {
writeln(an_object["lev_markup_number"]);
writeln(segment_anchor_tag_that_object_belongs_to);
}
- the_document_body_section ~=
- set_abstract_object.contents_heading(
- an_object["substantive"],
- _node_heading_str,
- _node_heading_int,
- anchor_tags,
- );
+ the_document_body_section ~= comp_obj_heading;
// track previous heading and make assertions
debug(objectrelated1) { // check
writeln(line);
@@ -642,8 +613,8 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "para";
- auto _node_t =
- node_construct.node_emitter(
+ auto comp_obj_heading =
+ node_construct.node_location_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -651,26 +622,22 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"],
);
- _node_heading_str = _node_t[0];
- _node_heading_int = _node_t[1];
auto substantive_object_and_anchor_tags_tuple =
obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa); // ...
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
- node_para_str_["is"] = an_object["is"];
- node_para_str_["attrib"] = an_object["attrib"];
- node_para_int_["ocn"] = obj_cite_number;
- node_para_int_["indent_hang"] = indent["hang_position"];
- node_para_int_["indent_base"] = indent["base_position"];
- node_para_int_["bullet"] = (bullet) ? 1 : 0;
- the_document_body_section ~=
- set_abstract_object.contents_para(
- an_object["substantive"],
- node_para_str_,
- node_para_int_,
- );
+ comp_obj_para = comp_obj_para.init;
+ comp_obj_para.use = "content";
+ comp_obj_para.of = "para";
+ comp_obj_para.is_a = "para";
+ comp_obj_para.text = to!string(an_object["substantive"]).strip;
+ comp_obj_para.ocn = obj_cite_number;
+ comp_obj_para.obj_cite_number = to!string(obj_cite_number);
+ comp_obj_para.indent_hang = indent["hang_position"];
+ comp_obj_para.indent_base = indent["base_position"];
+ comp_obj_para.bullet = bullet;
+ comp_obj_para.anchor_tags = anchor_tags;
+ the_document_body_section ~= comp_obj_para;
_common_reset_(line_occur, an_object, type);
indent=[
"hang_position" : 0,
@@ -697,14 +664,14 @@ template SiSUdocAbstraction() {
&& (the_document_body_section.length > previous_length)
) {
if ((the_document_body_section[$-1].is_a == "heading")
- && (the_document_body_section[$-1].heading_attrib.lev_int_markup < 5)) {
+ && (the_document_body_section[$-1].heading_lev_markup < 5)) {
type["biblio_section"] = State.off;
type["glossary_section"] = State.off;
type["blurb_section"] = State.off;
}
previous_length = to!int(the_document_body_section.length);
if (
- match(the_document_body_section[$-1].object,
+ match(the_document_body_section[$-1].text,
rgx.inline_notes_delimiter_al_regular_number_note)
) {
previous_count=to!int(the_document_body_section.length -1);
@@ -748,28 +715,24 @@ template SiSUdocAbstraction() {
}
if (an_object["glossary_nugget"].length == 0) {
writeln("no gloss");
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "B";
- node_heading_int_["heading_lev_markup"] = 1;
- node_heading_int_["heading_lev_collapsed"] = 1;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_glossary_section ~=
- set_abstract_object.contents_heading(
- "(skip) there is no Glossary section", // nugget/object
- node_heading_str_,
- node_heading_int_,
- [""], // anchor tag
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "(skip) there is no Glossary section";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.marked_up_level = "B";
+ comp_obj_heading_.heading_lev_markup = 1;
+ comp_obj_heading_.heading_lev_collapsed = 1;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ the_glossary_section ~= comp_obj_heading_;
} else {
writeln("gloss");
}
debug(glossary) {
foreach (gloss; the_glossary_section) {
- writeln(gloss.object);
+ writeln(gloss.text);
}
}
auto biblio_unsorted_incomplete = biblio_arr_json.dup;
@@ -778,55 +741,46 @@ template SiSUdocAbstraction() {
auto biblio_ordered =
biblio._bibliography_(biblio_unsorted_incomplete, bib_arr_json);
if (biblio_ordered.length > 0) {
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "B";
- node_heading_int_["heading_lev_markup"] = 1;
- node_heading_int_["heading_lev_collapsed"] = 1;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_bibliography_section ~=
- set_abstract_object.contents_heading(
- "Bibliography", // nugget/object
- node_heading_str_,
- node_heading_int_,
- [""], // anchor tag
- );
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "bibliography";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "1";
- node_heading_int_["heading_lev_markup"] = 4;
- node_heading_int_["heading_lev_collapsed"] = 2;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_bibliography_section ~=
- set_abstract_object.contents_heading(
- "Bibliography",
- node_heading_str_,
- node_heading_int_,
- ["bibliography"], // anchor tag
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Bibliography";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.marked_up_level = "B";
+ comp_obj_heading_.heading_lev_markup = 1;
+ comp_obj_heading_.heading_lev_collapsed = 1;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ the_bibliography_section ~= comp_obj_heading_;
+ // ---
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Bibliography";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.segment_anchor_tag = "bibliography";
+ comp_obj_heading_.marked_up_level = "1";
+ comp_obj_heading_.heading_lev_markup = 4;
+ comp_obj_heading_.heading_lev_collapsed = 2;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.anchor_tags = ["bibliography"];
+ the_bibliography_section ~= comp_obj_heading_;
} else {
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "B";
- node_heading_int_["heading_lev_markup"] = 1;
- node_heading_int_["heading_lev_collapsed"] = 1;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_bibliography_section ~=
- set_abstract_object.contents_heading(
- "(skip) there is no Bibliography", // nugget/object
- node_heading_str_,
- node_heading_int_,
- [""], // anchor tag
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "(skip) there is no Bibliography";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.marked_up_level = "B";
+ comp_obj_heading_.heading_lev_markup = 1;
+ comp_obj_heading_.heading_lev_collapsed = 1;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ the_bibliography_section ~= comp_obj_heading_;
}
string out_;
foreach (entry; biblio_ordered) {
@@ -844,22 +798,22 @@ template SiSUdocAbstraction() {
((entry["place"].str.empty) ? "" : ", " ~ entry["place"].str),
((entry["url"].str.empty) ? "" : ", [" ~ entry["url"].str ~ "]"),
);
- node_para_str_["is"] = "bibliography";
- node_para_str_["attrib"] = "";
- node_para_int_["ocn"] = 0;
- node_para_int_["indent_hang"] = 0;
- node_para_int_["indent_base"] = 1;
- node_para_int_["bullet"] = 0;
- the_bibliography_section ~=
- set_abstract_object.contents_para(
- out_, // nugget/object
- node_para_str_,
- node_para_int_,
- );
+ comp_obj_para = comp_obj_para.init;
+ comp_obj_para.use = "content";
+ comp_obj_para.of = "para";
+ comp_obj_para.is_a = "bibliography";
+ comp_obj_para.text = to!string(out_).strip;
+ comp_obj_para.ocn = 0;
+ comp_obj_para.obj_cite_number = "0";
+ comp_obj_para.indent_hang = 0;
+ comp_obj_para.indent_base = 1;
+ comp_obj_para.bullet = bullet;
+ comp_obj_para.anchor_tags = anchor_tags;
+ the_bibliography_section ~= comp_obj_para;
}
debug(bibliosection) {
foreach (o; the_bibliography_section) {
- writeln(o.object);
+ writeln(o.text);
}
}
auto bi = BookIndexReportSection();
@@ -880,28 +834,25 @@ template SiSUdocAbstraction() {
}
if (an_object["blurb_nugget"].length == 0) {
writeln("no blurb");
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "B";
- node_heading_int_["heading_lev_markup"] = 1;
- node_heading_int_["heading_lev_collapsed"] = 1;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_blurb_section ~=
- set_abstract_object.contents_heading(
- "(skip) there is no Blurb section", // nugget/object
- node_heading_str_,
- node_heading_int_,
- [""], // anchor tag
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "(skip) there is no Blurb section";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.segment_anchor_tag = "bibliography";
+ comp_obj_heading_.marked_up_level = "1";
+ comp_obj_heading_.heading_lev_markup = 4;
+ comp_obj_heading_.heading_lev_collapsed = 2;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ the_blurb_section ~= comp_obj_heading_;
} else {
writeln("blurb");
}
debug(blurb) {
foreach (blurb; the_blurb_section) {
- writeln(blurb.object);
+ writeln(blurb.text);
}
}
@@ -909,6 +860,15 @@ template SiSUdocAbstraction() {
"hang_position" : 1,
"base_position" : 1,
];
+ comp_obj_toc = comp_obj_toc.init;
+ comp_obj_toc.use = "content";
+ comp_obj_toc.of = "para";
+ comp_obj_toc.is_a = "toc";
+ comp_obj_toc.ocn = 0;
+ comp_obj_toc.obj_cite_number = "0";
+ comp_obj_toc.indent_hang = indent["hang_position"];
+ comp_obj_toc.indent_base = indent["base_position"];
+ comp_obj_toc.bullet = false;
if (the_endnotes_section["seg"].length > 1) {
toc_txt_ = format(
"{ %s }../%s.fn_suffix",
@@ -916,15 +876,8 @@ template SiSUdocAbstraction() {
"endnotes", // segment_anchor_tag_that_object_belongs_to
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["seg"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["seg"] ~= comp_obj_toc;
}
if (the_endnotes_section["scroll"].length > 1) {
toc_txt_ = format(
@@ -933,15 +886,8 @@ template SiSUdocAbstraction() {
"endnotes", // _anchor_tag
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["scroll"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["scroll"] ~= comp_obj_toc;
}
if (the_glossary_section.length > 1) {
toc_txt_ = format(
@@ -950,30 +896,16 @@ template SiSUdocAbstraction() {
"glossary", // segment_anchor_tag_that_object_belongs_to
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["seg"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["seg"] ~= comp_obj_toc;
toc_txt_ = format(
"{ %s }#%s",
"Glossary",
"glossary", // _anchor_tag
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["scroll"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["scroll"] ~= comp_obj_toc;
}
if (the_bibliography_section.length > 1){
toc_txt_ = format(
@@ -982,30 +914,17 @@ template SiSUdocAbstraction() {
"bibliography", // segment_anchor_tag_that_object_belongs_to
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["seg"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["seg"] ~= comp_obj_toc;
+
toc_txt_ = format(
"{ %s }#%s",
"Bibliography",
"bibliography", // _anchor_tag
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["scroll"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["scroll"] ~= comp_obj_toc;
}
if (the_bookindex_section["seg"].length > 1) {
toc_txt_ = format(
@@ -1014,15 +933,8 @@ template SiSUdocAbstraction() {
"bookindex", // segment_anchor_tag_that_object_belongs_to
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["seg"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["seg"] ~= comp_obj_toc;
}
if (the_bookindex_section["scroll"].length > 1) {
toc_txt_ = format(
@@ -1031,15 +943,8 @@ template SiSUdocAbstraction() {
"bookindex", // _anchor_tag
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["scroll"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["scroll"] ~= comp_obj_toc;
}
if (the_blurb_section.length > 1) {
toc_txt_ = format(
@@ -1048,30 +953,16 @@ template SiSUdocAbstraction() {
"blurb", // segment_anchor_tag_that_object_belongs_to
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["seg"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["seg"] ~= comp_obj_toc;
toc_txt_ = format(
"{ %s }#%s",
"Blurb",
"blurb", // _anchor_tag
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["scroll"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["scroll"] ~= comp_obj_toc;
}
debug(toc) {
writefln(
@@ -1080,7 +971,7 @@ template SiSUdocAbstraction() {
the_table_of_contents_section["seg"].length
);
foreach (toc_linked_heading; the_table_of_contents_section["seg"]) {
- writeln(mkup.indent_by_spaces_provided(toc_linked_heading.para_attrib.indent_start), toc_linked_heading.object);
+ writeln(mkup.indent_by_spaces_provided(toc_linked_heading.indent_hang), toc_linked_heading.text);
}
}
the_document_head_section ~= the_document_body_section[0];
@@ -1089,7 +980,9 @@ template SiSUdocAbstraction() {
"head": the_document_head_section,
"toc_seg": the_table_of_contents_section["seg"],
"toc_scroll": the_table_of_contents_section["scroll"],
+ /+ substantive/body: +/
"body": the_document_body_section,
+ /+ backmatter: +/
"endnotes_seg": the_endnotes_section["seg"],
"endnotes_scroll": the_endnotes_section["scroll"],
"glossary": the_glossary_section,
@@ -1114,18 +1007,18 @@ template SiSUdocAbstraction() {
an_object.remove("bookindex_nugget");
}
auto _common_reset_(
- ref int[string] line_occur,
+ ref int[string] line_occur,
ref string[string] an_object,
- ref int[string] type
+ ref int[string] type
) {
line_occur["heading"] = State.off;
- line_occur["para"]= State.off;
- type["heading"] = State.off;
- type["para"] = State.off;
+ line_occur["para"] = State.off;
+ type["heading"] = State.off;
+ type["para"] = State.off;
object_reset(an_object);
}
void _check_ocn_status_(
- char[] line,
+ char[] line,
ref int[string] type
) {
if ((!line.empty) && (type["ocn_status_multi_obj"] == TriState.off)) {
@@ -1169,9 +1062,9 @@ template SiSUdocAbstraction() {
}
}
void _start_block_(
- char[] line,
+ char[] line,
ref int[string] type,
- string[string] obj_cite_number_poem
+ string[string] obj_cite_number_poem
) {
if (matchFirst(line, rgx.block_curly_code_open)) {
/+ curly code open +/
@@ -1313,9 +1206,9 @@ template SiSUdocAbstraction() {
}
}
void _code_block_(
- char[] line,
+ char[] line,
ref string[string] an_object,
- ref int[string] type
+ ref int[string] type
) {
if (type["curly_code"] == TriState.on) {
if (matchFirst(line, rgx.block_curly_code_close)) {
@@ -1486,11 +1379,11 @@ template SiSUdocAbstraction() {
}
}
void _poem_block_(
- char[] line,
- ref string[string] an_object,
- ref int[string] type,
- ref int cntr,
- string[string] obj_cite_number_poem,
+ char[] line,
+ ref string[string] an_object,
+ ref int[string] type,
+ ref int cntr,
+ string[string] obj_cite_number_poem,
string[string][string] dochead_make_aa,
) {
if (type["curly_poem"] == TriState.on) {
@@ -1525,15 +1418,14 @@ template SiSUdocAbstraction() {
obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
- the_document_body_section ~=
- set_abstract_object.contents_block(
- an_object["is"],
- an_object["substantive"],
- an_object["attrib"],
- obj_cite_number
- );
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "content";
+ comp_obj_block.of = "block";
+ comp_obj_block.is_a = an_object["is"];
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ the_document_body_section ~= comp_obj_block;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -1565,7 +1457,7 @@ template SiSUdocAbstraction() {
}
processing.remove("verse");
an_object["is"] = "verse";
- auto _node_t = node_construct.node_emitter(
+ auto comp_obj_location = node_construct.node_location_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -1573,21 +1465,18 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
- _node_heading_str = _node_t[0];
- _node_heading_int = _node_t[1];
auto substantive_object_and_anchor_tags_tuple =
obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
- the_document_body_section ~=
- set_abstract_object.contents_block(
- an_object["is"],
- an_object["substantive"],
- an_object["attrib"],
- obj_cite_number
- );
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "content";
+ comp_obj_block.of = "block";
+ comp_obj_block.is_a = an_object["is"];
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ the_document_body_section ~= comp_obj_block;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -1616,15 +1505,14 @@ template SiSUdocAbstraction() {
obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
- the_document_body_section ~=
- set_abstract_object.contents_block(
- an_object["is"],
- an_object["substantive"],
- an_object["attrib"],
- obj_cite_number
- );
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "content";
+ comp_obj_block.of = "block";
+ comp_obj_block.is_a = an_object["is"];
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ the_document_body_section ~= comp_obj_block;
obj_cite_number_poem["end"] = to!string(obj_cite_number);
object_reset(an_object);
processing.remove("verse");
@@ -1655,8 +1543,8 @@ template SiSUdocAbstraction() {
}
processing.remove("verse");
an_object["is"] = "verse";
- auto _node_t =
- node_construct.node_emitter(
+ auto comp_obj_location =
+ node_construct.node_location_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -1664,21 +1552,18 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
- _node_heading_str = _node_t[0];
- _node_heading_int = _node_t[1];
auto substantive_object_and_anchor_tags_tuple =
obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
- the_document_body_section ~=
- set_abstract_object.contents_block(
- an_object["is"],
- an_object["substantive"],
- an_object["attrib"],
- obj_cite_number
- );
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "content";
+ comp_obj_block.of = "block";
+ comp_obj_block.is_a = an_object["is"];
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ the_document_body_section ~= comp_obj_block;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -1687,9 +1572,9 @@ template SiSUdocAbstraction() {
}
}
void _group_block_(
- char[] line,
+ char[] line,
ref string[string] an_object,
- ref int[string] type
+ ref int[string] type
) {
if (type["curly_group"] == State.on) {
if (matchFirst(line, rgx.block_curly_group_close)) {
@@ -1722,9 +1607,9 @@ template SiSUdocAbstraction() {
}
}
void _block_block_(
- char[] line,
+ char[] line,
ref string[string] an_object,
- ref int[string] type
+ ref int[string] type
) {
if (type["curly_block"] == TriState.on) {
if (matchFirst(line, rgx.block_curly_block_close)) {
@@ -1757,9 +1642,9 @@ template SiSUdocAbstraction() {
}
}
void _quote_block_(
- char[] line,
+ char[] line,
ref string[string] an_object,
- ref int[string] type
+ ref int[string] type
) {
if (type["curly_quote"] == TriState.on) {
if (matchFirst(line, rgx.block_curly_quote_close)) {
@@ -1792,9 +1677,9 @@ template SiSUdocAbstraction() {
}
}
void _table_block_(
- char[] line,
+ char[] line,
ref string[string] an_object,
- ref int[string] type
+ ref int[string] type
) {
if (type["curly_table"] == TriState.on) {
if (matchFirst(line, rgx.block_curly_table_close)) {
@@ -1827,17 +1712,16 @@ template SiSUdocAbstraction() {
}
}
void _block_flag_line_empty_(
- char[] line,
- ref string[string] an_object,
- ref ObjComposite[] the_document_body_section,
+ char[] line,
+ ref string[string] an_object,
+ ref ObjGenericComposite[] the_document_body_section,
ref string[][string][string] bookindex_unordered_hashes,
- ref int obj_cite_number,
- ref string[string] _node_heading_str,
- ref int[string] _node_heading_int,
- ref int cntr,
- ref int[string] type,
- string[string] obj_cite_number_poem,
- string[string][string] dochead_make_aa,
+ ref int obj_cite_number,
+ ref ObjGenericComposite _comp_obj_heading,
+ ref int cntr,
+ ref int[string] type,
+ string[string] obj_cite_number_poem,
+ string[string][string] dochead_make_aa,
) {
// line.empty, post contents, empty variables ---------------
assert(
@@ -1857,8 +1741,8 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "code";
- auto _node_t =
- node_construct.node_emitter(
+ auto comp_obj_location =
+ node_construct.node_location_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -1866,21 +1750,18 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
- _node_heading_str = _node_t[0];
- _node_heading_int = _node_t[1];
auto substantive_object_and_anchor_tags_tuple =
obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
- the_document_body_section ~=
- set_abstract_object.contents_block_code(
- an_object["is"],
- an_object["substantive"],
- an_object["attrib"],
- obj_cite_number
- );
+ comp_obj_code = comp_obj_code.init;
+ comp_obj_code.use = "content";
+ comp_obj_code.of = "block";
+ comp_obj_code.is_a = an_object["is"];
+ comp_obj_code.ocn = obj_cite_number;
+ comp_obj_code.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_code.text = an_object["substantive"];
+ the_document_body_section ~= comp_obj_code;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -1892,8 +1773,8 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "verse"; // check also
- auto _node_t =
- node_construct.node_emitter( //
+ auto comp_obj_location =
+ node_construct.node_location_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -1901,16 +1782,14 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
- _node_heading_str = _node_t[0];
- _node_heading_int = _node_t[1];
- the_document_body_section ~=
- set_abstract_object.contents_block_obj_cite_number_string(
- "poem",
- "",
- (obj_cite_number_poem["start"], obj_cite_number_poem["end"]),
- _node_heading_str,
- _node_heading_int,
- ); // bookindex
+ comp_obj_poem_ocn = comp_obj_poem_ocn.init;
+ comp_obj_poem_ocn.use = "content";
+ comp_obj_poem_ocn.of = "block";
+ comp_obj_poem_ocn.is_a = "poem";
+ comp_obj_poem_ocn.ocn = obj_cite_number;
+ comp_obj_poem_ocn.obj_cite_number = (obj_cite_number_poem["start"], obj_cite_number_poem["end"]); // not sure about this
+ comp_obj_poem_ocn.text = ""; // an_object["substantive"];
+ the_document_body_section ~= comp_obj_poem_ocn;
object_reset(an_object);
processing.remove("verse");
type["blocks"] = TriState.off;
@@ -1923,8 +1802,8 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "table";
- auto _node_t =
- node_construct.node_emitter(
+ auto comp_obj_location =
+ node_construct.node_location_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -1932,21 +1811,18 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
- _node_heading_str = _node_t[0];
- _node_heading_int = _node_t[1];
auto substantive_object_and_anchor_tags_tuple =
obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
- the_document_body_section ~=
- set_abstract_object.contents_block(
- an_object["is"],
- an_object["substantive"],
- an_object["attrib"],
- obj_cite_number
- );
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "content";
+ comp_obj_block.of = "block";
+ comp_obj_block.is_a = an_object["is"];
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ the_document_body_section ~= comp_obj_block;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -1960,8 +1836,8 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "group";
- auto _node_t =
- node_construct.node_emitter(
+ auto comp_obj_location =
+ node_construct.node_location_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -1969,21 +1845,18 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
- _node_heading_str = _node_t[0];
- _node_heading_int = _node_t[1];
auto substantive_object_and_anchor_tags_tuple =
obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
- the_document_body_section ~=
- set_abstract_object.contents_block(
- an_object["is"],
- an_object["substantive"],
- an_object["attrib"],
- obj_cite_number
- );
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "content";
+ comp_obj_block.of = "block";
+ comp_obj_block.is_a = an_object["is"];
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ the_document_body_section ~= comp_obj_block;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -1996,8 +1869,8 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "block";
- auto _node_t =
- node_construct.node_emitter(
+ auto comp_obj_location =
+ node_construct.node_location_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -2005,21 +1878,18 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
- _node_heading_str = _node_t[0];
- _node_heading_int = _node_t[1];
auto substantive_object_and_anchor_tags_tuple =
obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
- the_document_body_section ~=
- set_abstract_object.contents_block(
- an_object["is"],
- an_object["substantive"],
- an_object["attrib"],
- obj_cite_number
- );
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "content";
+ comp_obj_block.of = "block";
+ comp_obj_block.is_a = an_object["is"];
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ the_document_body_section ~= comp_obj_block;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -2033,8 +1903,8 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "quote";
- auto _node_t =
- node_construct.node_emitter( //
+ auto comp_obj_location =
+ node_construct.node_location_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -2042,21 +1912,18 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
- _node_heading_str = _node_t[0];
- _node_heading_int = _node_t[1];
auto substantive_object_and_anchor_tags_tuple =
obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
- an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);
- the_document_body_section ~=
- set_abstract_object.contents_block(
- an_object["is"],
- an_object["substantive"],
- an_object["attrib"],
- obj_cite_number
- );
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.use = "content";
+ comp_obj_block.of = "block";
+ comp_obj_block.is_a = an_object["is"];
+ comp_obj_block.ocn = obj_cite_number;
+ comp_obj_block.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ comp_obj_block.text = an_object["substantive"];
+ the_document_body_section ~= comp_obj_block;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -2114,11 +1981,11 @@ template SiSUdocAbstraction() {
}
}
auto _heading_found_(
- char[] line,
- string dochead_make_identify_unmarked_headings,
- ref string[string] heading_match_str,
+ char[] line,
+ string dochead_make_identify_unmarked_headings,
+ ref string[string] heading_match_str,
ref Regex!(char)[string] heading_match_rgx,
- ref int[string] type
+ ref int[string] type
) {
if ((dochead_make_identify_unmarked_headings.length > 2)
&& (type["make_headings"] == State.off)) {
@@ -2198,10 +2065,10 @@ template SiSUdocAbstraction() {
}
}
auto _heading_make_set_(
- ref char[] line,
- ref int[string] line_occur,
+ ref char[] line,
+ ref int[string] line_occur,
ref Regex!(char)[string] heading_match_rgx,
- ref int[string] type
+ ref int[string] type
) {
if ((type["make_headings"] == State.on)
&& ((line_occur["para"] == State.off)
@@ -2254,13 +2121,13 @@ template SiSUdocAbstraction() {
}
}
auto _heading_matched_(
- char[] line,
- ref int[string] line_occur,
- ref string[string] an_object,
- ref string an_object_key,
- ref int[string] lv,
- ref int[string] collapsed_lev,
- ref int[string] type,
+ char[] line,
+ ref int[string] line_occur,
+ ref string[string] an_object,
+ ref string an_object_key,
+ ref int[string] lv,
+ ref int[string] collapsed_lev,
+ ref int[string] type,
ref string[string][string] dochead_meta_aa
) {
if (auto m = match(line, rgx.heading)) {
@@ -2397,13 +2264,13 @@ template SiSUdocAbstraction() {
}
}
auto _para_match_(
- char[] line,
+ char[] line,
ref string[string] an_object,
- ref string an_object_key,
- ref int[string] indent,
- ref bool bullet,
- ref int[string] type,
- ref int[string] line_occur,
+ ref string an_object_key,
+ ref int[string] indent,
+ ref bool bullet,
+ ref int[string] type,
+ ref int[string] line_occur,
) {
if (line_occur["para"] == State.off) {
/+ para matches +/
@@ -2696,8 +2563,8 @@ template SiSUdocAbstraction() {
auto munge = ObjInlineMarkupMunge();
string[string] obj_txt;
auto obj_inline_markup_and_anchor_tags(
- string[string] obj_,
- string obj_key_,
+ string[string] obj_,
+ string obj_key_,
string[string][string] dochead_make_aa
)
in { }
@@ -2773,27 +2640,21 @@ template SiSUdocAbstraction() {
return heading_toc_;
};
auto table_of_contents_gather_headings(
- string[string] obj_,
- string[string][string] dochead_make_aa,
- string segment_anchor_tag_that_object_belongs_to,
- string _anchor_tag,
- ObjComposite[][string] the_table_of_contents_section,
+ string[string] obj_,
+ string[string][string] dochead_make_aa,
+ string segment_anchor_tag_that_object_belongs_to,
+ string _anchor_tag,
+ ObjGenericComposite[][string] the_table_of_contents_section,
)
in { }
body {
+ ObjGenericComposite comp_obj_toc;
char[] heading_toc_ = to!(char[])(obj_["body_nugget"].dup.strip);
heading_toc_ = _clean_heading_toc_(heading_toc_);
auto attrib="";
string toc_txt_;
int[string] indent;
- auto set_abstract_object = ObjectAbstractSet();
if (to!int(obj_["lev_markup_number"]) > 0) {
- toc_txt_ = format(
- "{ %s }#%s",
- heading_toc_,
- _anchor_tag,
- );
- toc_txt_= munge.url_links(toc_txt_);
indent=[
"hang_position" : to!int(obj_["lev_markup_number"]),
"base_position" : to!int(obj_["lev_markup_number"]),
@@ -2804,30 +2665,41 @@ template SiSUdocAbstraction() {
_anchor_tag,
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["scroll"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc = comp_obj_toc.init;
+ comp_obj_toc.use = "content";
+ comp_obj_toc.of = "para";
+ comp_obj_toc.is_a = "toc";
+ comp_obj_toc.ocn = 0;
+ comp_obj_toc.obj_cite_number = "0";
+ comp_obj_toc.indent_hang = indent["hang_position"];
+ comp_obj_toc.indent_base = indent["base_position"];
+ comp_obj_toc.bullet = false;
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["scroll"] ~= comp_obj_toc;
} else {
indent=[
"hang_position" : 0,
"base_position" : 0,
];
- the_table_of_contents_section["scroll"] ~=
- set_abstract_object.contents_toc(
- "toc",
- "Table of Contents",
- "", // attrib
- 0,
- indent,
- false
- );
- }
+ comp_obj_toc = comp_obj_toc.init;
+ comp_obj_toc.use = "content";
+ comp_obj_toc.of = "para";
+ comp_obj_toc.is_a = "toc";
+ comp_obj_toc.ocn = 0;
+ comp_obj_toc.obj_cite_number = "0";
+ comp_obj_toc.indent_hang = indent["hang_position"];
+ comp_obj_toc.indent_base = indent["base_position"];
+ comp_obj_toc.bullet = false;
+ comp_obj_toc.text = "Table of Contents";
+ the_table_of_contents_section["scroll"] ~= comp_obj_toc;
+ }
+ comp_obj_toc = comp_obj_toc.init;
+ comp_obj_toc.use = "content";
+ comp_obj_toc.of = "para";
+ comp_obj_toc.is_a = "toc";
+ comp_obj_toc.ocn = 0;
+ comp_obj_toc.obj_cite_number = "0";
+ comp_obj_toc.bullet = false;
switch (to!int(obj_["lev_markup_number"])) {
case 0:
indent=[
@@ -2836,15 +2708,10 @@ template SiSUdocAbstraction() {
];
toc_txt_ = "{ Table of Contents }../toc.fn_suffix";
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["seg"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.indent_hang = indent["hang_position"];
+ comp_obj_toc.indent_base = indent["base_position"];
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["seg"] ~= comp_obj_toc;
break;
case 1: .. case 3:
indent=[
@@ -2856,15 +2723,10 @@ template SiSUdocAbstraction() {
heading_toc_,
);
toc_txt_= munge.url_links(toc_txt_);
- the_table_of_contents_section["seg"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.indent_hang = indent["hang_position"];
+ comp_obj_toc.indent_base = indent["base_position"];
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["seg"] ~= comp_obj_toc;
break;
case 4:
toc_txt_ = format(
@@ -2877,15 +2739,10 @@ template SiSUdocAbstraction() {
"hang_position" : to!int(obj_["lev_markup_number"]),
"base_position" : to!int(obj_["lev_markup_number"]),
];
- the_table_of_contents_section["seg"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.indent_hang = indent["hang_position"];
+ comp_obj_toc.indent_base = indent["base_position"];
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["seg"] ~= comp_obj_toc;
break;
case 5: .. case 7:
toc_txt_ = format(
@@ -2899,15 +2756,10 @@ template SiSUdocAbstraction() {
"hang_position" : to!int(obj_["lev_markup_number"]),
"base_position" : to!int(obj_["lev_markup_number"]),
];
- the_table_of_contents_section["seg"] ~=
- set_abstract_object.contents_toc(
- "toc",
- toc_txt_,
- "", // attrib
- 0,
- indent,
- false
- );
+ comp_obj_toc.indent_hang = indent["hang_position"];
+ comp_obj_toc.indent_base = indent["base_position"];
+ comp_obj_toc.text = to!string(toc_txt_).strip;
+ the_table_of_contents_section["seg"] ~= comp_obj_toc;
break;
default:
break;
@@ -2918,10 +2770,9 @@ template SiSUdocAbstraction() {
}
private:
static string _configured_auto_heading_numbering_and_segment_anchor_tags(
- string munge_,
- string[string] obj_,
- string[string][string]
- dochead_make_aa
+ string munge_,
+ string[string] obj_,
+ string[string][string] dochead_make_aa
) {
if (dochead_make_aa["make"]["num_top"].length > 0) {
if (!(match(munge_, rgx.heading_anchor_tag))) {
@@ -3103,20 +2954,17 @@ template SiSUdocAbstraction() {
struct ObjAttributes {
string[string] _obj_attrib;
string obj_attributes(
- string obj_is_,
- string obj_raw,
- string[string] _node_heading_str,
- int[string] _node_heading_int
+ string obj_is_,
+ string obj_raw,
+ ObjGenericComposite _comp_obj_heading,
)
in { }
body {
scope(exit) {
destroy(obj_is_);
destroy(obj_raw);
- destroy(_node_heading_str);
- destroy(_node_heading_int);
+ destroy(_comp_obj_heading);
}
- _obj_attrib.remove("json");
_obj_attrib["json"] ="{";
switch (obj_is_) {
case "heading":
@@ -3154,7 +3002,7 @@ template SiSUdocAbstraction() {
break;
}
_obj_attrib["json"] ~=" }";
- _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node_heading_str, _node_heading_int); // check
+ _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _comp_obj_heading); // check
debug(structattrib) {
if (oa_j["is"].str() == "heading") {
writeln(_obj_attrib["json"]);
@@ -3176,24 +3024,24 @@ template SiSUdocAbstraction() {
auto rgx = Rgx();
if (matchFirst(obj_txt_in, rgx.para_bullet)) {
_obj_attributes =" \"bullet\": \"true\","
- ~ " \"indent_start\": 0,"
- ~ " \"indent_rest\": 0,";
+ ~ " \"indent_hang\": 0,"
+ ~ " \"indent_base\": 0,";
} else if (auto m = matchFirst(obj_txt_in, rgx.para_bullet_indent)) {
_obj_attributes =" \"bullet\": \"true\","
- ~ " \"indent_start\": " ~ to!string(m.captures[1]) ~ ","
- ~ " \"indent_rest\": " ~ to!string(m.captures[1]) ~ ",";
+ ~ " \"indent_hang\": " ~ to!string(m.captures[1]) ~ ","
+ ~ " \"indent_base\": " ~ to!string(m.captures[1]) ~ ",";
} else if (auto m = matchFirst(obj_txt_in, rgx.para_indent_hang)) {
_obj_attributes =" \"bullet\": \"false\","
- ~ " \"indent_start\": " ~ to!string(m.captures[1]) ~ ","
- ~ " \"indent_rest\": " ~ to!string(m.captures[2]) ~ ",";
+ ~ " \"indent_hang\": " ~ to!string(m.captures[1]) ~ ","
+ ~ " \"indent_base\": " ~ to!string(m.captures[2]) ~ ",";
} else if (auto m = matchFirst(obj_txt_in, rgx.para_indent)) {
_obj_attributes =" \"bullet\": \"false\","
- ~ " \"indent_start\": " ~ to!string(m.captures[1]) ~ ","
- ~ " \"indent_rest\": " ~ to!string(m.captures[1]) ~ ",";
+ ~ " \"indent_hang\": " ~ to!string(m.captures[1]) ~ ","
+ ~ " \"indent_base\": " ~ to!string(m.captures[1]) ~ ",";
} else {
_obj_attributes =" \"bullet\": \"false\","
- ~ " \"indent_start\": 0,"
- ~ " \"indent_rest\": 0,";
+ ~ " \"indent_hang\": 0,"
+ ~ " \"indent_base\": 0,";
}
return _obj_attributes;
}
@@ -3288,26 +3136,25 @@ template SiSUdocAbstraction() {
invariant() {
}
string _set_additional_values_parse_as_json(
- string _obj_attrib,
- string obj_is_,
- string[string] _node_heading_str,
- int[string] _node_heading_int
+ string _obj_attrib,
+ string obj_is_,
+ ObjGenericComposite _comp_obj_heading,
) { //
JSONValue oa_j = parseJSON(_obj_attrib);
assert(
(oa_j.type == JSON_TYPE.OBJECT)
);
if (obj_is_ == "heading") {
- oa_j.object["obj_cite_number"] = _node_heading_str["ocn"];
- oa_j.object["lev_markup_number"] = _node_heading_int["heading_lev_markup"];
- oa_j.object["lev_collapsed_number"] = _node_heading_int["heading_lev_collapsed"];
+ oa_j.object["obj_cite_number"] = _comp_obj_heading.ocn;
+ oa_j.object["lev_markup_number"] = _comp_obj_heading.heading_lev_markup;
+ oa_j.object["lev_collapsed_number"] = _comp_obj_heading.heading_lev_collapsed;
oa_j.object["heading_ptr"] =
- _node_heading_int["ptr_heading"];
+ _comp_obj_heading.ptr_heading;
oa_j.object["doc_object_ptr"] =
- _node_heading_int["ptr_doc_object"];
+ _comp_obj_heading.ptr_doc_object;
}
- oa_j.object["parent_obj_cite_number"] = _node_heading_int["parent_ocn"]; //
- oa_j.object["parent_lev_markup_number"] = _node_heading_int["parent_lev_markup"]; //
+ oa_j.object["parent_obj_cite_number"] = _comp_obj_heading.parent_ocn;
+ oa_j.object["parent_lev_markup_number"] = _comp_obj_heading.parent_lev_markup;
_obj_attrib = oa_j.toString();
return _obj_attrib;
}
@@ -3322,7 +3169,7 @@ template SiSUdocAbstraction() {
string[] bi_main_terms_split_arr;
string[][string][string] bookindex_nugget_hash(
string bookindex_section,
- int obj_cite_number
+ int obj_cite_number
)
in {
debug(bookindexraw) {
@@ -3451,68 +3298,48 @@ template SiSUdocAbstraction() {
mixin SiSUnode;
string type_is;
string lev;
- int lev_int_markup, lev_int_collapsed;
+ int heading_lev_markup, heading_lev_collapsed;
string attrib;
int[string] indent;
- auto set_abstract_object = ObjectAbstractSet();
auto mainkeys =
bookindex_unordered_hashes.byKey.array.sort().release;
- ObjComposite[][string] bookindex_section;
- auto node_heading_int_ = node_metadata_heading_int;
- auto node_heading_str_ = node_metadata_heading_str;
+ ObjGenericComposite[][string] bookindex_section;
+ ObjGenericComposite comp_obj_heading_, comp_obj_para;
auto node_para_int_ = node_metadata_para_int;
auto node_para_str_ = node_metadata_para_str;
if ((mainkeys.length > 0)
&& (opt_action_bool["backmatter"] && opt_action_bool["section_bookindex"])) {
string bi_tmp_seg, bi_tmp_scroll;
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "B";
- node_heading_int_["heading_lev_markup"] = 1;
- node_heading_int_["heading_lev_collapsed"] = 1;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- bookindex_section["scroll"] ~=
- set_abstract_object.contents_heading(
- "Book Index",
- node_heading_str_,
- node_heading_int_,
- [],
- );
- bookindex_section["seg"] ~=
- set_abstract_object.contents_heading(
- "Book Index",
- node_heading_str_,
- node_heading_int_,
- [],
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Book Index";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.marked_up_level = "B";
+ comp_obj_heading_.heading_lev_markup = 1;
+ comp_obj_heading_.heading_lev_collapsed = 1;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ bookindex_section["scroll"] ~= comp_obj_heading_;
+ bookindex_section["seg"] ~= comp_obj_heading_;
++obj_cite_number;
++mkn;
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "bookindex";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "1";
- node_heading_int_["heading_lev_markup"] = 4;
- node_heading_int_["heading_lev_collapsed"] = 2;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- bookindex_section["scroll"] ~=
- set_abstract_object.contents_heading(
- "Index",
- node_heading_str_,
- node_heading_int_,
- ["bookindex"],
- );
- bookindex_section["seg"] ~=
- set_abstract_object.contents_heading(
- "Index",
- node_heading_str_,
- node_heading_int_,
- ["bookindex"],
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Index";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.segment_anchor_tag = "bookindex";
+ comp_obj_heading_.marked_up_level = "1";
+ comp_obj_heading_.heading_lev_markup = 4;
+ comp_obj_heading_.heading_lev_collapsed = 2;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.anchor_tags = ["bookindex"];
+ bookindex_section["scroll"] ~= comp_obj_heading_;
+ bookindex_section["seg"] ~= comp_obj_heading_;
++obj_cite_number;
++mkn;
foreach (mainkey; mainkeys) {
@@ -3546,52 +3373,33 @@ template SiSUdocAbstraction() {
}
bi_tmp_scroll = replaceFirst(bi_tmp_scroll, rgx.trailing_linebreak, "");
bi_tmp_seg = replaceFirst(bi_tmp_seg, rgx.trailing_linebreak, "");
- indent=[ "hang_position" : 0, "base_position" : 1, ];
- node_para_str_["is"] = "para";
- node_para_str_["attrib"] = "";
- node_para_int_["ocn"] = obj_cite_number;
- node_para_int_["indent_hang"] = 0;
- node_para_int_["indent_base"] = 1;
- node_para_int_["bullet"] = 0;
- bookindex_section["scroll"] ~=
- set_abstract_object.contents_para(
- bi_tmp_scroll,
- node_para_str_,
- node_para_int_,
- );
- bookindex_section["seg"] ~=
- set_abstract_object.contents_para(
- bi_tmp_seg,
- node_para_str_,
- node_para_int_,
- );
+ comp_obj_para = comp_obj_para.init;
+ comp_obj_para.use = "content";
+ comp_obj_para.of = "para";
+ comp_obj_para.is_a = "para";
+ comp_obj_para.text = to!string(bi_tmp_scroll).strip;
+ comp_obj_para.ocn = obj_cite_number;
+ comp_obj_para.obj_cite_number = to!string(obj_cite_number);
+ comp_obj_para.indent_hang = 0;
+ comp_obj_para.indent_base = 1;
+ comp_obj_para.bullet = false;
+ bookindex_section["scroll"] ~= comp_obj_para;
+ comp_obj_para.text = to!string(bi_tmp_seg).strip;
+ bookindex_section["seg"] ~= comp_obj_para;
++obj_cite_number;
++mkn;
}
} else { // no book index, (figure out what to do here)
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "B";
- node_heading_int_["heading_lev_markup"] = 1;
- node_heading_int_["heading_lev_collapsed"] = 1;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- bookindex_section["scroll"] ~=
- set_abstract_object.contents_heading(
- "(skip) there is no Book Index",
- node_heading_str_,
- node_heading_int_,
- [""],
- );
- bookindex_section["seg"] ~=
- set_abstract_object.contents_heading(
- "(skip) there is no Book Index",
- node_heading_str_,
- node_heading_int_,
- [""],
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.text = "(skip) there is no Book Index";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.marked_up_level = "B";
+ comp_obj_heading_.heading_lev_markup = 1;
+ comp_obj_heading_.heading_lev_collapsed = 1;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ bookindex_section["scroll"] ~= comp_obj_heading_;
+ bookindex_section["seg"] ~= comp_obj_heading_;
}
auto t = tuple(bookindex_section, obj_cite_number);
return t;
@@ -3604,9 +3412,9 @@ template SiSUdocAbstraction() {
int mkn;
auto rgx = Rgx();
private auto gather_notes_for_endnote_section(
- ObjComposite[] contents_am,
- string segment_anchor_tag_that_object_belongs_to,
- int cntr,
+ ObjGenericComposite[] contents_am,
+ string segment_anchor_tag_that_object_belongs_to,
+ int cntr,
)
in {
// endnotes/ footnotes for
@@ -3618,7 +3426,7 @@ template SiSUdocAbstraction() {
assert(cntr >= previous_count);
previous_count=cntr;
assert(
- match(contents_am[cntr].object,
+ match(contents_am[cntr].text,
rgx.inline_notes_delimiter_al_regular_number_note)
);
}
@@ -3627,7 +3435,7 @@ template SiSUdocAbstraction() {
foreach(
m;
matchAll(
- contents_am[cntr].object,
+ contents_am[cntr].text,
rgx.inline_notes_delimiter_al_regular_number_note
)
) {
@@ -3679,102 +3487,88 @@ template SiSUdocAbstraction() {
}
body {
mixin SiSUnode;
- auto set_abstract_object = ObjectAbstractSet();
- ObjComposite[][string] the_endnotes_section;
+ ObjGenericComposite[][string] the_endnotes_section;
auto endnotes_ = gathered_notes();
string type_is;
string lev, lev_markup_number, lev_collapsed_number;
string attrib;
int[string] indent;
- auto node_heading_int_ = node_metadata_heading_int;
- auto node_heading_str_ = node_metadata_heading_str;
+ ObjGenericComposite comp_obj_heading_;
if ((endnotes_["seg"].length > 0)
&& (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"])) {
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "B";
- node_heading_int_["heading_lev_markup"] = 1;
- node_heading_int_["heading_lev_collapsed"] = 1;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_endnotes_section["seg"] ~=
- set_abstract_object.contents_heading(
- "Endnotes",
- node_heading_str_,
- node_heading_int_,
- [],
- );
- the_endnotes_section["scroll"] ~=
- set_abstract_object.contents_heading(
- "Endnotes",
- node_heading_str_,
- node_heading_int_,
- [],
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Endnotes";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.marked_up_level = "B";
+ comp_obj_heading_.heading_lev_markup = 1;
+ comp_obj_heading_.heading_lev_collapsed = 1;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ the_endnotes_section["seg"] ~= comp_obj_heading_;
+ the_endnotes_section["scroll"] ~= comp_obj_heading_;
++obj_cite_number;
++mkn;
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "endnotes";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "1";
- node_heading_int_["heading_lev_markup"] = 4;
- node_heading_int_["heading_lev_collapsed"] = 2;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_endnotes_section["seg"] ~=
- set_abstract_object.contents_heading(
- "Endnotes",
- node_heading_str_,
- node_heading_int_,
- ["endnotes"],
- );
- the_endnotes_section["scroll"] ~=
- set_abstract_object.contents_heading(
- "Endnotes",
- node_heading_str_,
- node_heading_int_,
- ["endnotes"],
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "Endnotes";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.segment_anchor_tag = "endnotes";
+ comp_obj_heading_.marked_up_level = "1";
+ comp_obj_heading_.heading_lev_markup = 4;
+ comp_obj_heading_.heading_lev_collapsed = 2;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ comp_obj_heading_.anchor_tags = ["endnotes"];
+ the_endnotes_section["seg"] ~= comp_obj_heading_;
+ the_endnotes_section["scroll"] ~= comp_obj_heading_;
++obj_cite_number;
++mkn;
} else {
- node_heading_str_["is"] = "heading";
- node_heading_str_["ocn"] = "0";
- node_heading_str_["segment_anchor_tag"] = "";
- node_heading_str_["attrib"] = "";
- node_heading_str_["marked_up_lev"] = "B";
- node_heading_int_["heading_lev_markup"] = 1;
- node_heading_int_["heading_lev_collapsed"] = 1;
- node_heading_int_["parent_ocn"] = 1;
- node_heading_int_["parent_lev_markup"] = 0;
- the_endnotes_section["seg"] ~=
- set_abstract_object.contents_heading(
- "(skip) there are no Endnotes",
- node_heading_str_,
- node_heading_int_,
- [""],
- );
- the_endnotes_section["scroll"] ~=
- set_abstract_object.contents_heading(
- "(skip) there are no Endnotes",
- node_heading_str_,
- node_heading_int_,
- [""],
- );
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.use = "content";
+ comp_obj_heading_.of = "para";
+ comp_obj_heading_.is_a = "heading";
+ comp_obj_heading_.text = "(skip) there are no Endnotes";
+ comp_obj_heading_.ocn = 0;
+ comp_obj_heading_.marked_up_level = "B";
+ comp_obj_heading_.heading_lev_markup = 1;
+ comp_obj_heading_.heading_lev_collapsed = 1;
+ comp_obj_heading_.parent_ocn = 1;
+ comp_obj_heading_.parent_lev_markup = 0;
+ the_endnotes_section["seg"] ~= comp_obj_heading_;
+ the_endnotes_section["scroll"] ~= comp_obj_heading_;
}
if (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"]) {
+ ObjGenericComposite comp_obj_endnote_;
+ comp_obj_endnote_ = comp_obj_endnote_.init;
+ comp_obj_endnote_.use = "content";
+ comp_obj_endnote_.of = "para";
+ comp_obj_endnote_.is_a = "endnote";
+ comp_obj_endnote_.ocn = 0;
+ comp_obj_endnote_.obj_cite_number = "0";
+ comp_obj_endnote_.indent_hang = 0;
+ comp_obj_endnote_.indent_base = 0;
+ comp_obj_endnote_.bullet = false;
foreach (i, endnote; endnotes_["seg"]) {
- attrib="";
- the_endnotes_section["seg"] ~=
- set_abstract_object.contents_endnote(endnote, endnotes_["anchor"][i]);
+ auto m = (matchFirst(endnote, rgx.note_ref));
+ string notenumber = to!string(m.captures[1]);
+ string anchor_tag = "note_" ~ notenumber;
+ comp_obj_endnote_.anchor_tags ~= [ endnotes_["anchor"][i] ]; // fix
+ comp_obj_endnote_.text = endnote.strip;
+ the_endnotes_section["seg"] ~= comp_obj_endnote_;
}
foreach (i, endnote; endnotes_["scroll"]) {
- attrib="";
- the_endnotes_section["scroll"] ~=
- set_abstract_object.contents_endnote(endnote, endnotes_["anchor"][i]);
+ auto m = (matchFirst(endnote, rgx.note_ref));
+ string notenumber = to!string(m.captures[1]);
+ string anchor_tag = "note_" ~ notenumber;
+ comp_obj_endnote_.anchor_tags ~= [ endnotes_["anchor"][i] ]; // fix
+ comp_obj_endnote_.text = endnote.strip;
+ the_endnotes_section["scroll"] ~= comp_obj_endnote_;
}
}
auto t = tuple(the_endnotes_section, obj_cite_number);
@@ -3784,8 +3578,8 @@ template SiSUdocAbstraction() {
/+ +/
struct Bibliography {
public JSONValue[] _bibliography_(
- ref string[] biblio_unsorted_incomplete,
- ref JSONValue[] bib_arr_json
+ ref string[] biblio_unsorted_incomplete,
+ ref JSONValue[] bib_arr_json
)
in { }
body {
@@ -3809,7 +3603,7 @@ template SiSUdocAbstraction() {
return biblio_sorted__;
}
final private JSONValue[] _biblio_unsorted_complete_(
- string[] biblio_unordered,
+ string[] biblio_unordered,
ref JSONValue[] bib_arr_json
) {
foreach (bibent; biblio_unordered) {
@@ -3867,11 +3661,11 @@ template SiSUdocAbstraction() {
int lv, lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7;
int obj_cite_number;
int[string] p_; // p_ parent_
- auto node_emitter(
+ ObjGenericComposite node_location_emitter(
string lev_markup_number,
string segment_anchor_tag,
int obj_cite_number_,
- int cntr_,
+ int cntr_,
int ptr_,
string is_
)
@@ -3897,23 +3691,13 @@ template SiSUdocAbstraction() {
p_["lev_markup_number"] = DocStructMarkupHeading.h_text_1;
p_["obj_cite_number"] = lv4;
}
- string[string] _node_heading_str = [
- "is" : is_,
- "ocn" : to!string(obj_cite_number_),
- "marked_up_lev" : "",
- "segment_anchor_tag" : to!string(segment_anchor_tag),
- "attrib" : "",
- ];
- int[string] _node_heading_int = [
- "ocn" : obj_cite_number_,
- "ptr_doc_object" : 0,
- "ptr_html_segnames" : 0,
- "ptr_heading" : 0,
- "heading_lev_markup" : 0,
- "heading_lev_collapsed" : 0,
- "parent_ocn" : p_["obj_cite_number"],
- "parent_lev_markup" : p_["lev_markup_number"],
- ];
+ ObjGenericComposite comp_obj_location;
+ comp_obj_location = comp_obj_location.init;
+ comp_obj_location.is_a = is_;
+ comp_obj_location.ocn = obj_cite_number_;
+ comp_obj_location.segment_anchor_tag = to!string(segment_anchor_tag);
+ comp_obj_location.parent_ocn = p_["obj_cite_number"];
+ comp_obj_location.parent_lev_markup = p_["lev_markup_number"];
debug(node) {
if (match(lev_markup_number, rgx.levels_numbered_headings)) {
writeln("x ", to!string(_node));
@@ -3921,18 +3705,15 @@ template SiSUdocAbstraction() {
writeln("- ", to!string(_node));
}
}
- assert(_node_heading_int["parent_lev_markup"] >= 4); //
- assert(_node_heading_int["parent_lev_markup"] <= 7); //
- assert(_node_heading_int["parent_ocn"] >= 0); // hmm, perhaps //
- auto t = tuple(
- _node_heading_str,
- _node_heading_int,
- );
- return t;
+ assert(comp_obj_location.parent_lev_markup >= 4);
+ assert(comp_obj_location.parent_lev_markup <= 7);
+ assert(comp_obj_location.parent_ocn >= 0);
+ return comp_obj_location;
}
invariant() {
}
- auto node_emitter_heading(
+ ObjGenericComposite node_emitter_heading(
+ string _text,
string lev,
string lev_markup_number,
string lev_collapsed_number,
@@ -3941,7 +3722,7 @@ template SiSUdocAbstraction() {
int cntr_,
int ptr_,
string is_,
- int html_segnames_ptr,
+ int html_segnames_ptr,
)
in {
auto rgx = Rgx();
@@ -4040,23 +3821,23 @@ template SiSUdocAbstraction() {
default:
break;
}
- string[string] _node_heading_str = [
- "is" : is_,
- "ocn" : to!string(obj_cite_number_),
- "marked_up_lev" : lev,
- "segment_anchor_tag" : to!string(segment_anchor_tag),
- "attrib" : "",
- ];
- int[string] _node_heading_int = [
- "ocn" : obj_cite_number_,
- "ptr_doc_object" : cntr_,
- "ptr_html_segnames" : ((lev_markup_number == "4") ? html_segnames_ptr : 0),
- "ptr_heading" : ptr_,
- "heading_lev_markup" : (!(lev_markup_number.empty) ? to!int(lev_markup_number) : 0), // switch to use int if possible
- "heading_lev_collapsed" : (!(lev_collapsed_number.empty) ? to!int(lev_collapsed_number) : 0), // switch to use int if possible
- "parent_ocn" : p_["obj_cite_number"],
- "parent_lev_markup" : p_["lev_markup_number"],
- ];
+ ObjGenericComposite _comp_obj_heading_;
+ _comp_obj_heading_ = _comp_obj_heading_.init;
+ _comp_obj_heading_.use = "content";
+ _comp_obj_heading_.of = "para";
+ _comp_obj_heading_.is_a = "heading";
+ _comp_obj_heading_.text = to!string(_text).strip;
+ _comp_obj_heading_.ocn = obj_cite_number_;
+ _comp_obj_heading_.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ _comp_obj_heading_.segment_anchor_tag = to!string(segment_anchor_tag);
+ _comp_obj_heading_.marked_up_level = lev;
+ _comp_obj_heading_.heading_lev_markup = (!(lev_markup_number.empty) ? to!int(lev_markup_number) : 0);
+ _comp_obj_heading_.heading_lev_collapsed = (!(lev_collapsed_number.empty) ? to!int(lev_collapsed_number) : 0);
+ _comp_obj_heading_.parent_ocn = p_["obj_cite_number"];
+ _comp_obj_heading_.parent_lev_markup = p_["lev_markup_number"];
+ _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_;
debug(node) {
if (match(lev_markup_number, rgx.levels_numbered_headings)) {
writeln("* ", to!string(_node));
@@ -4067,44 +3848,37 @@ template SiSUdocAbstraction() {
writeln("* ", to!string(_node));
}
}
- assert(_node_heading_int["parent_lev_markup"] <= 7);
- assert(_node_heading_int["parent_ocn"] >= 0);
+ assert(_comp_obj_heading_.parent_lev_markup <= 7);
+ assert(_comp_obj_heading_.parent_ocn >= 0);
if (match(lev_markup_number, rgx.levels_numbered_headings)) {
- assert(_node_heading_int["heading_lev_markup"] <= 7); // issues
- assert(to!int(_node_heading_str["ocn"]) >= 0);
- if (_node_heading_int["parent_lev_markup"] > 0) {
- assert(_node_heading_int["parent_lev_markup"] < _node_heading_int["heading_lev_markup"]);
- if (to!int(_node_heading_str["ocn"]) != 0) {
- assert(_node_heading_int["parent_ocn"] < to!int(_node_heading_str["ocn"]));
+ assert(_comp_obj_heading_.heading_lev_markup <= 7);
+ assert(_comp_obj_heading_.ocn >= 0);
+ if (_comp_obj_heading_.parent_lev_markup > 0) {
+ assert(_comp_obj_heading_.parent_lev_markup < _comp_obj_heading_.heading_lev_markup);
+ if (_comp_obj_heading_.ocn != 0) {
+ assert(_comp_obj_heading_.parent_ocn < _comp_obj_heading_.ocn);
}
}
- if (_node_heading_int["heading_lev_markup"] == 0) {
- assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A);
- } else if (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_B) {
- assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A);
- } else if (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_C) {
- assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_B);
- } else if (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_D) {
- assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_C);
- } else if (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_1) {
- assert(_node_heading_int["parent_lev_markup"] <= DocStructMarkupHeading.h_sect_D);
- } else if (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_2) {
- assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_1);
- } else if (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_3) {
- assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_2);
- } else if (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_4) {
- assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_3);
- } else if (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_5) {
- // // writeln(to!int(_node_heading_int["parent_lev_markup"]));
- // // assert(to!int(_node_heading_int["parent_lev_markup"]) >= 4);
- // // assert(to!int(_node_heading_int["parent_lev_markup"]) <= 7);
- }
- }
- auto t = tuple(
- _node_heading_str,
- _node_heading_int,
- );
- return t;
+ if (_comp_obj_heading_.heading_lev_markup == 0) {
+ assert(_comp_obj_heading_.parent_lev_markup == DocStructMarkupHeading.h_sect_A);
+ } else if (_comp_obj_heading_.heading_lev_markup == DocStructMarkupHeading.h_sect_B) {
+ assert(_comp_obj_heading_.parent_lev_markup == DocStructMarkupHeading.h_sect_A);
+ } else if (_comp_obj_heading_.heading_lev_markup == DocStructMarkupHeading.h_sect_C) {
+ assert(_comp_obj_heading_.parent_lev_markup == DocStructMarkupHeading.h_sect_B);
+ } else if (_comp_obj_heading_.heading_lev_markup == DocStructMarkupHeading.h_sect_D) {
+ assert(_comp_obj_heading_.parent_lev_markup == DocStructMarkupHeading.h_sect_C);
+ } else if (_comp_obj_heading_.heading_lev_markup == DocStructMarkupHeading.h_text_1) {
+ assert(_comp_obj_heading_.parent_lev_markup <= DocStructMarkupHeading.h_sect_D);
+ } else if (_comp_obj_heading_.heading_lev_markup == DocStructMarkupHeading.h_text_2) {
+ assert(_comp_obj_heading_.parent_lev_markup == DocStructMarkupHeading.h_text_1);
+ } else if (_comp_obj_heading_.heading_lev_markup == DocStructMarkupHeading.h_text_3) {
+ assert(_comp_obj_heading_.parent_lev_markup == DocStructMarkupHeading.h_text_2);
+ } else if (_comp_obj_heading_.heading_lev_markup == DocStructMarkupHeading.h_text_4) {
+ assert(_comp_obj_heading_.parent_lev_markup == DocStructMarkupHeading.h_text_3);
+ } else if (_comp_obj_heading_.heading_lev_markup == DocStructMarkupHeading.h_text_5) {
+ }
+ }
+ return _comp_obj_heading_;
}
invariant() {
}
@@ -4113,7 +3887,7 @@ template SiSUdocAbstraction() {
/+ ↓ abstraction functions assertions +/
auto assertions_doc_structure(
string[string] an_object,
- int[string] lv
+ int[string] lv
) {
if (lv["h3"] > State.off) {
assert(lv["h0"] > State.off);