aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/meta_abstraction.org
diff options
context:
space:
mode:
Diffstat (limited to 'org/meta_abstraction.org')
-rw-r--r--org/meta_abstraction.org1268
1 files changed, 571 insertions, 697 deletions
diff --git a/org/meta_abstraction.org b/org/meta_abstraction.org
index ee94ebc..4d2d85b 100644
--- a/org/meta_abstraction.org
+++ b/org/meta_abstraction.org
@@ -178,7 +178,7 @@ mixin DocReformRgxInit;
#+name: abs_top_init_struct
#+BEGIN_SRC d
/+ initialize +/
-ObjGenericComposite[][string] the_table_of_contents_section;
+ObjGenericComposite[] the_table_of_contents_section;
ObjGenericComposite[] the_document_head_section, the_document_body_section, the_bibliography_section, the_glossary_section, the_blurb_section;
ObjGenericComposite[] the_dom_tail_section;
string[string] an_object, processing;
@@ -186,11 +186,10 @@ string an_object_key;
string[] anchor_tags;
string anchor_tag;
string anchor_tag_;
-string[string] segment_anchor_tag_that_object_belongs_to;
+string[string] tag_in_seg;
string lev_anchor_tag;
-string[][string] tag_assoc_html;
-string[][string] tag_assoc_lv0_to_lv3_html;
-string[][string] tag_assoc_lv0_to_lv3_epub;
+string[string][string] tag_assoc;
+string[] lv0_to_3_tags;
/+ enum +/
enum State { off, on }
enum TriState { off, on, closing }
@@ -424,16 +423,21 @@ enum sObj { content, anchor_tag, notes_reg, notes_star, links, image_no_dimensio
#+name: abs_inline_para_tag_associations
#+BEGIN_SRC d
-auto inline_para_link_anchor(O,St,TA)(O an_object, St segment_anchor_tag_that_object_belongs_to, TA tag_assoc_html) {
+auto inline_para_link_anchor(O,St,TA)(
+ O an_object,
+ St tag_in_seg,
+ TA tag_assoc
+) {
static auto rgx = Rgx();
if (auto m = an_object["substantive"].match(rgx.inline_link_anchor)) {
- if (m.captures[1] !in tag_assoc_html) {
- tag_assoc_html[(m.captures[1])] = [segment_anchor_tag_that_object_belongs_to["html"]];
+ if (m.captures[1] !in tag_assoc) {
+ tag_assoc[(m.captures[1])]["seg_lv4"] = tag_in_seg["seg_lv4"];
+ tag_assoc[(m.captures[1])]["seg_lv1_to_4"] = tag_in_seg["seg_lv1_to_4"];
} else {
writeln("a tag named already exists, check text line\n ", an_object["substantive"]);
}
}
- return tag_assoc_html;
+ return tag_assoc;
}
#+END_SRC
@@ -534,8 +538,9 @@ comp_obj_heading_.text = "Table of Conte
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_heading_.metainfo.object_number_off = "";
comp_obj_heading_.metainfo.object_number_type = 0;
-comp_obj_heading_.tags.segment_anchor_tag_html = "toc";
-comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
+comp_obj_heading_.tags.segment_anchor_tag_epub = "toc";
+comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+comp_obj_heading_.tags.in_segment_html = comp_obj_heading_.tags.anchor_tag_html;
comp_obj_heading_.metainfo.heading_lev_markup = 4;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
@@ -544,18 +549,17 @@ comp_obj_heading_.ptr.html_segnames = html_segnames_p
comp_obj_heading_.tags.anchor_tags = ["toc"];
comp_obj_heading_.metainfo.dom_structure_markedup_tags_status = [ 1, 1, 0, 0, 1, 0, 0, 0];
comp_obj_heading_.metainfo.dom_structure_collapsed_tags_status = [ 1, 1, 1, 0, 0, 0, 0, 0];
+tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
auto toc_head = comp_obj_heading_;
html_segnames_ptr_cntr++;
-the_table_of_contents_section = [
- "seg": [toc_head],
- "scroll": [toc_head],
-];
+the_table_of_contents_section = [toc_head];
static auto mkup = InlineMarkup();
static auto munge = ObjInlineMarkupMunge();
auto note_section = NotesSection();
auto bookindex_extract_hash = BookIndexNuggetHash();
string[][string] lev4_subtoc;
-string[] html_segnames=["toc"];
+string[][string] segnames = ["html": ["toc"], "epub": ["toc"]];
int cnt1 = 1; int cnt2 = 1; int cnt3 = 1;
#+END_SRC
@@ -710,8 +714,9 @@ if there is a glossary section you need to:
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_heading_.metainfo.object_number_off = "";
comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "_part_glossary";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "_part_glossary";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = "glossary";
comp_obj_heading_.metainfo.heading_lev_markup = 1;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
@@ -719,6 +724,8 @@ if there is a glossary section you need to:
comp_obj_heading_.metainfo.dom_structure_markedup_tags_status = [ 1, 1, 0, 0, 0, 0, 0, 0];
comp_obj_heading_.metainfo.dom_structure_collapsed_tags_status = [ 1, 1, 0, 0, 0, 0, 0, 0];
the_glossary_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
comp_obj_heading_ = comp_obj_heading_.init;
comp_obj_heading_.metainfo.is_of_part = "backmatter";
comp_obj_heading_.metainfo.is_of_section = "glossary";
@@ -728,8 +735,9 @@ if there is a glossary section you need to:
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_heading_.metainfo.object_number_off = "";
comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "glossary";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "glossary";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = comp_obj_heading_.tags.anchor_tag_html;
comp_obj_heading_.metainfo.heading_lev_markup = 4;
comp_obj_heading_.metainfo.heading_lev_collapsed = 2;
comp_obj_heading_.metainfo.parent_ocn = 1;
@@ -738,6 +746,8 @@ if there is a glossary section you need to:
comp_obj_heading_.metainfo.dom_structure_collapsed_tags_status = [ 1, 1, 1, 0, 0, 0, 0, 0];
comp_obj_heading_.tags.anchor_tags = ["glossary"];
the_glossary_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
} else {
_para_match_(line, an_object, an_object_key, indent, bullet, obj_type_status, line_occur);
comp_obj_para = comp_obj_para.init;
@@ -831,8 +841,9 @@ if there is a blurb section you need to:
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_heading_.metainfo.object_number_off = "";
comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "_part_blurb";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "_part_blurb";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = "blurb";
comp_obj_heading_.metainfo.heading_lev_markup = 1;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
@@ -840,6 +851,8 @@ if there is a blurb section you need to:
comp_obj_heading_.metainfo.dom_structure_markedup_tags_status = [ 1, 1, 0, 0, 0, 0, 0, 0];
comp_obj_heading_.metainfo.dom_structure_collapsed_tags_status = [ 1, 1, 0, 0, 0, 0, 0, 0];
the_blurb_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
comp_obj_heading_ = comp_obj_heading_.init;
comp_obj_heading_.metainfo.is_of_part = "backmatter";
comp_obj_heading_.metainfo.is_of_section = "blurb";
@@ -849,8 +862,9 @@ if there is a blurb section you need to:
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_heading_.metainfo.object_number_off = "";
comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "blurb";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "blurb";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = comp_obj_heading_.tags.anchor_tag_html;
comp_obj_heading_.metainfo.heading_lev_markup = 4;
comp_obj_heading_.metainfo.heading_lev_collapsed = 2;
comp_obj_heading_.metainfo.parent_ocn = 1;
@@ -859,6 +873,8 @@ if there is a blurb section you need to:
comp_obj_heading_.metainfo.dom_structure_markedup_tags_status = [ 1, 1, 0, 0, 1, 0, 0, 0];
comp_obj_heading_.metainfo.dom_structure_collapsed_tags_status = [ 1, 1, 1, 0, 0, 0, 0, 0];
the_blurb_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
} else if (line.matchFirst(rgx.heading)
&& (opt_action.backmatter && opt_action.section_blurb)) {
comp_obj_heading_ = comp_obj_heading_.init;
@@ -870,13 +886,16 @@ if there is a blurb section you need to:
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_heading_.metainfo.object_number_off = "";
comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "blurb";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "blurb";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = comp_obj_heading_.tags.anchor_tag_html;
comp_obj_heading_.metainfo.heading_lev_markup = an_object["lev_markup_number"].to!int; // make int, remove need to conv
comp_obj_heading_.metainfo.heading_lev_collapsed = an_object["lev_collapsed_number"].to!int; // make int, remove need to conv
comp_obj_heading_.metainfo.parent_ocn = 1;
comp_obj_heading_.metainfo.parent_lev_markup = 0;
the_blurb_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
} else {
_para_match_(line, an_object, an_object_key, indent, bullet, obj_type_status, line_occur);
comp_obj_para = comp_obj_para.init;
@@ -953,7 +972,7 @@ if there is a blurb section you need to:
#+BEGIN_SRC d
} else if (obj_type_status["poem"] == TriState.on) {
/+ within block object: poem +/
- _poem_block_(line, an_object, obj_type_status, cntr, object_number_poem, conf_make_meta, segment_anchor_tag_that_object_belongs_to);
+ _poem_block_(line, an_object, obj_type_status, cntr, object_number_poem, conf_make_meta, tag_in_seg);
continue;
#+END_SRC
@@ -1152,7 +1171,7 @@ _block_flag_line_empty_(
obj_type_status,
object_number_poem,
conf_make_meta,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
);
#+END_SRC
@@ -1176,6 +1195,11 @@ assert(
#+name: abs_in_loop_body_not_block_obj_line_empty
#+BEGIN_SRC d
+if (_new_doc) {
+ tag_assoc = tag_assoc.init;
+ lv0_to_3_tags = lv0_to_3_tags.init;
+ tag_in_seg = tag_in_seg.init;
+}
if ((obj_type_status["heading"] == State.on)
&& (line_occur["heading"] > State.off)) {
/+ heading object (current line empty) +/
@@ -1197,27 +1221,29 @@ if ((obj_type_status["heading"] == State.on)
if (
an_object["lev_markup_number"].to!int == 4
&& (!(anchor_tag.empty)
- || (tag_assoc_lv0_to_lv3_html.length > 1))
+ || (lv0_to_3_tags.length > 0))
) {
- segment_anchor_tag_that_object_belongs_to["html"] = anchor_tag;
+ tag_in_seg["seg_lv4"] = anchor_tag;
+ tag_in_seg["seg_lv1_to_4"] = anchor_tag;
lev_anchor_tag = anchor_tag;
- tag_assoc_html[anchor_tag] = [segment_anchor_tag_that_object_belongs_to["html"]];
- if (tag_assoc_lv0_to_lv3_html.length > 1) { /+ names used for html markup segments 1 to 4 (rather than epub which has separate segments for A to D) +/
- foreach (lv0_to_lv3_html_tag; tag_assoc_lv0_to_lv3_html) {
- tag_assoc_html[lv0_to_lv3_html_tag[0]] = [segment_anchor_tag_that_object_belongs_to["html"]];
+ tag_assoc[anchor_tag]["seg_lv4"] = tag_in_seg["seg_lv4"];
+ tag_assoc[anchor_tag]["seg_lv1_to_4"] = tag_in_seg["seg_lv1_to_4"];
+ if (lv0_to_3_tags.length > 0) { /+ names used for html markup segments 1 to 4 (rather than epub which has separate segments for A to D) +/
+ foreach (lv0_to_lv3_html_tag; lv0_to_3_tags) {
+ tag_assoc[lv0_to_lv3_html_tag]["seg_lv4"] = anchor_tag;
}
}
- segment_anchor_tag_that_object_belongs_to["html_uri"] = anchor_tag ~ ".fnSuffix";
anchor_tag_ = anchor_tag;
- tag_assoc_lv0_to_lv3_html = tag_assoc_lv0_to_lv3_html.init;
+ lv0_to_3_tags = lv0_to_3_tags.init;
} else if (an_object["lev_markup_number"].to!int > 4) {
- segment_anchor_tag_that_object_belongs_to["html"] = anchor_tag_;
+ tag_in_seg["seg_lv4"] = anchor_tag_;
+ tag_in_seg["seg_lv1_to_4"] = anchor_tag_;
lev_anchor_tag = anchor_tag;
- tag_assoc_html[anchor_tag] = [segment_anchor_tag_that_object_belongs_to["html"]];
- segment_anchor_tag_that_object_belongs_to["html_uri"] = anchor_tag_ ~ ".fnSuffix#" ~ obj_cite_digits.on.to!string;
+ tag_assoc[anchor_tag]["seg_lv4"] = tag_in_seg["seg_lv4"];
+ tag_assoc[anchor_tag]["seg_lv1_to_4"] = tag_in_seg["seg_lv1_to_4"];
} else if (an_object["lev_markup_number"].to!int < 4) {
string segn;
- switch (an_object["lev_markup_number"].to!int) {
+ switch (an_object["lev_markup_number"].to!int) { /+ names used for epub markup segments A to D +/
case 0:
segn = "_the_title";
goto default;
@@ -1226,50 +1252,51 @@ if ((obj_type_status["heading"] == State.on)
++cnt1;
goto default;
case 2:
- segn = "_part_" ~ cnt1.to!string ~ "_" ~ cnt2.to!string;
+ segn = "_part_" ~ cnt1.to!string ~ "_" ~ cnt2.to!string;
++cnt2;
goto default;
case 3:
- segn = "_part_" ~ cnt1.to!string ~ "_" ~ cnt2.to!string ~ "_" ~ cnt3.to!string;
+ segn = "_part_" ~ cnt1.to!string ~ "_" ~ cnt2.to!string ~ "_" ~ cnt3.to!string;
++cnt3;
goto default;
default:
- segment_anchor_tag_that_object_belongs_to["html"] = segn;
- segment_anchor_tag_that_object_belongs_to["html_uri"] = segn ~ ".fnSuffix";
- segment_anchor_tag_that_object_belongs_to["epub"] = segn;
- segment_anchor_tag_that_object_belongs_to["epub_uri"] = segn ~ ".fnSuffix";
- tag_assoc_lv0_to_lv3_html[segn] = [""];
- tag_assoc_lv0_to_lv3_epub[segn] = ["segn"];
+ lv0_to_3_tags ~= obj_cite_digits.on.to!string;
+ lv0_to_3_tags ~= segn;
+ tag_in_seg["seg_lv4"] = segn; // for html segname need following lv4 not yet known
+ tag_in_seg["seg_lv1_to_4"] = segn;
break;
}
}
an_object["bookindex_nugget"]
= ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes
- = bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to);
+ = bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_digits, tag_in_seg);
/+ (incrementally build toc) table of contents here! +/
_anchor_tag=obj_cite_digits.on.to!string;
the_table_of_contents_section = obj_im.table_of_contents_gather_headings(
an_object,
conf_make_meta,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
_anchor_tag,
lev4_subtoc,
the_table_of_contents_section,
);
if (an_object["lev_markup_number"] == "4") {
- html_segnames ~= segment_anchor_tag_that_object_belongs_to["html"];
+ segnames["html"] ~= tag_in_seg["seg_lv4"];
html_segnames_ptr = html_segnames_ptr_cntr;
html_segnames_ptr_cntr++;
}
+ if (an_object["lev_markup_number"].to!int <= 4) {
+ segnames["epub"] ~= tag_in_seg["seg_lv1_to_4"];
+ }
auto comp_obj_heading
= node_construct.node_emitter_heading(
- an_object["substantive"], // string
- an_object["lev_markup_number"], // string
- an_object["lev_collapsed_number"], // string
- segment_anchor_tag_that_object_belongs_to, // string
- lev_anchor_tag, // string
- tag_assoc_html,
+ an_object["substantive"],
+ an_object["lev_markup_number"],
+ an_object["lev_collapsed_number"],
+ tag_in_seg,
+ lev_anchor_tag,
+ tag_assoc,
obj_cite_digits, // OCNset
cntr, // int
heading_ptr, // int
@@ -1283,7 +1310,8 @@ if ((obj_type_status["heading"] == State.on)
++heading_ptr;
debug(segments) {
writeln(an_object["lev_markup_number"]);
- writeln(segment_anchor_tag_that_object_belongs_to["html"]);
+ writeln(tag_in_seg["seg_lv4"]);
+ writeln(tag_in_seg["seg_lv1_to_4"]);
}
the_document_body_section ~= comp_obj_heading;
debug(objectrelated1) { // check
@@ -1307,14 +1335,14 @@ if ((obj_type_status["heading"] == State.on)
an_object["bookindex_nugget"]
= ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes
- = bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to);
+ = bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_digits, tag_in_seg);
an_object["is"] = "para";
auto comp_obj_heading
= node_construct.node_location_emitter(
content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
lev_anchor_tag,
- tag_assoc_html,
+ tag_assoc,
obj_cite_digits,
cntr,
heading_ptr-1,
@@ -1324,14 +1352,14 @@ if ((obj_type_status["heading"] == State.on)
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tag = substantive_obj_misc_tuple[sObj.anchor_tag];
- tag_assoc_html = inline_para_link_anchor(an_object, segment_anchor_tag_that_object_belongs_to, tag_assoc_html);
comp_obj_para = comp_obj_para.init;
comp_obj_para.metainfo.is_of_part = "body";
comp_obj_para.metainfo.is_of_section = "body";
comp_obj_para.metainfo.is_of_type = "para";
comp_obj_para.metainfo.is_a = "para";
comp_obj_para.text = an_object["substantive"].to!string.strip;
- comp_obj_para.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
+ comp_obj_para.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_para.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
comp_obj_para.metainfo.ocn = obj_cite_digits.digit;
comp_obj_para.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
comp_obj_para.metainfo.o_n_book_index = obj_cite_digits.bkidx;
@@ -1345,6 +1373,7 @@ if ((obj_type_status["heading"] == State.on)
comp_obj_para.has.inline_links = substantive_obj_misc_tuple[sObj.links];
comp_obj_para.has.contains_image_without_dimensions = substantive_obj_misc_tuple[sObj.image_no_dimensions];
the_document_body_section ~= comp_obj_para;
+ tag_assoc = inline_para_link_anchor(an_object, tag_in_seg, tag_assoc);
_common_reset_(line_occur, an_object, obj_type_status);
indent=[
"hang_position" : 0,
@@ -1386,7 +1415,7 @@ if (the_document_body_section.length > 0) {
)) {
note_section.gather_notes_for_endnote_section(
the_document_body_section,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
(i).to!int,
);
}
@@ -1401,7 +1430,7 @@ if (the_document_body_section.length > 0) {
previous_count=(the_document_body_section.length -1).to!int;
note_section.gather_notes_for_endnote_section(
the_document_body_section,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
(the_document_body_section.length-1).to!int,
);
}
@@ -1450,20 +1479,20 @@ debug(endnotes) {
#+name: abs_post
#+BEGIN_SRC d
if (an_object["glossary_nugget"].length == 0) {
- comp_obj_heading_ = comp_obj_heading_.init;
- comp_obj_heading_.metainfo.is_of_part = "empty";
- comp_obj_heading_.metainfo.is_of_section = "empty";
- comp_obj_heading_.metainfo.is_of_type = "para";
- comp_obj_heading_.metainfo.is_a = "heading";
- comp_obj_heading_.text = "(skip) there is no Glossary section";
- comp_obj_heading_.metainfo.ocn = 0;
- comp_obj_heading_.metainfo.object_number_off = "";
- comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.metainfo.heading_lev_markup = 1;
- comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
- comp_obj_heading_.metainfo.parent_ocn = 1;
- comp_obj_heading_.metainfo.parent_lev_markup = 0;
- the_glossary_section ~= comp_obj_heading_;
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.metainfo.is_of_part = "empty";
+ comp_obj_heading_.metainfo.is_of_section = "empty";
+ comp_obj_heading_.metainfo.is_of_type = "para";
+ comp_obj_heading_.metainfo.is_a = "heading";
+ comp_obj_heading_.text = "(skip) there is no Glossary section";
+ comp_obj_heading_.metainfo.ocn = 0;
+ comp_obj_heading_.metainfo.object_number_off = "";
+ comp_obj_heading_.metainfo.object_number_type = 0;
+ comp_obj_heading_.metainfo.heading_lev_markup = 1;
+ comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
+ comp_obj_heading_.metainfo.parent_ocn = 1;
+ comp_obj_heading_.metainfo.parent_lev_markup = 0;
+ the_glossary_section ~= comp_obj_heading_;
}
debug(glossary) {
foreach (gloss; the_glossary_section) {
@@ -1485,54 +1514,60 @@ auto biblio_ordered
#+name: abs_post
#+BEGIN_SRC d
if (biblio_ordered.length > 0) {
- comp_obj_heading_ = comp_obj_heading_.init;
- comp_obj_heading_.metainfo.is_of_part = "backmatter";
- comp_obj_heading_.metainfo.is_of_section = "bibliography";
- comp_obj_heading_.metainfo.is_of_type = "para";
- comp_obj_heading_.metainfo.is_a = "heading";
- comp_obj_heading_.text = "Bibliography";
- comp_obj_heading_.metainfo.ocn = 0;
- comp_obj_heading_.metainfo.object_number_off = "";
- comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "_part_bibliography";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
- comp_obj_heading_.metainfo.heading_lev_markup = 1;
- comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
- comp_obj_heading_.metainfo.parent_ocn = 1;
- comp_obj_heading_.metainfo.parent_lev_markup = 0;
- the_bibliography_section ~= comp_obj_heading_;
- comp_obj_heading_ = comp_obj_heading_.init;
- comp_obj_heading_.metainfo.is_of_part = "backmatter";
- comp_obj_heading_.metainfo.is_of_section = "bibliography";
- comp_obj_heading_.metainfo.is_of_type = "para";
- comp_obj_heading_.metainfo.is_a = "heading";
- comp_obj_heading_.text = "Bibliography";
- comp_obj_heading_.metainfo.ocn = 0;
- comp_obj_heading_.metainfo.object_number_off = "";
- comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "bibliography";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
- comp_obj_heading_.metainfo.heading_lev_markup = 4;
- comp_obj_heading_.metainfo.heading_lev_collapsed = 2;
- comp_obj_heading_.metainfo.parent_ocn = 1;
- comp_obj_heading_.metainfo.parent_lev_markup = 0;
- comp_obj_heading_.tags.anchor_tags = ["bibliography"];
- the_bibliography_section ~= comp_obj_heading_;
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.metainfo.is_of_part = "backmatter";
+ comp_obj_heading_.metainfo.is_of_section = "bibliography";
+ comp_obj_heading_.metainfo.is_of_type = "para";
+ comp_obj_heading_.metainfo.is_a = "heading";
+ comp_obj_heading_.text = "Bibliography";
+ comp_obj_heading_.metainfo.ocn = 0;
+ comp_obj_heading_.metainfo.object_number_off = "";
+ comp_obj_heading_.metainfo.object_number_type = 0;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "_part_bibliography";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = "bibliography";
+ comp_obj_heading_.metainfo.heading_lev_markup = 1;
+ comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
+ comp_obj_heading_.metainfo.parent_ocn = 1;
+ comp_obj_heading_.metainfo.parent_lev_markup = 0;
+ the_bibliography_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.metainfo.is_of_part = "backmatter";
+ comp_obj_heading_.metainfo.is_of_section = "bibliography";
+ comp_obj_heading_.metainfo.is_of_type = "para";
+ comp_obj_heading_.metainfo.is_a = "heading";
+ comp_obj_heading_.text = "Bibliography";
+ comp_obj_heading_.metainfo.ocn = 0;
+ comp_obj_heading_.metainfo.object_number_off = "";
+ comp_obj_heading_.metainfo.object_number_type = 0;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "bibliography";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = comp_obj_heading_.tags.anchor_tag_html;
+ comp_obj_heading_.metainfo.heading_lev_markup = 4;
+ comp_obj_heading_.metainfo.heading_lev_collapsed = 2;
+ comp_obj_heading_.metainfo.parent_ocn = 1;
+ comp_obj_heading_.metainfo.parent_lev_markup = 0;
+ comp_obj_heading_.tags.anchor_tags = ["bibliography"];
+ the_bibliography_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
} else {
- comp_obj_heading_ = comp_obj_heading_.init;
- comp_obj_heading_.metainfo.is_of_part = "empty";
- comp_obj_heading_.metainfo.is_of_section = "empty";
- comp_obj_heading_.metainfo.is_of_type = "para";
- comp_obj_heading_.metainfo.is_a = "heading";
- comp_obj_heading_.text = "(skip) there is no Bibliography";
- comp_obj_heading_.metainfo.ocn = 0;
- comp_obj_heading_.metainfo.object_number_off = "";
- comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.metainfo.heading_lev_markup = 1;
- comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
- comp_obj_heading_.metainfo.parent_ocn = 1;
- comp_obj_heading_.metainfo.parent_lev_markup = 0;
- the_bibliography_section ~= comp_obj_heading_;
+ comp_obj_heading_ = comp_obj_heading_.init;
+ comp_obj_heading_.metainfo.is_of_part = "empty";
+ comp_obj_heading_.metainfo.is_of_section = "empty";
+ comp_obj_heading_.metainfo.is_of_type = "para";
+ comp_obj_heading_.metainfo.is_a = "heading";
+ comp_obj_heading_.text = "(skip) there is no Bibliography";
+ comp_obj_heading_.metainfo.ocn = 0;
+ comp_obj_heading_.metainfo.object_number_off = "";
+ comp_obj_heading_.metainfo.object_number_type = 0;
+ comp_obj_heading_.metainfo.heading_lev_markup = 1;
+ comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
+ comp_obj_heading_.metainfo.parent_ocn = 1;
+ comp_obj_heading_.metainfo.parent_lev_markup = 0;
+ the_bibliography_section ~= comp_obj_heading_;
}
#+END_SRC
@@ -1630,7 +1665,7 @@ static assert(!isTypeTuple!(bi_tuple));
auto the_bookindex_section = bi_tuple[0];
obj_cite_digits = bi_tuple[1];
debug(bookindex) {
- foreach (bi_entry; the_bookindex_section["seg"]) {
+ foreach (bi_entry; the_bookindex_section) {
writeln(bi_entry);
}
}
@@ -1650,8 +1685,9 @@ if (an_object["blurb_nugget"].length == 0) {
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_para.metainfo.object_number_off = "";
comp_obj_para.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "";
comp_obj_heading_.tags.segment_anchor_tag_epub = "";
+ comp_obj_heading_.tags.anchor_tag_html = "";
+ comp_obj_heading_.tags.in_segment_html = "";
comp_obj_heading_.metainfo.heading_lev_markup = 1;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
@@ -1686,30 +1722,17 @@ comp_obj_toc.attrib.indent_base = indent["base_position"];
comp_obj_toc.attrib.bullet = false;
if (the_endnotes_section.length > 1) {
toc_txt_ = format(
- "{ %s }%s%s%s",
+ "{ %s }#%s",
"Endnotes",
- mkup.mark_internal_site_lnk,
"endnotes",
- ".fnSuffix",
);
toc_txt_= munge.url_links(toc_txt_);
comp_obj_toc.text = toc_txt_.to!string.strip;
comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["seg"] ~= comp_obj_toc;
+ the_table_of_contents_section ~= comp_obj_toc;
}
if (the_glossary_section.length > 1) {
toc_txt_ = format(
- "{ %s }%s%s%s",
- "Glossary",
- mkup.mark_internal_site_lnk,
- "glossary",
- ".fnSuffix",
- );
- toc_txt_= munge.url_links(toc_txt_);
- comp_obj_toc.text = toc_txt_.to!string.strip;
- comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["seg"] ~= comp_obj_toc;
- toc_txt_ = format(
"{ %s }#%s",
"Glossary",
"glossary",
@@ -1717,22 +1740,10 @@ if (the_glossary_section.length > 1) {
toc_txt_= munge.url_links(toc_txt_);
comp_obj_toc.text = toc_txt_.to!string.strip;
comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["scroll"] ~= comp_obj_toc;
+ the_table_of_contents_section ~= comp_obj_toc;
}
if (the_bibliography_section.length > 1){
toc_txt_ = format(
- "{ %s }%s%s%s",
- "Bibliography",
- mkup.mark_internal_site_lnk,
- "bibliography",
- ".fnSuffix",
- );
- toc_txt_= munge.url_links(toc_txt_);
- comp_obj_toc.text = toc_txt_.to!string.strip;
- comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["seg"] ~= comp_obj_toc;
-
- toc_txt_ = format(
"{ %s }#%s",
"Bibliography",
"bibliography",
@@ -1740,22 +1751,9 @@ if (the_bibliography_section.length > 1){
toc_txt_= munge.url_links(toc_txt_);
comp_obj_toc.text = toc_txt_.to!string.strip;
comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["scroll"] ~= comp_obj_toc;
-}
-if (the_bookindex_section["seg"].length > 1) {
- toc_txt_ = format(
- "{ %s }%s%s%s",
- "Book Index",
- mkup.mark_internal_site_lnk,
- "bookindex",
- ".fnSuffix",
- );
- toc_txt_= munge.url_links(toc_txt_);
- comp_obj_toc.text = toc_txt_.to!string.strip;
- comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["seg"] ~= comp_obj_toc;
+ the_table_of_contents_section ~= comp_obj_toc;
}
-if (the_bookindex_section["scroll"].length > 1) {
+if (the_bookindex_section.length > 1) {
toc_txt_ = format(
"{ %s }#%s",
"Book Index",
@@ -1764,21 +1762,10 @@ if (the_bookindex_section["scroll"].length > 1) {
toc_txt_= munge.url_links(toc_txt_);
comp_obj_toc.text = toc_txt_.to!string.strip;
comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["scroll"] ~= comp_obj_toc;
+ the_table_of_contents_section ~= comp_obj_toc;
}
if (the_blurb_section.length > 1) {
toc_txt_ = format(
- "{ %s }%s%s%s",
- "Blurb",
- mkup.mark_internal_site_lnk,
- "blurb",
- ".fnSuffix",
- );
- toc_txt_= munge.url_links(toc_txt_);
- comp_obj_toc.text = toc_txt_.to!string.strip;
- comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["seg"] ~= comp_obj_toc;
- toc_txt_ = format(
"{ %s }#%s",
"Blurb",
"blurb",
@@ -1786,25 +1773,14 @@ if (the_blurb_section.length > 1) {
toc_txt_= munge.url_links(toc_txt_);
comp_obj_toc.has.inline_links = true;
comp_obj_toc.text = toc_txt_.to!string.strip;
- the_table_of_contents_section["scroll"] ~= comp_obj_toc;
+ the_table_of_contents_section ~= comp_obj_toc;
}
debug(toc) {
writefln(
"%s %s",
__LINE__,
- the_table_of_contents_section["seg"].length
);
- foreach (toc_linked_heading; the_table_of_contents_section["seg"]) {
- writeln(mkup.indent_by_spaces_provided(toc_linked_heading.attrib.indent_hang), toc_linked_heading.text);
- }
-}
-debug(tocscroll) {
- writefln(
- "%s %s",
- __LINE__,
- the_table_of_contents_section["seg"].length
- );
- foreach (toc_linked_heading; the_table_of_contents_section["scroll"]) {
+ foreach (toc_linked_heading; the_table_of_contents_section) {
writeln(mkup.indent_by_spaces_provided(toc_linked_heading.attrib.indent_hang), toc_linked_heading.text);
}
}
@@ -2053,7 +2029,8 @@ if (the_document_body_section.length > 1) {
#+name: abs_post
#+BEGIN_SRC d
if (the_endnotes_section.length > 1) {
- html_segnames ~= "endnotes";
+ segnames["html"] ~= "endnotes";
+ segnames["epub"] ~= "endnotes";
html_segnames_ptr = html_segnames_ptr_cntr;
foreach (ref obj; the_endnotes_section) {
if (obj.metainfo.is_a == "heading") {
@@ -2073,7 +2050,8 @@ if (the_endnotes_section.length > 1) {
#+name: abs_post
#+BEGIN_SRC d
if (the_glossary_section.length > 1) {
- html_segnames ~= "glossary";
+ segnames["html"] ~= "glossary";
+ segnames["epub"] ~= "glossary";
html_segnames_ptr = html_segnames_ptr_cntr;
foreach (ref obj; the_glossary_section) {
if (obj.metainfo.is_a == "heading") {
@@ -2093,7 +2071,8 @@ if (the_glossary_section.length > 1) {
#+name: abs_post
#+BEGIN_SRC d
if (the_bibliography_section.length > 1) {
- html_segnames ~= "bibliography";
+ segnames["html"] ~= "bibliography";
+ segnames["epub"] ~= "bibliography";
html_segnames_ptr = html_segnames_ptr_cntr;
foreach (ref obj; the_bibliography_section) {
if (obj.metainfo.is_a == "heading") {
@@ -2112,10 +2091,11 @@ if (the_bibliography_section.length > 1) {
#+name: abs_post
#+BEGIN_SRC d
-if (the_bookindex_section["scroll"].length > 1) {
- html_segnames ~= "bookindex";
+if (the_bookindex_section.length > 1) {
+ segnames["html"] ~= "bookindex";
+ segnames["epub"] ~= "bookindex";
html_segnames_ptr = html_segnames_ptr_cntr;
- foreach (ref obj; the_bookindex_section["scroll"]) {
+ foreach (ref obj; the_bookindex_section) {
if (obj.metainfo.is_a == "heading") {
obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup];
}
@@ -2124,12 +2104,6 @@ if (the_bookindex_section["scroll"].length > 1) {
break;
}
}
- foreach (ref obj; the_bookindex_section["seg"]) {
- if (obj.metainfo.heading_lev_markup == 4) {
- obj.ptr.html_segnames = html_segnames_ptr;
- break;
- }
- }
html_segnames_ptr_cntr++;
}
#+END_SRC
@@ -2139,7 +2113,8 @@ if (the_bookindex_section["scroll"].length > 1) {
#+name: abs_post
#+BEGIN_SRC d
if (the_blurb_section.length > 1) {
- html_segnames ~= "blurb";
+ segnames["html"] ~= "blurb";
+ segnames["epub"] ~= "blurb";
html_segnames_ptr = html_segnames_ptr_cntr;
foreach (ref obj; the_blurb_section) {
if (obj.metainfo.is_a == "heading") {
@@ -2340,17 +2315,18 @@ foreach (ref obj; the_document_head_section) {
#+name: abs_post
#+BEGIN_SRC d
-if (the_table_of_contents_section["scroll"].length > 1) {
+if (the_table_of_contents_section.length > 1) {
/+ scroll +/
dom_structure_markedup_tags_status_buffer = dom_structure_markedup_tags_status.dup;
dom_structure_collapsed_tags_status_buffer = dom_structure_collapsed_tags_status.dup;
- foreach (ref obj; the_table_of_contents_section["scroll"]) {
+ foreach (ref obj; the_table_of_contents_section) {
if (obj.metainfo.is_a == "heading") {
if (obj.metainfo.heading_lev_markup <= 4) {
+ segnames_lv0_to_4 ~= obj.tags.segment_anchor_tag_epub;
if (obj.metainfo.heading_lev_markup == 4) {
- obj.tags.segname_next = html_segnames[obj.ptr.html_segnames + 1];
- assert(obj.tags.segment_anchor_tag_html == html_segnames[obj.ptr.html_segnames],
- obj.tags.segment_anchor_tag_html ~ "!=" ~ html_segnames[obj.ptr.html_segnames]);
+ obj.tags.segname_next = segnames["html"][obj.ptr.html_segnames + 1];
+ assert(obj.tags.anchor_tag_html == segnames["html"][obj.ptr.html_segnames],
+ obj.tags.anchor_tag_html ~ "!=" ~ segnames["html"][obj.ptr.html_segnames]);
}
}
/+ dom structure (marked up & collapsed) +/
@@ -2366,32 +2342,6 @@ if (the_table_of_contents_section["scroll"].length > 1) {
obj = obj_heading_ancestors(obj, lv_ancestors_txt);
}
}
- /+ seg +/
- dom_structure_markedup_tags_status = dom_structure_markedup_tags_status_buffer.dup;
- dom_structure_collapsed_tags_status = dom_structure_collapsed_tags_status_buffer.dup;
- foreach (ref obj; the_table_of_contents_section["seg"]) {
- if (obj.metainfo.is_a == "heading") {
- debug(dom) {
- writeln(obj.text);
- }
- if (obj.metainfo.heading_lev_markup <= 4) {
- segnames_lv0_to_4 ~= obj.tags.segment_anchor_tag_epub;
- if (obj.metainfo.heading_lev_markup == 4) {
- obj.tags.segname_next = html_segnames[obj.ptr.html_segnames + 1];
- assert(obj.tags.segment_anchor_tag_html == html_segnames[obj.ptr.html_segnames],
- obj.tags.segment_anchor_tag_html ~ "!=" ~ html_segnames[obj.ptr.html_segnames]);
- }
- }
- if ((opt_action.html)
- || (opt_action.html_scroll)
- || (opt_action.html_seg)
- || (opt_action.epub)) {
- obj = obj_dom_structure_set_markup_tags(obj, dom_structure_markedup_tags_status, obj.metainfo.heading_lev_markup);
- obj = obj_dom_set_collapsed_tags(obj, dom_structure_collapsed_tags_status, obj.metainfo.heading_lev_collapsed);
- }
- obj = obj_heading_ancestors(obj, lv_ancestors_txt);
- }
- }
}
#+END_SRC
@@ -2402,6 +2352,14 @@ if (the_table_of_contents_section["scroll"].length > 1) {
/+ multiple 1~ levels, loop through document body +/
if (the_document_body_section.length > 1) {
foreach (ref obj; the_document_body_section) {
+ if (!(((obj.metainfo.ocn.to!string) in tag_assoc)
+ && ("seg_lv4" in tag_assoc[(obj.metainfo.ocn.to!string)]))
+ ) {
+ tag_assoc[(obj.metainfo.ocn.to!string)]["seg_lv4"]
+ = obj.tags.html_segment_anchor_tag_is;
+ }
+ tag_assoc[(obj.metainfo.ocn.to!string)]["seg_lv1_to_4"]
+ = obj.tags.epub_segment_anchor_tag_is;
if (obj.metainfo.is_a == "heading") {
debug(dom) {
writeln(obj.text);
@@ -2409,13 +2367,13 @@ if (the_document_body_section.length > 1) {
if (obj.metainfo.heading_lev_markup <= 4) {
segnames_lv0_to_4 ~= obj.tags.segment_anchor_tag_epub;
if (obj.metainfo.heading_lev_markup == 4) {
- obj.tags.lev4_subtoc = lev4_subtoc[obj.tags.segment_anchor_tag_html];
- obj.tags.segname_prev = html_segnames[obj.ptr.html_segnames - 1];
- if (html_segnames.length > obj.ptr.html_segnames + 1) {
- obj.tags.segname_next = html_segnames[obj.ptr.html_segnames + 1];
+ obj.tags.lev4_subtoc = lev4_subtoc[obj.tags.anchor_tag_html];
+ obj.tags.segname_prev = segnames["html"][obj.ptr.html_segnames - 1];
+ if (segnames["html"].length > obj.ptr.html_segnames + 1) {
+ obj.tags.segname_next = segnames["html"][obj.ptr.html_segnames + 1];
}
- assert(obj.tags.segment_anchor_tag_html == html_segnames[obj.ptr.html_segnames],
- obj.tags.segment_anchor_tag_html ~ "!=" ~ html_segnames[obj.ptr.html_segnames]);
+ assert(obj.tags.anchor_tag_html == segnames["html"][obj.ptr.html_segnames],
+ obj.tags.anchor_tag_html ~ "!=" ~ segnames["html"][obj.ptr.html_segnames]);
}
}
/+ dom structure (marked up & collapsed) +/
@@ -2446,10 +2404,10 @@ auto images=uniq(_images.sort());
#+BEGIN_SRC d
/+ optional only one 1~ level +/
if (the_endnotes_section.length > 1) {
- dom_structure_markedup_tags_status_buffer = dom_structure_markedup_tags_status.dup;
+ dom_structure_markedup_tags_status_buffer = dom_structure_markedup_tags_status.dup;
dom_structure_collapsed_tags_status_buffer = dom_structure_collapsed_tags_status.dup;
- dom_structure_markedup_tags_status = dom_structure_markedup_tags_status_buffer.dup;
- dom_structure_collapsed_tags_status = dom_structure_collapsed_tags_status_buffer.dup;
+ dom_structure_markedup_tags_status = dom_structure_markedup_tags_status_buffer.dup;
+ dom_structure_collapsed_tags_status = dom_structure_collapsed_tags_status_buffer.dup;
foreach (ref obj; the_endnotes_section) {
if (obj.metainfo.is_a == "heading") {
debug(dom) {
@@ -2460,12 +2418,12 @@ if (the_endnotes_section.length > 1) {
if (obj.metainfo.heading_lev_markup <= 4) {
segnames_lv0_to_4 ~= obj.tags.segment_anchor_tag_epub;
if (obj.metainfo.heading_lev_markup == 4) {
- obj.tags.segname_prev = html_segnames[obj.ptr.html_segnames - 1];
- if (html_segnames.length > obj.ptr.html_segnames + 1) {
- obj.tags.segname_next = html_segnames[obj.ptr.html_segnames + 1];
+ obj.tags.segname_prev = segnames["html"][obj.ptr.html_segnames - 1];
+ if (segnames["html"].length > obj.ptr.html_segnames + 1) {
+ obj.tags.segname_next = segnames["html"][obj.ptr.html_segnames + 1];
}
- assert(obj.tags.segment_anchor_tag_html == html_segnames[obj.ptr.html_segnames],
- obj.tags.segment_anchor_tag_html ~ "!=" ~ html_segnames[obj.ptr.html_segnames]);
+ assert(obj.tags.anchor_tag_html == segnames["html"][obj.ptr.html_segnames],
+ obj.tags.anchor_tag_html ~ "!=" ~ segnames["html"][obj.ptr.html_segnames]);
}
}
/+ dom structure (marked up & collapsed) +/
@@ -2502,12 +2460,12 @@ if (the_glossary_section.length > 1) {
if (obj.metainfo.heading_lev_markup <= 4) {
segnames_lv0_to_4 ~= obj.tags.segment_anchor_tag_epub;
if (obj.metainfo.heading_lev_markup == 4) {
- obj.tags.segname_prev = html_segnames[obj.ptr.html_segnames - 1];
- if (html_segnames.length > obj.ptr.html_segnames + 1) {
- obj.tags.segname_next = html_segnames[obj.ptr.html_segnames + 1];
+ obj.tags.segname_prev = segnames["html"][obj.ptr.html_segnames - 1];
+ if (segnames["html"].length > obj.ptr.html_segnames + 1) {
+ obj.tags.segname_next = segnames["html"][obj.ptr.html_segnames + 1];
}
- assert(obj.tags.segment_anchor_tag_html == html_segnames[obj.ptr.html_segnames],
- obj.tags.segment_anchor_tag_html ~ "!=" ~ html_segnames[obj.ptr.html_segnames]);
+ assert(obj.tags.anchor_tag_html == segnames["html"][obj.ptr.html_segnames],
+ obj.tags.anchor_tag_html ~ "!=" ~ segnames["html"][obj.ptr.html_segnames]);
}
}
/+ dom structure (marked up & collapsed) +/
@@ -2547,12 +2505,12 @@ if (the_bibliography_section.length > 1) {
if (obj.metainfo.heading_lev_markup <= 4) {
segnames_lv0_to_4 ~= obj.tags.segment_anchor_tag_epub;
if (obj.metainfo.heading_lev_markup == 4) {
- obj.tags.segname_prev = html_segnames[obj.ptr.html_segnames - 1];
- if (html_segnames.length > obj.ptr.html_segnames + 1) {
- obj.tags.segname_next = html_segnames[obj.ptr.html_segnames + 1];
+ obj.tags.segname_prev = segnames["html"][obj.ptr.html_segnames - 1];
+ if (segnames["html"].length > obj.ptr.html_segnames + 1) {
+ obj.tags.segname_next = segnames["html"][obj.ptr.html_segnames + 1];
}
- assert(obj.tags.segment_anchor_tag_html == html_segnames[obj.ptr.html_segnames],
- obj.tags.segment_anchor_tag_html ~ "!=" ~ html_segnames[obj.ptr.html_segnames]);
+ assert(obj.tags.anchor_tag_html == segnames["html"][obj.ptr.html_segnames],
+ obj.tags.anchor_tag_html ~ "!=" ~ segnames["html"][obj.ptr.html_segnames]);
}
}
/+ dom structure (marked up & collapsed) +/
@@ -2584,24 +2542,27 @@ if (the_bibliography_section.length > 1) {
int ocn_ = obj_cite_digits.on;
int ocn_bkidx_ = 0;
int ocn_bidx_;
-if (the_bookindex_section["scroll"].length > 1) {
+if (the_bookindex_section.length > 1) {
/+ scroll +/
dom_structure_markedup_tags_status_buffer = dom_structure_markedup_tags_status.dup;
dom_structure_collapsed_tags_status_buffer = dom_structure_collapsed_tags_status.dup;
- foreach (ref obj; the_bookindex_section["scroll"]) {
+ foreach (ref obj; the_bookindex_section) {
if (obj.metainfo.is_a == "heading") {
debug(dom) {
}
+ if (obj.metainfo.heading_lev_markup <= 4) {
+ segnames_lv0_to_4 ~= obj.tags.segment_anchor_tag_epub;
+ }
obj_cite_digits = ocn_emit(OCNstatus.on);
obj.metainfo.ocn = obj_cite_digits.on;
if (obj.metainfo.heading_lev_markup <= 4) {
if (obj.metainfo.heading_lev_markup == 4) {
- obj.tags.segname_prev = html_segnames[obj.ptr.html_segnames - 1];
- if (html_segnames.length > obj.ptr.html_segnames + 1) {
- obj.tags.segname_next = html_segnames[obj.ptr.html_segnames + 1];
+ obj.tags.segname_prev = segnames["html"][obj.ptr.html_segnames - 1];
+ if (segnames["html"].length > obj.ptr.html_segnames + 1) {
+ obj.tags.segname_next = segnames["html"][obj.ptr.html_segnames + 1];
}
- assert(obj.tags.segment_anchor_tag_html == html_segnames[obj.ptr.html_segnames],
- obj.tags.segment_anchor_tag_html ~ "!=" ~ html_segnames[obj.ptr.html_segnames]);
+ assert(obj.tags.anchor_tag_html == segnames["html"][obj.ptr.html_segnames],
+ obj.tags.anchor_tag_html ~ "!=" ~ segnames["html"][obj.ptr.html_segnames]);
}
}
/+ dom structure (marked up & collapsed) +/
@@ -2622,43 +2583,6 @@ if (the_bookindex_section["scroll"].length > 1) {
obj.metainfo.object_number_type = OCNtype.bkidx;
}
}
- /+ seg +/
- dom_structure_markedup_tags_status = dom_structure_markedup_tags_status_buffer.dup;
- dom_structure_collapsed_tags_status = dom_structure_collapsed_tags_status_buffer.dup;
- foreach (ref obj; the_bookindex_section["seg"]) {
- if (obj.metainfo.is_a == "heading") {
- debug(dom) {
- writeln(obj.text);
- }
- obj.metainfo.ocn = ++ocn_;
- if (obj.metainfo.heading_lev_markup <= 4) {
- segnames_lv0_to_4 ~= obj.tags.segment_anchor_tag_epub;
- if (obj.metainfo.heading_lev_markup == 4) {
- obj.tags.segname_prev = html_segnames[obj.ptr.html_segnames - 1];
- if (html_segnames.length > obj.ptr.html_segnames + 1) {
- obj.tags.segname_next = html_segnames[obj.ptr.html_segnames + 1];
- }
- assert(obj.tags.segment_anchor_tag_html == html_segnames[obj.ptr.html_segnames],
- obj.tags.segment_anchor_tag_html ~ "!=" ~ html_segnames[obj.ptr.html_segnames]);
- }
- }
- /+ dom structure (marked up & collapsed) +/
- if ((opt_action.html)
- || (opt_action.html_scroll)
- || (opt_action.html_seg)
- || (opt_action.epub)
- || (opt_action.sqlite_discrete)
- || (opt_action.sqlite_update)) {
- obj = obj_dom_structure_set_markup_tags(obj, dom_structure_markedup_tags_status, obj.metainfo.heading_lev_markup);
- obj = obj_dom_set_collapsed_tags(obj, dom_structure_collapsed_tags_status, obj.metainfo.heading_lev_collapsed);
- }
- obj = obj_heading_ancestors(obj, lv_ancestors_txt);
- } else if (obj.metainfo.is_a == "bookindex") {
- ocn_bidx_ = ++ocn_bkidx_;
- obj.metainfo.o_n_book_index = ocn_bidx_; // FIX need to distinguish from regular ocn
- obj.metainfo.object_number_type = OCNtype.bkidx;
- }
- }
/+ TODO assert failure, reinstate
assert(obj_cite_digit_bkidx == ocn_bidx_
obj_cite_digit_bkidx ~ " == ocn_" ~ ocn_ ~ "?");
@@ -2682,12 +2606,12 @@ if (the_blurb_section.length > 1) {
if (obj.metainfo.heading_lev_markup <= 4) {
segnames_lv0_to_4 ~= obj.tags.segment_anchor_tag_epub;
if (obj.metainfo.heading_lev_markup == 4) {
- obj.tags.segname_prev = html_segnames[obj.ptr.html_segnames - 1];
- if (html_segnames.length > obj.ptr.html_segnames + 1) {
- obj.tags.segname_next = html_segnames[obj.ptr.html_segnames + 1];
+ obj.tags.segname_prev = segnames["html"][obj.ptr.html_segnames - 1];
+ if (segnames["html"].length > obj.ptr.html_segnames + 1) {
+ obj.tags.segname_next = segnames["html"][obj.ptr.html_segnames + 1];
}
- assert(obj.tags.segment_anchor_tag_html == html_segnames[obj.ptr.html_segnames],
- obj.tags.segment_anchor_tag_html ~ "!=" ~ html_segnames[obj.ptr.html_segnames]);
+ assert(obj.tags.anchor_tag_html == segnames["html"][obj.ptr.html_segnames],
+ obj.tags.anchor_tag_html ~ "!=" ~ segnames["html"][obj.ptr.html_segnames]);
}
}
/+ dom structure (marked up & collapsed) +/
@@ -2721,7 +2645,7 @@ if (the_document_body_section.length > 1) {
the_endnotes_section ~
the_glossary_section ~
the_bibliography_section ~
- the_bookindex_section["scroll"] ~
+ the_bookindex_section ~
the_blurb_section
);
debug(decendants_tuple) {
@@ -2783,8 +2707,8 @@ if (the_document_body_section.length > 1) {
}
}
}
- if (the_bookindex_section["scroll"].length > 1) {
- foreach (ref obj; the_bookindex_section["scroll"]) {
+ if (the_bookindex_section.length > 1) {
+ foreach (ref obj; the_bookindex_section) {
if (obj.metainfo.is_a == "heading") {
foreach (pair; pairs) {
if (obj.metainfo.ocn == pair[0]) {
@@ -2818,21 +2742,23 @@ if (the_document_body_section.length > 1) {
- obj.metainfo.dom_structure_markedup_tags_status = dom_structure_markedup_tags_status;
- obj.metainfo.dom_structure_collapsed_tags_status = dom_structure_collapsed_tags_status;
+/
-comp_obj_heading_ = comp_obj_heading_.init;
-comp_obj_heading_.metainfo.is_of_part = "empty";
-comp_obj_heading_.metainfo.is_of_section = "empty";
-comp_obj_heading_.metainfo.is_of_type = "para";
-comp_obj_heading_.metainfo.is_a = "heading";
-comp_obj_heading_.metainfo.ocn = 0;
-comp_obj_para.metainfo.object_number_off = "";
-comp_obj_para.metainfo.object_number_type = 0;
-comp_obj_heading_.tags.segment_anchor_tag_html = "";
-comp_obj_heading_.tags.segment_anchor_tag_epub = "";
-comp_obj_heading_.tags.segment_anchor_tag_is = "";
-comp_obj_heading_.metainfo.heading_lev_markup = 9;
-comp_obj_heading_.metainfo.heading_lev_collapsed = 9;
-comp_obj_heading_.metainfo.parent_ocn = 0;
-comp_obj_heading_.metainfo.parent_lev_markup = 0;
+comp_obj_heading_ = comp_obj_heading_.init;
+comp_obj_heading_.metainfo.is_of_part = "empty";
+comp_obj_heading_.metainfo.is_of_section = "empty";
+comp_obj_heading_.metainfo.is_of_type = "para";
+comp_obj_heading_.metainfo.is_a = "heading";
+comp_obj_heading_.metainfo.ocn = 0;
+comp_obj_para.metainfo.object_number_off = "";
+comp_obj_para.metainfo.object_number_type = 0;
+comp_obj_heading_.tags.segment_anchor_tag_epub = "";
+comp_obj_heading_.tags.anchor_tag_html = "";
+comp_obj_heading_.tags.in_segment_html = "";
+comp_obj_heading_.tags.html_segment_anchor_tag_is = "";
+comp_obj_heading_.tags.epub_segment_anchor_tag_is = "";
+comp_obj_heading_.metainfo.heading_lev_markup = 9;
+comp_obj_heading_.metainfo.heading_lev_collapsed = 9;
+comp_obj_heading_.metainfo.parent_ocn = 0;
+comp_obj_heading_.metainfo.parent_lev_markup = 0;
comp_obj_heading_.metainfo.dom_structure_markedup_tags_status = dom_structure_markedup_tags_status.dup;
comp_obj_heading_.metainfo.dom_structure_collapsed_tags_status = dom_structure_collapsed_tags_status.dup;
comp_obj_heading_ = obj_dom_structure_set_markup_tags(comp_obj_heading_, dom_structure_markedup_tags_status, 0);
@@ -2848,16 +2774,14 @@ comp_obj_heading_ = obj_heading_ancestors(comp_obj_heading_, lv_ancestors_txt);
#+BEGIN_SRC d
auto document_the = [
"head": the_document_head_section,
- "toc_seg": the_table_of_contents_section["seg"],
- "toc_scroll": the_table_of_contents_section["scroll"],
+ "toc": the_table_of_contents_section,
/+ substantive/body: +/
"body": the_document_body_section,
/+ backmatter: +/
"endnotes": the_endnotes_section,
"glossary": the_glossary_section,
"bibliography": the_bibliography_section,
- "bookindex_scroll": the_bookindex_section["scroll"],
- "bookindex_seg": the_bookindex_section["seg"],
+ "bookindex": the_bookindex_section,
"blurb": the_blurb_section,
/+ dom tail only +/
"tail": the_dom_tail_section,
@@ -2869,8 +2793,8 @@ auto document_the = [
#+name: abs_post
#+BEGIN_SRC d
string[][string] document_section_keys_sequenced = [
- "seg": ["head", "toc_seg", "body",],
- "scroll": ["head", "toc_scroll", "body",],
+ "seg": ["head", "toc", "body",],
+ "scroll": ["head", "toc", "body",],
"sql": ["head", "body",]
];
if (document_the["endnotes"].length > 1) {
@@ -2887,12 +2811,10 @@ if (document_the["bibliography"].length > 1) {
document_section_keys_sequenced["scroll"] ~= "bibliography";
document_section_keys_sequenced["sql"] ~= "bibliography";
}
-if (document_the["bookindex_seg"].length > 1) {
- document_section_keys_sequenced["seg"] ~= "bookindex_seg";
- document_section_keys_sequenced["sql"] ~= "bookindex_seg";
-}
-if (document_the["bookindex_scroll"].length > 1) {
- document_section_keys_sequenced["scroll"] ~= "bookindex_scroll";
+if (document_the["bookindex"].length > 1) {
+ document_section_keys_sequenced["seg"] ~= "bookindex";
+ document_section_keys_sequenced["scroll"] ~= "bookindex";
+ document_section_keys_sequenced["sql"] ~= "bookindex";
}
if (document_the["blurb"].length > 1) {
document_section_keys_sequenced["seg"] ~= "blurb";
@@ -2913,7 +2835,12 @@ auto sequenced_document_keys = docSectKeysSeq!()(document_section_keys_sequenced
#+name: abs_post
#+BEGIN_SRC d
-auto segnames_lv4 = html_segnames.dup;
+auto segnames_lv4 = segnames["html"].dup;
+auto segnames_lv1_to_4 = segnames["epub"].dup;
+debug(segnames) {
+ writeln("segnames_lv4: ", segnames_lv4);
+ writeln("segnames_lv1_to_4: ", segnames_lv1_to_4);
+}
#+END_SRC
*** clean out structure
@@ -2928,7 +2855,7 @@ destroy(the_glossary_section);
destroy(the_bibliography_section);
destroy(the_bookindex_section);
destroy(the_blurb_section);
-destroy(html_segnames);
+destroy(segnames);
destroy(bookindex_unordered_hashes);
destroy(an_object);
obj_cite_digits = ocn_emit(OCNstatus.reset);
@@ -3004,7 +2931,7 @@ auto t = tuple(
sequenced_document_keys,
segnames_lv4,
segnames_lv0_to_4,
- tag_assoc_html,
+ tag_assoc,
images,
);
return t;
@@ -3215,7 +3142,7 @@ void _start_block_(L,T,N)(
line
);
}
- object_number_poem["start"] = obj_cite_digits.on.to!string;
+ object_number_poem["start"] = obj_cite_digits.on.to!string;
obj_type_status["blocks"] = TriState.on;
obj_type_status["verse_new"] = State.on;
obj_type_status["poem"] = TriState.on;
@@ -3300,7 +3227,7 @@ void _start_block_(L,T,N)(
line
);
}
- object_number_poem["start"] = obj_cite_digits.on.to!string;
+ object_number_poem["start"] = obj_cite_digits.on.to!string;
obj_type_status["blocks"] = TriState.on;
obj_type_status["verse_new"] = State.on;
obj_type_status["poem"] = TriState.on;
@@ -3674,7 +3601,7 @@ void _group_block_(L,O,T)(
debug(group) {
writeln(line);
}
- an_object[an_object_key] = an_object[an_object_key].stripRight;
+ an_object[an_object_key] = an_object[an_object_key].stripRight;
obj_type_status["blocks"] = TriState.closing;
obj_type_status["group"] = TriState.closing;
obj_type_status["curly_group"] = TriState.off;
@@ -3689,7 +3616,7 @@ void _group_block_(L,O,T)(
debug(group) {
writeln(line);
}
- an_object[an_object_key] = an_object[an_object_key].stripRight;
+ an_object[an_object_key] = an_object[an_object_key].stripRight;
obj_type_status["blocks"] = TriState.closing;
obj_type_status["group"] = TriState.closing;
obj_type_status["tic_group"] = TriState.off;
@@ -3727,7 +3654,7 @@ void _block_block_(L,O,T)(
debug(block) { // block (curly) close
writeln(line);
}
- an_object[an_object_key] = an_object[an_object_key].stripRight;
+ an_object[an_object_key] = an_object[an_object_key].stripRight;
obj_type_status["blocks"] = TriState.closing;
obj_type_status["block"] = TriState.closing;
obj_type_status["curly_block"] = TriState.off;
@@ -3742,7 +3669,7 @@ void _block_block_(L,O,T)(
debug(block) {
writeln(line);
}
- an_object[an_object_key] = an_object[an_object_key].stripRight;
+ an_object[an_object_key] = an_object[an_object_key].stripRight;
obj_type_status["blocks"] = TriState.closing;
obj_type_status["block"] = TriState.closing;
obj_type_status["tic_block"] = TriState.off;
@@ -3769,7 +3696,7 @@ void _poem_block_(L,O,T,C,N,CMM,Ts)(
return ref C cntr,
N object_number_poem,
CMM conf_make_meta,
- Ts segment_anchor_tag_that_object_belongs_to,
+ Ts tag_in_seg,
) {
debug(asserts) {
static assert(is(typeof(line) == char[]));
@@ -3813,22 +3740,23 @@ void _poem_block_(L,O,T,C,N,CMM,Ts)(
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tag = substantive_obj_misc_tuple[sObj.anchor_tag];
- tag_assoc_html = inline_para_link_anchor(an_object, segment_anchor_tag_that_object_belongs_to, tag_assoc_html);
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.metainfo.is_of_part = "body";
- comp_obj_block.metainfo.is_of_section = "body";
- comp_obj_block.metainfo.is_of_type = "block";
- comp_obj_block.metainfo.is_a = "verse";
- comp_obj_block.metainfo.ocn = obj_cite_digits.on;
- comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
- comp_obj_block.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
- comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
- comp_obj_block.text = an_object["substantive"];
- comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_block;
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.metainfo.is_of_part = "body";
+ comp_obj_block.metainfo.is_of_section = "body";
+ comp_obj_block.metainfo.is_of_type = "block";
+ comp_obj_block.metainfo.is_a = "verse";
+ comp_obj_block.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ comp_obj_block.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_block.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
+ comp_obj_block.text = an_object["substantive"];
+ comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_block;
+ tag_assoc = inline_para_link_anchor(an_object, tag_in_seg, tag_assoc);
}
object_reset(an_object);
processing.remove("verse");
@@ -3862,9 +3790,9 @@ void _poem_block_(L,O,T,C,N,CMM,Ts)(
an_object["is"] = "verse";
auto comp_obj_location = node_construct.node_location_emitter(
content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
lev_anchor_tag,
- tag_assoc_html,
+ tag_assoc,
obj_cite_digits,
cntr,
heading_ptr-1,
@@ -3874,22 +3802,23 @@ void _poem_block_(L,O,T,C,N,CMM,Ts)(
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tag = substantive_obj_misc_tuple[sObj.anchor_tag];
- tag_assoc_html = inline_para_link_anchor(an_object, segment_anchor_tag_that_object_belongs_to, tag_assoc_html);
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.metainfo.is_of_part = "body";
- comp_obj_block.metainfo.is_of_section = "body";
- comp_obj_block.metainfo.is_of_type = "block";
- comp_obj_block.metainfo.is_a = "verse";
- comp_obj_block.metainfo.ocn = obj_cite_digits.on;
- comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
- comp_obj_block.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
- comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
- comp_obj_block.text = an_object["substantive"];
- comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_block;
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.metainfo.is_of_part = "body";
+ comp_obj_block.metainfo.is_of_section = "body";
+ comp_obj_block.metainfo.is_of_type = "block";
+ comp_obj_block.metainfo.is_a = "verse";
+ comp_obj_block.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ comp_obj_block.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_block.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
+ comp_obj_block.text = an_object["substantive"];
+ comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_block;
+ tag_assoc = inline_para_link_anchor(an_object, tag_in_seg, tag_assoc);
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -3913,28 +3842,29 @@ void _poem_block_(L,O,T,C,N,CMM,Ts)(
writeln(obj_cite_digits.on, line);
}
processing.remove("verse");
- an_object["is"] = "verse";
+ an_object["is"] = "verse";
auto substantive_obj_misc_tuple
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tag = substantive_obj_misc_tuple[sObj.anchor_tag];
- tag_assoc_html = inline_para_link_anchor(an_object, segment_anchor_tag_that_object_belongs_to, tag_assoc_html);
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.metainfo.is_of_part = "body";
- comp_obj_block.metainfo.is_of_section = "body";
- comp_obj_block.metainfo.is_of_type = "block";
- comp_obj_block.metainfo.is_a = "verse";
- comp_obj_block.metainfo.ocn = obj_cite_digits.on;
- comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
- comp_obj_block.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
- comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
- comp_obj_block.text = an_object["substantive"];
- comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_block;
- object_number_poem["end"] = obj_cite_digits.on.to!string;
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.metainfo.is_of_part = "body";
+ comp_obj_block.metainfo.is_of_section = "body";
+ comp_obj_block.metainfo.is_of_type = "block";
+ comp_obj_block.metainfo.is_a = "verse";
+ comp_obj_block.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ comp_obj_block.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_block.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
+ comp_obj_block.text = an_object["substantive"];
+ comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_block;
+ tag_assoc = inline_para_link_anchor(an_object, tag_in_seg, tag_assoc);
+ object_number_poem["end"] = obj_cite_digits.on.to!string;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -3967,9 +3897,9 @@ void _poem_block_(L,O,T,C,N,CMM,Ts)(
auto comp_obj_location
= node_construct.node_location_emitter(
content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
lev_anchor_tag,
- tag_assoc_html,
+ tag_assoc,
obj_cite_digits,
cntr,
heading_ptr-1,
@@ -3979,22 +3909,23 @@ void _poem_block_(L,O,T,C,N,CMM,Ts)(
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tag = substantive_obj_misc_tuple[sObj.anchor_tag];
- tag_assoc_html = inline_para_link_anchor(an_object, segment_anchor_tag_that_object_belongs_to, tag_assoc_html);
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.metainfo.is_of_part = "body";
- comp_obj_block.metainfo.is_of_section = "body";
- comp_obj_block.metainfo.is_of_type = "block";
- comp_obj_block.metainfo.is_a = "verse";
- comp_obj_block.metainfo.ocn = obj_cite_digits.on;
- comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
- comp_obj_block.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
- comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
- comp_obj_block.text = an_object["substantive"];
- comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_block;
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.metainfo.is_of_part = "body";
+ comp_obj_block.metainfo.is_of_section = "body";
+ comp_obj_block.metainfo.is_of_type = "block";
+ comp_obj_block.metainfo.is_a = "verse";
+ comp_obj_block.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ comp_obj_block.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_block.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
+ comp_obj_block.text = an_object["substantive"];
+ comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_block;
+ tag_assoc = inline_para_link_anchor(an_object, tag_in_seg, tag_assoc);
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -4114,9 +4045,9 @@ void _table_closed_make_special_notation_table_(N,CMM)(
auto comp_obj_location
= node_construct.node_location_emitter(
content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
lev_anchor_tag,
- tag_assoc_html,
+ tag_assoc,
obj_cite_digits,
cntr,
heading_ptr-1,
@@ -4125,15 +4056,16 @@ void _table_closed_make_special_notation_table_(N,CMM)(
an_object["is"] = "table";
auto substantive_obj_misc_tuple
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, "body_nugget", conf_make_meta, false);
- an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
- comp_obj_block.metainfo.ocn = obj_cite_digits.on;
- comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
- comp_obj_block.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
- comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
- comp_obj_block = table_instructions(comp_obj_block, an_object["table_head"]);
- comp_obj_block = table_substantive_munge_special(comp_obj_block, an_object["substantive"]);
- the_document_body_section ~= comp_obj_block;
+ an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
+ comp_obj_block.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ comp_obj_block.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_block.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
+ comp_obj_block = table_instructions(comp_obj_block, an_object["table_head"]);
+ comp_obj_block = table_substantive_munge_special(comp_obj_block, an_object["substantive"]);
+ the_document_body_section ~= comp_obj_block;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -4158,7 +4090,7 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
return ref int[string] obj_type_status,
string[string] object_number_poem,
CMM conf_make_meta,
- Ts segment_anchor_tag_that_object_belongs_to,
+ Ts tag_in_seg,
) {
assert(
line.empty,
@@ -4184,15 +4116,15 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
= bookindex_extract_hash.bookindex_nugget_hash(
an_object["bookindex_nugget"],
obj_cite_digits,
- segment_anchor_tag_that_object_belongs_to
+ tag_in_seg
);
an_object["is"] = "quote";
auto comp_obj_location
= node_construct.node_location_emitter(
content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
lev_anchor_tag,
- tag_assoc_html,
+ tag_assoc,
obj_cite_digits,
cntr,
heading_ptr-1,
@@ -4202,24 +4134,25 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tag = substantive_obj_misc_tuple[sObj.anchor_tag];
- tag_assoc_html = inline_para_link_anchor(an_object, segment_anchor_tag_that_object_belongs_to, tag_assoc_html);
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.metainfo.is_of_part = "body";
- comp_obj_block.metainfo.is_of_section = "body";
- comp_obj_block.metainfo.is_of_type = "block";
- comp_obj_block.metainfo.is_a = "quote";
- comp_obj_block.metainfo.ocn = obj_cite_digits.on;
- comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
- comp_obj_block.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
- comp_obj_block.metainfo.object_number_type = obj_cite_digit_type;
- comp_obj_block.text = an_object["substantive"];
- comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_block;
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["quote"] = TriState.off;
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.metainfo.is_of_part = "body";
+ comp_obj_block.metainfo.is_of_section = "body";
+ comp_obj_block.metainfo.is_of_type = "block";
+ comp_obj_block.metainfo.is_a = "quote";
+ comp_obj_block.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ comp_obj_block.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_block.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_block.metainfo.object_number_type = obj_cite_digit_type;
+ comp_obj_block.text = an_object["substantive"];
+ comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_block;
+ tag_assoc = inline_para_link_anchor(an_object, tag_in_seg, tag_assoc);
+ obj_type_status["blocks"] = TriState.off;
+ obj_type_status["quote"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -4237,15 +4170,15 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
= bookindex_extract_hash.bookindex_nugget_hash(
an_object["bookindex_nugget"],
obj_cite_digits,
- segment_anchor_tag_that_object_belongs_to
+ tag_in_seg
);
an_object["is"] = "group";
auto comp_obj_location
= node_construct.node_location_emitter(
content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
lev_anchor_tag,
- tag_assoc_html,
+ tag_assoc,
obj_cite_digits,
cntr,
heading_ptr-1,
@@ -4255,24 +4188,25 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tag = substantive_obj_misc_tuple[sObj.anchor_tag];
- tag_assoc_html = inline_para_link_anchor(an_object, segment_anchor_tag_that_object_belongs_to, tag_assoc_html);
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.metainfo.is_of_part = "body";
- comp_obj_block.metainfo.is_of_section = "body";
- comp_obj_block.metainfo.is_of_type = "block";
- comp_obj_block.metainfo.is_a = "group";
- comp_obj_block.metainfo.ocn = obj_cite_digits.on;
- comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
- comp_obj_block.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
- comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
- comp_obj_block.text = an_object["substantive"];
- comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_block;
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["group"] = TriState.off;
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.metainfo.is_of_part = "body";
+ comp_obj_block.metainfo.is_of_section = "body";
+ comp_obj_block.metainfo.is_of_type = "block";
+ comp_obj_block.metainfo.is_a = "group";
+ comp_obj_block.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ comp_obj_block.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_block.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
+ comp_obj_block.text = an_object["substantive"];
+ comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_block;
+ tag_assoc = inline_para_link_anchor(an_object, tag_in_seg, tag_assoc);
+ obj_type_status["blocks"] = TriState.off;
+ obj_type_status["group"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -4290,15 +4224,15 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
= bookindex_extract_hash.bookindex_nugget_hash(
an_object["bookindex_nugget"],
obj_cite_digits,
- segment_anchor_tag_that_object_belongs_to
+ tag_in_seg
);
an_object["is"] = "block";
auto comp_obj_location
= node_construct.node_location_emitter(
content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
lev_anchor_tag,
- tag_assoc_html,
+ tag_assoc,
obj_cite_digits,
cntr,
heading_ptr-1,
@@ -4306,24 +4240,26 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
);
auto substantive_obj_misc_tuple
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);
- an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.metainfo.is_of_part = "body";
- comp_obj_block.metainfo.is_of_section = "body";
- comp_obj_block.metainfo.is_of_type = "block";
- comp_obj_block.metainfo.is_a = "block";
- comp_obj_block.metainfo.ocn = obj_cite_digits.on;
- comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
- comp_obj_block.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
- comp_obj_block.metainfo.object_number_type = obj_cite_digit_type;
- comp_obj_block.text = an_object["substantive"];
- comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_block;
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["block"] = TriState.off;
+ an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
+ // anchor_tag = substantive_obj_misc_tuple[sObj.anchor_tag];
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.metainfo.is_of_part = "body";
+ comp_obj_block.metainfo.is_of_section = "body";
+ comp_obj_block.metainfo.is_of_type = "block";
+ comp_obj_block.metainfo.is_a = "block";
+ comp_obj_block.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ comp_obj_block.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_block.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_block.metainfo.object_number_type = obj_cite_digit_type;
+ comp_obj_block.text = an_object["substantive"];
+ comp_obj_block.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_block.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_block.has.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_block;
+ obj_type_status["blocks"] = TriState.off;
+ obj_type_status["block"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -4340,15 +4276,15 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
= bookindex_extract_hash.bookindex_nugget_hash(
an_object["bookindex_nugget"],
obj_cite_digits,
- segment_anchor_tag_that_object_belongs_to
+ tag_in_seg
);
an_object["is"] = "verse";
auto comp_obj_location
= node_construct.node_location_emitter(
content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
lev_anchor_tag,
- tag_assoc_html,
+ tag_assoc,
obj_cite_digits,
cntr,
heading_ptr-1,
@@ -4383,15 +4319,15 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
= bookindex_extract_hash.bookindex_nugget_hash(
an_object["bookindex_nugget"],
obj_cite_digits,
- segment_anchor_tag_that_object_belongs_to
+ tag_in_seg
);
an_object["is"] = "code";
auto comp_obj_location
= node_construct.node_location_emitter(
content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
lev_anchor_tag,
- tag_assoc_html,
+ tag_assoc,
obj_cite_digits,
cntr,
heading_ptr-1,
@@ -4401,23 +4337,24 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);
an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
anchor_tag = substantive_obj_misc_tuple[sObj.anchor_tag];
- comp_obj_code = comp_obj_code.init;
- comp_obj_code.metainfo.is_of_part = "body";
- comp_obj_code.metainfo.is_of_section = "body";
- comp_obj_code.metainfo.is_of_type = "block";
- comp_obj_code.metainfo.is_a = "code";
- comp_obj_code.metainfo.ocn = obj_cite_digits.on;
- comp_obj_code.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
- comp_obj_code.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_code.metainfo.o_n_book_index = obj_cite_digits.bkidx;
- comp_obj_code.metainfo.object_number_type = obj_cite_digits.type;
- comp_obj_code.text = an_object["substantive"];
- comp_obj_code.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
- comp_obj_code.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
- comp_obj_code.has.inline_links = substantive_obj_misc_tuple[sObj.links];
- the_document_body_section ~= comp_obj_code;
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["code"] = TriState.off;
+ comp_obj_code = comp_obj_code.init;
+ comp_obj_code.metainfo.is_of_part = "body";
+ comp_obj_code.metainfo.is_of_section = "body";
+ comp_obj_code.metainfo.is_of_type = "block";
+ comp_obj_code.metainfo.is_a = "code";
+ comp_obj_code.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_code.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ comp_obj_code.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_code.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_code.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_code.metainfo.object_number_type = obj_cite_digits.type;
+ comp_obj_code.text = an_object["substantive"];
+ comp_obj_code.has.inline_notes_reg = substantive_obj_misc_tuple[sObj.notes_reg];
+ comp_obj_code.has.inline_notes_star = substantive_obj_misc_tuple[sObj.notes_star];
+ comp_obj_code.has.inline_links = substantive_obj_misc_tuple[sObj.links];
+ the_document_body_section ~= comp_obj_code;
+ obj_type_status["blocks"] = TriState.off;
+ obj_type_status["code"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -4436,15 +4373,15 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
= bookindex_extract_hash.bookindex_nugget_hash(
an_object["bookindex_nugget"],
obj_cite_digits,
- segment_anchor_tag_that_object_belongs_to
+ tag_in_seg
);
an_object["is"] = "table";
auto comp_obj_location
= node_construct.node_location_emitter(
content_non_header,
- segment_anchor_tag_that_object_belongs_to,
+ tag_in_seg,
lev_anchor_tag,
- tag_assoc_html,
+ tag_assoc,
obj_cite_digits,
cntr,
heading_ptr-1,
@@ -4452,18 +4389,19 @@ void _block_flag_line_empty_(B,N,CMM,Ts)(
);
auto substantive_obj_misc_tuple
= obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);
- an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
- comp_obj_block = comp_obj_block.init;
- comp_obj_block.metainfo.ocn = obj_cite_digits.on;
- comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
- comp_obj_block.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
- comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
- comp_obj_block = table_instructions(comp_obj_block, an_object["table_head"]);
- comp_obj_block = table_substantive_munge(comp_obj_block, an_object["substantive"]);
- the_document_body_section ~= comp_obj_block;
- obj_type_status["blocks"] = TriState.off;
- obj_type_status["table"] = TriState.off;
+ an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];
+ comp_obj_block = comp_obj_block.init;
+ comp_obj_block.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_block.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ comp_obj_block.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_block.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_block.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_block.metainfo.object_number_type = obj_cite_digits.type;
+ comp_obj_block = table_instructions(comp_obj_block, an_object["table_head"]);
+ comp_obj_block = table_substantive_munge(comp_obj_block, an_object["substantive"]);
+ the_document_body_section ~= comp_obj_block;
+ obj_type_status["blocks"] = TriState.off;
+ obj_type_status["table"] = TriState.off;
object_reset(an_object);
processing.remove("verse");
++cntr;
@@ -5858,18 +5796,18 @@ static struct ObjInlineMarkup {
auto table_of_contents_gather_headings(O,CMM,Ts,Ta,X,Toc)(
O obj_,
CMM conf_make_meta,
- Ts segment_anchor_tag_that_object_belongs_to,
+ Ts tag_in_seg,
Ta _anchor_tag,
return ref X lev4_subtoc,
Toc the_table_of_contents_section,
)
in {
debug(asserts) {
- static assert(is(typeof(obj_) == string[string]));
- static assert(is(typeof(segment_anchor_tag_that_object_belongs_to) == string[string]));
- static assert(is(typeof(_anchor_tag) == string));
- static assert(is(typeof(lev4_subtoc) == string[][string]));
- static assert(is(typeof(the_table_of_contents_section) == ObjGenericComposite[][string]));
+ static assert(is(typeof(obj_) == string[string]));
+ static assert(is(typeof(tag_in_seg) == string[string]));
+ static assert(is(typeof(_anchor_tag) == string));
+ static assert(is(typeof(lev4_subtoc) == string[][string]));
+ static assert(is(typeof(the_table_of_contents_section) == ObjGenericComposite[]));
}
}
body {
@@ -5905,7 +5843,7 @@ static struct ObjInlineMarkup {
comp_obj_toc.attrib.bullet = false;
comp_obj_toc.text = toc_txt_.to!string.strip;
comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["scroll"] ~= comp_obj_toc;
+ the_table_of_contents_section ~= comp_obj_toc;
} else {
indent=[
"hang_position" : 0,
@@ -5924,7 +5862,7 @@ static struct ObjInlineMarkup {
comp_obj_toc.attrib.bullet = false;
comp_obj_toc.text = "Table of Contents";
comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["scroll"] ~= comp_obj_toc;
+ the_table_of_contents_section ~= comp_obj_toc;
}
comp_obj_toc = comp_obj_toc.init;
comp_obj_toc.metainfo.is_of_part = "frontmatter";
@@ -5937,83 +5875,21 @@ static struct ObjInlineMarkup {
comp_obj_toc.attrib.bullet = false;
comp_obj_toc.has.inline_links = true;
switch (obj_["lev_markup_number"].to!int) {
- case 0:
- indent=[
- "hang_position" : 0,
- "base_position" : 0,
- ];
- toc_txt_ = "{ Table of Contents }" ~ mkup.mark_internal_site_lnk ~ "toc.fnSuffix";
- toc_txt_= munge.url_links(toc_txt_);
- comp_obj_toc.attrib.indent_hang = indent["hang_position"];
- comp_obj_toc.attrib.indent_base = indent["base_position"];
- comp_obj_toc.text = toc_txt_.to!string.strip;
- comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["seg"] ~= comp_obj_toc;
- break;
- case 1: .. case 3:
- indent=[
- "hang_position" : obj_["lev_markup_number"].to!int,
- "base_position" : obj_["lev_markup_number"].to!int,
- ];
- toc_txt_ = format(
- "%s",
- heading_toc_,
- );
- toc_txt_= munge.url_links(toc_txt_);
- comp_obj_toc.attrib.indent_hang = indent["hang_position"];
- comp_obj_toc.attrib.indent_base = indent["base_position"];
- comp_obj_toc.text = toc_txt_.to!string.strip;
- comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["seg"] ~= comp_obj_toc;
+ case 0: .. case 3:
break;
case 4:
- toc_txt_ = format(
- "{ %s }%s%s%s",
- heading_toc_,
- mkup.mark_internal_site_lnk,
- segment_anchor_tag_that_object_belongs_to["html"],
- ".fnSuffix",
- );
- lev4_subtoc[segment_anchor_tag_that_object_belongs_to["html"]] = [];
- toc_txt_= munge.url_links(toc_txt_);
- indent=[
- "hang_position" : obj_["lev_markup_number"].to!int,
- "base_position" : obj_["lev_markup_number"].to!int,
- ];
- comp_obj_toc.attrib.indent_hang = indent["hang_position"];
- comp_obj_toc.attrib.indent_base = indent["base_position"];
- comp_obj_toc.text = toc_txt_.to!string.strip;
- comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["seg"] ~= comp_obj_toc;
+ lev4_subtoc[tag_in_seg["seg_lv4"]] = [];
break;
case 5: .. case 7:
- toc_txt_ = format(
- "{ %s }%s%s%s#%s",
- heading_toc_,
- mkup.mark_internal_site_lnk,
- segment_anchor_tag_that_object_belongs_to["html"],
- ".fnSuffix",
- _anchor_tag,
- );
subtoc_txt_ = format(
"{ %s }#%s",
heading_toc_,
_anchor_tag,
);
- lev4_subtoc[segment_anchor_tag_that_object_belongs_to["html"]]
+ lev4_subtoc[tag_in_seg["seg_lv4"]]
~= munge.url_links(obj_["lev_markup_number"]
~ "~ " ~ subtoc_txt_.to!string.strip
);
- toc_txt_= munge.url_links(toc_txt_);
- indent=[
- "hang_position" : obj_["lev_markup_number"].to!int,
- "base_position" : obj_["lev_markup_number"].to!int,
- ];
- comp_obj_toc.attrib.indent_hang = indent["hang_position"];
- comp_obj_toc.attrib.indent_base = indent["base_position"];
- comp_obj_toc.text = toc_txt_.to!string.strip;
- comp_obj_toc.has.inline_links = true;
- the_table_of_contents_section["seg"] ~= comp_obj_toc;
break;
default:
break;
@@ -6037,6 +5913,7 @@ private:
#+BEGIN_SRC d
static int[] heading_num = [ 0, 0, 0, 0 ];
static string heading_number_auto_composite = "";
+ static string heading_number_auto_composite_segname = "";
static string _configured_auto_heading_numbering_and_segment_anchor_tags(M,O,CMM)(
M munge_,
O obj_,
@@ -6130,6 +6007,10 @@ private:
} else {
heading_number_auto_composite = "";
}
+ heading_number_auto_composite_segname =
+ (heading_number_auto_composite.empty)
+ ? ""
+ : "seg_" ~ heading_number_auto_composite;
debug(heading_number_auto) {
writeln(heading_number_auto_composite);
}
@@ -6139,7 +6020,7 @@ private:
.replaceFirst(rgx.heading,
"$1~$2 " ~ heading_number_auto_composite ~ ". ")
.replaceFirst(rgx.heading_marker_missing_tag,
- "$1~" ~ heading_number_auto_composite ~ " ");
+ "$1~" ~ heading_number_auto_composite_segname ~ " ");
}
}
return munge_;
@@ -6611,7 +6492,7 @@ struct BookIndexNuggetHash {
string[][string][string] bookindex_nugget_hash(BI,N,S)(
BI bookindex_section,
N obj_cite_digits,
- S segment_anchor_tag_that_object_belongs_to,
+ S tag_in_seg,
)
in {
debug(asserts) {
@@ -6622,7 +6503,9 @@ struct BookIndexNuggetHash {
if (!bookindex_section.empty) {
writeln(
"* [bookindex] ",
- "[", obj_cite_digits.on.to!string, ": ", segment_anchor_tag_that_object_belongs_to["html"], "] ", bookindex_section
+ "[", obj_cite_digits.on.to!string, ": ", tag_in_seg["seg_lv4"], "] ", bookindex_section,
+ " - - - ",
+ "[", obj_cite_digits.on.to!string, "] ", bookindex_section
);
}
}
@@ -6642,15 +6525,13 @@ struct BookIndexNuggetHash {
object_number_offset = m.captures[2].to!int;
object_number_endpoint=(obj_cite_digits.on + object_number_offset);
object_numbers ~= (obj_cite_digits.on.to!string
- ~ "-" ~ object_number_endpoint.to!string
- ~ ":" ~ segment_anchor_tag_that_object_belongs_to["html"]);
+ ~ "-" ~ object_number_endpoint.to!string);
} else {
main_term = bi_main_term_and_rest[0].strip;
- object_numbers ~= obj_cite_digits.on.to!string
- ~ ":" ~ segment_anchor_tag_that_object_belongs_to["html"];
+ object_numbers ~= obj_cite_digits.on.to!string;
}
bi[main_term]["_a"] ~= object_numbers;
- object_numbers=null;
+ object_numbers = null;
if (bi_main_term_and_rest.length > 1) {
auto bi_sub_terms_split_arr
= bi_main_term_and_rest[1].split(
@@ -6662,12 +6543,10 @@ struct BookIndexNuggetHash {
object_number_offset = m.captures[2].to!int;
object_number_endpoint=(obj_cite_digits.on + object_number_offset);
object_numbers ~= (obj_cite_digits.on.to!string
- ~ " - " ~ object_number_endpoint.to!string
- ~ ":" ~ segment_anchor_tag_that_object_belongs_to["html"]);
+ ~ " - " ~ object_number_endpoint.to!string);
} else {
sub_term = sub_terms_bits.strip;
- object_numbers ~= obj_cite_digits.on.to!string
- ~ ":" ~ segment_anchor_tag_that_object_belongs_to["html"];
+ object_numbers ~= obj_cite_digits.on.to!string;
}
if (!empty(sub_term)) {
bi[main_term][sub_term] ~= object_numbers;
@@ -6789,14 +6668,14 @@ struct BookIndexReportSection {
int[string] indent;
auto mainkeys
= bookindex_unordered_hashes.byKey.array.sort().release;
- ObjGenericComposite[][string] bookindex_section;
+ ObjGenericComposite[] bookindex_section;
ObjGenericComposite comp_obj_heading_, comp_obj_para;
auto node_para_int_ = node_metadata_para_int;
auto node_para_str_ = node_metadata_para_str;
if ((mainkeys.length > 0)
&& (opt_action.backmatter
&& opt_action.section_bookindex)) {
- string bi_tmp_seg, bi_tmp_scroll;
+ string bi_tmp;
string[] bi_tmp_tags;
comp_obj_heading_ = comp_obj_heading_.init;
comp_obj_heading_.metainfo.is_of_part = "backmatter";
@@ -6807,15 +6686,17 @@ struct BookIndexReportSection {
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_heading_.metainfo.object_number_off = "";
comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "_part_book_index";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "_part_book_index";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = "bookindex";
comp_obj_heading_.metainfo.heading_lev_markup = 1;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
comp_obj_heading_.metainfo.parent_lev_markup = 0;
comp_obj_heading.has.inline_links = true;
- bookindex_section["scroll"] ~= comp_obj_heading_;
- bookindex_section["seg"] ~= comp_obj_heading_;
+ bookindex_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
++mkn;
comp_obj_heading_ = comp_obj_heading_.init;
comp_obj_heading_.metainfo.is_of_part = "backmatter";
@@ -6826,44 +6707,32 @@ struct BookIndexReportSection {
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_heading_.metainfo.object_number_off = "";
comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "bookindex";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "bookindex";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = comp_obj_heading_.tags.anchor_tag_html;
comp_obj_heading_.metainfo.heading_lev_markup = 4;
comp_obj_heading_.metainfo.heading_lev_collapsed = 2;
comp_obj_heading_.metainfo.parent_ocn = 1;
comp_obj_heading_.metainfo.parent_lev_markup = 0;
comp_obj_heading.has.inline_links = false;
comp_obj_heading_.tags.anchor_tags = ["bookindex"];
- bookindex_section["scroll"] ~= comp_obj_heading_;
- bookindex_section["seg"] ~= comp_obj_heading_;
+ bookindex_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
++mkn;
import std.array : appender;
auto buffer = appender!(char[])();
string[dchar] transTable = [' ' : "_"];
foreach (mainkey; mainkeys) {
bi_tmp_tags = [""];
- bi_tmp_scroll = "!{" ~ mainkey ~ "}! ";
+ bi_tmp = "!{" ~ mainkey ~ "}! ";
buffer.clear();
bi_tmp_tags ~= translate(mainkey, transTable);
- bi_tmp_seg = "!{" ~ mainkey ~ "}! ";
- auto bkidx_lnk_seg(string locs) {
- string markup = "";
- if (auto m = locs.matchFirst(rgx.book_index_go_seg)) {
- markup
- = munge.url_links("{ " ~ m["link"] ~ " }"
- ~ mkup.mark_internal_site_lnk ~ m["seg"] ~ ".fnSuffix"
- ~ "#" ~ m["ocn"] ~ ", ");
- } else {
- writeln(__LINE__, ": ", locs);
- }
- return markup;
- }
- auto bkidx_lnk_scroll(string locs) {
+ auto bkidx_lnk(string locs) {
string markup = "";
if (auto m = locs.matchFirst(rgx.book_index_go)) {
markup
= munge.url_links("{ " ~ m["link"] ~ " }"
- ~ mkup.mark_internal_site_lnk
~ "#" ~ m["ocn"] ~ ", ");
} else {
writeln(__LINE__, ": ", locs);
@@ -6871,35 +6740,29 @@ struct BookIndexReportSection {
return markup;
}
foreach (ref_; bookindex_unordered_hashes[mainkey]["_a"]) {
- bi_tmp_scroll ~= bkidx_lnk_scroll(ref_);
- bi_tmp_seg ~= bkidx_lnk_seg(ref_);
+ bi_tmp ~= bkidx_lnk(ref_);
}
- bi_tmp_scroll ~= " \\\\\n ";
- bi_tmp_seg ~= " \\\\\n ";
+ bi_tmp ~= " \\\\\n ";
bookindex_unordered_hashes[mainkey].remove("_a");
auto subkeys
= bookindex_unordered_hashes[mainkey].byKey.array.sort().release;
foreach (subkey; subkeys) {
- bi_tmp_scroll ~= subkey ~ ", ";
+ bi_tmp ~= subkey ~ ", ";
buffer.clear();
bi_tmp_tags ~= translate(subkey, transTable);
- bi_tmp_seg ~= subkey ~ ", ";
foreach (ref_; bookindex_unordered_hashes[mainkey][subkey]) {
- bi_tmp_scroll ~= bkidx_lnk_scroll(ref_);
- bi_tmp_seg ~= bkidx_lnk_seg(ref_);
+ bi_tmp ~= bkidx_lnk(ref_);
}
- bi_tmp_scroll ~= " \\\\\n ";
- bi_tmp_seg ~= " \\\\\n ";
+ bi_tmp ~= " \\\\\n ";
++skn;
}
- bi_tmp_scroll = (bi_tmp_scroll).replaceFirst(rgx.trailing_linebreak, "");
- bi_tmp_seg = (bi_tmp_seg).replaceFirst(rgx.trailing_linebreak, "");
+ bi_tmp = (bi_tmp).replaceFirst(rgx.trailing_linebreak, "");
comp_obj_para = comp_obj_para.init;
comp_obj_para.metainfo.is_of_part = "backmatter";
comp_obj_para.metainfo.is_of_section = "bookindex";
comp_obj_para.metainfo.is_of_type = "para";
comp_obj_para.metainfo.is_a = "bookindex";
- comp_obj_para.text = bi_tmp_scroll.to!string.strip;
+ comp_obj_para.text = bi_tmp.to!string.strip;
comp_obj_para.metainfo.ocn = 0;
comp_obj_para.metainfo.object_number_off = "";
comp_obj_para.metainfo.object_number_type = 0;
@@ -6908,9 +6771,8 @@ struct BookIndexReportSection {
comp_obj_para.attrib.indent_base = 1;
comp_obj_para.attrib.bullet = false;
comp_obj_para.has.inline_links = true;
- bookindex_section["scroll"] ~= comp_obj_para;
- comp_obj_para.text = bi_tmp_seg.to!string.strip;
- bookindex_section["seg"] ~= comp_obj_para;
+ comp_obj_para.text = bi_tmp.to!string.strip;
+ bookindex_section ~= comp_obj_para;
++mkn;
}
} else { // no book index, (figure out what to do here)
@@ -6923,8 +6785,7 @@ struct BookIndexReportSection {
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
comp_obj_heading_.metainfo.parent_lev_markup = 0;
- bookindex_section["scroll"] ~= comp_obj_heading_;
- bookindex_section["seg"] ~= comp_obj_heading_;
+ bookindex_section ~= comp_obj_heading_;
}
auto t = tuple(
bookindex_section,
@@ -6958,7 +6819,7 @@ struct NotesSection {
#+BEGIN_SRC d
private auto gather_notes_for_endnote_section(
ObjGenericComposite[] contents_am,
- string[string] segment_anchor_tag_that_object_belongs_to,
+ string[string] tag_in_seg,
int cntr,
)
in {
@@ -6989,13 +6850,13 @@ struct NotesSection {
writeln(
"{^{", m.captures[1], ".}^}"
~ mkup.mark_internal_site_lnk,
- segment_anchor_tag_that_object_belongs_to["html"],
+ tag_in_seg["seg_lv4"],
".fnSuffix#noteref_\n ", m.captures[1], " ",
m.captures[2]); // sometimes need segment name (segmented html & epub)
}
// you need anchor for segments at this point ->
object_notes["anchor"] ~= "note_" ~ m.captures[1] ~ "』";
- object_notes["notes"] ~= (segment_anchor_tag_that_object_belongs_to["html"].empty)
+ object_notes["notes"] ~= (tag_in_seg["seg_lv4"].empty)
? (munge.url_links(
"{^{" ~ m.captures[1] ~ ".}^}#noteref_"
~ m.captures[1]) ~ " "
@@ -7004,7 +6865,7 @@ struct NotesSection {
: (munge.url_links(
"{^{" ~ m.captures[1] ~ ".}^}"
~ mkup.mark_internal_site_lnk
- ~ segment_anchor_tag_that_object_belongs_to["html"]
+ ~ tag_in_seg["seg_lv4"]
~ ".fnSuffix#noteref_"
~ m.captures[1]) ~ " "
~ m.captures[2] ~ "』"
@@ -7064,13 +6925,16 @@ struct NotesSection {
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_heading_.metainfo.object_number_off = "";
comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "_part_endnotes";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "_part_endnotes";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = "endnotes";
comp_obj_heading_.metainfo.heading_lev_markup = 1;
comp_obj_heading_.metainfo.heading_lev_collapsed = 1;
comp_obj_heading_.metainfo.parent_ocn = 1;
comp_obj_heading_.metainfo.parent_lev_markup = 0;
the_endnotes_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
++mkn;
comp_obj_heading_ = comp_obj_heading_.init;
comp_obj_heading_.metainfo.is_of_part = "backmatter";
@@ -7081,14 +6945,17 @@ struct NotesSection {
comp_obj_heading_.metainfo.ocn = 0;
comp_obj_heading_.metainfo.object_number_off = "";
comp_obj_heading_.metainfo.object_number_type = 0;
- comp_obj_heading_.tags.segment_anchor_tag_html = "endnotes";
- comp_obj_heading_.tags.segment_anchor_tag_epub = comp_obj_heading_.tags.segment_anchor_tag_html;
+ comp_obj_heading_.tags.segment_anchor_tag_epub = "endnotes";
+ comp_obj_heading_.tags.anchor_tag_html = comp_obj_heading_.tags.segment_anchor_tag_epub;
+ comp_obj_heading_.tags.in_segment_html = comp_obj_heading_.tags.anchor_tag_html;
comp_obj_heading_.metainfo.heading_lev_markup = 4;
comp_obj_heading_.metainfo.heading_lev_collapsed = 2;
comp_obj_heading_.metainfo.parent_ocn = 1;
comp_obj_heading_.metainfo.parent_lev_markup = 0;
comp_obj_heading_.tags.anchor_tags = ["endnotes"];
the_endnotes_section ~= comp_obj_heading_;
+ tag_assoc[comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = comp_obj_heading_.tags.segment_anchor_tag_epub;
++mkn;
} else {
comp_obj_heading_ = comp_obj_heading_.init;
@@ -7295,9 +7162,9 @@ struct NodeStructureMetadata {
#+BEGIN_SRC d
ObjGenericComposite node_location_emitter(Lv,Tg,La,Ta,N,C,P,I)(
Lv lev_markup_number,
- Tg segment_anchor_tag_that_object_belongs_to,
+ Tg tag_in_seg,
La lev_anchor_tag,
- Ta tag_assoc_html,
+ Ta tag_assoc,
N obj_cite_digits,
C cntr_,
P ptr_,
@@ -7305,12 +7172,12 @@ struct NodeStructureMetadata {
)
in {
debug(asserts) {
- static assert(is(typeof(lev_markup_number) == string));
- static assert(is(typeof(segment_anchor_tag_that_object_belongs_to) == string[string]));
- static assert(is(typeof(obj_cite_digits.on) == int));
- static assert(is(typeof(cntr_) == int));
- static assert(is(typeof(ptr_) == int));
- static assert(is(typeof(is_) == string));
+ static assert(is(typeof(lev_markup_number) == string));
+ static assert(is(typeof(tag_in_seg) == string[string]));
+ static assert(is(typeof(obj_cite_digits.on) == int));
+ static assert(is(typeof(cntr_) == int));
+ static assert(is(typeof(ptr_) == int));
+ static assert(is(typeof(is_) == string));
}
assert(is_ != "heading");
assert(obj_cite_digits.on.to!int >= 0);
@@ -7332,14 +7199,14 @@ struct NodeStructureMetadata {
p_["object_number"] = lv4;
}
ObjGenericComposite comp_obj_location;
- comp_obj_location = comp_obj_location.init;
- comp_obj_location.metainfo.is_a = is_;
- comp_obj_location.metainfo.ocn = obj_cite_digits.on;
- comp_obj_location.tags.segment_anchor_tag_html = segment_anchor_tag_that_object_belongs_to["html"];
- comp_obj_location.tags.segment_anchor_tag_epub = segment_anchor_tag_that_object_belongs_to["epub"];
- comp_obj_location.tags.heading_lev_anchor_tag = lev_anchor_tag;
- comp_obj_location.metainfo.parent_ocn = p_["object_number"];
- comp_obj_location.metainfo.parent_lev_markup = p_["lev_markup_number"];
+ comp_obj_location = comp_obj_location.init;
+ comp_obj_location.metainfo.is_a = is_;
+ comp_obj_location.metainfo.ocn = obj_cite_digits.on;
+ comp_obj_location.tags.anchor_tag_html = tag_in_seg["seg_lv4"];
+ comp_obj_location.tags.segment_anchor_tag_epub = tag_in_seg["seg_lv1_to_4"];
+ comp_obj_location.tags.heading_lev_anchor_tag = lev_anchor_tag;
+ comp_obj_location.metainfo.parent_ocn = p_["object_number"];
+ comp_obj_location.metainfo.parent_lev_markup = p_["lev_markup_number"];
debug(_node) {
if (lev_markup_number.match(rgx.levels_numbered_headings)) {
writeln("x ", _node.to!string);
@@ -7364,9 +7231,9 @@ struct NodeStructureMetadata {
T _text,
Lm lev_markup_number,
Lc lev_collapsed_number,
- TaB segment_anchor_tag_that_object_belongs_to,
+ TaB tag_in_seg,
TaL lev_anchor_tag,
- TA tag_assoc_html,
+ TA tag_assoc,
N obj_cite_digits,
C cntr_,
P ptr_,
@@ -7383,7 +7250,7 @@ struct NodeStructureMetadata {
static assert(is(typeof(lev) == string));
static assert(is(typeof(lev_markup_number) == string));
static assert(is(typeof(lev_collapsed_number) == string));
- static assert(is(typeof(segment_anchor_tag_that_object_belongs_to) == string[string]));
+ static assert(is(typeof(tag_in_seg) == string[string]));
static assert(is(typeof(obj_cite_digits.on) == int));
static assert(is(typeof(cntr_) == int));
static assert(is(typeof(ptr_) == int));
@@ -7500,11 +7367,14 @@ struct NodeStructureMetadata {
_comp_obj_heading_.text = _text.to!string.strip;
_comp_obj_heading_.metainfo.ocn = obj_cite_digits.on;
_comp_obj_heading_.metainfo.object_number_off = (obj_cite_digits.off==0) ? "" : obj_cite_digits.off.to!string;
+ // _comp_obj_heading_.metainfo.o_n_book_index = obj_cite_digits.bkidx;
_comp_obj_heading_.metainfo.object_number_type = obj_cite_digits.type;
- _comp_obj_heading_.tags.segment_anchor_tag_html = segment_anchor_tag_that_object_belongs_to["html"];
- _comp_obj_heading_.tags.segment_anchor_tag_epub = _comp_obj_heading_.tags.segment_anchor_tag_html;
+ _comp_obj_heading_.tags.segment_anchor_tag_epub = tag_in_seg["seg_lv1_to_4"];
+ _comp_obj_heading_.tags.anchor_tag_html = tag_in_seg["seg_lv4"];
+ _comp_obj_heading_.tags.in_segment_html = _comp_obj_heading_.tags.anchor_tag_html;
_comp_obj_heading_.tags.heading_lev_anchor_tag = lev_anchor_tag;
- _comp_obj_heading_.tags.segment_anchor_tag_is = segment_anchor_tag_that_object_belongs_to["html"];
+ _comp_obj_heading_.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ _comp_obj_heading_.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1_to_4"];
_comp_obj_heading_.metainfo.heading_lev_markup = (!(lev_markup_number.empty) ? lev_markup_number.to!int : 0);
_comp_obj_heading_.metainfo.heading_lev_collapsed = (!(lev_collapsed_number.empty) ? lev_collapsed_number.to!int : 0);
_comp_obj_heading_.metainfo.parent_ocn = p_["object_number"];
@@ -7516,6 +7386,8 @@ struct NodeStructureMetadata {
_comp_obj_heading_.has.inline_notes_reg = flag_notes_reg;
_comp_obj_heading_.has.inline_notes_star = flag_notes_star;
_comp_obj_heading_.has.inline_links = flag_links;
+ tag_assoc[_comp_obj_heading_.tags.anchor_tag_html]["seg_lv4"] = _comp_obj_heading_.tags.in_segment_html;
+ tag_assoc[_comp_obj_heading_.tags.segment_anchor_tag_epub]["seg_lv1_to_4"] = _comp_obj_heading_.tags.segment_anchor_tag_epub;
debug(_node) {
if (lev_markup_number.match(rgx.levels_numbered_headings)) {
writeln("* ", _node.to!string);
@@ -7944,9 +7816,11 @@ struct DocObj_Pointer_ {
}
struct DocObj_Tags_ {
string[] heading_ancestors_text = [ "", "", "", "", "", "", "", "", ]; // TODO redundant? see markedup and collapsed ancestors DONE
- string segment_anchor_tag_html = "";
+ string anchor_tag_html = "";
+ string in_segment_html = "";
string segment_anchor_tag_epub = "";
- string segment_anchor_tag_is = "";
+ string html_segment_anchor_tag_is = "";
+ string epub_segment_anchor_tag_is = "";
string heading_lev_anchor_tag = "";
string segname_prev = "";
string segname_next = "";