aboutsummaryrefslogtreecommitdiffhomepage
path: root/org/metaverse.org
diff options
context:
space:
mode:
Diffstat (limited to 'org/metaverse.org')
-rw-r--r--org/metaverse.org497
1 files changed, 317 insertions, 180 deletions
diff --git a/org/metaverse.org b/org/metaverse.org
index 697dd5e..668ac15 100644
--- a/org/metaverse.org
+++ b/org/metaverse.org
@@ -7,6 +7,7 @@
#+COPYRIGHT: Copyright (C) 2015 - 2020 Ralph Amissah
#+LANGUAGE: en
#+STARTUP: content hideblocks hidestars noindent entitiespretty
+#+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t
#+PROPERTY: header-args :exports code
#+PROPERTY: header-args+ :noweb yes
#+PROPERTY: header-args+ :eval no
@@ -34,7 +35,12 @@ template docAbstraction() {
/+ ↓ abstraction mixins +/
<<abs_top_mixins>>
/+ ↓ abstraction struct init +/
- <<abs_top_init_struct>>
+ <<abs_top_init_struct_0>>
+ <<abs_top_init_struct_1>>
+ <<abs_top_init_struct_2>>
+ <<abs_top_init_struct_3>>
+ <<abs_top_init_struct_4>>
+ <<abs_top_init_struct_5>>
<<abs_inline_para_tag_associations>>
/+ ↓ abstract marked up document +/
@system auto docAbstraction(CMM,Opt,Mf) (
@@ -46,14 +52,16 @@ template docAbstraction() {
) {
static auto rgx = RgxI();
/+ ↓ abstraction init +/
- <<abs_init_rest>>
+ <<abs_init_rest_0>>
+ <<abs_init_rest_1>>
/+ abstraction init ↑ +/
<<make_tests>>
/+ ↓ ↻ loop markup document/text line by line +/
srcDocLoop:
foreach (line; markup_sourcefile_content) { /+ ↓ markup document/text line by line +/
// "line" variable can be empty but should never be null
- <<abs_in_loop_body_00>>
+ <<abs_in_loop_body_00_0>>
+ <<abs_in_loop_body_00_1>>
if ( pith["block_is"] == eN.blk_is.code
&& pith["block_state"] == eN.blk_state.on
) {
@@ -61,25 +69,76 @@ template docAbstraction() {
} else if (!matchFirst(line, rgx.skip_from_regular_parse)) { /+ object other than "code block" object +/
/+ (includes regular text paragraph, headings & blocks other than code) +/
/+ heading, glossary, blurb, poem, group, block, quote, table +/
- <<abs_in_loop_body_non_code_obj>>
+ <<abs_in_loop_body_non_code_obj_0>>
+ <<abs_in_loop_body_non_code_obj_1>>
+ <<abs_in_loop_body_non_code_obj_2>>
+ <<abs_in_loop_body_non_code_obj_3>>
+ <<abs_in_loop_body_non_code_obj_4>>
+ <<abs_in_loop_body_non_code_obj_5>>
+ <<abs_in_loop_body_non_code_obj_6>>
+ <<abs_in_loop_body_non_code_obj_7>>
+ <<abs_in_loop_body_non_code_obj_8>>
+ <<abs_in_loop_body_non_code_obj_9>>
} else { /+ not within a block group +/
<<abs_in_loop_body_open_block_obj_assert>>
if (line.matchFirst(rgx.block_open)) {
<<abs_in_loop_body_open_block_obj>>
} else if (!line.empty) { /+ line not empty +/
/+ non blocks (headings, paragraphs) & closed blocks +/
- <<abs_in_loop_body_not_block_obj>>
+ <<abs_in_loop_body_not_block_obj_0>>
+ <<abs_in_loop_body_not_block_obj_1>>
+ <<abs_in_loop_body_not_block_obj_2>>
+ <<abs_in_loop_body_not_block_obj_3>>
+ <<abs_in_loop_body_not_block_obj_4>>
+ <<abs_in_loop_body_not_block_obj_5>>
+ <<abs_in_loop_body_not_block_obj_6>>
} else if (pith["block_state"] == eN.blk_state.closing) { /+ line empty, with blocks flag +/
<<abs_in_loop_body_not_block_obj_line_empty_blocks_flags>>
} else { /+ line.empty, post contents, empty variables: +/
- <<abs_in_loop_body_not_block_obj_line_empty>>
+ <<abs_in_loop_body_not_block_obj_line_empty_0>>
+ <<abs_in_loop_body_not_block_obj_line_empty_1>>
+ <<abs_in_loop_body_not_block_obj_line_empty_2>>
} // close else for line empty
} // close else for not the above
} // close after non code, other blocks or regular text
<<abs_in_loop_body_01>>
} /+ ← srcDocLoop closed: loop markup document/text line by line +/
/+ ↓ post loop markup document/text +/
- <<abs_post>>
+ <<abs_post_0>>
+ <<abs_post_1>>
+ <<abs_post_2>>
+ <<abs_post_3>>
+ <<abs_post_4>>
+ <<abs_post_5>>
+ <<abs_post_6>>
+ <<abs_post_7>>
+ <<abs_post_8>>
+ <<abs_post_9>>
+ <<abs_post_10>>
+ <<abs_post_11>>
+ <<abs_post_12>>
+ <<abs_post_13>>
+ <<abs_post_14>>
+ <<abs_post_15>>
+ <<abs_post_16>>
+ <<abs_post_17>>
+ <<abs_post_18>>
+ <<abs_post_19>>
+ <<abs_post_20>>
+ <<abs_post_21>>
+ <<abs_post_22>>
+ <<abs_post_23>>
+ <<abs_post_24>>
+ <<abs_post_25>>
+ <<abs_post_26>>
+ <<abs_post_27>>
+ <<abs_post_28>>
+ <<abs_post_29>>
+ <<abs_post_30>>
+ <<abs_post_31>>
+ <<abs_post_32>>
+ <<abs_post_33>>
+ <<abs_post_34>>
<<abs_post_doc_reloop_processing>>
<<abs_struct_doc_has>>
<<abs_return_tuple>>
@@ -89,48 +148,117 @@ template docAbstraction() {
<<abs_functions_object_reset>>
<<abs_functions_header_set_common>>
<<abs_functions_ocn_status>>
- <<abs_functions_substitutions>>
- <<abs_functions_block>>
+ <<abs_functions_substitutions_0>>
+ <<abs_functions_substitutions_1>>
+ <<abs_functions_block_0>>
+ <<abs_functions_block_1>>
+ <<abs_functions_block_2>>
+ <<abs_functions_block_3>>
+ <<abs_functions_block_4>>
+ <<abs_functions_block_5>>
+ <<abs_functions_block_6>>
+ <<abs_functions_block_7>>
+ <<abs_functions_block_8>>
+ <<abs_functions_block_9>>
+ <<abs_functions_block_10>>
+ <<abs_functions_block_11>>
+ <<abs_functions_block_12>>
+ <<abs_functions_block_13>>
+ <<abs_functions_block_14>>
+ <<abs_functions_block_15>>
<<abs_functions_block_quote>>
<<abs_functions_block_group>>
<<abs_functions_block_block>>
<<abs_functions_block_poem>>
<<abs_functions_block_code>>
<<abs_functions_block_table>>
- <<abs_functions_block_biblio>>
- <<abs_functions_block_line_status_empty>>
+ <<abs_functions_block_biblio_0>>
+ <<abs_functions_block_biblio_1>>
+ <<abs_functions_block_line_status_empty_0>>
+ <<abs_functions_block_line_status_empty_1>>
+ <<abs_functions_block_line_status_empty_2>>
+ <<abs_functions_block_line_status_empty_3>>
+ <<abs_functions_block_line_status_empty_4>>
+ <<abs_functions_block_line_status_empty_5>>
+ <<abs_functions_block_line_status_empty_6>>
+ <<abs_functions_block_line_status_empty_7>>
+ <<abs_functions_block_line_status_empty_8>>
<<abs_functions_book_index>>
- <<abs_functions_heading>>
- <<abs_functions_para>>
- <<abs_functions_table>>
+ <<abs_functions_heading_0>>
+ <<abs_functions_heading_1>>
+ <<abs_functions_heading_2>>
+ <<abs_functions_para_0>>
+ <<abs_functions_para_1>>
+ <<abs_functions_table_0>>
+ <<abs_functions_table_1>>
+ <<abs_functions_table_2>>
+ <<abs_functions_table_3>>
/+ abstraction functions ↑ +/
/+ ↓ abstraction function emitters +/
<<meta_emitters_ocn>>
/+ +/
- <<meta_emitters_obj_inline_markup_munge>>
+ <<meta_emitters_obj_inline_markup_munge_0>>
+ <<meta_emitters_obj_inline_markup_munge_1>>
+ <<meta_emitters_obj_inline_markup_munge_2>>
+ <<meta_emitters_obj_inline_markup_munge_3>>
+ <<meta_emitters_obj_inline_markup_munge_4>>
+ <<meta_emitters_obj_inline_markup_munge_5>>
+ <<meta_emitters_obj_inline_markup_munge_6>>
+ <<meta_emitters_obj_inline_markup_munge_7>>
+ <<meta_emitters_obj_inline_markup_munge_8>>
+ <<meta_emitters_obj_inline_markup_munge_9>>
+ <<meta_emitters_obj_inline_markup_munge_10>>
+ <<meta_emitters_obj_inline_markup_munge_11>>
+ <<meta_emitters_obj_inline_markup_munge_12>>
+ <<meta_emitters_obj_inline_markup_munge_13>>
<<meta_emitters_obj_inline_markup>>
<<meta_emitters_obj_inline_markup_and_anchor_tags_and_misc>>
<<meta_emitters_obj_inline_markup_table_of_contents>>
<<meta_emitters_obj_inline_markup_private>>
- <<meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags>>
+ <<meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags_0>>
+ <<meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags_1>>
<<meta_emitters_obj_inline_markup_close>>
/+ +/
<<meta_emitters_obj_attributes>>
<<meta_emitters_obj_attributes_public>>
<<meta_emitters_obj_attributes_private>>
- <<meta_emitters_obj_attributes_private_an_attribute>>
+ <<meta_emitters_obj_attributes_private_an_attribute_0>>
+ <<meta_emitters_obj_attributes_private_an_attribute_1>>
+ <<meta_emitters_obj_attributes_private_an_attribute_2>>
+ <<meta_emitters_obj_attributes_private_an_attribute_3>>
+ <<meta_emitters_obj_attributes_private_an_attribute_4>>
+ <<meta_emitters_obj_attributes_private_an_attribute_5>>
+ <<meta_emitters_obj_attributes_private_an_attribute_6>>
+ <<meta_emitters_obj_attributes_private_an_attribute_7>>
+ <<meta_emitters_obj_attributes_private_an_attribute_8>>
+ <<meta_emitters_obj_attributes_private_an_attribute_9>>
<<meta_emitters_obj_attributes_private_json>>
<<meta_emitters_obj_attributes_private_close>>
/+ +/
<<meta_emitters_book_index_nugget>>
<<meta_emitters_book_index_report_indented>>
- <<meta_emitters_book_index_report_section>>
+ <<meta_emitters_book_index_report_section_0>>
+ <<meta_emitters_book_index_report_section_1>>
+ <<meta_emitters_book_index_report_section_2>>
+ <<meta_emitters_book_index_report_section_3>>
/+ +/
- <<meta_emitters_endnotes>>
+ <<meta_emitters_endnotes_0>>
+ <<meta_emitters_endnotes_1>>
+ <<meta_emitters_endnotes_2>>
+ <<meta_emitters_endnotes_3>>
+ <<meta_emitters_endnotes_4>>
/+ +/
- <<meta_emitters_bibliography>>
+ <<meta_emitters_bibliography_0>>
+ <<meta_emitters_bibliography_1>>
+ <<meta_emitters_bibliography_2>>
+ <<meta_emitters_bibliography_3>>
+ <<meta_emitters_bibliography_4>>
+ <<meta_emitters_bibliography_5>>
/+ +/
- <<meta_emitters_metadata>>
+ <<meta_emitters_metadata_0>>
+ <<meta_emitters_metadata_1>>
+ <<meta_emitters_metadata_2>>
+ <<meta_emitters_metadata_3>>
/+ abstraction functions emitters ↑ +/
/+ ↓ abstraction functions assertions +/
<<abs_functions_assertions>>
@@ -170,7 +298,7 @@ mixin spineRgxIn;
*** initialize :initialize:
**** declare enum
-#+NAME: abs_top_init_struct
+#+NAME: abs_top_init_struct_0
#+BEGIN_SRC d
@safe static auto eN() {
struct _e {
@@ -228,7 +356,7 @@ mixin spineRgxIn;
**** initialize general
-#+NAME: abs_top_init_struct
+#+NAME: abs_top_init_struct_1
#+BEGIN_SRC d
/+ initialize +/
ObjGenericComposite[] the_table_of_contents_section;
@@ -320,7 +448,7 @@ enum DomTags { none, open, close, close_and_open, open_still, }
**** method heading ancestors
-#+NAME: abs_top_init_struct
+#+NAME: abs_top_init_struct_2
#+BEGIN_SRC d
@safe pure ObjGenericComposite obj_heading_ancestors()(
ObjGenericComposite obj,
@@ -379,7 +507,7 @@ enum DomTags { none, open, close, close_and_open, open_still, }
**** method dom markup tags
-#+NAME: abs_top_init_struct
+#+NAME: abs_top_init_struct_3
#+BEGIN_SRC d
@safe pure ObjGenericComposite obj_dom_structure_set_markup_tags()(
ObjGenericComposite obj,
@@ -429,7 +557,7 @@ enum DomTags { none, open, close, close_and_open, open_still, }
**** method dom collapsed tags
-#+NAME: abs_top_init_struct
+#+NAME: abs_top_init_struct_4
#+BEGIN_SRC d
@safe pure ObjGenericComposite obj_dom_set_collapsed_tags()(
ObjGenericComposite obj,
@@ -479,7 +607,7 @@ enum DomTags { none, open, close, close_and_open, open_still, }
**** method ocn emit
-#+NAME: abs_top_init_struct
+#+NAME: abs_top_init_struct_5
#+BEGIN_SRC d
@safe static auto ocn_emit(int ocn_status_flag) {
return object_citation_number.ocn_emitter(ocn_status_flag);
@@ -568,7 +696,7 @@ enum sObj { content, anchor_tag, notes_reg, notes_star, links, image_no_dimensio
*** scope
-#+NAME: abs_init_rest
+#+NAME: abs_init_rest_0
#+BEGIN_SRC d
scope(success) {
}
@@ -589,7 +717,7 @@ scope(exit) {
*** init rest
-#+NAME: abs_init_rest
+#+NAME: abs_init_rest_1
#+BEGIN_SRC d
mixin spineNode;
auto node_para_int_ = node_metadata_para_int;
@@ -747,7 +875,7 @@ debug (substitutions) {
** 2. ↻ *LOOP* _loop: process document body_ [+6] :loop:
*** Loop scope :scope:
-#+NAME: abs_in_loop_body_00
+#+NAME: abs_in_loop_body_00_0
#+BEGIN_SRC d
/+ scope +/
scope(exit) {
@@ -775,7 +903,7 @@ debug(srclines) {
*** check whether object number is on or turned off :ocn:
-#+NAME: abs_in_loop_body_00
+#+NAME: abs_in_loop_body_00_1
#+BEGIN_SRC d
if (!line.empty) {
pith = line._check_ocn_status_(pith);
@@ -795,7 +923,7 @@ continue;
**** _non code objects_ (non-code blocks & regular text: by line) [+4] :non_code:
***** inline fontface markup
-#+NAME: abs_in_loop_body_non_code_obj
+#+NAME: abs_in_loop_body_non_code_obj_0
#+BEGIN_SRC d
line = line.inline_markup_faces; // by text line (rather than by text object), linebreaks in para problematic
#+END_SRC
@@ -803,7 +931,7 @@ line = line.inline_markup_faces; // by text line (rather than by text object), l
***** in section (biblio, glossary, blurb) +(block group)+ [+1] :block:active:
****** in section: biblio :biblio:
-#+NAME: abs_in_loop_body_non_code_obj
+#+NAME: abs_in_loop_body_non_code_obj_1
#+BEGIN_SRC d
if (line.matchFirst(rgx.heading_biblio)
|| (pith["section"] == eN.sect.bibliography
@@ -832,7 +960,7 @@ if there is a glossary section you need to:
- need indentation and regular paragraph inline markup
- reconstitute the document with the glossary section following the endnotes
-#+NAME: abs_in_loop_body_non_code_obj
+#+NAME: abs_in_loop_body_non_code_obj_2
#+BEGIN_SRC d
} else if (line.matchFirst(rgx.heading_glossary)
|| (pith["section"] == eN.sect.glossary
@@ -940,7 +1068,7 @@ if there is a blurb section you need to:
- need regular paragraph inline markup
- reconstitute the document with the blurb section at the very end of the doucment
-#+NAME: abs_in_loop_body_non_code_obj
+#+NAME: abs_in_loop_body_non_code_obj_3
#+BEGIN_SRC d
} else if (line.matchFirst(rgx.heading_blurb)
|| (pith["section"] == eN.sect.blurb
@@ -1093,14 +1221,14 @@ if there is a blurb section you need to:
***** in blocks [+1] :block:active:
-#+NAME: abs_in_loop_body_non_code_obj
+#+NAME: abs_in_loop_body_non_code_obj_4
#+BEGIN_SRC d
} else if (pith["block_state"] == eN.blk_state.on) {
#+END_SRC
****** in block: quote :quote:
-#+NAME: abs_in_loop_body_non_code_obj
+#+NAME: abs_in_loop_body_non_code_obj_5
#+BEGIN_SRC d
if (pith["block_is"] == eN.blk_is.quote) {
line = line
@@ -1112,7 +1240,7 @@ if there is a blurb section you need to:
****** in block: group :group:
-#+NAME: abs_in_loop_body_non_code_obj
+#+NAME: abs_in_loop_body_non_code_obj_6
#+BEGIN_SRC d
} else if (pith["block_is"] == eN.blk_is.group) {
line = line
@@ -1125,7 +1253,7 @@ if there is a blurb section you need to:
****** in block: block :block:
-#+NAME: abs_in_loop_body_non_code_obj
+#+NAME: abs_in_loop_body_non_code_obj_7
#+BEGIN_SRC d
} else if (pith["block_is"] == eN.blk_is.block) {
line = line
@@ -1141,7 +1269,7 @@ if there is a blurb section you need to:
****** in block: poem :poem:
-#+NAME: abs_in_loop_body_non_code_obj
+#+NAME: abs_in_loop_body_non_code_obj_8
#+BEGIN_SRC d
} else if (pith["block_is"] == eN.blk_is.poem) {
an_object = line.flow_txt_block_poem(an_object, pith, cntr, object_number_poem, conf_make_meta, tag_in_seg);
@@ -1150,7 +1278,7 @@ if there is a blurb section you need to:
****** in block: table :table:
-#+NAME: abs_in_loop_body_non_code_obj
+#+NAME: abs_in_loop_body_non_code_obj_9
#+BEGIN_SRC d
} else if (pith["block_is"] == eN.blk_is.table) {
an_object = line.flow_txt_block_table(an_object, pith, conf_make_meta);
@@ -1186,7 +1314,7 @@ continue;
****** line not empty [+2]
******* asserts :assert:
-#+NAME: abs_in_loop_body_not_block_obj
+#+NAME: abs_in_loop_body_not_block_obj_0
#+BEGIN_SRC d
assert(
!line.empty,
@@ -1214,7 +1342,7 @@ if (pith["block_state"] == eN.blk_state.closing) {
******* book index :bookindex:
-#+NAME: abs_in_loop_body_not_block_obj
+#+NAME: abs_in_loop_body_not_block_obj_1
#+BEGIN_SRC d
if (line.matchFirst(rgx.book_index_item)
|| line.matchFirst(rgx.book_index_item_open)
@@ -1224,14 +1352,14 @@ if (line.matchFirst(rgx.book_index_item)
******* not book index [+1]
-#+NAME: abs_in_loop_body_not_block_obj
+#+NAME: abs_in_loop_body_not_block_obj_2
#+BEGIN_SRC d
} else { /+ not book_index +/
#+END_SRC
******** matched: comment :comment:match:
-#+NAME: abs_in_loop_body_not_block_obj
+#+NAME: abs_in_loop_body_not_block_obj_3
#+BEGIN_SRC d
an_object_key = "body_nugget";
if (auto m = line.matchFirst(rgx.comment)) { /+ matched comment +/
@@ -1253,7 +1381,7 @@ if (line.matchFirst(rgx.book_index_item)
******** flag !set & line !exist: heading or para :heading:paragraph:
-#+NAME: abs_in_loop_body_not_block_obj
+#+NAME: abs_in_loop_body_not_block_obj_4
#+BEGIN_SRC d
} else if ((line_occur["para"] == eN.bi.off
&& line_occur["heading"] == eN.bi.off)
@@ -1298,7 +1426,7 @@ if (line.matchFirst(rgx.book_index_item)
******** line exist: heading :heading:
-#+NAME: abs_in_loop_body_not_block_obj
+#+NAME: abs_in_loop_body_not_block_obj_5
#+BEGIN_SRC d
} else if (line_occur["heading"] > eN.bi.off) { /+ heading +/
debug(heading) {
@@ -1310,7 +1438,7 @@ if (line.matchFirst(rgx.book_index_item)
******** line exist: para :para:
-#+NAME: abs_in_loop_body_not_block_obj
+#+NAME: abs_in_loop_body_not_block_obj_6
#+BEGIN_SRC d
} else if (line_occur["para"] > eN.bi.off) { /+ paragraph +/
debug(para) {
@@ -1347,7 +1475,7 @@ an_object = line.flow_block_flag_line_empty_(
****** line empty [+1]
******* assert line empty :assert:
-#+NAME: abs_in_loop_body_not_block_obj_line_empty
+#+NAME: abs_in_loop_body_not_block_obj_line_empty_0
#+BEGIN_SRC d
assert(
line.empty,
@@ -1362,7 +1490,7 @@ assert(
******* heading object :heading:object:
-#+NAME: abs_in_loop_body_not_block_obj_line_empty
+#+NAME: abs_in_loop_body_not_block_obj_line_empty_1
#+BEGIN_SRC d
if (_new_doc) {
tag_assoc = tag_assoc.init;
@@ -1496,7 +1624,7 @@ if (pith["txt_is"] == eN.txt_is.heading
******* paragraph object :paragraph:object:
-#+NAME: abs_in_loop_body_not_block_obj_line_empty
+#+NAME: abs_in_loop_body_not_block_obj_line_empty_2
#+BEGIN_SRC d
} else if (pith["txt_is"] == eN.txt_is.para
&& line_occur["para"] > eN.bi.off
@@ -1627,7 +1755,7 @@ if (the_document_body_section.length > 0) {
*** tie up preparation of document sections
**** endnotes section (scroll & seg) :endnotes:
-#+NAME: abs_post
+#+NAME: abs_post_0
#+BEGIN_SRC d
auto en_tuple
= note_section.endnote_objects(obj_cite_digits, opt_action);
@@ -1647,7 +1775,7 @@ debug(endnotes) {
**** no glossary section? :glossary:
-#+NAME: abs_post
+#+NAME: abs_post_1
#+BEGIN_SRC d
if (an_object["glossary_nugget"].length == 0) {
comp_obj_heading_ = comp_obj_heading_.init;
@@ -1676,7 +1804,7 @@ debug(glossary) {
**** bibliography section (objects) :bibliography:
-#+NAME: abs_post
+#+NAME: abs_post_2
#+BEGIN_SRC d
auto biblio_unsorted_incomplete = biblio_arr_json.dup;
auto biblio = Bibliography();
@@ -1684,7 +1812,7 @@ auto biblio_ordered
= biblio.flow_bibliography_(biblio_unsorted_incomplete, bib_arr_json);
#+END_SRC
-#+NAME: abs_post
+#+NAME: abs_post_3
#+BEGIN_SRC d
if (biblio_ordered.length > 0) {
{
@@ -1792,7 +1920,7 @@ if (biblio_ordered.length > 0) {
}
#+END_SRC
-#+NAME: abs_post
+#+NAME: abs_post_4
#+BEGIN_SRC d
debug(bibliosection) {
foreach (o; the_bibliography_section) {
@@ -1837,7 +1965,7 @@ JSONValue biblio_entry_tags_jsonstr = `{
**** bookindex section (scroll & seg) :book:index:
-#+NAME: abs_post
+#+NAME: abs_post_5
#+BEGIN_SRC d
auto bi = BookIndexReportSection();
auto bi_tuple
@@ -1858,7 +1986,7 @@ debug(bookindex) {
**** no blurb section? :blurb:
-#+NAME: abs_post
+#+NAME: abs_post_6
#+BEGIN_SRC d
if (an_object["blurb_nugget"].length == 0) {
comp_obj_heading_ = comp_obj_heading_.init;
@@ -1889,7 +2017,7 @@ debug(blurb) {
**** toc backmatter, table of contents backmatter (scroll & seg) :contents:
-#+NAME: abs_post
+#+NAME: abs_post_7
#+BEGIN_SRC d
indent = [
"hang_position" : 1,
@@ -1990,7 +2118,7 @@ debug(toc) {
**** doc head (separate document head from body, make space for toc)
-#+NAME: abs_post
+#+NAME: abs_post_8
#+BEGIN_SRC d
the_document_head_section ~= the_document_body_section[0];
the_document_body_section = the_document_body_section[1..$];
@@ -2014,7 +2142,7 @@ NOTE there are issues attempting to do this on first pass as:
***** Methods
****** get ancestors markup
-#+NAME: abs_post
+#+NAME: abs_post_9
#+BEGIN_SRC d
@safe int[] _get_ancestors_markup(O)(O obj, ref int[] _ancestors_markup) {
if (obj.metainfo.is_a == "heading") {
@@ -2107,7 +2235,7 @@ NOTE there are issues attempting to do this on first pass as:
****** get ancestors collapsed
-#+NAME: abs_post
+#+NAME: abs_post_10
#+BEGIN_SRC d
@safe int[] _get_ancestors_collapsed(O)(O obj, ref int[] _ancestors_collapsed) {
if (obj.metainfo.is_a == "heading") {
@@ -2200,7 +2328,7 @@ NOTE there are issues attempting to do this on first pass as:
- substantive object numbers already exist
- number un-numbered non-substantive text
-#+NAME: abs_post
+#+NAME: abs_post_11
#+BEGIN_SRC d
/+ multiple 1~ levels, loop through document body +/
if (the_document_body_section.length > 1) {
@@ -2228,7 +2356,7 @@ if (the_document_body_section.length > 1) {
***** ↻ Loop section: endnotes [en]
-#+NAME: abs_post
+#+NAME: abs_post_12
#+BEGIN_SRC d
if (the_endnotes_section.length > 1) {
segnames["html"] ~= "endnotes";
@@ -2249,7 +2377,7 @@ if (the_endnotes_section.length > 1) {
***** ↻ Loop section: glossary [gl]
-#+NAME: abs_post
+#+NAME: abs_post_13
#+BEGIN_SRC d
if (the_glossary_section.length > 1) {
segnames["html"] ~= "glossary";
@@ -2270,7 +2398,7 @@ if (the_glossary_section.length > 1) {
***** ↻ Loop section: bibliography [bb]
-#+NAME: abs_post
+#+NAME: abs_post_14
#+BEGIN_SRC d
if (the_bibliography_section.length > 1) {
segnames["html"] ~= "bibliography";
@@ -2291,7 +2419,7 @@ if (the_bibliography_section.length > 1) {
***** ↻ Loop section: book index [bi]
-#+NAME: abs_post
+#+NAME: abs_post_15
#+BEGIN_SRC d
if (the_bookindex_section.length > 1) {
segnames["html"] ~= "bookindex";
@@ -2312,7 +2440,7 @@ if (the_bookindex_section.length > 1) {
***** ↻ Loop section: blurb [bl]
-#+NAME: abs_post
+#+NAME: abs_post_16
#+BEGIN_SRC d
if (the_blurb_section.length > 1) {
segnames["html"] ~= "blurb";
@@ -2372,7 +2500,7 @@ Build here:
***** Methods
****** decendants
-#+NAME: abs_post
+#+NAME: abs_post_17
#+BEGIN_SRC d
@safe auto get_decendants()(ObjGenericComposite[] document_sections) {
int[string] _heading_ocn_decendants;
@@ -2425,7 +2553,7 @@ Build here:
****** images: extract
-#+NAME: abs_post
+#+NAME: abs_post_18
#+BEGIN_SRC d
string[] _images;
@safe string[] extract_images()(string content_block) {
@@ -2440,7 +2568,7 @@ string[] segnames_0_to_4;
****** images: dimensions
-#+NAME: abs_post
+#+NAME: abs_post_19
#+BEGIN_SRC d
@system auto _image_dimensions(O,M)(O obj, M manifested) {
if (obj.has.image_without_dimensions) {
@@ -2493,7 +2621,7 @@ string[] segnames_0_to_4;
- book index
- footnotes and footnote numbers
-#+NAME: abs_post
+#+NAME: abs_post_20
#+BEGIN_SRC d
@safe auto _links(O)(O obj) {
if (auto m = obj.text.match(rgx.inline_link_stow_uri)) {
@@ -2518,7 +2646,7 @@ string[] segnames_0_to_4;
***** ↻ Loop section: head
-#+NAME: abs_post
+#+NAME: abs_post_21
#+BEGIN_SRC d
foreach (ref obj; the_document_head_section) {
if (obj.metainfo.is_a == "heading") {
@@ -2550,7 +2678,7 @@ foreach (ref obj; the_document_head_section) {
***** ↻ Loop section: toc [to]
-#+NAME: abs_post
+#+NAME: abs_post_22
#+BEGIN_SRC d
if (the_table_of_contents_section.length > 1) {
/+ scroll +/
@@ -2580,7 +2708,7 @@ if (the_table_of_contents_section.length > 1) {
***** ↻ Loop section: document body [bd]
-#+NAME: abs_post
+#+NAME: abs_post_23
#+BEGIN_SRC d
/+ multiple 1~ levels, loop through document body +/
if (the_document_body_section.length > 1) {
@@ -2631,7 +2759,7 @@ auto image_list = (_images.sort()).uniq;
- endnotes have their own number, (also use in node) and they belong to calling object
-#+NAME: abs_post
+#+NAME: abs_post_24
#+BEGIN_SRC d
/+ optional only one 1~ level +/
if (the_endnotes_section.length > 1) {
@@ -2676,7 +2804,7 @@ if (the_endnotes_section.length > 1) {
- add glossary numbering, (also use in node) no need to show in text
-#+NAME: abs_post
+#+NAME: abs_post_25
#+BEGIN_SRC d
/+ optional only one 1~ level +/
if (the_glossary_section.length > 1) {
@@ -2721,7 +2849,7 @@ if (the_glossary_section.length > 1) {
- add bibliography numbering, (also use in node) no need to show in text
-#+NAME: abs_post
+#+NAME: abs_post_26
#+BEGIN_SRC d
/+ optional only one 1~ level +/
if (the_bibliography_section.length > 1) {
@@ -2766,7 +2894,7 @@ if (the_bibliography_section.length > 1) {
- add book index numbering?, (also use in node) no need to show in text
-#+NAME: abs_post
+#+NAME: abs_post_27
#+BEGIN_SRC d
/+ optional only one 1~ level +/
int ocn_ = obj_cite_digits.object_number;
@@ -2821,7 +2949,7 @@ if (the_bookindex_section.length > 1) { /
***** ↻ Loop section: blurb [bl]
-#+NAME: abs_post
+#+NAME: abs_post_28
#+BEGIN_SRC d
/+ optional only one 1~ level +/
if (the_blurb_section.length > 1) {
@@ -2864,7 +2992,7 @@ if (the_blurb_section.length > 1) {
***** ↻ Loop sections: get decendants
-#+NAME: abs_post
+#+NAME: abs_post_29
#+BEGIN_SRC d
if (the_document_body_section.length > 1) {
auto pairs = get_decendants(
@@ -2962,7 +3090,7 @@ if (the_document_body_section.length > 1) {
**** TODO update BUG?
-#+NAME: abs_post
+#+NAME: abs_post_30
#+BEGIN_SRC d
/+ TODO
- note create/insert heading object sole purpose eof close all open tags
@@ -3000,7 +3128,7 @@ comp_obj_heading_ = comp_obj_heading_.obj_heading_ancestors(lv_ancestors_txt);
** 4. _return document tuple_ :post:
*** _the document_ :document:
-#+NAME: abs_post
+#+NAME: abs_post_31
#+BEGIN_SRC d
ObjGenericComposite[][string] document_the = [
"head": the_document_head_section,
@@ -3020,7 +3148,7 @@ ObjGenericComposite[][string] document_the = [
*** document _section keys_ sequence
-#+NAME: abs_post
+#+NAME: abs_post_32
#+BEGIN_SRC d
string[][string] document_section_keys_sequenced = [
"scroll": ["head", "toc", "body",],
@@ -3068,7 +3196,7 @@ if ((opt_action.html)
*** dup
-#+NAME: abs_post
+#+NAME: abs_post_33
#+BEGIN_SRC d
string[] segnames_4 = segnames["html"].dup;
string[] segnames_lv1_to_4 = segnames["epub"].dup;
@@ -3080,7 +3208,7 @@ debug(segnames) {
*** clean out structure
-#+NAME: abs_post
+#+NAME: abs_post_34
#+BEGIN_SRC d
destroy(the_document_head_section);
destroy(the_table_of_contents_section);
@@ -3270,7 +3398,7 @@ functions used in document abstraction
*** make substitutions
**** project
-#+NAME: abs_functions_substitutions
+#+NAME: abs_functions_substitutions_0
#+BEGIN_SRC d
@safe char[] _doc_header_and_make_substitutions_(CMM)(
char[] line,
@@ -3291,7 +3419,7 @@ functions used in document abstraction
**** fontface
-#+NAME: abs_functions_substitutions
+#+NAME: abs_functions_substitutions_1
#+BEGIN_SRC d
@safe char[] _doc_header_and_make_substitutions_fontface_(CMM)(
char[] line,
@@ -3324,7 +3452,7 @@ functions used in document abstraction
**** block start (open) block :start:
***** { block starts function
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_0
#+BEGIN_SRC d
@safe void flow_txt_block_start()(
char[] line,
@@ -3336,14 +3464,14 @@ functions used in document abstraction
****** block (various) curly open :curly:
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_1
#+BEGIN_SRC d
static auto rgx = RgxI();
#+END_SRC
******* code
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_2
#+BEGIN_SRC d
if (auto m = line.matchFirst(rgx.block_curly_code_open)) {
dochas["codeblock"]++;
@@ -3363,7 +3491,7 @@ functions used in document abstraction
******* poem
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_3
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_curly_poem_open)) {
dochas["poem"]++;
@@ -3385,7 +3513,7 @@ functions used in document abstraction
******* group
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_4
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_curly_group_open)) {
dochas["group"]++;
@@ -3405,7 +3533,7 @@ functions used in document abstraction
******* block
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_5
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_curly_block_open)) {
dochas["block"]++;
@@ -3425,7 +3553,7 @@ functions used in document abstraction
******* quote
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_6
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_curly_quote_open)) {
dochas["quote"]++;
@@ -3445,7 +3573,7 @@ functions used in document abstraction
******* table
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_7
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_curly_table_open)) { /+ curly table open +/
debug(table) { // table (curly) open
@@ -3464,7 +3592,7 @@ functions used in document abstraction
******* table special
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_8
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_curly_table_special_markup)) { /+ table: special table block markup syntax! +/
dochas["table"]++;
@@ -3478,7 +3606,7 @@ functions used in document abstraction
****** block (various) tic open :tic:
******* code
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_9
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_tic_code_open)) {
dochas["codeblock"]++;
@@ -3498,7 +3626,7 @@ functions used in document abstraction
******* poem
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_10
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_tic_poem_open)) {
dochas["poem"]++;
@@ -3520,7 +3648,7 @@ functions used in document abstraction
******* group
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_11
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_tic_group_open)) {
dochas["group"]++;
@@ -3540,7 +3668,7 @@ functions used in document abstraction
******* block
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_12
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_tic_block_open)) {
dochas["block"]++;
@@ -3560,7 +3688,7 @@ functions used in document abstraction
******* quote
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_13
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_tic_quote_open)) {
dochas["quote"]++;
@@ -3580,7 +3708,7 @@ functions used in document abstraction
******* table
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_14
#+BEGIN_SRC d
} else if (auto m = line.matchFirst(rgx.block_tic_table_open)) { /+ tic table open +/
debug(table) { // table (tic) open
@@ -3600,7 +3728,7 @@ functions used in document abstraction
***** }
-#+NAME: abs_functions_block
+#+NAME: abs_functions_block_15
#+BEGIN_SRC d
}
#+END_SRC
@@ -3659,7 +3787,7 @@ functions used in document abstraction
***** biblio block :biblio:
****** biblio tag map
-#+NAME: abs_functions_block_biblio
+#+NAME: abs_functions_block_biblio_0
#+BEGIN_SRC d
@safe final string biblio_tag_map()(string abr) {
auto btm = [
@@ -3711,7 +3839,7 @@ final string biblio_tag_map_()(string abr) {
****** biblio block
-#+NAME: abs_functions_block_biblio
+#+NAME: abs_functions_block_biblio_1
#+BEGIN_SRC d
@system void flow_txt_block_biblio(
char[] line,
@@ -4325,7 +4453,7 @@ process and use an_object["table_head"] (then empty it)
- table_column_widths, int[] column widths (as given or calculate average)
- show table walls, bool
-#+NAME: abs_functions_block_line_status_empty
+#+NAME: abs_functions_block_line_status_empty_0
#+BEGIN_SRC d
@system void flow_table_closed_make_special_notation_table_(N,CMM)(
char[] line,
@@ -4374,7 +4502,7 @@ process and use an_object["table_head"] (then empty it)
***** { line empty, _make block_
-#+NAME: abs_functions_block_line_status_empty
+#+NAME: abs_functions_block_line_status_empty_1
#+BEGIN_SRC d
@system string[string] flow_block_flag_line_empty_(B,N,CMM,Ts)(
char[] line,
@@ -4404,7 +4532,7 @@ process and use an_object["table_head"] (then empty it)
****** make: quote block
-#+NAME: abs_functions_block_line_status_empty
+#+NAME: abs_functions_block_line_status_empty_2
#+BEGIN_SRC d
if (pith["block_state"] == eN.blk_state.closing) {
if (pith["block_is"] == eN.blk_is.quote) {
@@ -4463,7 +4591,7 @@ process and use an_object["table_head"] (then empty it)
****** make: group block
-#+NAME: abs_functions_block_line_status_empty
+#+NAME: abs_functions_block_line_status_empty_3
#+BEGIN_SRC d
} else if (pith["block_is"] == eN.blk_is.group) {
obj_cite_digits = ocn_emit(pith["ocn"]);
@@ -4521,7 +4649,7 @@ process and use an_object["table_head"] (then empty it)
****** make: block
-#+NAME: abs_functions_block_line_status_empty
+#+NAME: abs_functions_block_line_status_empty_4
#+BEGIN_SRC d
} else if (pith["block_is"] == eN.blk_is.block) {
obj_cite_digits = ocn_emit(pith["ocn"]);
@@ -4578,7 +4706,7 @@ process and use an_object["table_head"] (then empty it)
****** make: poem
-#+NAME: abs_functions_block_line_status_empty
+#+NAME: abs_functions_block_line_status_empty_5
#+BEGIN_SRC d
} else if (pith["block_is"] == eN.blk_is.poem) {
an_object["bookindex_nugget"]
@@ -4622,7 +4750,7 @@ process and use an_object["table_head"] (then empty it)
****** make: code block
-#+NAME: abs_functions_block_line_status_empty
+#+NAME: abs_functions_block_line_status_empty_6
#+BEGIN_SRC d
} else if (pith["block_is"] == eN.blk_is.code) {
obj_cite_digits = ocn_emit(pith["ocn"]);
@@ -4680,7 +4808,7 @@ process and use an_object["table_head"] (then empty it)
****** make: table
-#+NAME: abs_functions_block_line_status_empty
+#+NAME: abs_functions_block_line_status_empty_7
#+BEGIN_SRC d
} else if (pith["block_is"] == eN.blk_is.table) {
comp_obj_block = comp_obj_block.init;
@@ -4730,7 +4858,7 @@ process and use an_object["table_head"] (then empty it)
***** }
-#+NAME: abs_functions_block_line_status_empty
+#+NAME: abs_functions_block_line_status_empty_8
#+BEGIN_SRC d
}
return an_object;
@@ -4796,7 +4924,7 @@ process and use an_object["table_head"] (then empty it)
*** heading or paragraph :heading:paragraph:
**** heading found :heading:
-#+NAME: abs_functions_heading
+#+NAME: abs_functions_heading_0
#+BEGIN_SRC d
@safe string[string] flow_heading_found_()(
char[] line,
@@ -4883,7 +5011,7 @@ process and use an_object["table_head"] (then empty it)
**** heading make set :heading:
-#+NAME: abs_functions_heading
+#+NAME: abs_functions_heading_1
#+BEGIN_SRC d
@safe char[] flow_heading_make_set_()(
char[] line,
@@ -4945,7 +5073,7 @@ process and use an_object["table_head"] (then empty it)
**** heading match :heading:
-#+NAME: abs_functions_heading
+#+NAME: abs_functions_heading_2
#+BEGIN_SRC d
@safe string[string] flow_heading_matched_(CMM)(
char[] line,
@@ -5101,7 +5229,7 @@ process and use an_object["table_head"] (then empty it)
**** para match :para:
-#+NAME: abs_functions_para
+#+NAME: abs_functions_para_0
#+BEGIN_SRC d
@safe string[string] flow_para_match_()(
char[] line,
@@ -5160,7 +5288,7 @@ process and use an_object["table_head"] (then empty it)
**** text font face
-#+NAME: abs_functions_para
+#+NAME: abs_functions_para_1
#+BEGIN_SRC d
@safe char[] font_faces_line()(
char[] textline,
@@ -5197,7 +5325,7 @@ process and use an_object["table_head"] (then empty it)
***** table instructions
-#+NAME: abs_functions_table
+#+NAME: abs_functions_table_0
#+BEGIN_SRC d
@safe ObjGenericComposite flow_table_instructions(H)(
return ref ObjGenericComposite table_object,
@@ -5228,7 +5356,7 @@ process and use an_object["table_head"] (then empty it)
***** table array munge
-#+NAME: abs_functions_table
+#+NAME: abs_functions_table_1
#+BEGIN_SRC d
@safe ObjGenericComposite flow_table_array_munge(T)(
return ref ObjGenericComposite table_object,
@@ -5358,7 +5486,7 @@ process and use an_object["table_head"] (then empty it)
***** table substantive munge
-#+NAME: abs_functions_table
+#+NAME: abs_functions_table_2
#+BEGIN_SRC d
@system ObjGenericComposite flow_table_substantive_munge(T)(
return ref ObjGenericComposite table_object,
@@ -5380,7 +5508,7 @@ process and use an_object["table_head"] (then empty it)
***** table substantive munge special
-#+NAME: abs_functions_table
+#+NAME: abs_functions_table_3
#+BEGIN_SRC d
@system ObjGenericComposite flow_table_substantive_munge_special(T)(
return ref ObjGenericComposite table_object,
@@ -5460,7 +5588,7 @@ process and use an_object["table_head"] (then empty it)
****** { struct, inline markup munge
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_0
#+BEGIN_SRC d
@safe static struct ObjInlineMarkupMunge {
string[string] obj_txt;
@@ -5478,7 +5606,7 @@ process and use an_object["table_head"] (then empty it)
}
#+END_SRC
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_1
#+BEGIN_SRC d
@safe static auto images()(string obj_txt_in) {
static auto mng = InlineMarkup();
@@ -5514,7 +5642,7 @@ process and use an_object["table_head"] (then empty it)
******* footnotes endnotes markup
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_2
#+BEGIN_SRC d
@safe TxtPlusHasFootnotes footnotes_endnotes_markup_and_number_or_stars()(string obj_txt_in, bool reset_note_numbers) {
/+ endnotes (regular) +/
@@ -5591,7 +5719,7 @@ process and use an_object["table_head"] (then empty it)
******* object notes and links
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_3
#+BEGIN_SRC d
@safe private TxtPlusHasFootnotesUrlsImages object_notes_and_links_()(
string obj_txt_in,
@@ -5662,7 +5790,7 @@ process and use an_object["table_head"] (then empty it)
- identified text by heading level marker followed by text until two new lines
- general markup
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_4
#+BEGIN_SRC d
@safe auto munge_heading()(
string obj_txt_in,
@@ -5693,7 +5821,7 @@ process and use an_object["table_head"] (then empty it)
- footnotes/endnotes
- links
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_5
#+BEGIN_SRC d
@safe auto munge_para()(string obj_txt_in) {
obj_txt["munge"] = (obj_txt_in)
@@ -5712,7 +5840,7 @@ process and use an_object["table_head"] (then empty it)
******* quote
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_6
#+BEGIN_SRC d
@safe string munge_quote()(string obj_txt_in) {
obj_txt["munge"] = obj_txt_in;
@@ -5732,7 +5860,7 @@ process and use an_object["table_head"] (then empty it)
- drop spaces
- keep newlines?
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_7
#+BEGIN_SRC d
@safe auto munge_group(string obj_txt_in) {
TxtPlusHasFootnotesUrlsImages t = object_notes_and_links_(obj_txt_in.split("\n\n").join(" \\\\\n \\\\\n"));
@@ -5753,7 +5881,7 @@ process and use an_object["table_head"] (then empty it)
- keep newlines
- newlines detected and kept?
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_8
#+BEGIN_SRC d
@safe auto munge_block()(string obj_txt_in) {
TxtPlusHasFootnotesUrlsImages t = object_notes_and_links_(obj_txt_in);
@@ -5772,7 +5900,7 @@ process and use an_object["table_head"] (then empty it)
- footnotes/endnotes
- links?
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_9
#+BEGIN_SRC d
@safe auto munge_verse()(string obj_txt_in) {
TxtPlusHasFootnotesUrlsImages t = object_notes_and_links_(obj_txt_in);
@@ -5790,7 +5918,7 @@ process and use an_object["table_head"] (then empty it)
- no general markup
- one special character represented by mkup.nbsp ░
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_10
#+BEGIN_SRC d
@safe string munge_code()(string obj_txt_in) {
obj_txt_in = obj_txt_in.replaceAll(rgx.space, mkup.nbsp);
@@ -5805,7 +5933,7 @@ process and use an_object["table_head"] (then empty it)
- table block identified by open an close tags
- table markup
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_11
#+BEGIN_SRC d
@safe string munge_table()(string obj_txt_in) {
obj_txt["munge"] = obj_txt_in;
@@ -5817,7 +5945,7 @@ process and use an_object["table_head"] (then empty it)
******* comment
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_12
#+BEGIN_SRC d
@safe string munge_comment()(string obj_txt_in) {
obj_txt["munge"] = obj_txt_in;
@@ -5829,7 +5957,7 @@ process and use an_object["table_head"] (then empty it)
****** }
-#+NAME: meta_emitters_obj_inline_markup_munge
+#+NAME: meta_emitters_obj_inline_markup_munge_13
#+BEGIN_SRC d
}
#+END_SRC
@@ -6054,7 +6182,7 @@ private:
******** make heading number & segment anchor tags if instructed :markup:inline:segment:anchor:tags:
-#+NAME: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags
+#+NAME: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags_0
#+BEGIN_SRC d
static int[] heading_num = [ 0, 0, 0, 0 ];
static string heading_number_auto_composite = "";
@@ -6207,7 +6335,7 @@ private:
******** make segment anchor tags if not provided :markup:inline:segment:anchor:tags:
-#+NAME: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags
+#+NAME: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags_1
#+BEGIN_SRC d
static int heading_num_lev1 = 0;
@safe static string _make_segment_anchor_tags_if_none_provided()(
@@ -6338,7 +6466,7 @@ struct ObjAttributes {
******** para & blocks
-#+NAME: meta_emitters_obj_attributes_private_an_attribute
+#+NAME: meta_emitters_obj_attributes_private_an_attribute_0
#+BEGIN_SRC d
@safe string txt_para_and_blocks()(string obj_txt_in) {
if (obj_txt_in.matchFirst(rgx.para_bullet)) {
@@ -6368,7 +6496,7 @@ struct ObjAttributes {
******** heading
-#+NAME: meta_emitters_obj_attributes_private_an_attribute
+#+NAME: meta_emitters_obj_attributes_private_an_attribute_1
#+BEGIN_SRC d
@safe string txt_heading()(string obj_txt_in) {
_obj_attributes = " \"use\": \"content\","
@@ -6382,7 +6510,7 @@ struct ObjAttributes {
******** para
-#+NAME: meta_emitters_obj_attributes_private_an_attribute
+#+NAME: meta_emitters_obj_attributes_private_an_attribute_2
#+BEGIN_SRC d
@safe string txt_para()(string obj_txt_in) {
_obj_attributes = " \"use\": \"content\","
@@ -6396,7 +6524,7 @@ struct ObjAttributes {
******** quote
-#+NAME: meta_emitters_obj_attributes_private_an_attribute
+#+NAME: meta_emitters_obj_attributes_private_an_attribute_3
#+BEGIN_SRC d
@safe string txt_quote()(string obj_txt_in) {
_obj_attributes = " \"use\": \"content\","
@@ -6410,7 +6538,7 @@ struct ObjAttributes {
******** group
-#+NAME: meta_emitters_obj_attributes_private_an_attribute
+#+NAME: meta_emitters_obj_attributes_private_an_attribute_4
#+BEGIN_SRC d
@safe string txt_group()(string obj_txt_in) {
_obj_attributes = " \"use\": \"content\","
@@ -6424,7 +6552,7 @@ struct ObjAttributes {
******** block
-#+NAME: meta_emitters_obj_attributes_private_an_attribute
+#+NAME: meta_emitters_obj_attributes_private_an_attribute_5
#+BEGIN_SRC d
@safe string txt_block()(string obj_txt_in) {
_obj_attributes = " \"use\": \"content\","
@@ -6438,7 +6566,7 @@ struct ObjAttributes {
******** verse
-#+NAME: meta_emitters_obj_attributes_private_an_attribute
+#+NAME: meta_emitters_obj_attributes_private_an_attribute_6
#+BEGIN_SRC d
@safe string txt_verse()(string obj_txt_in) {
_obj_attributes = " \"use\": \"content\","
@@ -6452,7 +6580,7 @@ struct ObjAttributes {
******** code
-#+NAME: meta_emitters_obj_attributes_private_an_attribute
+#+NAME: meta_emitters_obj_attributes_private_an_attribute_7
#+BEGIN_SRC d
@safe string txt_code()(string obj_txt_in) {
_obj_attributes = " \"use\": \"content\","
@@ -6466,7 +6594,7 @@ struct ObjAttributes {
******** table
-#+NAME: meta_emitters_obj_attributes_private_an_attribute
+#+NAME: meta_emitters_obj_attributes_private_an_attribute_8
#+BEGIN_SRC d
@safe string txt_table()(string obj_txt_in) {
_obj_attributes = " \"use\": \"content\","
@@ -6480,7 +6608,7 @@ struct ObjAttributes {
******** comment
-#+NAME: meta_emitters_obj_attributes_private_an_attribute
+#+NAME: meta_emitters_obj_attributes_private_an_attribute_9
#+BEGIN_SRC d
@safe string txt_comment()(string obj_txt_in) {
_obj_attributes = " \"use\": \"comment\","
@@ -6642,7 +6770,7 @@ struct BookIndexReportIndent {
***** book index (sort &) report section :report:section:
****** { book index struct open
-#+NAME: meta_emitters_book_index_report_section
+#+NAME: meta_emitters_book_index_report_section_0
#+BEGIN_SRC d
struct BookIndexReportSection {
int mkn, skn;
@@ -6652,7 +6780,7 @@ struct BookIndexReportSection {
******* bookindex write section
-#+NAME: meta_emitters_book_index_report_section
+#+NAME: meta_emitters_book_index_report_section_1
#+BEGIN_SRC d
@safe void bookindex_write_section()(
string[][string][string] bookindex_unordered_hashes
@@ -6687,7 +6815,7 @@ struct BookIndexReportSection {
******* book index (sort &) build section :report:section:
-#+NAME: meta_emitters_book_index_report_section
+#+NAME: meta_emitters_book_index_report_section_2
#+BEGIN_SRC d
@system auto bookindex_build_abstraction_section(N,B)(
string[][string][string] bookindex_unordered_hashes,
@@ -6850,14 +6978,14 @@ struct BookIndexReportSection {
****** }
-#+NAME: meta_emitters_book_index_report_section
+#+NAME: meta_emitters_book_index_report_section_3
#+BEGIN_SRC d
}
#+END_SRC
**** (end)notes section :endnotes:section:
-#+NAME: meta_emitters_endnotes
+#+NAME: meta_emitters_endnotes_0
#+BEGIN_SRC d
struct NotesSection {
string[string] object_notes;
@@ -6868,7 +6996,7 @@ struct NotesSection {
***** { gather notes for endnote section struct open
-#+NAME: meta_emitters_endnotes
+#+NAME: meta_emitters_endnotes_1
#+BEGIN_SRC d
@safe private auto gather_notes_for_endnote_section(
ObjGenericComposite[] contents_am,
@@ -6954,7 +7082,7 @@ struct NotesSection {
****** gathered notes
-#+NAME: meta_emitters_endnotes
+#+NAME: meta_emitters_endnotes_2
#+BEGIN_SRC d
@safe private auto gathered_notes() {
string[][string] endnotes_;
@@ -6971,7 +7099,7 @@ struct NotesSection {
****** endnote objects
-#+NAME: meta_emitters_endnotes
+#+NAME: meta_emitters_endnotes_3
#+BEGIN_SRC d
@safe private auto endnote_objects(N,O)(
N obj_cite_digits,
@@ -7087,7 +7215,7 @@ struct NotesSection {
***** }
-#+NAME: meta_emitters_endnotes
+#+NAME: meta_emitters_endnotes_4
#+BEGIN_SRC d
}
#+END_SRC
@@ -7095,14 +7223,14 @@ struct NotesSection {
**** bibliography :bibliography:
***** { biblio struct
-#+NAME: meta_emitters_bibliography
+#+NAME: meta_emitters_bibliography_0
#+BEGIN_SRC d
struct Bibliography {
#+END_SRC
****** biblio
-#+NAME: meta_emitters_bibliography
+#+NAME: meta_emitters_bibliography_1
#+BEGIN_SRC d
@system public JSONValue[] flow_bibliography_()(
return ref string[] biblio_unsorted_incomplete,
@@ -7133,7 +7261,7 @@ struct Bibliography {
****** biblio unsorted complete
-#+NAME: meta_emitters_bibliography
+#+NAME: meta_emitters_bibliography_2
#+BEGIN_SRC d
@system final private JSONValue[] biblio_make_unsorted_array_of_json_objects()(
string[] biblio_unordered,
@@ -7167,7 +7295,7 @@ struct Bibliography {
****** biblio sort
-#+NAME: meta_emitters_bibliography
+#+NAME: meta_emitters_bibliography_3
#+BEGIN_SRC d
@system final private JSONValue[] biblio_sort()(JSONValue[] biblio_unordered) {
JSONValue[] biblio_sorted_;
@@ -7188,7 +7316,7 @@ struct Bibliography {
****** biblio debug
-#+NAME: meta_emitters_bibliography
+#+NAME: meta_emitters_bibliography_4
#+BEGIN_SRC d
@system void biblio_debug()(JSONValue[] biblio_sorted) {
debug(biblio0) {
@@ -7203,7 +7331,7 @@ struct Bibliography {
***** }
-#+NAME: meta_emitters_bibliography
+#+NAME: meta_emitters_bibliography_5
#+BEGIN_SRC d
}
#+END_SRC
@@ -7211,7 +7339,7 @@ struct Bibliography {
**** node structure metadata :structure:metadata:node:
***** { metadata node struct
-#+NAME: meta_emitters_metadata
+#+NAME: meta_emitters_metadata_0
#+BEGIN_SRC d
struct NodeStructureMetadata {
int lv, lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7;
@@ -7222,7 +7350,7 @@ struct NodeStructureMetadata {
****** node metadata emitter
-#+NAME: meta_emitters_metadata
+#+NAME: meta_emitters_metadata_1
#+BEGIN_SRC d
@safe ObjGenericComposite node_location_emitter(La,Ta,N)(
string lev_markup_number,
@@ -7282,7 +7410,7 @@ struct NodeStructureMetadata {
****** node metadata emitter heading, (including most segnames & their pointers)
-#+NAME: meta_emitters_metadata
+#+NAME: meta_emitters_metadata_2
#+BEGIN_SRC d
@safe ObjGenericComposite node_emitter_heading(Hd,TaL,TA,N,fNr,fNs,fL)(
string _text,
@@ -7484,7 +7612,7 @@ struct NodeStructureMetadata {
***** }
-#+NAME: meta_emitters_metadata
+#+NAME: meta_emitters_metadata_3
#+BEGIN_SRC d
}
#+END_SRC
@@ -7711,7 +7839,16 @@ set abstracted objects for downstream processing
module doc_reform.meta.metadoc_object_setter;
template ObjectSetter() {
/+ structs +/
- <<meta_structs_init>>
+ <<meta_structs_init_0>>
+ <<meta_structs_init_1>>
+ <<meta_structs_init_2>>
+ <<meta_structs_init_3>>
+ <<meta_structs_init_4>>
+ <<meta_structs_init_5>>
+ <<meta_structs_init_6>>
+ <<meta_structs_init_7>>
+ <<meta_structs_init_8>>
+ <<meta_structs_init_9>>
}
#+END_SRC
@@ -7732,7 +7869,7 @@ struct HeadingAttrib {
*** _composite object_ [#A]
-#+NAME: meta_structs_init
+#+NAME: meta_structs_init_0
#+BEGIN_SRC d
struct DocObj_MetaInfo_ {
string is_of_part = ""; // frontmatter, body, backmatter
@@ -7811,7 +7948,7 @@ struct DocObj_MetaInfo_ {
**** object text attributes
-#+NAME: meta_structs_init
+#+NAME: meta_structs_init_1
#+BEGIN_SRC d
struct DocObj_TxtAttrib_ {
int indent_base = 0;
@@ -7823,7 +7960,7 @@ struct DocObj_TxtAttrib_ {
**** object has within it
-#+NAME: meta_structs_init
+#+NAME: meta_structs_init_2
#+BEGIN_SRC d
struct DocObj_Has_ {
bool inline_links = false;
@@ -7836,7 +7973,7 @@ struct DocObj_Has_ {
**** table attributes
-#+NAME: meta_structs_init
+#+NAME: meta_structs_init_3
#+BEGIN_SRC d
struct DocObj_Table_ {
int number_of_columns = 0;
@@ -7849,7 +7986,7 @@ struct DocObj_Table_ {
**** code attributes
-#+NAME: meta_structs_init
+#+NAME: meta_structs_init_4
#+BEGIN_SRC d
struct DocObj_CodeBlock_ {
string syntax = "";
@@ -7859,7 +7996,7 @@ struct DocObj_CodeBlock_ {
**** stow (things to be protected from regular text transformations, so far links)
-#+NAME: meta_structs_init
+#+NAME: meta_structs_init_5
#+BEGIN_SRC d
struct DocObj_Stow_ {
string[] link = [];
@@ -7868,7 +8005,7 @@ struct DocObj_Stow_ {
**** pointers
-#+NAME: meta_structs_init
+#+NAME: meta_structs_init_6
#+BEGIN_SRC d
struct DocObj_Pointer_ {
int doc_object = 0;
@@ -7879,7 +8016,7 @@ struct DocObj_Pointer_ {
**** tags
-#+NAME: meta_structs_init
+#+NAME: meta_structs_init_7
#+BEGIN_SRC d
struct DocObj_Tags_ {
string[] heading_ancestors_text = [ "", "", "", "", "", "", "", "", ];
@@ -7898,7 +8035,7 @@ struct DocObj_Tags_ {
**** composite object the parts
-#+NAME: meta_structs_init
+#+NAME: meta_structs_init_8
#+BEGIN_SRC d
struct ObjGenericComposite {
string text = "";
@@ -7915,7 +8052,7 @@ struct ObjGenericComposite {
*** The Objects: generic composite object array
-#+NAME: meta_structs_init
+#+NAME: meta_structs_init_9
#+BEGIN_SRC d
struct TheObjects {
ObjGenericComposite[] oca;