diff options
author | Ralph Amissah <ralph.amissah@gmail.com> | 2019-05-02 21:45:58 -0400 |
---|---|---|
committer | Ralph Amissah <ralph.amissah@gmail.com> | 2019-05-19 19:26:29 -0400 |
commit | e8186088585cd04a791c0be89b5c08db8130b3b1 (patch) | |
tree | 866d1a4f54d1ade412f15f687adb7be45c991281 | |
parent | url encoding (diff) |
cosmetic mostly
-rw-r--r-- | org/doc_reform.org | 1 | ||||
-rw-r--r-- | org/meta_abstraction.org | 337 | ||||
-rw-r--r-- | org/meta_conf_make_meta.org | 141 | ||||
-rw-r--r-- | src/doc_reform/meta/conf_make_meta_json.d | 141 | ||||
-rw-r--r-- | src/doc_reform/meta/metadoc_from_src.d | 325 | ||||
-rw-r--r-- | src/doc_reform/meta/metadochead.d | 1 |
6 files changed, 350 insertions, 596 deletions
diff --git a/org/doc_reform.org b/org/doc_reform.org index d5027fb..32b08be 100644 --- a/org/doc_reform.org +++ b/org/doc_reform.org @@ -904,7 +904,6 @@ template DocReformHarvestGetFromHead() { // TODO <<doc_reform_mixin>> enum headBody { header, body_content, insert_file_list, image_list } enum makeMeta { make, meta } - enum docAbst { doc_abstraction, section_keys, segnames, segnames_0_4, images } static auto rgx = Rgx(); auto DocReformHarvestGetFromHead(E,O,M)( // TODO E _env, diff --git a/org/meta_abstraction.org b/org/meta_abstraction.org index e3d97ce..677f353 100644 --- a/org/meta_abstraction.org +++ b/org/meta_abstraction.org @@ -54,43 +54,37 @@ template DocReformDocAbstraction() { <<make_tests>> /+ ↓ ↻ loop markup document/text line by line +/ srcDocLoop: - foreach (line; markup_sourcefile_content) { + foreach (line; markup_sourcefile_content) { /+ ↓ markup document/text line by line +/ // "line" variable can be empty but should never be null - /+ ↓ markup document/text line by line +/ <<abs_in_loop_body_00>> if (obj_type_status["code"] == TriState.on) { <<abs_in_loop_body_00_code_block>> - } else if (!matchFirst(line, rgx.skip_from_regular_parse)) { - /+ object other than "code block" object - (includes regular text paragraph, headings & blocks other than code) +/ + } 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>> - } else { - /+ not within a block group +/ + } 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 +/ + } else if (!line.empty) { /+ line not empty +/ /+ non blocks (headings, paragraphs) & closed blocks +/ <<abs_in_loop_body_not_block_obj>> - } else if (obj_type_status["blocks"] == TriState.closing) { - /+ line empty, with blocks flag +/ + } else if (obj_type_status["blocks"] == TriState.closing) { /+ line empty, with blocks flag +/ <<abs_in_loop_body_not_block_obj_line_empty_blocks_flags>> - } else { - /+ line.empty, post contents, empty variables: +/ + } else { /+ line.empty, post contents, empty variables: +/ <<abs_in_loop_body_not_block_obj_line_empty>> } // 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 +/ + } /+ ← srcDocLoop closed: loop markup document/text line by line +/ /+ ↓ post loop markup document/text +/ <<abs_post>> <<abs_post_doc_reloop_processing>> <<abs_return_tuple>> /+ post loop markup document/text ↑ +/ - } /+ ← closed: abstract doc source +/ + } /+ ← closed: abstract doc source +/ /+ ↓ abstraction functions +/ <<abs_functions_object_reset>> <<abs_functions_header_set_common>> @@ -964,25 +958,25 @@ if there is a blurb section you need to: 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; - comp_obj_heading_.metainfo.is_of_part = "backmatter"; - comp_obj_heading_.metainfo.is_of_section = "blurb"; - comp_obj_heading_.metainfo.is_of_type = "para"; - comp_obj_heading_.metainfo.is_a = "heading"; - comp_obj_heading_.text = line.to!string; - comp_obj_heading_.metainfo.ocn = 0; - comp_obj_heading_.metainfo.identifier = ""; - comp_obj_heading_.metainfo.dummy_heading = false; - comp_obj_heading_.metainfo.object_number_off = true; - comp_obj_heading_.metainfo.object_number_type = 0; + comp_obj_heading_ = comp_obj_heading_.init; + comp_obj_heading_.metainfo.is_of_part = "backmatter"; + comp_obj_heading_.metainfo.is_of_section = "blurb"; + comp_obj_heading_.metainfo.is_of_type = "para"; + comp_obj_heading_.metainfo.is_a = "heading"; + comp_obj_heading_.text = line.to!string; + comp_obj_heading_.metainfo.ocn = 0; + comp_obj_heading_.metainfo.identifier = ""; + comp_obj_heading_.metainfo.dummy_heading = false; + comp_obj_heading_.metainfo.object_number_off = true; + comp_obj_heading_.metainfo.object_number_type = 0; 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_; + 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 { @@ -1013,10 +1007,10 @@ if there is a blurb section you need to: #+name: abs_in_loop_body_non_code_obj #+BEGIN_SRC d -} else if (obj_type_status["quote"] == TriState.on) { - /+ within block object: quote +/ - line = line._doc_header_and_make_substitutions_(conf_make_meta); - line = line._doc_header_and_make_substitutions_fontface_(conf_make_meta); +} else if (obj_type_status["quote"] == TriState.on) { /+ within block object: quote +/ + line = line + ._doc_header_and_make_substitutions_(conf_make_meta) + ._doc_header_and_make_substitutions_fontface_(conf_make_meta); line.txt_block_quote(an_object, obj_type_status); continue; #+END_SRC @@ -1026,11 +1020,10 @@ if there is a blurb section you need to: #+name: abs_in_loop_body_non_code_obj #+BEGIN_SRC d /+ within block object: group +/ -} else if (obj_type_status["group"] == TriState.on) { - /+ within block object: group +/ - line = line._doc_header_and_make_substitutions_(conf_make_meta); - line = line._doc_header_and_make_substitutions_fontface_(conf_make_meta); +} else if (obj_type_status["group"] == TriState.on) { /+ within block object: group +/ line = line + ._doc_header_and_make_substitutions_(conf_make_meta) + ._doc_header_and_make_substitutions_fontface_(conf_make_meta) .replaceAll(rgx.para_delimiter, mkup.br_paragraph ~ "$1"); line.txt_block_group(an_object, obj_type_status); continue; @@ -1040,10 +1033,10 @@ if there is a blurb section you need to: #+name: abs_in_loop_body_non_code_obj #+BEGIN_SRC d -} else if (obj_type_status["block"] == TriState.on) { - /+ within block object: block +/ - line = line._doc_header_and_make_substitutions_(conf_make_meta); - line = line._doc_header_and_make_substitutions_fontface_(conf_make_meta); +} else if (obj_type_status["block"] == TriState.on) { /+ within block object: block +/ + line = line + ._doc_header_and_make_substitutions_(conf_make_meta) + ._doc_header_and_make_substitutions_fontface_(conf_make_meta); if (auto m = line.match(rgx.spaces_keep)) { line = line .replaceAll(rgx.spaces_keep, (m.captures[1]).translate([ ' ' : mkup.nbsp ])); @@ -1056,8 +1049,7 @@ if there is a blurb section you need to: #+name: abs_in_loop_body_non_code_obj #+BEGIN_SRC d -} else if (obj_type_status["poem"] == TriState.on) { - /+ within block object: poem +/ +} else if (obj_type_status["poem"] == TriState.on) { /+ within block object: poem +/ line.txt_block_poem(an_object, obj_type_status, cntr, object_number_poem, conf_make_meta, tag_in_seg); continue; #+END_SRC @@ -1066,8 +1058,7 @@ if there is a blurb section you need to: #+name: abs_in_loop_body_non_code_obj #+BEGIN_SRC d -} else if (obj_type_status["table"] == TriState.on) { - /+ within block object: table +/ +} else if (obj_type_status["table"] == TriState.on) { /+ within block object: table +/ line.txt_block_table(an_object, obj_type_status, conf_make_meta); continue; #+END_SRC @@ -1089,8 +1080,7 @@ assertions_flag_types_block_status_none_or_closed(obj_type_status); #+name: abs_in_loop_body_open_block_obj #+BEGIN_SRC d -if (line.matchFirst(rgx.block_poem_open)) { - /+ poem to verse exceptions! +/ +if (line.matchFirst(rgx.block_poem_open)) { /+ poem to verse exceptions! +/ object_reset(an_object); processing.remove("verse"); object_number_poem["start"] = obj_cite_digits.object_number.to!string; @@ -1114,7 +1104,7 @@ assert( "code block status: none or closed" ); if (obj_type_status["blocks"] == TriState.closing) { - debug(check) { // block + debug(check) { writeln(__LINE__); writeln(line); } @@ -1134,8 +1124,7 @@ if (obj_type_status["blocks"] == TriState.closing) { #+BEGIN_SRC d if (line.matchFirst(rgx.book_index) || line.matchFirst(rgx.book_index_open) -|| obj_type_status["book_index"] == State.on ) { - /+ book_index +/ +|| obj_type_status["book_index"] == State.on ) { /+ book_index +/ line._book_index_(book_idx_tmp, an_object, obj_type_status, opt_action); #+END_SRC @@ -1143,8 +1132,7 @@ if (line.matchFirst(rgx.book_index) #+name: abs_in_loop_body_not_block_obj #+BEGIN_SRC d -} else { - /+ not book_index +/ +} else { /+ not book_index +/ #+END_SRC ******** matched: comment :comment:match: @@ -1152,8 +1140,7 @@ if (line.matchFirst(rgx.book_index) #+name: abs_in_loop_body_not_block_obj #+BEGIN_SRC d an_object_key="body_nugget"; - if (auto m = line.matchFirst(rgx.comment)) { - /+ matched comment +/ + if (auto m = line.matchFirst(rgx.comment)) { /+ matched comment +/ debug(comment) { writeln(line); } @@ -1177,19 +1164,16 @@ if (line.matchFirst(rgx.book_index) } else if (((line_occur["para"] == State.off) && (line_occur["heading"] == State.off)) && ((obj_type_status["para"] == State.off) - && (obj_type_status["heading"] == State.off))) { - /+ heading or para but neither flag nor line exists +/ + && (obj_type_status["heading"] == State.off))) { /+ heading or para but neither flag nor line exists +/ if ((conf_make_meta.make.headings.length > 2) - && (obj_type_status["make_headings"] == State.off)) { - /+ heading found +/ + && (obj_type_status["make_headings"] == State.off)) { /+ heading found +/ line._heading_found_(conf_make_meta.make.headings, heading_match_str, heading_match_rgx, obj_type_status); } if ((obj_type_status["make_headings"] == State.on) && ((line_occur["para"] == State.off) && (line_occur["heading"] == State.off)) && ((obj_type_status["para"] == State.off) - && (obj_type_status["heading"] == State.off))) { - /+ heading make set +/ + && (obj_type_status["heading"] == State.off))) { /+ heading make set +/ line = line._heading_make_set_(line_occur, heading_match_rgx, obj_type_status); } /+ TODO node info: all headings identified at this point, @@ -1198,15 +1182,14 @@ if (line.matchFirst(rgx.book_index) - should be incorporated in composite objects - should happen before endnote links set (they need to be moved down?) +/ - if (line.matchFirst(rgx.heading)) { - /+ heading match +/ + if (line.matchFirst(rgx.heading)) { /+ heading match +/ line = line._doc_header_and_make_substitutions_(conf_make_meta); line._heading_matched_(line_occur, an_object, an_object_key, lv, collapsed_lev, obj_type_status, conf_make_meta); - } else if (line_occur["para"] == State.off) { - /+ para match +/ + } else if (line_occur["para"] == State.off) { /+ para match +/ an_object_key="body_nugget"; - line = line._doc_header_and_make_substitutions_(conf_make_meta); - line = line._doc_header_and_make_substitutions_fontface_(conf_make_meta); + line = line + ._doc_header_and_make_substitutions_(conf_make_meta) + ._doc_header_and_make_substitutions_fontface_(conf_make_meta); line._para_match_(an_object, an_object_key, indent, bullet, obj_type_status, line_occur); } #+END_SRC @@ -1215,8 +1198,7 @@ if (line.matchFirst(rgx.book_index) #+name: abs_in_loop_body_not_block_obj #+BEGIN_SRC d - } else if (line_occur["heading"] > State.off) { - /+ heading +/ + } else if (line_occur["heading"] > State.off) { /+ heading +/ debug(heading) { writeln(line); } @@ -1228,13 +1210,13 @@ if (line.matchFirst(rgx.book_index) #+name: abs_in_loop_body_not_block_obj #+BEGIN_SRC d - } else if (line_occur["para"] > State.off) { - /+ paragraph +/ + } else if (line_occur["para"] > State.off) { /+ paragraph +/ debug(para) { writeln(an_object_key, "-> ", line); } - line = line._doc_header_and_make_substitutions_(conf_make_meta); - line = line._doc_header_and_make_substitutions_fontface_(conf_make_meta); + line = line + ._doc_header_and_make_substitutions_(conf_make_meta) + ._doc_header_and_make_substitutions_fontface_(conf_make_meta); an_object[an_object_key] ~= " " ~ line; ++line_occur["para"]; } @@ -1287,8 +1269,7 @@ if (_new_doc) { tag_in_seg = tag_in_seg.init; } if ((obj_type_status["heading"] == State.on) -&& (line_occur["heading"] > State.off)) { - /+ heading object (current line empty) +/ +&& (line_occur["heading"] > State.off)) { /+ heading object (current line empty) +/ obj_cite_digits = (an_object["lev_markup_number"].to!int == 0) ? ocn_emit(OCNstatus.reset) : ocn_emit(obj_type_status["ocn_status"]); @@ -1329,7 +1310,7 @@ if ((obj_type_status["heading"] == State.on) 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) { /+ names used for epub markup segments A to D +/ + switch (an_object["lev_markup_number"].to!int) { /+ names used for epub markup segments A to D +/ case 0: segn = "_the_title"; goto default; @@ -1465,7 +1446,7 @@ if ((obj_type_status["heading"] == State.on) comp_obj_para.has.inline_links = substantive_obj_misc_tuple[sObj.links]; comp_obj_para.has.image_without_dimensions = substantive_obj_misc_tuple[sObj.image_no_dimensions]; the_document_body_section ~= comp_obj_para; - tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); _common_reset_(line_occur, an_object, obj_type_status); indent=[ "hang_position" : 0, @@ -1494,12 +1475,11 @@ if (the_document_body_section.length > 0) { && (the_document_body_section.length > previous_length)) { if ((the_document_body_section[$-1].metainfo.is_a == "heading") && (the_document_body_section[$-1].metainfo.heading_lev_markup < 5)) { - obj_type_status["biblio_section"] = State.off; obj_type_status["glossary_section"] = State.off; + obj_type_status["biblio_section"] = State.off; obj_type_status["blurb_section"] = State.off; } - if (the_document_body_section[$-1].metainfo.is_a == "verse") { - /+ scan for endnotes for whole poem (each verse in poem) +/ + if (the_document_body_section[$-1].metainfo.is_a == "verse") { /+ scan for endnotes for whole poem (each verse in poem) +/ foreach (i; previous_length .. the_document_body_section.length) { if (the_document_body_section[i].metainfo.is_a == "verse") { if ((the_document_body_section[i].text).match( @@ -1513,8 +1493,7 @@ if (the_document_body_section.length > 0) { } } } - } else { - /+ scan object for endnotes +/ + } else { /+ scan object for endnotes +/ previous_length = the_document_body_section.length.to!int; if ((the_document_body_section[$-1].text).match( rgx.inline_notes_al_regular_number_note @@ -2696,8 +2675,7 @@ if (the_bibliography_section.length > 1) { int ocn_ = obj_cite_digits.object_number; int ocn_bkidx_ = 0; int ocn_bidx_; -if (the_bookindex_section.length > 1) { - /+ scroll +/ +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) { @@ -3086,7 +3064,7 @@ auto _common_reset_(L,O,T)( line_occur["para"] = State.off; obj_type_status["heading"] = State.off; obj_type_status["para"] = State.off; - an_object = object_reset(an_object); + an_object = an_object.object_reset; } #+END_SRC @@ -3103,13 +3081,11 @@ static auto _check_ocn_status_(L,T)( static assert(is(typeof(obj_type_status) == int[string])); } static auto rgx = Rgx(); - if ( - !(line.empty) + if (!(line.empty) && (obj_type_status["ocn_status_off_for_multiple_objects"] == OCN_off_block_status.off) ) { /+ not multi-line object, check whether object_number is on or turned off +/ - if (line.matchFirst(rgx.object_number_block_marks)) { - /+ switch off object_number +/ + if (line.matchFirst(rgx.object_number_block_marks)) { /+ switch off object_number +/ if (line.matchFirst(rgx.object_number_off_block)) { obj_type_status["ocn_status_off_for_multiple_objects"] = OCN_off_block_status.on; obj_type_status["ocn_status"] = OCNstatus.off; @@ -3252,7 +3228,6 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d if (auto m = line.matchFirst(rgx.block_curly_code_open)) { - /+ curly code open +/ code_block_syntax = (m[1]) ? m[1].to!string : ""; code_block_numbered = (m[2].matchFirst(rgx.code_numbering)) ? true : false; @@ -3272,7 +3247,6 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d } else if (line.matchFirst(rgx.block_curly_poem_open)) { - /+ curly poem open +/ debug(poem) { // poem (curly) open writefln( "* [poem curly] %s", @@ -3291,7 +3265,6 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d } else if (line.matchFirst(rgx.block_curly_group_open)) { - /+ curly group open +/ debug(group) { // group (curly) open writefln( "* [group curly] %s", @@ -3308,7 +3281,6 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d } else if (line.matchFirst(rgx.block_curly_block_open)) { - /+ curly block open +/ debug(block) { // block (curly) open writefln( "* [block curly] %s", @@ -3325,7 +3297,6 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d } else if (line.matchFirst(rgx.block_curly_quote_open)) { - /+ curly quote open +/ debug(quote) { // quote (curly) open writefln( "* [quote curly] %s", @@ -3341,8 +3312,7 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d - } else if (auto m = line.matchFirst(rgx.block_curly_table_open)) { - /+ curly table open +/ + } else if (auto m = line.matchFirst(rgx.block_curly_table_open)) { /+ curly table open +/ debug(table) { // table (curly) open writefln( "* [table curly] %s", @@ -3360,8 +3330,7 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d - } else if (auto m = line.matchFirst(rgx.block_curly_table_special_markup)) { - /+ table: special table block markup syntax! +/ + } else if (auto m = line.matchFirst(rgx.block_curly_table_special_markup)) { /+ table: special table block markup syntax! +/ an_object["table_head"] = m["attrib"].to!string; an_object["block_type"] = "special"; obj_type_status["blocks"] = TriState.on; @@ -3375,7 +3344,6 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d } else if (auto m = line.matchFirst(rgx.block_tic_code_open)) { - /+ tic code open +/ code_block_syntax = (m[1]) ? m[1].to!string : ""; code_block_numbered = (m[2].matchFirst(rgx.code_numbering)) ? true : false; @@ -3395,7 +3363,6 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d } else if (line.matchFirst(rgx.block_tic_poem_open)) { - /+ tic poem open +/ debug(poem) { // poem (tic) open writefln( "* [poem tic] %s", @@ -3414,7 +3381,6 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d } else if (line.matchFirst(rgx.block_tic_group_open)) { - /+ tic group open +/ debug(group) { // group (tic) open writefln( "* [group tic] %s", @@ -3431,7 +3397,6 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d } else if (line.matchFirst(rgx.block_tic_block_open)) { - /+ tic block open +/ debug(block) { // block (tic) open writefln( "* [block tic] %s", @@ -3448,7 +3413,6 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d } else if (line.matchFirst(rgx.block_tic_quote_open)) { - /+ tic quote open +/ debug(quote) { // quote (tic) open writefln( "* [quote tic] %s", @@ -3464,8 +3428,7 @@ void txt_block_start(L,T,N)( #+name: abs_functions_block #+BEGIN_SRC d - } else if (auto m = line.matchFirst(rgx.block_tic_table_open)) { - /+ tic table open +/ + } else if (auto m = line.matchFirst(rgx.block_tic_table_open)) { /+ tic table open +/ debug(table) { // table (tic) open writefln( "* [table tic] %s", @@ -3615,15 +3578,16 @@ void txt_block_biblio( auto jsn = BibJsnStr(); static auto rgx = Rgx(); if (line.matchFirst(rgx.heading_biblio) - && obj_type_status["para"] != State.on - && obj_type_status["group"] != State.on - && obj_type_status["block"] != State.on - && obj_type_status["poem"] != State.on - && obj_type_status["table"] != State.on - && obj_type_status["quote"] != State.on) { + && obj_type_status["para"] != State.on + && obj_type_status["group"] != State.on + && obj_type_status["block"] != State.on + && obj_type_status["poem"] != State.on + && obj_type_status["table"] != State.on + && obj_type_status["quote"] != State.on + ) { + obj_type_status["glossary_section"] = State.off; obj_type_status["biblio_section"] = TriState.on; obj_type_status["blurb_section"] = State.off; - obj_type_status["glossary_section"] = State.off; } if (line.empty) { debug { @@ -3953,16 +3917,16 @@ void txt_block_poem(L,O,T,C,N,CMM,Ts)( comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); } object_reset(an_object); processing.remove("verse"); @@ -4016,16 +3980,16 @@ void txt_block_poem(L,O,T,C,N,CMM,Ts)( comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); object_reset(an_object); processing.remove("verse"); ++cntr; @@ -4062,16 +4026,16 @@ void txt_block_poem(L,O,T,C,N,CMM,Ts)( comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); object_number_poem["end"] = obj_cite_digits.object_number.to!string; object_reset(an_object); processing.remove("verse"); @@ -4125,16 +4089,16 @@ void txt_block_poem(L,O,T,C,N,CMM,Ts)( comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); object_reset(an_object); processing.remove("verse"); ++cntr; @@ -4165,8 +4129,8 @@ you need: #+name: abs_functions_block_table #+BEGIN_SRC d void txt_block_table(L,O,T,CMM)( - L line, - return ref O an_object, + L line, + return ref O an_object, return ref T obj_type_status, return ref CMM conf_make_meta, ) { @@ -4352,16 +4316,16 @@ void _block_flag_line_empty_(B,N,CMM,Ts)( comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); obj_type_status["blocks"] = TriState.off; obj_type_status["quote"] = TriState.off; object_reset(an_object); @@ -4407,16 +4371,16 @@ void _block_flag_line_empty_(B,N,CMM,Ts)( comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); obj_type_status["blocks"] = TriState.off; obj_type_status["group"] = TriState.off; object_reset(an_object); @@ -4462,10 +4426,10 @@ void _block_flag_line_empty_(B,N,CMM,Ts)( comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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]; @@ -4557,12 +4521,12 @@ void _block_flag_line_empty_(B,N,CMM,Ts)( comp_obj_code.metainfo.is_of_type = "block"; comp_obj_code.metainfo.is_a = "code"; comp_obj_code.metainfo.ocn = obj_cite_digits.object_number; - comp_obj_code.metainfo.identifier = obj_cite_digits.identifier; + comp_obj_code.metainfo.identifier = obj_cite_digits.identifier; comp_obj_code.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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]; @@ -4649,8 +4613,7 @@ auto _book_index_(L,I,O,T,B)( static assert(is(typeof(obj_type_status) == int[string])); } static auto rgx = Rgx(); - if (auto m = line.match(rgx.book_index)) { - /+ match book_index +/ + if (auto m = line.match(rgx.book_index)) { /+ match book_index +/ debug(bookindexmatch) { writefln( "* [bookindex] %s\n", @@ -4658,8 +4621,7 @@ auto _book_index_(L,I,O,T,B)( ); } an_object["bookindex_nugget"] = m.captures[1].to!string; - } else if (auto m = line.match(rgx.book_index_open)) { - /+ match open book_index +/ + } else if (auto m = line.match(rgx.book_index_open)) { /+ match open book_index +/ obj_type_status["book_index"] = State.on; if (opt_action.backmatter && opt_action.section_bookindex) { book_idx_tmp = m.captures[1].to!string; @@ -4670,8 +4632,7 @@ auto _book_index_(L,I,O,T,B)( ); } } - } else if (obj_type_status["book_index"] == State.on ) { - /+ book_index flag set +/ + } else if (obj_type_status["book_index"] == State.on ) { /+ book_index flag set +/ if (auto m = line.match(rgx.book_index_close)) { obj_type_status["book_index"] = State.off; if (opt_action.backmatter @@ -4716,8 +4677,7 @@ auto _heading_found_(L,X,H,R,T)( } static auto rgx = Rgx(); if ((_make_unmarked_headings.length > 2) - && (obj_type_status["make_headings"] == State.off)) { - /+ headings found +/ + && (obj_type_status["make_headings"] == State.off)) { /+ headings found +/ debug(headingsfound) { writeln(_make_unmarked_headings); } @@ -4810,8 +4770,7 @@ auto _heading_make_set_(L,C,R,T)( && ((line_occur["para"] == State.off) && (line_occur["heading"] == State.off)) && ((obj_type_status["para"] == State.off) - && (obj_type_status["heading"] == State.off))) { - /+ heading make set +/ + && (obj_type_status["heading"] == State.off))) { /+ heading make set +/ if (line.matchFirst(heading_match_rgx["h_B"])) { line = "B~ " ~ line; debug(headingsfound) { @@ -4883,14 +4842,13 @@ auto _heading_matched_(L,C,O,K,Lv,Lc,T,CMM)( static assert(is(typeof(obj_type_status) == int[string])); } static auto rgx = Rgx(); - if (auto m = line.match(rgx.heading)) { - /+ heading match +/ + if (auto m = line.match(rgx.heading)) { /+ heading match +/ ++line_occur["heading"]; obj_type_status["heading"] = State.on; obj_type_status["para"] = State.off; if (line.match(rgx.heading_seg_and_above)) { - obj_type_status["biblio_section"] = State.off; obj_type_status["glossary_section"] = State.off; + obj_type_status["biblio_section"] = State.off; obj_type_status["blurb_section"] = State.off; } an_object[an_object_key] ~= line ~= "\n"; @@ -5277,31 +5235,6 @@ auto table_array_munge(O,T)( } #+END_SRC -****** table array munge simple open & close - -#+name: abs_functions_table -#+BEGIN_SRC d -auto table_array_munge_open_close(O,T)( - return ref O table_object, - return ref T table_array, -) { - static auto rgx = Rgx(); - static auto mng = InlineMarkup(); - string _table_substantive; - foreach(row; table_array) { - foreach(col; row) { - _table_substantive ~= mng.tc_o ~ col ~ mng.tc_c; - } - _table_substantive ~= "\n"; - } - debug(table_dev) { - writeln(_table_substantive); - } - comp_obj_block.text = _table_substantive; - return table_object; -} -#+END_SRC - ***** table substantive munge #+name: abs_functions_table @@ -5433,7 +5366,7 @@ static struct ObjInlineMarkupMunge { static auto mng = InlineMarkup(); /+ url matched +/ obj_txt_in = obj_txt_in.replaceAll(rgx.inline_notes_al_special, ""); // TODO reinstate when special footnotes are implemented - if (obj_txt_in.match(rgx.smid_image_generic)) { /+ images with and without links +/ + if (obj_txt_in.match(rgx.smid_image_generic)) { /+ images with and without links +/ debug(images) { writeln("Image: ", obj_txt_in); } @@ -6265,56 +6198,6 @@ private: } #+END_SRC -******** unittests - -#+name: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags -#+BEGIN_SRC d - unittest { - string txt_lev="1"; - string txt_in, txt_out; - - txt_in = "1~copyright Copyright"; - txt_out ="1~copyright Copyright"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in = "1~ 6. Writing Copyright Licenses"; - txt_out ="1~s6 6. Writing Copyright Licenses"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ 1. Reinforcing trends"; - txt_out= "1~s1 1. Reinforcing trends"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ 11 SCIENCE AS A COMMONS"; - txt_out= "1~s11 11 SCIENCE AS A COMMONS"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ Chapter 1"; - txt_out="1~chapter_1 Chapter 1"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ Chapter 1."; - txt_out="1~chapter_1 Chapter 1."; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ Chapter 1: Done"; - txt_out="1~chapter_1 Chapter 1: Done"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ Chapter 11 - The Battle Over the Institutional Ecology of the Digital Environment"; - txt_out= "1~chapter_11 Chapter 11 - The Battle Over the Institutional Ecology of the Digital Environment"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ CHAPTER I."; - txt_out="1~x1 CHAPTER I."; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ CHAPTER II."; - txt_out="1~x2 CHAPTER II."; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - } -#+END_SRC - ****** } #+name: meta_emitters_obj_inline_markup_close diff --git a/org/meta_conf_make_meta.org b/org/meta_conf_make_meta.org index 71f9124..a0440e3 100644 --- a/org/meta_conf_make_meta.org +++ b/org/meta_conf_make_meta.org @@ -499,64 +499,59 @@ if ("make" in _json.object) { ) { _struct_composite.make_str.emphasis = _json.object["make"]["emphasis"].str; } - if ("footer" in _json.object["make"] - && (_json.object["make"]["footer"].type().to!string == "string") - ) { - char[][] __match_footer_array - = (cast(char[]) _json.object["make"]["footer"].str) - .split(_rgx.make_heading_delimiter); - _struct_composite.make_str.footer = __match_footer_array.to!(string[]); - } else if ("footer" in _json.object["make"] - && _json.object["make"]["footer"].type().to!string == "array") { - string[] _match_footer_array; - foreach (_match_heading; _json.object["make"]["footer"].arrayNoRef) { - _match_footer_array ~= _match_heading.str; + if ("footer" in _json.object["make"]) { + if (_json.object["make"]["footer"].type().to!string == "string") { + char[][] __match_footer_array + = (cast(char[]) _json.object["make"]["footer"].str) + .split(_rgx.make_heading_delimiter); + _struct_composite.make_str.footer = __match_footer_array.to!(string[]); + } else if (_json.object["make"]["footer"].type().to!string == "array") { + string[] _match_footer_array; + foreach (_match_heading; _json.object["make"]["footer"].arrayNoRef) { + _match_footer_array ~= _match_heading.str; + } + _struct_composite.make_str.footer = _match_footer_array; } - _struct_composite.make_str.footer = _match_footer_array; - } - if ("headings" in _json.object["make"] - && (_json.object["make"]["headings"].type().to!string == "string") - ) { - char[][] __match_headings_array - = (cast(char[]) _json.object["make"]["headings"].str) - .split(_rgx.make_heading_delimiter); - _struct_composite.make_str.headings = __match_headings_array.to!(string[]); - } else if ("headings" in _json.object["make"] - && _json.object["make"]["headings"].type().to!string == "array") { - string[] _match_headings_array; - foreach (_match_heading; _json.object["make"]["headings"].arrayNoRef) { - _match_headings_array ~= _match_heading.str; + } + if ("headings" in _json.object["make"]) { + if (_json.object["make"]["headings"].type().to!string == "string") { + char[][] __match_headings_array + = (cast(char[]) _json.object["make"]["headings"].str) + .split(_rgx.make_heading_delimiter); + _struct_composite.make_str.headings = __match_headings_array.to!(string[]); + } else if (_json.object["make"]["headings"].type().to!string == "array") { + string[] _match_headings_array; + foreach (_match_heading; _json.object["make"]["headings"].arrayNoRef) { + _match_headings_array ~= _match_heading.str; + } + _struct_composite.make_str.headings = _match_headings_array; } - _struct_composite.make_str.headings = _match_headings_array; - } - if ("home_button_image" in _json.object["make"] - && (_json.object["make"]["home_button_image"].type().to!string == "string") - ) { - char[][] __match_home_button_image_array - = (cast(char[]) _json.object["make"]["home_button_image"].str) - .split(_rgx.make_heading_delimiter); - _struct_composite.make_str.home_button_image = __match_home_button_image_array.to!(string[]); - } else if ("home_button_image" in _json.object["make"] - && _json.object["make"]["home_button_image"].type().to!string == "array") { - string[] _match_home_button_image_array; - foreach (_match_heading; _json.object["make"]["home_button_image"].arrayNoRef) { - _match_home_button_image_array ~= _match_heading.str; + } + if ("home_button_image" in _json.object["make"]) { + if (_json.object["make"]["home_button_image"].type().to!string == "string") { + char[][] __match_home_button_image_array + = (cast(char[]) _json.object["make"]["home_button_image"].str) + .split(_rgx.make_heading_delimiter); + _struct_composite.make_str.home_button_image = __match_home_button_image_array.to!(string[]); + } else if (_json.object["make"]["home_button_image"].type().to!string == "array") { + string[] _match_home_button_image_array; + foreach (_match_heading; _json.object["make"]["home_button_image"].arrayNoRef) { + _match_home_button_image_array ~= _match_heading.str; + } + _struct_composite.make_str.home_button_image = _match_home_button_image_array; } - _struct_composite.make_str.home_button_image = _match_home_button_image_array; } - if ("home_button_text" in _json.object["make"] - && (_json.object["make"]["home_button_text"].type().to!string == "string") - ) { - _struct_composite.make_str.home_button_text = _json.object["make"]["home_button_text"].str; - } else if ("home_button_text" in _json.object["make"] - && _json.object["make"]["home_button_text"].type().to!string == "array" - ) { - string[] _match_home_button_text_array; - foreach (_match_heading; _json.object["make"]["home_button_text"].arrayNoRef) { - _match_home_button_text_array ~= _match_heading.str; + if ("home_button_text" in _json.object["make"]) { + if (_json.object["make"]["home_button_text"].type().to!string == "string") { + _struct_composite.make_str.home_button_text = _json.object["make"]["home_button_text"].str; + } else if (_json.object["make"]["home_button_text"].type().to!string == "array") { + string[] _match_home_button_text_array; + foreach (_match_heading; _json.object["make"]["home_button_text"].arrayNoRef) { + _match_home_button_text_array ~= _match_heading.str; + } + string _match_home_button_text_str = (_match_home_button_text_array).join("; "); + _struct_composite.make_str.home_button_text = _match_home_button_text_str; } - string _match_home_button_text_str = (_match_home_button_text_array).join("; "); - _struct_composite.make_str.home_button_text = _match_home_button_text_str; } if ("italics" in _json.object["make"] && (_json.object["make"]["italics"].type().to!string == "string") @@ -588,35 +583,29 @@ if ("make" in _json.object) { break; } } - if ("auto_num_depth" in _json.object["make"] - && (_json.object["make"]["auto_num_depth"].type().to!string == "INTEGER") - ) { - _struct_composite.make_str.auto_num_depth = _json.object["make"]["auto_num_depth"].integer.to!int; - } else if ("auto_num_depth" in _json.object["make"] - && (_json.object["make"]["auto_num_depth"].type().to!string == "string") - ) { - _struct_composite.make_str.auto_num_depth = _json.object["make"]["auto_num_depth"].str.to!int; + if ("auto_num_depth" in _json.object["make"]) { + if (_json.object["make"]["auto_num_depth"].type().to!string == "int") { // TODO watch this match + _struct_composite.make_str.auto_num_depth = _json.object["make"]["auto_num_depth"].integer.to!int; + } else if (_json.object["make"]["auto_num_depth"].type().to!string == "string") { + _struct_composite.make_str.auto_num_depth = _json.object["make"]["auto_num_depth"].str.to!int; + } } if ("substitute" in _json.object["make"]) { string[][] _sub; - if ( - (_json.object["make"]["substitute"].type().to!string == "array") - && (_json.object["make"]["substitute"][0].type().to!string == "array") - ) { - foreach (substitute_pair; _json.object["make"]["substitute"].arrayNoRef) { - if ((substitute_pair.type().to!string) == "array") { - if (!empty(substitute_pair[0].str) && !empty(substitute_pair[1].str)) { - _sub ~= [ substitute_pair[0].str, substitute_pair[1].str]; + if (_json.object["make"]["substitute"].type().to!string == "array") { + if (_json.object["make"]["substitute"][0].type().to!string == "array") { + foreach (substitute_pair; _json.object["make"]["substitute"].arrayNoRef) { + if ((substitute_pair.type().to!string) == "array") { + if (!empty(substitute_pair[0].str) && !empty(substitute_pair[1].str)) { + _sub ~= [ substitute_pair[0].str, substitute_pair[1].str]; + } } } + } else if (_json.object["make"]["substitute"][0].type().to!string == "string") { + if (!empty(_json.object["make"]["substitute"][0].str) && !empty(_json.object["make"]["substitute"][1].str)) { + _sub = [[_json.object["make"]["substitute"][0].str, _json.object["make"]["substitute"][1].str]]; + } } - } else if ( - (_json.object["make"]["substitute"].type().to!string == "array") - && (_json.object["make"]["substitute"][0].type().to!string == "string") - ) { - if (!empty(_json.object["make"]["substitute"][0].str) && !empty(_json.object["make"]["substitute"][1].str)) { - _sub = [[_json.object["make"]["substitute"][0].str, _json.object["make"]["substitute"][1].str]]; - } } // writeln(_sub); _struct_composite.make_str.substitute = _sub; diff --git a/src/doc_reform/meta/conf_make_meta_json.d b/src/doc_reform/meta/conf_make_meta_json.d index 248c9d2..980a802 100644 --- a/src/doc_reform/meta/conf_make_meta_json.d +++ b/src/doc_reform/meta/conf_make_meta_json.d @@ -63,64 +63,59 @@ static template contentJSONtoDocReformStruct() { ) { _struct_composite.make_str.emphasis = _json.object["make"]["emphasis"].str; } - if ("footer" in _json.object["make"] - && (_json.object["make"]["footer"].type().to!string == "string") - ) { - char[][] __match_footer_array - = (cast(char[]) _json.object["make"]["footer"].str) - .split(_rgx.make_heading_delimiter); - _struct_composite.make_str.footer = __match_footer_array.to!(string[]); - } else if ("footer" in _json.object["make"] - && _json.object["make"]["footer"].type().to!string == "array") { - string[] _match_footer_array; - foreach (_match_heading; _json.object["make"]["footer"].arrayNoRef) { - _match_footer_array ~= _match_heading.str; + if ("footer" in _json.object["make"]) { + if (_json.object["make"]["footer"].type().to!string == "string") { + char[][] __match_footer_array + = (cast(char[]) _json.object["make"]["footer"].str) + .split(_rgx.make_heading_delimiter); + _struct_composite.make_str.footer = __match_footer_array.to!(string[]); + } else if (_json.object["make"]["footer"].type().to!string == "array") { + string[] _match_footer_array; + foreach (_match_heading; _json.object["make"]["footer"].arrayNoRef) { + _match_footer_array ~= _match_heading.str; + } + _struct_composite.make_str.footer = _match_footer_array; } - _struct_composite.make_str.footer = _match_footer_array; - } - if ("headings" in _json.object["make"] - && (_json.object["make"]["headings"].type().to!string == "string") - ) { - char[][] __match_headings_array - = (cast(char[]) _json.object["make"]["headings"].str) - .split(_rgx.make_heading_delimiter); - _struct_composite.make_str.headings = __match_headings_array.to!(string[]); - } else if ("headings" in _json.object["make"] - && _json.object["make"]["headings"].type().to!string == "array") { - string[] _match_headings_array; - foreach (_match_heading; _json.object["make"]["headings"].arrayNoRef) { - _match_headings_array ~= _match_heading.str; + } + if ("headings" in _json.object["make"]) { + if (_json.object["make"]["headings"].type().to!string == "string") { + char[][] __match_headings_array + = (cast(char[]) _json.object["make"]["headings"].str) + .split(_rgx.make_heading_delimiter); + _struct_composite.make_str.headings = __match_headings_array.to!(string[]); + } else if (_json.object["make"]["headings"].type().to!string == "array") { + string[] _match_headings_array; + foreach (_match_heading; _json.object["make"]["headings"].arrayNoRef) { + _match_headings_array ~= _match_heading.str; + } + _struct_composite.make_str.headings = _match_headings_array; } - _struct_composite.make_str.headings = _match_headings_array; - } - if ("home_button_image" in _json.object["make"] - && (_json.object["make"]["home_button_image"].type().to!string == "string") - ) { - char[][] __match_home_button_image_array - = (cast(char[]) _json.object["make"]["home_button_image"].str) - .split(_rgx.make_heading_delimiter); - _struct_composite.make_str.home_button_image = __match_home_button_image_array.to!(string[]); - } else if ("home_button_image" in _json.object["make"] - && _json.object["make"]["home_button_image"].type().to!string == "array") { - string[] _match_home_button_image_array; - foreach (_match_heading; _json.object["make"]["home_button_image"].arrayNoRef) { - _match_home_button_image_array ~= _match_heading.str; + } + if ("home_button_image" in _json.object["make"]) { + if (_json.object["make"]["home_button_image"].type().to!string == "string") { + char[][] __match_home_button_image_array + = (cast(char[]) _json.object["make"]["home_button_image"].str) + .split(_rgx.make_heading_delimiter); + _struct_composite.make_str.home_button_image = __match_home_button_image_array.to!(string[]); + } else if (_json.object["make"]["home_button_image"].type().to!string == "array") { + string[] _match_home_button_image_array; + foreach (_match_heading; _json.object["make"]["home_button_image"].arrayNoRef) { + _match_home_button_image_array ~= _match_heading.str; + } + _struct_composite.make_str.home_button_image = _match_home_button_image_array; } - _struct_composite.make_str.home_button_image = _match_home_button_image_array; } - if ("home_button_text" in _json.object["make"] - && (_json.object["make"]["home_button_text"].type().to!string == "string") - ) { - _struct_composite.make_str.home_button_text = _json.object["make"]["home_button_text"].str; - } else if ("home_button_text" in _json.object["make"] - && _json.object["make"]["home_button_text"].type().to!string == "array" - ) { - string[] _match_home_button_text_array; - foreach (_match_heading; _json.object["make"]["home_button_text"].arrayNoRef) { - _match_home_button_text_array ~= _match_heading.str; + if ("home_button_text" in _json.object["make"]) { + if (_json.object["make"]["home_button_text"].type().to!string == "string") { + _struct_composite.make_str.home_button_text = _json.object["make"]["home_button_text"].str; + } else if (_json.object["make"]["home_button_text"].type().to!string == "array") { + string[] _match_home_button_text_array; + foreach (_match_heading; _json.object["make"]["home_button_text"].arrayNoRef) { + _match_home_button_text_array ~= _match_heading.str; + } + string _match_home_button_text_str = (_match_home_button_text_array).join("; "); + _struct_composite.make_str.home_button_text = _match_home_button_text_str; } - string _match_home_button_text_str = (_match_home_button_text_array).join("; "); - _struct_composite.make_str.home_button_text = _match_home_button_text_str; } if ("italics" in _json.object["make"] && (_json.object["make"]["italics"].type().to!string == "string") @@ -152,35 +147,29 @@ static template contentJSONtoDocReformStruct() { break; } } - if ("auto_num_depth" in _json.object["make"] - && (_json.object["make"]["auto_num_depth"].type().to!string == "INTEGER") - ) { - _struct_composite.make_str.auto_num_depth = _json.object["make"]["auto_num_depth"].integer.to!int; - } else if ("auto_num_depth" in _json.object["make"] - && (_json.object["make"]["auto_num_depth"].type().to!string == "string") - ) { - _struct_composite.make_str.auto_num_depth = _json.object["make"]["auto_num_depth"].str.to!int; + if ("auto_num_depth" in _json.object["make"]) { + if (_json.object["make"]["auto_num_depth"].type().to!string == "int") { // TODO watch this match + _struct_composite.make_str.auto_num_depth = _json.object["make"]["auto_num_depth"].integer.to!int; + } else if (_json.object["make"]["auto_num_depth"].type().to!string == "string") { + _struct_composite.make_str.auto_num_depth = _json.object["make"]["auto_num_depth"].str.to!int; + } } if ("substitute" in _json.object["make"]) { string[][] _sub; - if ( - (_json.object["make"]["substitute"].type().to!string == "array") - && (_json.object["make"]["substitute"][0].type().to!string == "array") - ) { - foreach (substitute_pair; _json.object["make"]["substitute"].arrayNoRef) { - if ((substitute_pair.type().to!string) == "array") { - if (!empty(substitute_pair[0].str) && !empty(substitute_pair[1].str)) { - _sub ~= [ substitute_pair[0].str, substitute_pair[1].str]; + if (_json.object["make"]["substitute"].type().to!string == "array") { + if (_json.object["make"]["substitute"][0].type().to!string == "array") { + foreach (substitute_pair; _json.object["make"]["substitute"].arrayNoRef) { + if ((substitute_pair.type().to!string) == "array") { + if (!empty(substitute_pair[0].str) && !empty(substitute_pair[1].str)) { + _sub ~= [ substitute_pair[0].str, substitute_pair[1].str]; + } } } + } else if (_json.object["make"]["substitute"][0].type().to!string == "string") { + if (!empty(_json.object["make"]["substitute"][0].str) && !empty(_json.object["make"]["substitute"][1].str)) { + _sub = [[_json.object["make"]["substitute"][0].str, _json.object["make"]["substitute"][1].str]]; + } } - } else if ( - (_json.object["make"]["substitute"].type().to!string == "array") - && (_json.object["make"]["substitute"][0].type().to!string == "string") - ) { - if (!empty(_json.object["make"]["substitute"][0].str) && !empty(_json.object["make"]["substitute"][1].str)) { - _sub = [[_json.object["make"]["substitute"][0].str, _json.object["make"]["substitute"][1].str]]; - } } // writeln(_sub); _struct_composite.make_str.substitute = _sub; diff --git a/src/doc_reform/meta/metadoc_from_src.d b/src/doc_reform/meta/metadoc_from_src.d index 585306d..a057ec7 100644 --- a/src/doc_reform/meta/metadoc_from_src.d +++ b/src/doc_reform/meta/metadoc_from_src.d @@ -461,9 +461,8 @@ template DocReformDocAbstraction() { } /+ ↓ ↻ loop markup document/text line by line +/ srcDocLoop: - foreach (line; markup_sourcefile_content) { + foreach (line; markup_sourcefile_content) { /+ ↓ markup document/text line by line +/ // "line" variable can be empty but should never be null - /+ ↓ markup document/text line by line +/ /+ scope +/ scope(exit) { } @@ -493,9 +492,8 @@ template DocReformDocAbstraction() { /+ block object: code +/ line.txt_block_code(an_object, obj_type_status); continue; - } else if (!matchFirst(line, rgx.skip_from_regular_parse)) { - /+ object other than "code block" object - (includes regular text paragraph, headings & blocks other than code) +/ + } 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 +/ line = line.inline_markup_faces; // by text line (rather than by text object), linebreaks in para problematic if ((line.matchFirst(rgx.heading_biblio) @@ -724,25 +722,25 @@ template DocReformDocAbstraction() { 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; - comp_obj_heading_.metainfo.is_of_part = "backmatter"; - comp_obj_heading_.metainfo.is_of_section = "blurb"; - comp_obj_heading_.metainfo.is_of_type = "para"; - comp_obj_heading_.metainfo.is_a = "heading"; - comp_obj_heading_.text = line.to!string; - comp_obj_heading_.metainfo.ocn = 0; - comp_obj_heading_.metainfo.identifier = ""; - comp_obj_heading_.metainfo.dummy_heading = false; - comp_obj_heading_.metainfo.object_number_off = true; - comp_obj_heading_.metainfo.object_number_type = 0; + comp_obj_heading_ = comp_obj_heading_.init; + comp_obj_heading_.metainfo.is_of_part = "backmatter"; + comp_obj_heading_.metainfo.is_of_section = "blurb"; + comp_obj_heading_.metainfo.is_of_type = "para"; + comp_obj_heading_.metainfo.is_a = "heading"; + comp_obj_heading_.text = line.to!string; + comp_obj_heading_.metainfo.ocn = 0; + comp_obj_heading_.metainfo.identifier = ""; + comp_obj_heading_.metainfo.dummy_heading = false; + comp_obj_heading_.metainfo.object_number_off = true; + comp_obj_heading_.metainfo.object_number_type = 0; 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_; + 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 { @@ -766,41 +764,37 @@ template DocReformDocAbstraction() { obj_type_status["ocn_status"] = OCNstatus.on; } continue; - } else if (obj_type_status["quote"] == TriState.on) { - /+ within block object: quote +/ - line = line._doc_header_and_make_substitutions_(conf_make_meta); - line = line._doc_header_and_make_substitutions_fontface_(conf_make_meta); + } else if (obj_type_status["quote"] == TriState.on) { /+ within block object: quote +/ + line = line + ._doc_header_and_make_substitutions_(conf_make_meta) + ._doc_header_and_make_substitutions_fontface_(conf_make_meta); line.txt_block_quote(an_object, obj_type_status); continue; /+ within block object: group +/ - } else if (obj_type_status["group"] == TriState.on) { - /+ within block object: group +/ - line = line._doc_header_and_make_substitutions_(conf_make_meta); - line = line._doc_header_and_make_substitutions_fontface_(conf_make_meta); + } else if (obj_type_status["group"] == TriState.on) { /+ within block object: group +/ line = line + ._doc_header_and_make_substitutions_(conf_make_meta) + ._doc_header_and_make_substitutions_fontface_(conf_make_meta) .replaceAll(rgx.para_delimiter, mkup.br_paragraph ~ "$1"); line.txt_block_group(an_object, obj_type_status); continue; - } else if (obj_type_status["block"] == TriState.on) { - /+ within block object: block +/ - line = line._doc_header_and_make_substitutions_(conf_make_meta); - line = line._doc_header_and_make_substitutions_fontface_(conf_make_meta); + } else if (obj_type_status["block"] == TriState.on) { /+ within block object: block +/ + line = line + ._doc_header_and_make_substitutions_(conf_make_meta) + ._doc_header_and_make_substitutions_fontface_(conf_make_meta); if (auto m = line.match(rgx.spaces_keep)) { line = line .replaceAll(rgx.spaces_keep, (m.captures[1]).translate([ ' ' : mkup.nbsp ])); } line.txt_block_block(an_object, obj_type_status); continue; - } else if (obj_type_status["poem"] == TriState.on) { - /+ within block object: poem +/ + } else if (obj_type_status["poem"] == TriState.on) { /+ within block object: poem +/ line.txt_block_poem(an_object, obj_type_status, cntr, object_number_poem, conf_make_meta, tag_in_seg); continue; - } else if (obj_type_status["table"] == TriState.on) { - /+ within block object: table +/ + } else if (obj_type_status["table"] == TriState.on) { /+ within block object: table +/ line.txt_block_table(an_object, obj_type_status, conf_make_meta); continue; - } else { - /+ not within a block group +/ + } else { /+ not within a block group +/ assert( (obj_type_status["blocks"] == TriState.off) || (obj_type_status["blocks"] == TriState.closing), @@ -808,16 +802,14 @@ template DocReformDocAbstraction() { ); assertions_flag_types_block_status_none_or_closed(obj_type_status); if (line.matchFirst(rgx.block_open)) { - if (line.matchFirst(rgx.block_poem_open)) { - /+ poem to verse exceptions! +/ + if (line.matchFirst(rgx.block_poem_open)) { /+ poem to verse exceptions! +/ object_reset(an_object); processing.remove("verse"); object_number_poem["start"] = obj_cite_digits.object_number.to!string; } line.txt_block_start(obj_type_status, object_number_poem); continue; - } else if (!line.empty) { - /+ line not empty +/ + } else if (!line.empty) { /+ line not empty +/ /+ non blocks (headings, paragraphs) & closed blocks +/ assert( !line.empty, @@ -829,7 +821,7 @@ template DocReformDocAbstraction() { "code block status: none or closed" ); if (obj_type_status["blocks"] == TriState.closing) { - debug(check) { // block + debug(check) { writeln(__LINE__); writeln(line); } @@ -843,14 +835,11 @@ template DocReformDocAbstraction() { } if (line.matchFirst(rgx.book_index) || line.matchFirst(rgx.book_index_open) - || obj_type_status["book_index"] == State.on ) { - /+ book_index +/ + || obj_type_status["book_index"] == State.on ) { /+ book_index +/ line._book_index_(book_idx_tmp, an_object, obj_type_status, opt_action); - } else { - /+ not book_index +/ + } else { /+ not book_index +/ an_object_key="body_nugget"; - if (auto m = line.matchFirst(rgx.comment)) { - /+ matched comment +/ + if (auto m = line.matchFirst(rgx.comment)) { /+ matched comment +/ debug(comment) { writeln(line); } @@ -868,19 +857,16 @@ template DocReformDocAbstraction() { } else if (((line_occur["para"] == State.off) && (line_occur["heading"] == State.off)) && ((obj_type_status["para"] == State.off) - && (obj_type_status["heading"] == State.off))) { - /+ heading or para but neither flag nor line exists +/ + && (obj_type_status["heading"] == State.off))) { /+ heading or para but neither flag nor line exists +/ if ((conf_make_meta.make.headings.length > 2) - && (obj_type_status["make_headings"] == State.off)) { - /+ heading found +/ + && (obj_type_status["make_headings"] == State.off)) { /+ heading found +/ line._heading_found_(conf_make_meta.make.headings, heading_match_str, heading_match_rgx, obj_type_status); } if ((obj_type_status["make_headings"] == State.on) && ((line_occur["para"] == State.off) && (line_occur["heading"] == State.off)) && ((obj_type_status["para"] == State.off) - && (obj_type_status["heading"] == State.off))) { - /+ heading make set +/ + && (obj_type_status["heading"] == State.off))) { /+ heading make set +/ line = line._heading_make_set_(line_occur, heading_match_rgx, obj_type_status); } /+ TODO node info: all headings identified at this point, @@ -889,37 +875,34 @@ template DocReformDocAbstraction() { - should be incorporated in composite objects - should happen before endnote links set (they need to be moved down?) +/ - if (line.matchFirst(rgx.heading)) { - /+ heading match +/ + if (line.matchFirst(rgx.heading)) { /+ heading match +/ line = line._doc_header_and_make_substitutions_(conf_make_meta); line._heading_matched_(line_occur, an_object, an_object_key, lv, collapsed_lev, obj_type_status, conf_make_meta); - } else if (line_occur["para"] == State.off) { - /+ para match +/ + } else if (line_occur["para"] == State.off) { /+ para match +/ an_object_key="body_nugget"; - line = line._doc_header_and_make_substitutions_(conf_make_meta); - line = line._doc_header_and_make_substitutions_fontface_(conf_make_meta); + line = line + ._doc_header_and_make_substitutions_(conf_make_meta) + ._doc_header_and_make_substitutions_fontface_(conf_make_meta); line._para_match_(an_object, an_object_key, indent, bullet, obj_type_status, line_occur); } - } else if (line_occur["heading"] > State.off) { - /+ heading +/ + } else if (line_occur["heading"] > State.off) { /+ heading +/ debug(heading) { writeln(line); } an_object[an_object_key] ~= line ~= "\n"; ++line_occur["heading"]; - } else if (line_occur["para"] > State.off) { - /+ paragraph +/ + } else if (line_occur["para"] > State.off) { /+ paragraph +/ debug(para) { writeln(an_object_key, "-> ", line); } - line = line._doc_header_and_make_substitutions_(conf_make_meta); - line = line._doc_header_and_make_substitutions_fontface_(conf_make_meta); + line = line + ._doc_header_and_make_substitutions_(conf_make_meta) + ._doc_header_and_make_substitutions_fontface_(conf_make_meta); an_object[an_object_key] ~= " " ~ line; ++line_occur["para"]; } } - } else if (obj_type_status["blocks"] == TriState.closing) { - /+ line empty, with blocks flag +/ + } else if (obj_type_status["blocks"] == TriState.closing) { /+ line empty, with blocks flag +/ _block_flag_line_empty_( bookindex_extract_hash, line, @@ -934,8 +917,7 @@ template DocReformDocAbstraction() { conf_make_meta, tag_in_seg, ); - } else { - /+ line.empty, post contents, empty variables: +/ + } else { /+ line.empty, post contents, empty variables: +/ assert( line.empty, "\nline should be empty:\n \"" @@ -951,8 +933,7 @@ template DocReformDocAbstraction() { tag_in_seg = tag_in_seg.init; } if ((obj_type_status["heading"] == State.on) - && (line_occur["heading"] > State.off)) { - /+ heading object (current line empty) +/ + && (line_occur["heading"] > State.off)) { /+ heading object (current line empty) +/ obj_cite_digits = (an_object["lev_markup_number"].to!int == 0) ? ocn_emit(OCNstatus.reset) : ocn_emit(obj_type_status["ocn_status"]); @@ -993,7 +974,7 @@ template DocReformDocAbstraction() { 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) { /+ names used for epub markup segments A to D +/ + switch (an_object["lev_markup_number"].to!int) { /+ names used for epub markup segments A to D +/ case 0: segn = "_the_title"; goto default; @@ -1123,7 +1104,7 @@ template DocReformDocAbstraction() { comp_obj_para.has.inline_links = substantive_obj_misc_tuple[sObj.links]; comp_obj_para.has.image_without_dimensions = substantive_obj_misc_tuple[sObj.image_no_dimensions]; the_document_body_section ~= comp_obj_para; - tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); _common_reset_(line_occur, an_object, obj_type_status); indent=[ "hang_position" : 0, @@ -1149,12 +1130,11 @@ template DocReformDocAbstraction() { && (the_document_body_section.length > previous_length)) { if ((the_document_body_section[$-1].metainfo.is_a == "heading") && (the_document_body_section[$-1].metainfo.heading_lev_markup < 5)) { - obj_type_status["biblio_section"] = State.off; obj_type_status["glossary_section"] = State.off; + obj_type_status["biblio_section"] = State.off; obj_type_status["blurb_section"] = State.off; } - if (the_document_body_section[$-1].metainfo.is_a == "verse") { - /+ scan for endnotes for whole poem (each verse in poem) +/ + if (the_document_body_section[$-1].metainfo.is_a == "verse") { /+ scan for endnotes for whole poem (each verse in poem) +/ foreach (i; previous_length .. the_document_body_section.length) { if (the_document_body_section[i].metainfo.is_a == "verse") { if ((the_document_body_section[i].text).match( @@ -1168,8 +1148,7 @@ template DocReformDocAbstraction() { } } } - } else { - /+ scan object for endnotes +/ + } else { /+ scan object for endnotes +/ previous_length = the_document_body_section.length.to!int; if ((the_document_body_section[$-1].text).match( rgx.inline_notes_al_regular_number_note @@ -1185,7 +1164,7 @@ template DocReformDocAbstraction() { previous_length = the_document_body_section.length.to!int; } } - } /+ ← srcDocLoop closed: loop markup document/text line by line +/ + } /+ ← srcDocLoop closed: loop markup document/text line by line +/ /+ ↓ post loop markup document/text +/ auto en_tuple = note_section.endnote_objects(obj_cite_digits, opt_action); @@ -2066,8 +2045,7 @@ template DocReformDocAbstraction() { int ocn_ = obj_cite_digits.object_number; int ocn_bkidx_ = 0; int ocn_bidx_; - if (the_bookindex_section.length > 1) { - /+ scroll +/ + 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) { @@ -2367,7 +2345,7 @@ template DocReformDocAbstraction() { ); return t; /+ post loop markup document/text ↑ +/ - } /+ ← closed: abstract doc source +/ + } /+ ← closed: abstract doc source +/ /+ ↓ abstraction functions +/ static auto object_reset(O)(O an_object) { debug(asserts) { @@ -2394,7 +2372,7 @@ template DocReformDocAbstraction() { line_occur["para"] = State.off; obj_type_status["heading"] = State.off; obj_type_status["para"] = State.off; - an_object = object_reset(an_object); + an_object = an_object.object_reset; } static auto _check_ocn_status_(L,T)( L line, @@ -2405,13 +2383,11 @@ template DocReformDocAbstraction() { static assert(is(typeof(obj_type_status) == int[string])); } static auto rgx = Rgx(); - if ( - !(line.empty) + if (!(line.empty) && (obj_type_status["ocn_status_off_for_multiple_objects"] == OCN_off_block_status.off) ) { /+ not multi-line object, check whether object_number is on or turned off +/ - if (line.matchFirst(rgx.object_number_block_marks)) { - /+ switch off object_number +/ + if (line.matchFirst(rgx.object_number_block_marks)) { /+ switch off object_number +/ if (line.matchFirst(rgx.object_number_off_block)) { obj_type_status["ocn_status_off_for_multiple_objects"] = OCN_off_block_status.on; obj_type_status["ocn_status"] = OCNstatus.off; @@ -2521,7 +2497,6 @@ template DocReformDocAbstraction() { string code_block_syntax = ""; bool code_block_numbered = false; if (auto m = line.matchFirst(rgx.block_curly_code_open)) { - /+ curly code open +/ code_block_syntax = (m[1]) ? m[1].to!string : ""; code_block_numbered = (m[2].matchFirst(rgx.code_numbering)) ? true : false; @@ -2535,7 +2510,6 @@ template DocReformDocAbstraction() { obj_type_status["code"] = TriState.on; obj_type_status["curly_code"] = TriState.on; } else if (line.matchFirst(rgx.block_curly_poem_open)) { - /+ curly poem open +/ debug(poem) { // poem (curly) open writefln( "* [poem curly] %s", @@ -2548,7 +2522,6 @@ template DocReformDocAbstraction() { obj_type_status["poem"] = TriState.on; obj_type_status["curly_poem"] = TriState.on; } else if (line.matchFirst(rgx.block_curly_group_open)) { - /+ curly group open +/ debug(group) { // group (curly) open writefln( "* [group curly] %s", @@ -2559,7 +2532,6 @@ template DocReformDocAbstraction() { obj_type_status["group"] = TriState.on; obj_type_status["curly_group"] = TriState.on; } else if (line.matchFirst(rgx.block_curly_block_open)) { - /+ curly block open +/ debug(block) { // block (curly) open writefln( "* [block curly] %s", @@ -2570,7 +2542,6 @@ template DocReformDocAbstraction() { obj_type_status["block"] = TriState.on; obj_type_status["curly_block"] = TriState.on; } else if (line.matchFirst(rgx.block_curly_quote_open)) { - /+ curly quote open +/ debug(quote) { // quote (curly) open writefln( "* [quote curly] %s", @@ -2580,8 +2551,7 @@ template DocReformDocAbstraction() { obj_type_status["blocks"] = TriState.on; obj_type_status["quote"] = TriState.on; obj_type_status["curly_quote"] = TriState.on; - } else if (auto m = line.matchFirst(rgx.block_curly_table_open)) { - /+ curly table open +/ + } else if (auto m = line.matchFirst(rgx.block_curly_table_open)) { /+ curly table open +/ debug(table) { // table (curly) open writefln( "* [table curly] %s", @@ -2593,15 +2563,13 @@ template DocReformDocAbstraction() { obj_type_status["blocks"] = TriState.on; obj_type_status["table"] = TriState.on; obj_type_status["curly_table"] = TriState.on; - } else if (auto m = line.matchFirst(rgx.block_curly_table_special_markup)) { - /+ table: special table block markup syntax! +/ + } else if (auto m = line.matchFirst(rgx.block_curly_table_special_markup)) { /+ table: special table block markup syntax! +/ an_object["table_head"] = m["attrib"].to!string; an_object["block_type"] = "special"; obj_type_status["blocks"] = TriState.on; obj_type_status["table"] = TriState.on; obj_type_status["curly_table_special_markup"] = TriState.on; } else if (auto m = line.matchFirst(rgx.block_tic_code_open)) { - /+ tic code open +/ code_block_syntax = (m[1]) ? m[1].to!string : ""; code_block_numbered = (m[2].matchFirst(rgx.code_numbering)) ? true : false; @@ -2615,7 +2583,6 @@ template DocReformDocAbstraction() { obj_type_status["code"] = TriState.on; obj_type_status["tic_code"] = TriState.on; } else if (line.matchFirst(rgx.block_tic_poem_open)) { - /+ tic poem open +/ debug(poem) { // poem (tic) open writefln( "* [poem tic] %s", @@ -2628,7 +2595,6 @@ template DocReformDocAbstraction() { obj_type_status["poem"] = TriState.on; obj_type_status["tic_poem"] = TriState.on; } else if (line.matchFirst(rgx.block_tic_group_open)) { - /+ tic group open +/ debug(group) { // group (tic) open writefln( "* [group tic] %s", @@ -2639,7 +2605,6 @@ template DocReformDocAbstraction() { obj_type_status["group"] = TriState.on; obj_type_status["tic_group"] = TriState.on; } else if (line.matchFirst(rgx.block_tic_block_open)) { - /+ tic block open +/ debug(block) { // block (tic) open writefln( "* [block tic] %s", @@ -2650,7 +2615,6 @@ template DocReformDocAbstraction() { obj_type_status["block"] = TriState.on; obj_type_status["tic_block"] = TriState.on; } else if (line.matchFirst(rgx.block_tic_quote_open)) { - /+ tic quote open +/ debug(quote) { // quote (tic) open writefln( "* [quote tic] %s", @@ -2660,8 +2624,7 @@ template DocReformDocAbstraction() { obj_type_status["blocks"] = TriState.on; obj_type_status["quote"] = TriState.on; obj_type_status["tic_quote"] = TriState.on; - } else if (auto m = line.matchFirst(rgx.block_tic_table_open)) { - /+ tic table open +/ + } else if (auto m = line.matchFirst(rgx.block_tic_table_open)) { /+ tic table open +/ debug(table) { // table (tic) open writefln( "* [table tic] %s", @@ -2863,16 +2826,16 @@ template DocReformDocAbstraction() { comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); } object_reset(an_object); processing.remove("verse"); @@ -2926,16 +2889,16 @@ template DocReformDocAbstraction() { comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); object_reset(an_object); processing.remove("verse"); ++cntr; @@ -2972,16 +2935,16 @@ template DocReformDocAbstraction() { comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); object_number_poem["end"] = obj_cite_digits.object_number.to!string; object_reset(an_object); processing.remove("verse"); @@ -3035,16 +2998,16 @@ template DocReformDocAbstraction() { comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); object_reset(an_object); processing.remove("verse"); ++cntr; @@ -3100,8 +3063,8 @@ template DocReformDocAbstraction() { } } void txt_block_table(L,O,T,CMM)( - L line, - return ref O an_object, + L line, + return ref O an_object, return ref T obj_type_status, return ref CMM conf_make_meta, ) { @@ -3195,15 +3158,16 @@ template DocReformDocAbstraction() { auto jsn = BibJsnStr(); static auto rgx = Rgx(); if (line.matchFirst(rgx.heading_biblio) - && obj_type_status["para"] != State.on - && obj_type_status["group"] != State.on - && obj_type_status["block"] != State.on - && obj_type_status["poem"] != State.on - && obj_type_status["table"] != State.on - && obj_type_status["quote"] != State.on) { + && obj_type_status["para"] != State.on + && obj_type_status["group"] != State.on + && obj_type_status["block"] != State.on + && obj_type_status["poem"] != State.on + && obj_type_status["table"] != State.on + && obj_type_status["quote"] != State.on + ) { + obj_type_status["glossary_section"] = State.off; obj_type_status["biblio_section"] = TriState.on; obj_type_status["blurb_section"] = State.off; - obj_type_status["glossary_section"] = State.off; } if (line.empty) { debug { @@ -3411,16 +3375,16 @@ template DocReformDocAbstraction() { comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); obj_type_status["blocks"] = TriState.off; obj_type_status["quote"] = TriState.off; object_reset(an_object); @@ -3460,16 +3424,16 @@ template DocReformDocAbstraction() { comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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 = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); + tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc); obj_type_status["blocks"] = TriState.off; obj_type_status["group"] = TriState.off; object_reset(an_object); @@ -3509,10 +3473,10 @@ template DocReformDocAbstraction() { comp_obj_block.metainfo.ocn = obj_cite_digits.object_number; comp_obj_block.metainfo.identifier = obj_cite_digits.identifier; comp_obj_block.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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]; @@ -3592,12 +3556,12 @@ template DocReformDocAbstraction() { comp_obj_code.metainfo.is_of_type = "block"; comp_obj_code.metainfo.is_a = "code"; comp_obj_code.metainfo.ocn = obj_cite_digits.object_number; - comp_obj_code.metainfo.identifier = obj_cite_digits.identifier; + comp_obj_code.metainfo.identifier = obj_cite_digits.identifier; comp_obj_code.metainfo.object_number_off = obj_cite_digits.off; - 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.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.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]; @@ -3666,8 +3630,7 @@ template DocReformDocAbstraction() { static assert(is(typeof(obj_type_status) == int[string])); } static auto rgx = Rgx(); - if (auto m = line.match(rgx.book_index)) { - /+ match book_index +/ + if (auto m = line.match(rgx.book_index)) { /+ match book_index +/ debug(bookindexmatch) { writefln( "* [bookindex] %s\n", @@ -3675,8 +3638,7 @@ template DocReformDocAbstraction() { ); } an_object["bookindex_nugget"] = m.captures[1].to!string; - } else if (auto m = line.match(rgx.book_index_open)) { - /+ match open book_index +/ + } else if (auto m = line.match(rgx.book_index_open)) { /+ match open book_index +/ obj_type_status["book_index"] = State.on; if (opt_action.backmatter && opt_action.section_bookindex) { book_idx_tmp = m.captures[1].to!string; @@ -3687,8 +3649,7 @@ template DocReformDocAbstraction() { ); } } - } else if (obj_type_status["book_index"] == State.on ) { - /+ book_index flag set +/ + } else if (obj_type_status["book_index"] == State.on ) { /+ book_index flag set +/ if (auto m = line.match(rgx.book_index_close)) { obj_type_status["book_index"] = State.off; if (opt_action.backmatter @@ -3726,8 +3687,7 @@ template DocReformDocAbstraction() { } static auto rgx = Rgx(); if ((_make_unmarked_headings.length > 2) - && (obj_type_status["make_headings"] == State.off)) { - /+ headings found +/ + && (obj_type_status["make_headings"] == State.off)) { /+ headings found +/ debug(headingsfound) { writeln(_make_unmarked_headings); } @@ -3814,8 +3774,7 @@ template DocReformDocAbstraction() { && ((line_occur["para"] == State.off) && (line_occur["heading"] == State.off)) && ((obj_type_status["para"] == State.off) - && (obj_type_status["heading"] == State.off))) { - /+ heading make set +/ + && (obj_type_status["heading"] == State.off))) { /+ heading make set +/ if (line.matchFirst(heading_match_rgx["h_B"])) { line = "B~ " ~ line; debug(headingsfound) { @@ -3881,14 +3840,13 @@ template DocReformDocAbstraction() { static assert(is(typeof(obj_type_status) == int[string])); } static auto rgx = Rgx(); - if (auto m = line.match(rgx.heading)) { - /+ heading match +/ + if (auto m = line.match(rgx.heading)) { /+ heading match +/ ++line_occur["heading"]; obj_type_status["heading"] = State.on; obj_type_status["para"] = State.off; if (line.match(rgx.heading_seg_and_above)) { - obj_type_status["biblio_section"] = State.off; obj_type_status["glossary_section"] = State.off; + obj_type_status["biblio_section"] = State.off; obj_type_status["blurb_section"] = State.off; } an_object[an_object_key] ~= line ~= "\n"; @@ -4240,25 +4198,6 @@ template DocReformDocAbstraction() { comp_obj_block.text = _table_substantive; return table_object; } - auto table_array_munge_open_close(O,T)( - return ref O table_object, - return ref T table_array, - ) { - static auto rgx = Rgx(); - static auto mng = InlineMarkup(); - string _table_substantive; - foreach(row; table_array) { - foreach(col; row) { - _table_substantive ~= mng.tc_o ~ col ~ mng.tc_c; - } - _table_substantive ~= "\n"; - } - debug(table_dev) { - writeln(_table_substantive); - } - comp_obj_block.text = _table_substantive; - return table_object; - } auto table_substantive_munge(O,T)( return ref O table_object, return ref T table_substantive, @@ -4363,7 +4302,7 @@ template DocReformDocAbstraction() { static auto mng = InlineMarkup(); /+ url matched +/ obj_txt_in = obj_txt_in.replaceAll(rgx.inline_notes_al_special, ""); // TODO reinstate when special footnotes are implemented - if (obj_txt_in.match(rgx.smid_image_generic)) { /+ images with and without links +/ + if (obj_txt_in.match(rgx.smid_image_generic)) { /+ images with and without links +/ debug(images) { writeln("Image: ", obj_txt_in); } @@ -5047,50 +4986,6 @@ template DocReformDocAbstraction() { } return munge_; } - unittest { - string txt_lev="1"; - string txt_in, txt_out; - - txt_in = "1~copyright Copyright"; - txt_out ="1~copyright Copyright"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in = "1~ 6. Writing Copyright Licenses"; - txt_out ="1~s6 6. Writing Copyright Licenses"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ 1. Reinforcing trends"; - txt_out= "1~s1 1. Reinforcing trends"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ 11 SCIENCE AS A COMMONS"; - txt_out= "1~s11 11 SCIENCE AS A COMMONS"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ Chapter 1"; - txt_out="1~chapter_1 Chapter 1"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ Chapter 1."; - txt_out="1~chapter_1 Chapter 1."; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ Chapter 1: Done"; - txt_out="1~chapter_1 Chapter 1: Done"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ Chapter 11 - The Battle Over the Institutional Ecology of the Digital Environment"; - txt_out= "1~chapter_11 Chapter 11 - The Battle Over the Institutional Ecology of the Digital Environment"; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ CHAPTER I."; - txt_out="1~x1 CHAPTER I."; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - - txt_in= "1~ CHAPTER II."; - txt_out="1~x2 CHAPTER II."; - assert(_make_segment_anchor_tags_if_none_provided(txt_in, txt_lev) == txt_out); - } } /+ +/ struct ObjAttributes { diff --git a/src/doc_reform/meta/metadochead.d b/src/doc_reform/meta/metadochead.d index 42f4845..05be0a8 100644 --- a/src/doc_reform/meta/metadochead.d +++ b/src/doc_reform/meta/metadochead.d @@ -27,7 +27,6 @@ template DocReformHarvestGetFromHead() { // TODO mixin outputHub; enum headBody { header, body_content, insert_file_list, image_list } enum makeMeta { make, meta } - enum docAbst { doc_abstraction, section_keys, segnames, segnames_0_4, images } static auto rgx = Rgx(); auto DocReformHarvestGetFromHead(E,O,M)( // TODO E _env, |