aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2016-12-05 12:09:04 -0500
committerRalph Amissah <ralph@amissah.com>2019-04-10 15:14:13 -0400
commitdb683b9403998ea66cb982d28a3c365eb99ec2e1 (patch)
tree2f160cdd5eb4eed69e8131822f224cca0d4d4ecb
parentstart work on node info, a way to go (diff)
0.9.4 node info, changes to variables & types
-rw-r--r--org/ao_abstract_doc_source.org799
-rw-r--r--org/ao_defaults.org40
-rw-r--r--org/sdp.org2
-rw-r--r--src/sdp/ao_abstract_doc_source.d762
-rw-r--r--src/sdp/ao_defaults.d40
-rw-r--r--src/sdp/ao_object_setter.d33
-rw-r--r--views/version.txt2
7 files changed, 830 insertions, 848 deletions
diff --git a/org/ao_abstract_doc_source.org b/org/ao_abstract_doc_source.org
index 63daac5..724e44a 100644
--- a/org/ao_abstract_doc_source.org
+++ b/org/ao_abstract_doc_source.org
@@ -75,12 +75,12 @@ string biblio_entry_str_json;
JSONValue[] bib_arr_json;
int bib_entry;
/+ counters +/
-long cntr, previous_count, previous_length;
+int cntr, previous_count, previous_length;
int[string] line_occur;
int verse_line, heading_ptr;
string[] html_segnames=[];
-uint html_segnames_ptr=0;
-uint html_segnames_ptr_cntr=0;
+int html_segnames_ptr=0;
+int html_segnames_ptr_cntr=0;
/+ paragraph attributes +/
int[string] indent;
bool bullet = true;
@@ -104,7 +104,8 @@ string[][string][string] bkidx_hash(
return bookindex_extract_hash.bookindex_nugget_hash(bookindex_section, obj_cite_number);
}
/+ node +/
-string[string][string] _node;
+string[string] _node_str;
+int[string] _node_int;
auto node_construct = NodeStructureMetadata();
#+END_SRC
@@ -131,7 +132,8 @@ scope(exit) {
#+name: abs_init_rest
#+BEGIN_SRC d
-auto node_ = node_metadata;
+auto node_int_ = node_metadata_int;
+auto node_str_ = node_metadata_str;
line_occur = [
"heading" : 0,
"para" : 0,
@@ -189,21 +191,21 @@ string _anchor_tag;
string toc_txt_;
an_object["glossary_nugget"] = "";
an_object["blurb_nugget"] = "";
-node_["object"]["is"] = "heading";
-node_["object"]["obj_cite_number"] = "0";
-node_["object"]["segment_anchor_tag"] = "toc";
-node_["object"]["parent_obj_cite_number"] = "1";
-node_["object"]["parent_lev_markup_number"] = "0";
+node_str_["is"] = "heading";
+node_str_["ocn"] = "0";
+node_str_["segment_anchor_tag"] = "toc";
+node_str_["attrib"] = "";
+node_str_["marked_up_lev"] = "1";
+node_int_["heading_lev_markup"] = 4;
+node_int_["heading_lev_collapsed"] = 2;
+node_int_["parent_ocn"] = 1;
+node_int_["parent_lev_markup"] = 0;
auto toc_head =
set_abstract_object.contents_heading(
"Table of Contents", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
["toc"], // anchor tag
- "1", // lev
- 4, // lev_int_markup
- 2, // lev_int_collapsed
- node_,
);
the_table_of_contents_section = [
"seg": [toc_head],
@@ -290,7 +292,7 @@ if ((matchFirst(line, rgx.heading_biblio)
continue;
#+END_SRC
-****** TODO within section: glossary :glossary:
+****** within section: glossary :glossary:
if there is a glossary section you need to:
- extract it
@@ -325,37 +327,37 @@ if there is a glossary section you need to:
line_occur["para"] = State.off;
an_object_key="glossary_nugget"; //
if (matchFirst(line, rgx.heading_glossary)) {
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "glossary";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_glossary_section ~=
set_abstract_object.contents_heading(
"Glossary", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "glossary";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "glossary";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_glossary_section ~=
set_abstract_object.contents_heading(
"Glossary", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
["glossary"], // anchor tag
- "1", // lev
- 4, // lev_int_markup
- 2, // lev_int_collapsed
- node_,
);
// } else if (matchFirst(line, rgx.heading)) {
// _heading_matched_(line, line_occur, an_object, an_object_key, lv, collapsed_lev, type, dochead_meta_aa); // levels?
@@ -376,7 +378,7 @@ if there is a glossary section you need to:
continue;
#+END_SRC
-****** TODO within section: blurb :blurb:
+****** within section: blurb :blurb:
if there is a blurb section you need to:
- extract it
@@ -411,56 +413,56 @@ if there is a blurb section you need to:
line_occur["para"] = State.off;
an_object_key="blurb_nugget";
if (matchFirst(line, rgx.heading_blurb)) {
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "blurb";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_blurb_section ~=
set_abstract_object.contents_heading(
"Blurb", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "blurb";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "blurb";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_blurb_section ~=
set_abstract_object.contents_heading(
"Blurb", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
["blurb"], // anchor tag
- "1", // lev
- 4, // lev_int_markup
- 2, // lev_int_collapsed
- node_,
);
} 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_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "blurb";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "blurb";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = to!string(an_object["lev"]);
+ node_int_["heading_lev_markup"] = to!int(an_object["lev_markup_number"]); // make int, remove need to conv
+ node_int_["heading_lev_collapsed"] = to!int(an_object["lev_collapsed_number"]); // make int, remove need to conv
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_blurb_section ~=
set_abstract_object.contents_heading(
to!string(line), // an_object["substantive"],
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- to!string(an_object["lev"]),
- to!int(an_object["lev_markup_number"]),
- to!int(an_object["lev_collapsed_number"]),
- node_,
);
} else {
_para_match_(line, an_object, an_object_key, indent, bullet, type, line_occur);
@@ -701,7 +703,8 @@ _block_flag_line_empty_(
the_document_body_section,
bookindex_unordered_hashes,
obj_cite_number,
- _node,
+ _node_str,
+ _node_int,
cntr,
type,
obj_cite_number_poem,
@@ -761,19 +764,22 @@ if ((type["heading"] == State.on)
html_segnames_ptr = html_segnames_ptr_cntr;
html_segnames_ptr_cntr++;
}
- _node =
+ auto _node_t =
node_construct.node_emitter_heading(
- an_object["lev_markup_number"],
- an_object["lev_collapsed_number"],
- segment_anchor_tag_that_object_belongs_to,
- obj_cite_number,
- cntr,
- heading_ptr,
- an_object["is"],
- html_segnames_ptr,
- ); // heading
+ an_object["lev"], // string
+ an_object["lev_markup_number"], // string
+ an_object["lev_collapsed_number"], // string
+ segment_anchor_tag_that_object_belongs_to, // string
+ obj_cite_number, // int
+ cntr, // int
+ heading_ptr, // int
+ an_object["is"], // string
+ html_segnames_ptr, // int
+ );
+ _node_str = _node_t[0];
+ _node_int = _node_t[1];
an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
++heading_ptr;
debug(segments) {
writeln(an_object["lev_markup_number"]);
@@ -782,13 +788,9 @@ if ((type["heading"] == State.on)
the_document_body_section ~=
set_abstract_object.contents_heading(
an_object["substantive"],
- an_object["attrib"],
- obj_cite_number,
+ _node_str,
+ _node_int,
anchor_tags,
- to!string(an_object["lev"]),
- to!int(an_object["lev_markup_number"]),
- to!int(an_object["lev_collapsed_number"]),
- _node,
);
// track previous heading and make assertions
debug(objectrelated1) { // check
@@ -813,7 +815,7 @@ if ((type["heading"] == State.on)
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "para";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -822,12 +824,14 @@ if ((type["heading"] == State.on)
heading_ptr-1,
an_object["is"],
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_para(
an_object["is"],
@@ -873,16 +877,16 @@ if (the_document_body_section.length > 0) {
type["glossary_section"] = State.off;
type["blurb_section"] = State.off;
}
- previous_length = the_document_body_section.length;
+ previous_length = to!int(the_document_body_section.length);
if (
match(the_document_body_section[$-1].object,
rgx.inline_notes_delimiter_al_regular_number_note)
) {
- previous_count=the_document_body_section.length -1;
+ previous_count=to!int(the_document_body_section.length -1);
note_section.gather_notes_for_endnote_section(
the_document_body_section,
segment_anchor_tag_that_object_belongs_to,
- the_document_body_section.length-1,
+ to!int(the_document_body_section.length-1),
);
}
}
@@ -937,21 +941,21 @@ debug(endnotes) {
#+BEGIN_SRC d
if (an_object["glossary_nugget"].length == 0) {
writeln("no gloss");
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "glossary";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_glossary_section ~=
set_abstract_object.contents_heading(
"(skip) there is no Glossary section", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
} else {
writeln("gloss");
@@ -977,54 +981,54 @@ auto biblio_ordered =
#+name: abs_post
#+BEGIN_SRC d
if (biblio_ordered.length > 0) {
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bibliography";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_bibliography_section ~=
set_abstract_object.contents_heading(
"Bibliography", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bibliography";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "bibliography";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_bibliography_section ~=
set_abstract_object.contents_heading(
- "Bibliography", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ "Bibliography",
+ node_str_,
+ node_int_,
["bibliography"], // anchor tag
- "1", // lev
- 4, // lev_int_markup
- 2, // lev_int_collapsed
- node_,
);
} else {
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bibliography";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_bibliography_section ~=
set_abstract_object.contents_heading(
"(skip) there is no Bibliography", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
}
#+END_SRC
@@ -1130,21 +1134,21 @@ debug(bookindex) { // bookindex
#+BEGIN_SRC d
if (an_object["blurb_nugget"].length == 0) {
writeln("no blurb");
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "blurb";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_blurb_section ~=
set_abstract_object.contents_heading(
"(skip) there is no Blurb section", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
} else {
writeln("blurb");
@@ -1897,7 +1901,7 @@ void _poem_block_(
char[] line,
ref string[string] an_object,
ref int[string] type,
- ref long cntr,
+ ref int cntr,
string[string] obj_cite_number_poem,
string[string][string] dochead_make_aa,
) {
@@ -1934,7 +1938,7 @@ void _poem_block_(
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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -1973,7 +1977,7 @@ void _poem_block_(
}
processing.remove("verse");
an_object["is"] = "verse";
- _node = node_construct.node_emitter(
+ auto _node_t = node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -1981,12 +1985,14 @@ void _poem_block_(
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -2023,7 +2029,7 @@ void _poem_block_(
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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -2061,7 +2067,7 @@ void _poem_block_(
}
processing.remove("verse");
an_object["is"] = "verse";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -2070,12 +2076,14 @@ void _poem_block_(
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -2266,8 +2274,9 @@ void _block_flag_line_empty_(
ref ObjComposite[] the_document_body_section,
ref string[][string][string] bookindex_unordered_hashes,
ref int obj_cite_number,
- ref string[string][string] _node,
- ref long cntr,
+ ref string[string] _node_str,
+ ref int[string] _node_int,
+ ref int cntr,
ref int[string] type,
string[string] obj_cite_number_poem,
string[string][string] dochead_make_aa,
@@ -2290,7 +2299,7 @@ void _block_flag_line_empty_(
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "code";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -2299,12 +2308,14 @@ void _block_flag_line_empty_(
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block_code(
an_object["is"],
@@ -2323,8 +2334,8 @@ void _block_flag_line_empty_(
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "verse"; // check also
- _node =
- node_construct.node_emitter(
+ auto _node_t =
+ node_construct.node_emitter( //
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -2332,12 +2343,15 @@ void _block_flag_line_empty_(
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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
+ _node_str,
+ _node_int,
); // bookindex
object_reset(an_object);
processing.remove("verse");
@@ -2351,7 +2365,7 @@ void _block_flag_line_empty_(
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "table";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -2360,12 +2374,14 @@ void _block_flag_line_empty_(
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -2386,7 +2402,7 @@ void _block_flag_line_empty_(
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "group";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -2395,12 +2411,14 @@ void _block_flag_line_empty_(
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -2420,7 +2438,7 @@ void _block_flag_line_empty_(
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "block";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -2429,12 +2447,14 @@ void _block_flag_line_empty_(
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -2455,8 +2475,8 @@ void _block_flag_line_empty_(
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "quote";
- _node =
- node_construct.node_emitter(
+ auto _node_t =
+ node_construct.node_emitter( //
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -2464,12 +2484,14 @@ void _block_flag_line_empty_(
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -3418,12 +3440,12 @@ private:
) {
if (dochead_make_aa["make"]["num_top"].length > 0) {
if (!(match(munge_, rgx.heading_anchor_tag))) {
- static __gshared uint heading_num_top_level=9;
- static __gshared uint heading_num_depth=2;
- static __gshared uint heading_num_0 = 0;
- static __gshared uint heading_num_1 = 0;
- static __gshared uint heading_num_2 = 0;
- static __gshared uint heading_num_3 = 0;
+ static __gshared int heading_num_top_level=9;
+ static __gshared int heading_num_depth=2;
+ static __gshared int heading_num_0 = 0;
+ static __gshared int heading_num_1 = 0;
+ static __gshared int heading_num_2 = 0;
+ static __gshared int heading_num_3 = 0;
static __gshared string heading_number_auto_composite = "";
if (heading_num_top_level==9) {
if (dochead_make_aa["make"]["num_depth"].length > 0) {
@@ -3550,7 +3572,7 @@ private:
"$1~" ~ "s" ~ m.captures[1] ~ " ");
}
} else if (lev_ == "1") { // (if not successful) manufacture a unique anchor tag for lev=="1"
- static __gshared uint heading_num_lev1 = 0;
+ static __gshared int heading_num_lev1 = 0;
heading_num_lev1 ++;
munge_=replaceFirst(munge_, rgx.heading_marker_missing_tag,
"$1~" ~ "x" ~ to!string(heading_num_lev1) ~ " ");
@@ -3633,14 +3655,16 @@ struct ObjAttributes {
string obj_attributes(
string obj_is_,
string obj_raw,
- string[string][string] _node
+ string[string] _node_str,
+ int[string] _node_int
)
in { }
body {
scope(exit) {
destroy(obj_is_);
destroy(obj_raw);
- destroy(_node);
+ destroy(_node_str);
+ destroy(_node_int);
}
_obj_attrib.remove("json");
_obj_attrib["json"] ="{";
@@ -3680,7 +3704,7 @@ struct ObjAttributes {
break;
}
_obj_attrib["json"] ~=" }";
- _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node);
+ _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node_str, _node_int); // check
debug(structattrib) {
if (oa_j["is"].str() == "heading") {
writeln(_obj_attrib["json"]);
@@ -3889,23 +3913,24 @@ struct ObjAttributes {
string _set_additional_values_parse_as_json(
string _obj_attrib,
string obj_is_,
- string[string][string] _node
+ string[string] _node_str,
+ int[string] _node_int
) { //
JSONValue oa_j = parseJSON(_obj_attrib);
assert(
(oa_j.type == JSON_TYPE.OBJECT)
);
if (obj_is_ == "heading") {
- oa_j.object["obj_cite_number"] = _node["object"]["obj_cite_number"];
- oa_j.object["lev_markup_number"] = _node["heading"]["lev_markup_number"];
- oa_j.object["lev_collapsed_number"] = _node["heading"]["lev_collapsed_number"];
+ oa_j.object["obj_cite_number"] = _node_str["ocn"];
+ oa_j.object["lev_markup_number"] = _node_int["heading_lev_markup"];
+ oa_j.object["lev_collapsed_number"] = _node_int["heading_lev_collapsed"];
oa_j.object["heading_ptr"] =
- _node["object"]["heading_ptr"]; // check
+ _node_int["ptr_heading"];
oa_j.object["doc_object_ptr"] =
- _node["object"]["doc_object_ptr"]; // check
+ _node_int["ptr_doc_object"];
}
- oa_j.object["parent_obj_cite_number"] = _node["object"]["parent_obj_cite_number"];
- oa_j.object["parent_lev_markup_number"] = _node["object"]["parent_lev_markup_number"];
+ oa_j.object["parent_obj_cite_number"] = _node_int["parent_ocn"];
+ oa_j.object["parent_lev_markup_number"] = _node_int["parent_lev_markup"];
_obj_attrib = oa_j.toString();
return _obj_attrib;
}
@@ -4093,74 +4118,59 @@ struct BookIndexReportSection {
auto mainkeys =
bookindex_unordered_hashes.byKey.array.sort().release;
ObjComposite[][string] bookindex_section;
- auto node_ = node_metadata;
+ auto node_int_ = node_metadata_int;
+ auto node_str_ = node_metadata_str;
if ((mainkeys.length > 0)
&& (opt_action_bool["backmatter"] && opt_action_bool["section_bookindex"])) {
string bi_tmp_seg, bi_tmp_scroll;
- attrib="";
- lev="B";
- lev_int_markup=1;
- lev_int_collapsed=1;
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bookindex";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
bookindex_section["scroll"] ~=
set_abstract_object.contents_heading(
"Book Index",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
[],
- to!string(lev),
- lev_int_markup,
- lev_int_collapsed,
- node_,
);
bookindex_section["seg"] ~=
set_abstract_object.contents_heading(
"Book Index",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
[],
- to!string(lev),
- lev_int_markup,
- lev_int_collapsed,
- node_,
);
++obj_cite_number;
++mkn;
// 1~ Index
- attrib="";
- lev="1";
- lev_int_markup=4;
- lev_int_collapsed=2;
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bookindex";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "bookindex";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
bookindex_section["scroll"] ~=
set_abstract_object.contents_heading(
"Index",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
["book_index"],
- to!string(lev),
- lev_int_markup,
- lev_int_collapsed,
- node_,
);
bookindex_section["seg"] ~=
set_abstract_object.contents_heading(
"Index",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
["book_index"],
- to!string(lev),
- lev_int_markup,
- lev_int_collapsed,
- node_,
);
++obj_cite_number;
++mkn;
@@ -4223,32 +4233,28 @@ struct BookIndexReportSection {
++mkn;
}
} else { // no book index, (figure out what to do here)
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bookindex";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
bookindex_section["scroll"] ~=
set_abstract_object.contents_heading(
"(skip) there is no Book Index",
- "", // attrib,
- 0,
+ node_str_,
+ node_int_,
[""],
- "B",
- 1,
- 1,
- node_,
);
bookindex_section["seg"] ~=
set_abstract_object.contents_heading(
"(skip) there is no Book Index",
- "", // attrib,
- 0,
+ node_str_,
+ node_int_,
[""],
- "B",
- 1,
- 1,
- node_,
);
}
auto t = tuple(bookindex_section, obj_cite_number);
@@ -4269,7 +4275,7 @@ struct BookIndexReportSection {
#+BEGIN_SRC d
struct NotesSection {
string[string] object_notes;
- long previous_count;
+ int previous_count;
int mkn;
auto rgx = Rgx();
#+END_SRC
@@ -4281,7 +4287,7 @@ struct NotesSection {
private auto gather_notes_for_endnote_section(
ObjComposite[] contents_am,
string segment_anchor_tag_that_object_belongs_to,
- ulong cntr,
+ int cntr,
)
in {
// endnotes/ footnotes for
@@ -4373,102 +4379,83 @@ struct NotesSection {
string lev, lev_markup_number, lev_collapsed_number;
string attrib;
int[string] indent;
- auto node_ = node_metadata;
+ auto node_int_ = node_metadata_int;
+ auto node_str_ = node_metadata_str;
if ((endnotes_["seg"].length > 0)
&& (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"])) {
- attrib="";
- lev="B";
- lev_markup_number="1";
- lev_collapsed_number="1";
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "endnotes";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_endnotes_section["seg"] ~=
set_abstract_object.contents_heading(
"Endnotes",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
[],
- to!string(lev),
- to!int(lev_markup_number),
- to!int(lev_collapsed_number),
- node_,
);
the_endnotes_section["scroll"] ~=
set_abstract_object.contents_heading(
"Endnotes",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
[],
- to!string(lev),
- to!int(lev_markup_number),
- to!int(lev_collapsed_number),
- node_,
);
++obj_cite_number;
++mkn;
- attrib="";
- lev="1";
- lev_markup_number="4";
- lev_collapsed_number="2";
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "endnotes";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "endnotes";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_endnotes_section["seg"] ~=
set_abstract_object.contents_heading(
"Endnotes",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
["endnotes"],
- to!string(lev),
- to!int(lev_markup_number),
- to!int(lev_collapsed_number),
- node_,
);
the_endnotes_section["scroll"] ~=
set_abstract_object.contents_heading(
"Endnotes",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
["endnotes"],
- to!string(lev),
- to!int(lev_markup_number),
- to!int(lev_collapsed_number),
- node_,
);
++obj_cite_number;
++mkn;
} else {
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "endnotes";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_endnotes_section["seg"] ~=
set_abstract_object.contents_heading(
"(skip) there are no Endnotes",
- "", // attrib,
- 0,
+ node_str_,
+ node_int_,
[""],
- "B",
- 1,
- 1,
- node_,
);
the_endnotes_section["scroll"] ~=
set_abstract_object.contents_heading(
"(skip) there are no Endnotes",
- "", // attrib,
- 0,
+ node_str_,
+ node_int_,
[""],
- "B",
- 1,
- 1,
- node_,
);
}
if (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"]) {
@@ -4621,18 +4608,17 @@ struct NodeStructureMetadata {
int lv, lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7;
int obj_cite_number;
int[string] p_; // p_ parent_
- string[string][string] _node;
#+END_SRC
**** TODO node metadata emitter
#+name: ao_emitters_metadata
#+BEGIN_SRC d
- string[string][string] node_emitter(
+ auto node_emitter(
string lev_markup_number,
string segment_anchor_tag,
int obj_cite_number_,
- long cntr_,
+ int cntr_,
int ptr_,
string is_
)
@@ -4658,23 +4644,22 @@ struct NodeStructureMetadata {
p_["lev_markup_number"] = DocStructMarkupHeading.h_text_1;
p_["obj_cite_number"] = lv4;
}
- auto _node = [
- "object" : [
- "is" : is_,
- "heading_ptr" : to!string(ptr_),
- "doc_object_ptr" : to!string(cntr_),
- "obj_cite_number" : to!string(obj_cite_number_),
- "segment_anchor_tag" : to!string(segment_anchor_tag),
- "parent_obj_cite_number" : to!string(p_["obj_cite_number"]),
- "parent_lev_markup_number" : to!string(p_["lev_markup_number"]),
- ],
- "heading" : [
- "html_segnames_ptr" : "",
- "lev_markup_number" : "",
- "lev_collapsed_number" : "",
- // "ancestors" : "",
- // "open_headings_to_close" : "",
- ]
+ string[string] _node_str = [
+ "is" : is_,
+ "ocn" : to!string(obj_cite_number_),
+ "marked_up_lev" : "",
+ "segment_anchor_tag" : to!string(segment_anchor_tag),
+ "attrib" : "",
+ ];
+ int[string] _node_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"],
];
debug(node) {
if (match(lev_markup_number, rgx.levels_numbered_headings)) {
@@ -4683,10 +4668,14 @@ struct NodeStructureMetadata {
writeln("- ", to!string(_node));
}
}
- assert(to!int(_node["object"]["parent_lev_markup_number"]) >= 4);
- assert(to!int(_node["object"]["parent_lev_markup_number"]) <= 7);
- assert(to!int(_node["object"]["parent_obj_cite_number"]) >= 0); // hmm, perhaps
- return _node;
+ assert(_node_int["parent_lev_markup"] >= 4); //
+ assert(_node_int["parent_lev_markup"] <= 7); //
+ assert(_node_int["parent_ocn"] >= 0); // hmm, perhaps //
+ auto t = tuple(
+ _node_str,
+ _node_int,
+ );
+ return t;
}
invariant() {
}
@@ -4696,15 +4685,16 @@ struct NodeStructureMetadata {
#+name: ao_emitters_metadata
#+BEGIN_SRC d
- string[string][string] node_emitter_heading(
+ auto node_emitter_heading(
+ string lev,
string lev_markup_number,
string lev_collapsed_number,
string segment_anchor_tag,
int obj_cite_number_,
- long cntr_,
+ int cntr_,
int ptr_,
string is_,
- uint html_segnames_ptr,
+ int html_segnames_ptr,
)
in {
auto rgx = Rgx();
@@ -4803,23 +4793,22 @@ struct NodeStructureMetadata {
default:
break;
}
- auto _node = [
- "object" : [
- "is" : is_,
- "heading_ptr" : to!string(ptr_),
- "doc_object_ptr" : to!string(cntr_),
- "obj_cite_number" : to!string(obj_cite_number_),
- "segment_anchor_tag" : to!string(segment_anchor_tag),
- "parent_obj_cite_number" : to!string(p_["obj_cite_number"]),
- "parent_lev_markup_number" : to!string(p_["lev_markup_number"]),
- ],
- "heading" : [
- "html_segnames_ptr" : ((lev_markup_number == "4") ? (to!string(html_segnames_ptr)) : ""),
- "lev_markup_number" : to!string(lev_markup_number),
- "lev_collapsed_number" : to!string(lev_collapsed_number),
- // "ancestors" : to!string(ancestors),
- // "open_headings_to_close" : to!string(open_headings_to_close),
- ]
+ string[string] _node_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_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"],
];
debug(node) {
if (match(lev_markup_number, rgx.levels_numbered_headings)) {
@@ -4831,37 +4820,44 @@ struct NodeStructureMetadata {
writeln("* ", to!string(_node));
}
}
- assert(to!int(_node["object"]["parent_lev_markup_number"]) <= 7);
- assert(to!int(_node["object"]["parent_obj_cite_number"]) >= 0);
+ assert(_node_int["parent_lev_markup"] <= 7);
+ assert(_node_int["parent_ocn"] >= 0);
if (match(lev_markup_number, rgx.levels_numbered_headings)) {
- assert(to!int(_node["heading"]["lev_markup_number"]) <= 7);
- assert(to!int(_node["object"]["obj_cite_number"]) >= 0);
- if (to!int(_node["object"]["parent_lev_markup_number"]) > 0) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) < to!int(_node["heading"]["lev_markup_number"]));
- if (to!int(_node["object"]["obj_cite_number"]) != 0) {
- assert(to!int(_node["object"]["parent_obj_cite_number"]) < to!int(_node["object"]["obj_cite_number"]));
+ assert(_node_int["heading_lev_markup"] <= 7); // issues
+ assert(to!int(_node_str["ocn"]) >= 0);
+ if (_node_int["parent_lev_markup"] > 0) {
+ assert(_node_int["parent_lev_markup"] < _node_int["heading_lev_markup"]);
+ if (to!int(_node_str["ocn"]) != 0) {
+ assert(_node_int["parent_ocn"] < to!int(_node_str["ocn"]));
}
}
- if (to!int(_node["heading"]["lev_markup_number"]) == 0) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_sect_A);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_sect_B) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_sect_A);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_sect_C) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_sect_B);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_sect_D) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_sect_C);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_text_1) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) <= DocStructMarkupHeading.h_sect_D);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_text_2) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_text_1);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_text_3) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_text_2);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_text_4) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_text_3);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_text_5) {
+ if (_node_int["heading_lev_markup"] == 0) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_B) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_C) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_B);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_D) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_C);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_1) {
+ assert(_node_int["parent_lev_markup"] <= DocStructMarkupHeading.h_sect_D);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_2) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_1);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_3) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_2);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_4) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_3);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_5) {
+ // // writeln(to!int(_node_int["parent_lev_markup"]));
+ // // assert(to!int(_node_int["parent_lev_markup"]) >= 4);
+ // // assert(to!int(_node_int["parent_lev_markup"]) <= 7);
}
}
- return _node;
+ auto t = tuple(
+ _node_str,
+ _node_int,
+ );
+ return t;
}
invariant() {
}
@@ -5205,25 +5201,21 @@ auto contents_comment(in string object) {
#+name: ao_object_setter_heading
#+BEGIN_SRC d
auto contents_heading(
- in string object,
- in string attrib,
- in int obj_cite_number,
- in string[] tags,
- in string lev,
- in int lev_int_markup,
- in int lev_int_collapsed,
- in string[string][string] _node,
+ in string object,
+ in string[string] _node_str,
+ in int[string] _node_int,
+ in string[] tags,
) {
ObjComposite object_set;
object_set.use = "content";
object_set.of = "para";
object_set.is_a = "heading";
object_set.object = object;
- object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ object_set.obj_cite_number = _node_str["ocn"];
object_set.anchor_tags ~= tags;
- object_set.heading_attrib.lev = lev;
- object_set.heading_attrib.lev_int_markup = lev_int_markup;
- object_set.heading_attrib.lev_int_collapsed = lev_int_collapsed;
+ object_set.heading_attrib.lev = _node_str["marked_up_lev"];
+ object_set.heading_attrib.lev_int_markup = _node_int["heading_lev_markup"];
+ object_set.heading_attrib.lev_int_collapsed = _node_int["heading_lev_collapsed"];
return object_set;
}
#+END_SRC
@@ -5249,7 +5241,6 @@ auto contents_para(
object_set.para_attrib.indent_start = to!int(indent["hang_position"]);
object_set.para_attrib.indent_rest = to!int(indent["base_position"]);
object_set.para_attrib.bullet = false; // bullet;
- // object_set.node_structure.node = _node;
return object_set;
}
#+END_SRC
@@ -5320,7 +5311,6 @@ auto contents_block(
object_set.is_a = type;
object_set.object = object;
object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- // object_set.node_structure.node = _node;
return object_set;
}
#+END_SRC
@@ -5342,7 +5332,6 @@ auto contents_block_code(
object_set.block_attrib.syntax = attrib_language_syntax;
object_set.object = object;
object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- // object_set.node_structure.node = _node;
return object_set;
}
#+END_SRC
@@ -5352,10 +5341,11 @@ auto contents_block_code(
#+name: ao_object_setter_block_obj_cite_number_string
#+BEGIN_SRC d
auto contents_block_obj_cite_number_string(
- in string type,
- in string object,
- in string obj_cite_number,
- in string[string][string] _node
+ in string type,
+ in string object,
+ in string obj_cite_number,
+ in string[string] _node_str,
+ in int[string] _node_int,
) {
ObjComposite object_set;
object_set.use = "content";
@@ -5363,7 +5353,6 @@ auto contents_block_obj_cite_number_string(
object_set.is_a = type;
object_set.object = object;
object_set.obj_cite_number = obj_cite_number;
- object_set.node_structure.node = _node;
return object_set;
}
#+END_SRC
diff --git a/org/ao_defaults.org b/org/ao_defaults.org
index 4f9777c..39cfff8 100644
--- a/org/ao_defaults.org
+++ b/org/ao_defaults.org
@@ -392,26 +392,28 @@ template SiSUrgxInitFlags() {
#+name: ao_defaults_templates
#+BEGIN_SRC d
template SiSUnode() {
- string[string][string] node_metadata() {
- auto node_ = [
- "object" : [
- "is" : "",
- "heading_ptr" : "",
- "doc_object_ptr" : "",
- "obj_cite_number" : "",
- "segment_anchor_tag" : "",
- "parent_obj_cite_number" : "",
- "parent_lev_markup_number" : "",
- ],
- "heading" : [
- "html_segnames_ptr" : "",
- "lev_markup_number" : "",
- "lev_collapsed_number" : "",
- // "ancestors" : "",
- // "open_headings_to_close" : "",
- ],
+ string[string] node_metadata_str() {
+ auto _node = [
+ "is" : "",
+ "ocn" : "",
+ "marked_up_lev" : "",
+ "segment_anchor_tag" : "",
+ "attrib" : "",
+ ];
+ return _node;
+ }
+ int[string] node_metadata_int() {
+ auto _node = [
+ "ocn" : 0, // decide whether to use or keep?
+ "ptr_doc_object" : 0,
+ "ptr_html_segnames" : 0,
+ "ptr_heading" : 0,
+ "heading_lev_markup" : 9,
+ "heading_lev_collapsed" : 9,
+ "parent_ocn" : 0,
+ "parent_lev_markup" : 9,
];
- return node_;
+ return _node;
}
}
#+END_SRC
diff --git a/org/sdp.org b/org/sdp.org
index 6a2c0b7..fad6f12 100644
--- a/org/sdp.org
+++ b/org/sdp.org
@@ -24,7 +24,7 @@ struct Version {
int minor;
int patch;
}
-enum ver = Version(0, 9, 3);
+enum ver = Version(0, 9, 4);
#+END_SRC
* sdp.d sisu document parser :sdp.d:
diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d
index c2cf32b..5431b3d 100644
--- a/src/sdp/ao_abstract_doc_source.d
+++ b/src/sdp/ao_abstract_doc_source.d
@@ -48,12 +48,12 @@ template SiSUdocAbstraction() {
JSONValue[] bib_arr_json;
int bib_entry;
/+ counters +/
- long cntr, previous_count, previous_length;
+ int cntr, previous_count, previous_length;
int[string] line_occur;
int verse_line, heading_ptr;
string[] html_segnames=[];
- uint html_segnames_ptr=0;
- uint html_segnames_ptr_cntr=0;
+ int html_segnames_ptr=0;
+ int html_segnames_ptr_cntr=0;
/+ paragraph attributes +/
int[string] indent;
bool bullet = true;
@@ -77,7 +77,8 @@ template SiSUdocAbstraction() {
return bookindex_extract_hash.bookindex_nugget_hash(bookindex_section, obj_cite_number);
}
/+ node +/
- string[string][string] _node;
+ string[string] _node_str;
+ int[string] _node_int;
auto node_construct = NodeStructureMetadata();
/+ ↓ abstract marked up document +/
auto abstract_doc_source(
@@ -100,7 +101,8 @@ template SiSUdocAbstraction() {
destroy(processing);
destroy(biblio_arr_json);
}
- auto node_ = node_metadata;
+ auto node_int_ = node_metadata_int;
+ auto node_str_ = node_metadata_str;
line_occur = [
"heading" : 0,
"para" : 0,
@@ -158,21 +160,21 @@ template SiSUdocAbstraction() {
string toc_txt_;
an_object["glossary_nugget"] = "";
an_object["blurb_nugget"] = "";
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "toc";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "toc";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
auto toc_head =
set_abstract_object.contents_heading(
"Table of Contents", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
["toc"], // anchor tag
- "1", // lev
- 4, // lev_int_markup
- 2, // lev_int_collapsed
- node_,
);
the_table_of_contents_section = [
"seg": [toc_head],
@@ -261,37 +263,37 @@ template SiSUdocAbstraction() {
line_occur["para"] = State.off;
an_object_key="glossary_nugget"; //
if (matchFirst(line, rgx.heading_glossary)) {
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "glossary";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_glossary_section ~=
set_abstract_object.contents_heading(
"Glossary", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "glossary";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "glossary";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_glossary_section ~=
set_abstract_object.contents_heading(
"Glossary", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
["glossary"], // anchor tag
- "1", // lev
- 4, // lev_int_markup
- 2, // lev_int_collapsed
- node_,
);
// } else if (matchFirst(line, rgx.heading)) {
// _heading_matched_(line, line_occur, an_object, an_object_key, lv, collapsed_lev, type, dochead_meta_aa); // levels?
@@ -334,56 +336,56 @@ template SiSUdocAbstraction() {
line_occur["para"] = State.off;
an_object_key="blurb_nugget";
if (matchFirst(line, rgx.heading_blurb)) {
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "blurb";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_blurb_section ~=
set_abstract_object.contents_heading(
"Blurb", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "blurb";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "blurb";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_blurb_section ~=
set_abstract_object.contents_heading(
"Blurb", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
["blurb"], // anchor tag
- "1", // lev
- 4, // lev_int_markup
- 2, // lev_int_collapsed
- node_,
);
} 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_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "blurb";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "blurb";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = to!string(an_object["lev"]);
+ node_int_["heading_lev_markup"] = to!int(an_object["lev_markup_number"]); // make int, remove need to conv
+ node_int_["heading_lev_collapsed"] = to!int(an_object["lev_collapsed_number"]); // make int, remove need to conv
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_blurb_section ~=
set_abstract_object.contents_heading(
to!string(line), // an_object["substantive"],
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- to!string(an_object["lev"]),
- to!int(an_object["lev_markup_number"]),
- to!int(an_object["lev_collapsed_number"]),
- node_,
);
} else {
_para_match_(line, an_object, an_object_key, indent, bullet, type, line_occur);
@@ -538,7 +540,8 @@ template SiSUdocAbstraction() {
the_document_body_section,
bookindex_unordered_hashes,
obj_cite_number,
- _node,
+ _node_str,
+ _node_int,
cntr,
type,
obj_cite_number_poem,
@@ -587,19 +590,22 @@ template SiSUdocAbstraction() {
html_segnames_ptr = html_segnames_ptr_cntr;
html_segnames_ptr_cntr++;
}
- _node =
+ auto _node_t =
node_construct.node_emitter_heading(
- an_object["lev_markup_number"],
- an_object["lev_collapsed_number"],
- segment_anchor_tag_that_object_belongs_to,
- obj_cite_number,
- cntr,
- heading_ptr,
- an_object["is"],
- html_segnames_ptr,
- ); // heading
+ an_object["lev"], // string
+ an_object["lev_markup_number"], // string
+ an_object["lev_collapsed_number"], // string
+ segment_anchor_tag_that_object_belongs_to, // string
+ obj_cite_number, // int
+ cntr, // int
+ heading_ptr, // int
+ an_object["is"], // string
+ html_segnames_ptr, // int
+ );
+ _node_str = _node_t[0];
+ _node_int = _node_t[1];
an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
++heading_ptr;
debug(segments) {
writeln(an_object["lev_markup_number"]);
@@ -608,13 +614,9 @@ template SiSUdocAbstraction() {
the_document_body_section ~=
set_abstract_object.contents_heading(
an_object["substantive"],
- an_object["attrib"],
- obj_cite_number,
+ _node_str,
+ _node_int,
anchor_tags,
- to!string(an_object["lev"]),
- to!int(an_object["lev_markup_number"]),
- to!int(an_object["lev_collapsed_number"]),
- _node,
);
// track previous heading and make assertions
debug(objectrelated1) { // check
@@ -633,7 +635,7 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "para";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -642,12 +644,14 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"],
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_para(
an_object["is"],
@@ -688,16 +692,16 @@ template SiSUdocAbstraction() {
type["glossary_section"] = State.off;
type["blurb_section"] = State.off;
}
- previous_length = the_document_body_section.length;
+ previous_length = to!int(the_document_body_section.length);
if (
match(the_document_body_section[$-1].object,
rgx.inline_notes_delimiter_al_regular_number_note)
) {
- previous_count=the_document_body_section.length -1;
+ previous_count=to!int(the_document_body_section.length -1);
note_section.gather_notes_for_endnote_section(
the_document_body_section,
segment_anchor_tag_that_object_belongs_to,
- the_document_body_section.length-1,
+ to!int(the_document_body_section.length-1),
);
}
}
@@ -734,21 +738,21 @@ template SiSUdocAbstraction() {
}
if (an_object["glossary_nugget"].length == 0) {
writeln("no gloss");
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "glossary";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_glossary_section ~=
set_abstract_object.contents_heading(
"(skip) there is no Glossary section", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
} else {
writeln("gloss");
@@ -764,54 +768,54 @@ template SiSUdocAbstraction() {
auto biblio_ordered =
biblio._bibliography_(biblio_unsorted_incomplete, bib_arr_json);
if (biblio_ordered.length > 0) {
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bibliography";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_bibliography_section ~=
set_abstract_object.contents_heading(
"Bibliography", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bibliography";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "bibliography";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_bibliography_section ~=
set_abstract_object.contents_heading(
- "Bibliography", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ "Bibliography",
+ node_str_,
+ node_int_,
["bibliography"], // anchor tag
- "1", // lev
- 4, // lev_int_markup
- 2, // lev_int_collapsed
- node_,
);
} else {
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bibliography";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_bibliography_section ~=
set_abstract_object.contents_heading(
"(skip) there is no Bibliography", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
}
string out_;
@@ -863,21 +867,21 @@ template SiSUdocAbstraction() {
}
if (an_object["blurb_nugget"].length == 0) {
writeln("no blurb");
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "blurb";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_blurb_section ~=
set_abstract_object.contents_heading(
"(skip) there is no Blurb section", // nugget/object
- "", // attrib
- 0, // obj_cite_number
+ node_str_,
+ node_int_,
[""], // anchor tag
- "B", // lev
- 1, // lev_int_markup
- 1, // lev_int_collapsed
- node_,
);
} else {
writeln("blurb");
@@ -1472,7 +1476,7 @@ template SiSUdocAbstraction() {
char[] line,
ref string[string] an_object,
ref int[string] type,
- ref long cntr,
+ ref int cntr,
string[string] obj_cite_number_poem,
string[string][string] dochead_make_aa,
) {
@@ -1509,7 +1513,7 @@ template SiSUdocAbstraction() {
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -1548,7 +1552,7 @@ template SiSUdocAbstraction() {
}
processing.remove("verse");
an_object["is"] = "verse";
- _node = node_construct.node_emitter(
+ auto _node_t = node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -1556,12 +1560,14 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -1598,7 +1604,7 @@ template SiSUdocAbstraction() {
an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];
anchor_tags = substantive_object_and_anchor_tags_tuple[1];
an_object["attrib"] =
- obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -1636,7 +1642,7 @@ template SiSUdocAbstraction() {
}
processing.remove("verse");
an_object["is"] = "verse";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -1645,12 +1651,14 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -1811,8 +1819,9 @@ template SiSUdocAbstraction() {
ref ObjComposite[] the_document_body_section,
ref string[][string][string] bookindex_unordered_hashes,
ref int obj_cite_number,
- ref string[string][string] _node,
- ref long cntr,
+ ref string[string] _node_str,
+ ref int[string] _node_int,
+ ref int cntr,
ref int[string] type,
string[string] obj_cite_number_poem,
string[string][string] dochead_make_aa,
@@ -1835,7 +1844,7 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "code";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -1844,12 +1853,14 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block_code(
an_object["is"],
@@ -1868,8 +1879,8 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "verse"; // check also
- _node =
- node_construct.node_emitter(
+ auto _node_t =
+ node_construct.node_emitter( //
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -1877,12 +1888,15 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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
+ _node_str,
+ _node_int,
); // bookindex
object_reset(an_object);
processing.remove("verse");
@@ -1896,7 +1910,7 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "table";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -1905,12 +1919,14 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -1931,7 +1947,7 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "group";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -1940,12 +1956,14 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -1965,7 +1983,7 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "block";
- _node =
+ auto _node_t =
node_construct.node_emitter(
content_non_header,
segment_anchor_tag_that_object_belongs_to,
@@ -1974,12 +1992,14 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -2000,8 +2020,8 @@ template SiSUdocAbstraction() {
bookindex_unordered_hashes =
bkidx_hash(an_object["bookindex_nugget"], obj_cite_number);
an_object["is"] = "quote";
- _node =
- node_construct.node_emitter(
+ auto _node_t =
+ node_construct.node_emitter( //
content_non_header,
segment_anchor_tag_that_object_belongs_to,
obj_cite_number,
@@ -2009,12 +2029,14 @@ template SiSUdocAbstraction() {
heading_ptr-1,
an_object["is"]
);
+ _node_str = _node_t[0];
+ _node_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);
+ obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int);
the_document_body_section ~=
set_abstract_object.contents_block(
an_object["is"],
@@ -2889,12 +2911,12 @@ template SiSUdocAbstraction() {
) {
if (dochead_make_aa["make"]["num_top"].length > 0) {
if (!(match(munge_, rgx.heading_anchor_tag))) {
- static __gshared uint heading_num_top_level=9;
- static __gshared uint heading_num_depth=2;
- static __gshared uint heading_num_0 = 0;
- static __gshared uint heading_num_1 = 0;
- static __gshared uint heading_num_2 = 0;
- static __gshared uint heading_num_3 = 0;
+ static __gshared int heading_num_top_level=9;
+ static __gshared int heading_num_depth=2;
+ static __gshared int heading_num_0 = 0;
+ static __gshared int heading_num_1 = 0;
+ static __gshared int heading_num_2 = 0;
+ static __gshared int heading_num_3 = 0;
static __gshared string heading_number_auto_composite = "";
if (heading_num_top_level==9) {
if (dochead_make_aa["make"]["num_depth"].length > 0) {
@@ -3010,7 +3032,7 @@ template SiSUdocAbstraction() {
"$1~" ~ "s" ~ m.captures[1] ~ " ");
}
} else if (lev_ == "1") { // (if not successful) manufacture a unique anchor tag for lev=="1"
- static __gshared uint heading_num_lev1 = 0;
+ static __gshared int heading_num_lev1 = 0;
heading_num_lev1 ++;
munge_=replaceFirst(munge_, rgx.heading_marker_missing_tag,
"$1~" ~ "x" ~ to!string(heading_num_lev1) ~ " ");
@@ -3068,14 +3090,16 @@ template SiSUdocAbstraction() {
string obj_attributes(
string obj_is_,
string obj_raw,
- string[string][string] _node
+ string[string] _node_str,
+ int[string] _node_int
)
in { }
body {
scope(exit) {
destroy(obj_is_);
destroy(obj_raw);
- destroy(_node);
+ destroy(_node_str);
+ destroy(_node_int);
}
_obj_attrib.remove("json");
_obj_attrib["json"] ="{";
@@ -3115,7 +3139,7 @@ template SiSUdocAbstraction() {
break;
}
_obj_attrib["json"] ~=" }";
- _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node);
+ _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node_str, _node_int); // check
debug(structattrib) {
if (oa_j["is"].str() == "heading") {
writeln(_obj_attrib["json"]);
@@ -3251,23 +3275,24 @@ template SiSUdocAbstraction() {
string _set_additional_values_parse_as_json(
string _obj_attrib,
string obj_is_,
- string[string][string] _node
+ string[string] _node_str,
+ int[string] _node_int
) { //
JSONValue oa_j = parseJSON(_obj_attrib);
assert(
(oa_j.type == JSON_TYPE.OBJECT)
);
if (obj_is_ == "heading") {
- oa_j.object["obj_cite_number"] = _node["object"]["obj_cite_number"];
- oa_j.object["lev_markup_number"] = _node["heading"]["lev_markup_number"];
- oa_j.object["lev_collapsed_number"] = _node["heading"]["lev_collapsed_number"];
+ oa_j.object["obj_cite_number"] = _node_str["ocn"];
+ oa_j.object["lev_markup_number"] = _node_int["heading_lev_markup"];
+ oa_j.object["lev_collapsed_number"] = _node_int["heading_lev_collapsed"];
oa_j.object["heading_ptr"] =
- _node["object"]["heading_ptr"]; // check
+ _node_int["ptr_heading"];
oa_j.object["doc_object_ptr"] =
- _node["object"]["doc_object_ptr"]; // check
+ _node_int["ptr_doc_object"];
}
- oa_j.object["parent_obj_cite_number"] = _node["object"]["parent_obj_cite_number"];
- oa_j.object["parent_lev_markup_number"] = _node["object"]["parent_lev_markup_number"];
+ oa_j.object["parent_obj_cite_number"] = _node_int["parent_ocn"];
+ oa_j.object["parent_lev_markup_number"] = _node_int["parent_lev_markup"];
_obj_attrib = oa_j.toString();
return _obj_attrib;
}
@@ -3417,74 +3442,59 @@ template SiSUdocAbstraction() {
auto mainkeys =
bookindex_unordered_hashes.byKey.array.sort().release;
ObjComposite[][string] bookindex_section;
- auto node_ = node_metadata;
+ auto node_int_ = node_metadata_int;
+ auto node_str_ = node_metadata_str;
if ((mainkeys.length > 0)
&& (opt_action_bool["backmatter"] && opt_action_bool["section_bookindex"])) {
string bi_tmp_seg, bi_tmp_scroll;
- attrib="";
- lev="B";
- lev_int_markup=1;
- lev_int_collapsed=1;
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bookindex";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
bookindex_section["scroll"] ~=
set_abstract_object.contents_heading(
"Book Index",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
[],
- to!string(lev),
- lev_int_markup,
- lev_int_collapsed,
- node_,
);
bookindex_section["seg"] ~=
set_abstract_object.contents_heading(
"Book Index",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
[],
- to!string(lev),
- lev_int_markup,
- lev_int_collapsed,
- node_,
);
++obj_cite_number;
++mkn;
// 1~ Index
- attrib="";
- lev="1";
- lev_int_markup=4;
- lev_int_collapsed=2;
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bookindex";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "bookindex";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
bookindex_section["scroll"] ~=
set_abstract_object.contents_heading(
"Index",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
["book_index"],
- to!string(lev),
- lev_int_markup,
- lev_int_collapsed,
- node_,
);
bookindex_section["seg"] ~=
set_abstract_object.contents_heading(
"Index",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
["book_index"],
- to!string(lev),
- lev_int_markup,
- lev_int_collapsed,
- node_,
);
++obj_cite_number;
++mkn;
@@ -3547,32 +3557,28 @@ template SiSUdocAbstraction() {
++mkn;
}
} else { // no book index, (figure out what to do here)
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "bookindex";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
bookindex_section["scroll"] ~=
set_abstract_object.contents_heading(
"(skip) there is no Book Index",
- "", // attrib,
- 0,
+ node_str_,
+ node_int_,
[""],
- "B",
- 1,
- 1,
- node_,
);
bookindex_section["seg"] ~=
set_abstract_object.contents_heading(
"(skip) there is no Book Index",
- "", // attrib,
- 0,
+ node_str_,
+ node_int_,
[""],
- "B",
- 1,
- 1,
- node_,
);
}
auto t = tuple(bookindex_section, obj_cite_number);
@@ -3581,13 +3587,13 @@ template SiSUdocAbstraction() {
}
struct NotesSection {
string[string] object_notes;
- long previous_count;
+ int previous_count;
int mkn;
auto rgx = Rgx();
private auto gather_notes_for_endnote_section(
ObjComposite[] contents_am,
string segment_anchor_tag_that_object_belongs_to,
- ulong cntr,
+ int cntr,
)
in {
// endnotes/ footnotes for
@@ -3667,102 +3673,83 @@ template SiSUdocAbstraction() {
string lev, lev_markup_number, lev_collapsed_number;
string attrib;
int[string] indent;
- auto node_ = node_metadata;
+ auto node_int_ = node_metadata_int;
+ auto node_str_ = node_metadata_str;
if ((endnotes_["seg"].length > 0)
&& (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"])) {
- attrib="";
- lev="B";
- lev_markup_number="1";
- lev_collapsed_number="1";
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "endnotes";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_endnotes_section["seg"] ~=
set_abstract_object.contents_heading(
"Endnotes",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
[],
- to!string(lev),
- to!int(lev_markup_number),
- to!int(lev_collapsed_number),
- node_,
);
the_endnotes_section["scroll"] ~=
set_abstract_object.contents_heading(
"Endnotes",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
[],
- to!string(lev),
- to!int(lev_markup_number),
- to!int(lev_collapsed_number),
- node_,
);
++obj_cite_number;
++mkn;
- attrib="";
- lev="1";
- lev_markup_number="4";
- lev_collapsed_number="2";
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "endnotes";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "endnotes";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "1";
+ node_int_["heading_lev_markup"] = 4;
+ node_int_["heading_lev_collapsed"] = 2;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_endnotes_section["seg"] ~=
set_abstract_object.contents_heading(
"Endnotes",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
["endnotes"],
- to!string(lev),
- to!int(lev_markup_number),
- to!int(lev_collapsed_number),
- node_,
);
the_endnotes_section["scroll"] ~=
set_abstract_object.contents_heading(
"Endnotes",
- attrib,
- obj_cite_number,
+ node_str_,
+ node_int_,
["endnotes"],
- to!string(lev),
- to!int(lev_markup_number),
- to!int(lev_collapsed_number),
- node_,
);
++obj_cite_number;
++mkn;
} else {
- node_["object"]["is"] = "heading";
- node_["object"]["obj_cite_number"] = "0";
- node_["object"]["segment_anchor_tag"] = "endnotes";
- node_["object"]["parent_obj_cite_number"] = "1";
- node_["object"]["parent_lev_markup_number"] = "0";
+ node_str_["is"] = "heading";
+ node_str_["ocn"] = "0";
+ node_str_["segment_anchor_tag"] = "";
+ node_str_["attrib"] = "";
+ node_str_["marked_up_lev"] = "B";
+ node_int_["heading_lev_markup"] = 1;
+ node_int_["heading_lev_collapsed"] = 1;
+ node_int_["parent_ocn"] = 1;
+ node_int_["parent_lev_markup"] = 0;
the_endnotes_section["seg"] ~=
set_abstract_object.contents_heading(
"(skip) there are no Endnotes",
- "", // attrib,
- 0,
+ node_str_,
+ node_int_,
[""],
- "B",
- 1,
- 1,
- node_,
);
the_endnotes_section["scroll"] ~=
set_abstract_object.contents_heading(
"(skip) there are no Endnotes",
- "", // attrib,
- 0,
+ node_str_,
+ node_int_,
[""],
- "B",
- 1,
- 1,
- node_,
);
}
if (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"]) {
@@ -3865,12 +3852,11 @@ template SiSUdocAbstraction() {
int lv, lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7;
int obj_cite_number;
int[string] p_; // p_ parent_
- string[string][string] _node;
- string[string][string] node_emitter(
+ auto node_emitter(
string lev_markup_number,
string segment_anchor_tag,
int obj_cite_number_,
- long cntr_,
+ int cntr_,
int ptr_,
string is_
)
@@ -3896,23 +3882,22 @@ template SiSUdocAbstraction() {
p_["lev_markup_number"] = DocStructMarkupHeading.h_text_1;
p_["obj_cite_number"] = lv4;
}
- auto _node = [
- "object" : [
- "is" : is_,
- "heading_ptr" : to!string(ptr_),
- "doc_object_ptr" : to!string(cntr_),
- "obj_cite_number" : to!string(obj_cite_number_),
- "segment_anchor_tag" : to!string(segment_anchor_tag),
- "parent_obj_cite_number" : to!string(p_["obj_cite_number"]),
- "parent_lev_markup_number" : to!string(p_["lev_markup_number"]),
- ],
- "heading" : [
- "html_segnames_ptr" : "",
- "lev_markup_number" : "",
- "lev_collapsed_number" : "",
- // "ancestors" : "",
- // "open_headings_to_close" : "",
- ]
+ string[string] _node_str = [
+ "is" : is_,
+ "ocn" : to!string(obj_cite_number_),
+ "marked_up_lev" : "",
+ "segment_anchor_tag" : to!string(segment_anchor_tag),
+ "attrib" : "",
+ ];
+ int[string] _node_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"],
];
debug(node) {
if (match(lev_markup_number, rgx.levels_numbered_headings)) {
@@ -3921,22 +3906,27 @@ template SiSUdocAbstraction() {
writeln("- ", to!string(_node));
}
}
- assert(to!int(_node["object"]["parent_lev_markup_number"]) >= 4);
- assert(to!int(_node["object"]["parent_lev_markup_number"]) <= 7);
- assert(to!int(_node["object"]["parent_obj_cite_number"]) >= 0); // hmm, perhaps
- return _node;
+ assert(_node_int["parent_lev_markup"] >= 4); //
+ assert(_node_int["parent_lev_markup"] <= 7); //
+ assert(_node_int["parent_ocn"] >= 0); // hmm, perhaps //
+ auto t = tuple(
+ _node_str,
+ _node_int,
+ );
+ return t;
}
invariant() {
}
- string[string][string] node_emitter_heading(
+ auto node_emitter_heading(
+ string lev,
string lev_markup_number,
string lev_collapsed_number,
string segment_anchor_tag,
int obj_cite_number_,
- long cntr_,
+ int cntr_,
int ptr_,
string is_,
- uint html_segnames_ptr,
+ int html_segnames_ptr,
)
in {
auto rgx = Rgx();
@@ -4035,23 +4025,22 @@ template SiSUdocAbstraction() {
default:
break;
}
- auto _node = [
- "object" : [
- "is" : is_,
- "heading_ptr" : to!string(ptr_),
- "doc_object_ptr" : to!string(cntr_),
- "obj_cite_number" : to!string(obj_cite_number_),
- "segment_anchor_tag" : to!string(segment_anchor_tag),
- "parent_obj_cite_number" : to!string(p_["obj_cite_number"]),
- "parent_lev_markup_number" : to!string(p_["lev_markup_number"]),
- ],
- "heading" : [
- "html_segnames_ptr" : ((lev_markup_number == "4") ? (to!string(html_segnames_ptr)) : ""),
- "lev_markup_number" : to!string(lev_markup_number),
- "lev_collapsed_number" : to!string(lev_collapsed_number),
- // "ancestors" : to!string(ancestors),
- // "open_headings_to_close" : to!string(open_headings_to_close),
- ]
+ string[string] _node_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_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"],
];
debug(node) {
if (match(lev_markup_number, rgx.levels_numbered_headings)) {
@@ -4063,37 +4052,44 @@ template SiSUdocAbstraction() {
writeln("* ", to!string(_node));
}
}
- assert(to!int(_node["object"]["parent_lev_markup_number"]) <= 7);
- assert(to!int(_node["object"]["parent_obj_cite_number"]) >= 0);
+ assert(_node_int["parent_lev_markup"] <= 7);
+ assert(_node_int["parent_ocn"] >= 0);
if (match(lev_markup_number, rgx.levels_numbered_headings)) {
- assert(to!int(_node["heading"]["lev_markup_number"]) <= 7);
- assert(to!int(_node["object"]["obj_cite_number"]) >= 0);
- if (to!int(_node["object"]["parent_lev_markup_number"]) > 0) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) < to!int(_node["heading"]["lev_markup_number"]));
- if (to!int(_node["object"]["obj_cite_number"]) != 0) {
- assert(to!int(_node["object"]["parent_obj_cite_number"]) < to!int(_node["object"]["obj_cite_number"]));
+ assert(_node_int["heading_lev_markup"] <= 7); // issues
+ assert(to!int(_node_str["ocn"]) >= 0);
+ if (_node_int["parent_lev_markup"] > 0) {
+ assert(_node_int["parent_lev_markup"] < _node_int["heading_lev_markup"]);
+ if (to!int(_node_str["ocn"]) != 0) {
+ assert(_node_int["parent_ocn"] < to!int(_node_str["ocn"]));
}
}
- if (to!int(_node["heading"]["lev_markup_number"]) == 0) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_sect_A);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_sect_B) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_sect_A);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_sect_C) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_sect_B);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_sect_D) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_sect_C);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_text_1) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) <= DocStructMarkupHeading.h_sect_D);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_text_2) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_text_1);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_text_3) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_text_2);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_text_4) {
- assert(to!int(_node["object"]["parent_lev_markup_number"]) == DocStructMarkupHeading.h_text_3);
- } else if (to!int(_node["heading"]["lev_markup_number"]) == DocStructMarkupHeading.h_text_5) {
+ if (_node_int["heading_lev_markup"] == 0) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_B) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_C) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_B);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_D) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_C);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_1) {
+ assert(_node_int["parent_lev_markup"] <= DocStructMarkupHeading.h_sect_D);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_2) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_1);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_3) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_2);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_4) {
+ assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_3);
+ } else if (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_5) {
+ // // writeln(to!int(_node_int["parent_lev_markup"]));
+ // // assert(to!int(_node_int["parent_lev_markup"]) >= 4);
+ // // assert(to!int(_node_int["parent_lev_markup"]) <= 7);
}
}
- return _node;
+ auto t = tuple(
+ _node_str,
+ _node_int,
+ );
+ return t;
}
invariant() {
}
diff --git a/src/sdp/ao_defaults.d b/src/sdp/ao_defaults.d
index 4408cc8..4883540 100644
--- a/src/sdp/ao_defaults.d
+++ b/src/sdp/ao_defaults.d
@@ -351,26 +351,28 @@ template SiSUrgxInitFlags() {
}
}
template SiSUnode() {
- string[string][string] node_metadata() {
- auto node_ = [
- "object" : [
- "is" : "",
- "heading_ptr" : "",
- "doc_object_ptr" : "",
- "obj_cite_number" : "",
- "segment_anchor_tag" : "",
- "parent_obj_cite_number" : "",
- "parent_lev_markup_number" : "",
- ],
- "heading" : [
- "html_segnames_ptr" : "",
- "lev_markup_number" : "",
- "lev_collapsed_number" : "",
- // "ancestors" : "",
- // "open_headings_to_close" : "",
- ],
+ string[string] node_metadata_str() {
+ auto _node = [
+ "is" : "",
+ "ocn" : "",
+ "marked_up_lev" : "",
+ "segment_anchor_tag" : "",
+ "attrib" : "",
+ ];
+ return _node;
+ }
+ int[string] node_metadata_int() {
+ auto _node = [
+ "ocn" : 0, // decide whether to use or keep?
+ "ptr_doc_object" : 0,
+ "ptr_html_segnames" : 0,
+ "ptr_heading" : 0,
+ "heading_lev_markup" : 9,
+ "heading_lev_collapsed" : 9,
+ "parent_ocn" : 0,
+ "parent_lev_markup" : 9,
];
- return node_;
+ return _node;
}
}
template SiSUbiblio() {
diff --git a/src/sdp/ao_object_setter.d b/src/sdp/ao_object_setter.d
index c293eb0..8ec51fd 100644
--- a/src/sdp/ao_object_setter.d
+++ b/src/sdp/ao_object_setter.d
@@ -71,25 +71,21 @@ template ObjectSetter() {
return object_set;
}
auto contents_heading(
- in string object,
- in string attrib,
- in int obj_cite_number,
- in string[] tags,
- in string lev,
- in int lev_int_markup,
- in int lev_int_collapsed,
- in string[string][string] _node,
+ in string object,
+ in string[string] _node_str,
+ in int[string] _node_int,
+ in string[] tags,
) {
ObjComposite object_set;
object_set.use = "content";
object_set.of = "para";
object_set.is_a = "heading";
object_set.object = object;
- object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
+ object_set.obj_cite_number = _node_str["ocn"];
object_set.anchor_tags ~= tags;
- object_set.heading_attrib.lev = lev;
- object_set.heading_attrib.lev_int_markup = lev_int_markup;
- object_set.heading_attrib.lev_int_collapsed = lev_int_collapsed;
+ object_set.heading_attrib.lev = _node_str["marked_up_lev"];
+ object_set.heading_attrib.lev_int_markup = _node_int["heading_lev_markup"];
+ object_set.heading_attrib.lev_int_collapsed = _node_int["heading_lev_collapsed"];
return object_set;
}
auto contents_para(
@@ -109,7 +105,6 @@ template ObjectSetter() {
object_set.para_attrib.indent_start = to!int(indent["hang_position"]);
object_set.para_attrib.indent_rest = to!int(indent["base_position"]);
object_set.para_attrib.bullet = false; // bullet;
- // object_set.node_structure.node = _node;
return object_set;
}
auto contents_toc(
@@ -162,7 +157,6 @@ template ObjectSetter() {
object_set.is_a = type;
object_set.object = object;
object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- // object_set.node_structure.node = _node;
return object_set;
}
auto contents_block_code(
@@ -178,14 +172,14 @@ template ObjectSetter() {
object_set.block_attrib.syntax = attrib_language_syntax;
object_set.object = object;
object_set.obj_cite_number = (obj_cite_number==0) ? "" : to!string(obj_cite_number);
- // object_set.node_structure.node = _node;
return object_set;
}
auto contents_block_obj_cite_number_string(
- in string type,
- in string object,
- in string obj_cite_number,
- in string[string][string] _node
+ in string type,
+ in string object,
+ in string obj_cite_number,
+ in string[string] _node_str,
+ in int[string] _node_int,
) {
ObjComposite object_set;
object_set.use = "content";
@@ -193,7 +187,6 @@ template ObjectSetter() {
object_set.is_a = type;
object_set.object = object;
object_set.obj_cite_number = obj_cite_number;
- object_set.node_structure.node = _node;
return object_set;
}
}
diff --git a/views/version.txt b/views/version.txt
index 22af559..4f49ef6 100644
--- a/views/version.txt
+++ b/views/version.txt
@@ -4,4 +4,4 @@ struct Version {
int minor;
int patch;
}
-enum ver = Version(0, 9, 3);
+enum ver = Version(0, 9, 4);