aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sisudoc/meta
diff options
context:
space:
mode:
Diffstat (limited to 'src/sisudoc/meta')
-rw-r--r--src/sisudoc/meta/metadoc.d17
-rw-r--r--src/sisudoc/meta/metadoc_from_src.d42
-rw-r--r--src/sisudoc/meta/metadoc_from_src_functions.d204
-rw-r--r--src/sisudoc/meta/metadoc_object_setter.d1
-rw-r--r--src/sisudoc/meta/metadoc_show_config.d4
-rw-r--r--src/sisudoc/meta/metadoc_show_make.d4
-rw-r--r--src/sisudoc/meta/metadoc_show_metadata.d4
-rw-r--r--src/sisudoc/meta/metadoc_show_summary.d34
-rw-r--r--src/sisudoc/meta/rgx.d12
9 files changed, 267 insertions, 55 deletions
diff --git a/src/sisudoc/meta/metadoc.d b/src/sisudoc/meta/metadoc.d
index 0d58c2e..5c3694e 100644
--- a/src/sisudoc/meta/metadoc.d
+++ b/src/sisudoc/meta/metadoc.d
@@ -144,7 +144,7 @@ template spineAbstraction() {
if ((_opt_action.debug_do)
|| (_opt_action.debug_do_stages)
) {
- writeln("step4 commence → (doc_matters) [", _manifest.src.filename, "]");
+ writeln("step4 commence → (doc.matters) [", _manifest.src.filename, "]");
}
struct ST_DocumentMatters {
auto generator_program() {
@@ -294,7 +294,18 @@ template spineAbstraction() {
) {
writeln("- step4 complete for [", _manifest.src.filename, "]");
}
- auto t = tuple(doc_abstraction, doc_matters);
- return t;
+ auto theDOC() {
+ struct ST_DOC {
+ const auto abstraction() {
+ return doc_abstraction;
+ }
+ auto matters() {
+ return doc_matters;
+ }
+ }
+ return ST_DOC();
+ }
+ auto the_doc = theDOC();
+ return the_doc;
}
}
diff --git a/src/sisudoc/meta/metadoc_from_src.d b/src/sisudoc/meta/metadoc_from_src.d
index 012dd36..4aa49dc 100644
--- a/src/sisudoc/meta/metadoc_from_src.d
+++ b/src/sisudoc/meta/metadoc_from_src.d
@@ -99,8 +99,8 @@ template docAbstraction() {
anchor_tag = "";
}
mixin spineNode;
- auto node_para_int_ = node_metadata_para_int;
- auto node_para_str_ = node_metadata_para_str;
+ int[string] node_para_int_ = node_metadata_para_int;
+ string[string] node_para_str_ = node_metadata_para_str;
ObjGenericComposite comp_obj_;
line_occur = [
"heading" : 0,
@@ -231,7 +231,7 @@ template docAbstraction() {
writeln("substitution to make: ", conf_make_meta.make.italics[Substitute.markup]);
}
}
- auto loopMarkupSrcByLine(
+ _loopMarkupSrcByLineStruct loopMarkupSrcByLine(
char[][] markup_sourcefile_content,
string[string] an_object,
uint[string] pith,
@@ -340,7 +340,7 @@ template docAbstraction() {
._doc_header_and_make_substitutions_(conf_make_meta)
._doc_header_and_make_substitutions_fontface_(conf_make_meta);
{
- auto _get = line.txt_by_line_block_quote(an_object, pith);
+ ST_txt_by_line_block_generic _get = line.txt_by_line_block_quote(an_object, pith);
{
an_object = _get.this_object;
pith = _get.pith;
@@ -353,7 +353,7 @@ template docAbstraction() {
._doc_header_and_make_substitutions_fontface_(conf_make_meta)
.replaceAll(rgx.para_delimiter, mkup.br_line_spaced ~ "$1");
{
- auto _get = line.txt_by_line_block_group(an_object, pith);
+ ST_txt_by_line_block_generic _get = line.txt_by_line_block_group(an_object, pith);
{
an_object = _get.this_object;
pith = _get.pith;
@@ -369,7 +369,7 @@ template docAbstraction() {
.replaceAll(rgx.spaces_keep, (m.captures[1]).translate([ ' ' : mkup.nbsp ]));
}
{
- auto _get = line.txt_by_line_block_block(an_object, pith);
+ ST_txt_by_line_block_generic _get = line.txt_by_line_block_block(an_object, pith);
{
an_object = _get.this_object;
pith = _get.pith;
@@ -378,7 +378,7 @@ template docAbstraction() {
continue;
} else if (pith["block_is"] == eN.blk_is.poem) {
{
- auto _get = line.txt_by_line_block_poem(an_object, pith, cntr, object_number_poem, conf_make_meta, tag_in_seg);
+ ST_txt_by_line_block_poem _get = line.txt_by_line_block_poem(an_object, pith, cntr, object_number_poem, conf_make_meta, tag_in_seg);
{
an_object = _get.this_object;
pith = _get.pith;
@@ -412,7 +412,7 @@ template docAbstraction() {
object_number_poem["start"] = obj_cite_digits.object_number.to!string;
}
{
- auto _get = line.txt_by_line_block_start(pith, dochas, object_number_poem);
+ ST_txt_by_line_block_start _get = line.txt_by_line_block_start(pith, dochas, object_number_poem);
{
pith = _get.pith;
dochas = _get.dochas;
@@ -442,7 +442,7 @@ template docAbstraction() {
|| line.matchFirst(rgx.book_index_item_open)
|| pith["section"] == eN.sect.book_index) {
{ // book_index
- auto _get = line.flow_book_index_(an_object, book_idx_tmp, pith, opt_action);
+ ST_flow_book_index _get = line.flow_book_index_(an_object, book_idx_tmp, pith, opt_action);
{
an_object = _get.this_object;
pith = _get.pith;
@@ -464,7 +464,7 @@ template docAbstraction() {
comp_obj_comment.text = an_object[an_object_key].strip;
the_document_body_section ~= comp_obj_comment;
{
- auto _get = txt_by_line_common_reset_(line_occur, an_object, pith);
+ ST_txt_by_line_common_reset _get = txt_by_line_common_reset_(line_occur, an_object, pith);
{
line_occur = _get.line_occur;
an_object = _get.this_object;
@@ -481,7 +481,7 @@ template docAbstraction() {
&& (pith["make_headings"] == eN.bi.off)) {
// heading found
{
- auto _get = line.flow_heading_found_(heading_match_str, conf_make_meta.make.headings, heading_match_rgx, pith);
+ ST_flow_heading_found _get = line.flow_heading_found_(heading_match_str, conf_make_meta.make.headings, heading_match_rgx, pith);
{
heading_match_str = _get.heading_match_str;
heading_match_rgx = _get.heading_match_rgx;
@@ -496,7 +496,7 @@ template docAbstraction() {
) {
// heading make set
{
- auto _get = line.flow_heading_make_set_(line_occur, heading_match_rgx, pith);
+ ST_flow_heading_make_set _get = line.flow_heading_make_set_(line_occur, heading_match_rgx, pith);
{
line = _get.line;
an_object = _get.this_object;
@@ -534,7 +534,7 @@ template docAbstraction() {
._doc_header_and_make_substitutions_(conf_make_meta)
._doc_header_and_make_substitutions_fontface_(conf_make_meta);
{
- auto _get = line.flow_para_match_(an_object, an_object_key, indent, bullet, pith, line_occur);
+ ST_flow_para_match _get = line.flow_para_match_(an_object, an_object_key, indent, bullet, pith, line_occur);
{
an_object = _get.this_object;
an_object_key = _get.this_object_key;
@@ -563,7 +563,7 @@ template docAbstraction() {
} else if (pith["block_state"] == eN.blk_state.closing) {
// line empty, with blocks flag
{
- auto _get = line.flow_block_flag_line_empty_(
+ ST_flow_block_flag_line_empty _get = line.flow_block_flag_line_empty_(
an_object,
bookindex_extract_hash,
the_document_body_section,
@@ -679,7 +679,7 @@ template docAbstraction() {
_anchor_tag = obj_cite_digits.identifier;
// (incrementally build toc) table of contents here!
{
- auto _get = obj_im.flow_table_of_contents_gather_headings(
+ ST_flow_table_of_contents_gather_headings _get = obj_im.flow_table_of_contents_gather_headings(
an_object,
conf_make_meta,
tag_in_seg,
@@ -700,7 +700,7 @@ template docAbstraction() {
if (an_object["lev_markup_number"].to!int <= 4) {
segnames["epub"] ~= tag_in_seg["seg_lv1to4"];
}
- auto comp_obj_ = node_construct.node_emitter_heading(
+ ObjGenericComposite comp_obj_ = node_construct.node_emitter_heading(
an_object,
tag_in_seg,
lev_anchor_tag,
@@ -721,7 +721,7 @@ template docAbstraction() {
the_document_body_section ~= comp_obj_;
debug(objectrelated1) { writeln(line); } // check
{
- auto _get = txt_by_line_common_reset_(line_occur, an_object, pith);
+ ST_txt_by_line_common_reset _get = txt_by_line_common_reset_(line_occur, an_object, pith);
{
line_occur = _get.line_occur;
an_object = _get.this_object;
@@ -742,7 +742,7 @@ template docAbstraction() {
an_object["bookindex_nugget"] = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";
bookindex_unordered_hashes = bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_digits, tag_in_seg);
an_object["is"] = "para";
- auto comp_obj_ = node_construct.node_location_emitter(
+ ObjGenericComposite comp_obj_ = node_construct.node_location_emitter(
content_non_header,
tag_in_seg,
lev_anchor_tag,
@@ -774,7 +774,7 @@ template docAbstraction() {
the_document_body_section ~= comp_obj_;
tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc);
{
- auto _get = txt_by_line_common_reset_(line_occur, an_object, pith);
+ ST_txt_by_line_common_reset _get = txt_by_line_common_reset_(line_occur, an_object, pith);
{
line_occur = _get.line_occur;
an_object = _get.this_object;
@@ -848,7 +848,7 @@ template docAbstraction() {
return ret;
}
{ // loopMarkupSrcByLine
- auto _doc_by_line = loopMarkupSrcByLine(markup_sourcefile_content, an_object, pith);
+ _loopMarkupSrcByLineStruct _doc_by_line = loopMarkupSrcByLine(markup_sourcefile_content, an_object, pith);
the_document_toc_section = _doc_by_line.toc;
the_document_body_section = _doc_by_line.body;
the_document_glossary_section = _doc_by_line.glossary;
@@ -1496,7 +1496,7 @@ template docAbstraction() {
return tag_assoc;
}
}
- auto doc_has() {
+ DocHas_ doc_has() {
return DocHas_();
}
// the doc to be returned
diff --git a/src/sisudoc/meta/metadoc_from_src_functions.d b/src/sisudoc/meta/metadoc_from_src_functions.d
index 8ccf21b..3ae10d1 100644
--- a/src/sisudoc/meta/metadoc_from_src_functions.d
+++ b/src/sisudoc/meta/metadoc_from_src_functions.d
@@ -453,6 +453,62 @@ template docAbstractionFunctions() {
pith["block_is"] = eN.blk_is.table;
pith["block_state"] = eN.blk_state.on;
pith["block_delim"] = eN.blk_delim.curly_special;
+ } else if (auto m = line.matchFirst(rgx.block_quotemarks_code_open)) {
+ dochas["codeblock"]++;
+ an_object["lang"] = "";
+ an_object["attrib"] = (m["attrib"]) ? m["attrib"].to!string : "";
+ an_object["syntax"] = (m["syntax"]) ? m["syntax"].to!string : "";
+ debug(codequotemarks) { writefln( "* [code quotemarks] %s", line); }
+ pith["block_is"] = eN.blk_is.code;
+ pith["block_state"] = eN.blk_state.on;
+ pith["block_delim"] = eN.blk_delim.quotemarks; //
+ } else if (auto m = line.matchFirst(rgx.block_quotemarks_poem_open)) {
+ dochas["poem"]++;
+ an_object["syntax"] = "";
+ an_object["attrib"] = (m["attrib"]) ? m["attrib"].to!string : "";
+ an_object["lang"] = (m["lang"]) ? m["lang"].to!string : "";
+ debug(poem) { writefln( "* [poem quotemarks] %s", line); }
+ object_number_poem["start"] = obj_cite_digits.object_number.to!string;
+ pith["block_is"] = eN.blk_is.poem;
+ pith["block_state"] = eN.blk_state.on;
+ pith["block_delim"] = eN.blk_delim.quotemarks; //
+ pith["verse_new"] = eN.bi.on;
+ } else if (auto m = line.matchFirst(rgx.block_quotemarks_group_open)) {
+ dochas["group"]++;
+ an_object["syntax"] = "";
+ an_object["attrib"] = (m["attrib"]) ? m["attrib"].to!string : "";
+ an_object["lang"] = (m["lang"]) ? m["lang"].to!string : "";
+ debug(group) { writefln( "* [group quotemarks] %s", line); }
+ pith["block_is"] = eN.blk_is.group;
+ pith["block_state"] = eN.blk_state.on;
+ pith["block_delim"] = eN.blk_delim.quotemarks;
+ } else if (auto m = line.matchFirst(rgx.block_quotemarks_block_open)) {
+ dochas["block"]++;
+ an_object["syntax"] = "";
+ an_object["attrib"] = (m["attrib"]) ? m["attrib"].to!string : "";
+ an_object["lang"] = (m["lang"]) ? m["lang"].to!string : "";
+ debug(block) { writefln( "* [block quotemarks] %s", line); }
+ pith["block_is"] = eN.blk_is.block;
+ pith["block_state"] = eN.blk_state.on;
+ pith["block_delim"] = eN.blk_delim.quotemarks;
+ } else if (auto m = line.matchFirst(rgx.block_quotemarks_quote_open)) {
+ dochas["quote"]++;
+ an_object["syntax"] = "";
+ an_object["attrib"] = m["attrib"].to!string;
+ an_object["lang"] = m["lang"].to!string;
+ debug(quote) { writefln( "* [quote quotemarks] %s", line); // quote (quotemarks) open
+ }
+ pith["block_is"] = eN.blk_is.quote;
+ pith["block_state"] = eN.blk_state.on;
+ pith["block_delim"] = eN.blk_delim.quotemarks;
+ } else if (auto m = line.matchFirst(rgx.block_quotemarks_table_open)) { // quotemarks table open
+ debug(table) { writefln( "* [table quotemarks] %s", line); }
+ dochas["table"] ++;
+ an_object["table_head"] = m["attrib"].to!string;
+ an_object["block_type"] = "quotemarks";
+ pith["block_is"] = eN.blk_is.table;
+ pith["block_state"] = eN.blk_state.on;
+ pith["block_delim"] = eN.blk_delim.quotemarks;
} else if (auto m = line.matchFirst(rgx.block_tic_code_open)) {
dochas["codeblock"]++;
an_object["lang"] = "";
@@ -536,6 +592,17 @@ template docAbstractionFunctions() {
debug(group) { writeln(line); }
an_object[an_object_key] ~= line ~= "\n";
}
+ } else if (pith["block_delim"] == eN.blk_delim.quotemarks) {
+ if (line.matchFirst(rgx.block_quotemarks_close)) {
+ debug(group) { writeln(line); }
+ an_object[an_object_key] = an_object[an_object_key].stripRight;
+ pith["block_is"] = eN.blk_is.group;
+ pith["block_state"] = eN.blk_state.closing;
+ pith["block_delim"] = eN.blk_delim.off;
+ } else {
+ debug(group) { writeln(line); }
+ an_object[an_object_key] ~= line ~= "\n";
+ }
} else if (pith["block_delim"] == eN.blk_delim.tic) {
if (line.matchFirst(rgx.block_tic_close)) {
debug(group) { writeln(line); }
@@ -574,6 +641,17 @@ template docAbstractionFunctions() {
debug(block) { writeln(line); }
an_object[an_object_key] ~= line ~= "\n";
}
+ } else if (pith["block_delim"] == eN.blk_delim.quotemarks) {
+ if (line.matchFirst(rgx.block_quotemarks_close)) {
+ debug(block) { writeln(line); }
+ an_object[an_object_key] = an_object[an_object_key].stripRight;
+ pith["block_is"] = eN.blk_is.block;
+ pith["block_state"] = eN.blk_state.closing;
+ pith["block_delim"] = eN.blk_delim.off;
+ } else {
+ debug(block) { writeln(line); }
+ an_object[an_object_key] ~= line ~= "\n";
+ }
} else if (pith["block_delim"] == eN.blk_delim.tic) {
if (line.matchFirst(rgx.block_tic_close)) {
debug(block) { writeln(line); }
@@ -698,6 +776,94 @@ template docAbstractionFunctions() {
++cntr;
}
}
+ } else if (pith["block_delim"] == eN.blk_delim.quotemarks) {
+ if (auto m = line.matchFirst(rgx.block_quotemarks_close)) {
+ an_object[an_object_key] = "verse";
+ debug(poem) { writefln( "* [poem quotemarks] %s", line); }
+ if (processing.length > 0) {
+ an_object[an_object_key] = processing["verse"];
+ }
+ if (an_object.length > 0) {
+ debug(poem) { writeln(__LINE__); writeln(obj_cite_digits.object_number, line); }
+ processing.remove("verse");
+ an_object["is"] = "verse";
+ ST_txtAndAnchorTagPlusHasFootnotesUrlsImages substantive_obj_misc_struct
+ = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, No._new_doc);
+ an_object["substantive"] = substantive_obj_misc_struct.obj_txt;
+ anchor_tag = substantive_obj_misc_struct.anchor_tag;
+ comp_obj_ = set_object_generic("body", "body", "block", "verse", an_object["substantive"], obj_cite_digits.object_number);
+ comp_obj_.metainfo.identifier = obj_cite_digits.identifier;
+ comp_obj_.metainfo.object_number_off = obj_cite_digits.off;
+ comp_obj_.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_.metainfo.object_number_type = obj_cite_digits.type;
+ comp_obj_.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1to4"];
+ comp_obj_.has.inline_notes_reg = substantive_obj_misc_struct.has_notes_reg;
+ comp_obj_.has.inline_notes_star = substantive_obj_misc_struct.has_notes_star;
+ comp_obj_.has.inline_links = substantive_obj_misc_struct.has_links;
+ the_document_body_section ~= comp_obj_;
+ 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");
+ ++cntr;
+ }
+ pith["block_is"] = eN.blk_is.poem;
+ pith["block_state"] = eN.blk_state.closing;
+ pith["block_delim"] = eN.blk_delim.off;
+ } else {
+ processing["verse"] ~= line ~= "\n";
+ if (pith["verse_new"] == eN.bi.on) {
+ obj_cite_digits = ocn_emit(pith["ocn"]);
+ pith["verse_new"] = eN.bi.off;
+ } else if (line.matchFirst(rgx.newline_eol_delimiter_only)) {
+ processing["verse"] = processing["verse"].stripRight;
+ pith["verse_new"] = eN.bi.on;
+ verse_line = eN.bi.off;
+ }
+ if (pith["verse_new"] == eN.bi.on) {
+ verse_line = 1;
+ an_object[an_object_key] = processing["verse"];
+ debug(poem) { writefln(
+ "* %s tic\n%s",
+ obj_cite_digits.object_number,
+ an_object[an_object_key]
+ );
+ }
+ processing.remove("verse");
+ an_object["is"] = "verse";
+ auto comp_obj_location
+ = node_construct.node_location_emitter(
+ content_non_header,
+ tag_in_seg,
+ lev_anchor_tag,
+ tag_assoc,
+ obj_cite_digits,
+ cntr,
+ heading_ptr-1,
+ an_object["is"]
+ );
+ ST_txtAndAnchorTagPlusHasFootnotesUrlsImages substantive_obj_misc_struct
+ = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, No._new_doc);
+ an_object["substantive"] = substantive_obj_misc_struct.obj_txt;
+ anchor_tag = substantive_obj_misc_struct.anchor_tag;
+ comp_obj_ = set_object_generic("body", "body", "block", "verse", an_object["substantive"], obj_cite_digits.object_number);
+ comp_obj_.metainfo.identifier = obj_cite_digits.identifier;
+ comp_obj_.metainfo.object_number_off = obj_cite_digits.off;
+ comp_obj_.metainfo.o_n_book_index = obj_cite_digits.bkidx;
+ comp_obj_.metainfo.object_number_type = obj_cite_digits.type;
+ comp_obj_.tags.html_segment_anchor_tag_is = tag_in_seg["seg_lv4"];
+ comp_obj_.tags.epub_segment_anchor_tag_is = tag_in_seg["seg_lv1to4"];
+ comp_obj_.has.inline_notes_reg = substantive_obj_misc_struct.has_notes_reg;
+ comp_obj_.has.inline_notes_star = substantive_obj_misc_struct.has_notes_star;
+ comp_obj_.has.inline_links = substantive_obj_misc_struct.has_links;
+ the_document_body_section ~= comp_obj_;
+ tag_assoc = an_object.inline_para_link_anchor(tag_in_seg, tag_assoc);
+ object_reset(an_object);
+ processing.remove("verse");
+ ++cntr;
+ }
+ }
} else if (pith["block_delim"] == eN.blk_delim.tic) {
if (auto m = line.matchFirst(rgx.block_tic_close)) {
an_object[an_object_key] = "verse";
@@ -816,6 +982,19 @@ template docAbstractionFunctions() {
debug(codecurly) { writeln(line); }
an_object[an_object_key] ~= line ~= "\n";
}
+ } else if (pith["block_delim"] == eN.blk_delim.quotemarks) {
+ if (line.matchFirst(rgx.block_quotemarks_close)) {
+ debug(codequotemarks) { writeln(line); }
+ an_object[an_object_key] = an_object[an_object_key]
+ .replaceFirst(rgx.newline_eol_delimiter_only, "")
+ .stripRight;
+ pith["block_is"] = eN.blk_is.code;
+ pith["block_state"] = eN.blk_state.closing;
+ pith["block_delim"] = eN.blk_delim.off;
+ } else {
+ debug(codequotemarks) { writeln(line); }
+ an_object[an_object_key] ~= line ~= "\n";
+ }
} else if (pith["block_delim"] == eN.blk_delim.tic) {
if (line.matchFirst(rgx.block_tic_close)) {
debug(codetic) { writeln(line); }
@@ -884,6 +1063,16 @@ template docAbstractionFunctions() {
debug(table) { writeln(line); }
an_object[an_object_key] ~= line ~= "\n";
}
+ } else if (pith["block_delim"] == eN.blk_delim.quotemarks) {
+ if (line.matchFirst(rgx.block_quotemarks_close)) {
+ debug(table) { writeln(line); }
+ pith["block_is"] = eN.blk_is.table;
+ pith["block_state"] = eN.blk_state.closing;
+ pith["block_delim"] = eN.blk_delim.off;
+ } else {
+ debug(table) { writeln(line); }
+ an_object[an_object_key] ~= line ~= "\n";
+ }
} else if (pith["block_delim"] == eN.blk_delim.tic) {
if (line.matchFirst(rgx.block_tic_close)) {
debug(table) { writeln(line); }
@@ -927,6 +1116,17 @@ template docAbstractionFunctions() {
debug(quote) { writeln(line); }
an_object[an_object_key] ~= line ~= "\n";
}
+ } else if (pith["block_delim"] == eN.blk_delim.quotemarks) {
+ if (line.matchFirst(rgx.block_quotemarks_close)) {
+ debug(quote) { writeln(line); }
+ an_object[an_object_key] = an_object[an_object_key].stripRight;
+ pith["block_is"] = eN.blk_is.quote;
+ pith["block_state"] = eN.blk_state.closing;
+ pith["block_delim"] = eN.blk_delim.off;
+ } else {
+ debug(quote) { writeln(line); }
+ an_object[an_object_key] ~= line ~= "\n";
+ }
} else if (pith["block_delim"] == eN.blk_delim.tic) {
if (line.matchFirst(rgx.block_tic_close)) {
debug(quote) { writeln(line); }
@@ -3631,7 +3831,7 @@ template docAbstractionFunctions() {
}
} else { // para
{
- auto _get = line.flow_para_match_(an_object, an_object_key, indent, bullet, pith, line_occur);
+ ST_flow_para_match _get = line.flow_para_match_(an_object, an_object_key, indent, bullet, pith, line_occur);
{
an_object = _get.this_object;
an_object_key = _get.this_object_key;
@@ -3924,7 +4124,7 @@ template docAbstractionFunctions() {
tag_assoc[comp_obj_.tags.segment_anchor_tag_epub]["seg_lv1to4"] = comp_obj_.tags.segment_anchor_tag_epub;
} else if (!(line.empty)) {
{
- auto _get = line.flow_para_match_(an_object, an_object_key, indent, bullet, pith, line_occur);
+ ST_flow_para_match _get = line.flow_para_match_(an_object, an_object_key, indent, bullet, pith, line_occur);
{
an_object = _get.this_object;
an_object_key = _get.this_object_key;
diff --git a/src/sisudoc/meta/metadoc_object_setter.d b/src/sisudoc/meta/metadoc_object_setter.d
index 89ef856..e0e896e 100644
--- a/src/sisudoc/meta/metadoc_object_setter.d
+++ b/src/sisudoc/meta/metadoc_object_setter.d
@@ -420,6 +420,7 @@ template ObjectSetter() {
tic,
curly_special,
tic_special,
+ quotemarks,
}
}
return _e();
diff --git a/src/sisudoc/meta/metadoc_show_config.d b/src/sisudoc/meta/metadoc_show_config.d
index a56e632..7434506 100644
--- a/src/sisudoc/meta/metadoc_show_config.d
+++ b/src/sisudoc/meta/metadoc_show_config.d
@@ -139,9 +139,7 @@ template spineShowSiteConfig() {
}
}
template spineShowConfig() {
- void spineShowConfig(T)(
- T doc_matters,
- ) {
+ void spineShowConfig(T)(T doc_matters) {
import
sisudoc.meta.defaults,
sisudoc.meta.rgx;
diff --git a/src/sisudoc/meta/metadoc_show_make.d b/src/sisudoc/meta/metadoc_show_make.d
index d3271bf..a5e5608 100644
--- a/src/sisudoc/meta/metadoc_show_make.d
+++ b/src/sisudoc/meta/metadoc_show_make.d
@@ -50,9 +50,7 @@
module sisudoc.meta.metadoc_show_make;
@safe:
template spineShowMake() {
- void spineShowMake(T)(
- T doc_matters,
- ) {
+ void spineShowMake(T)(T doc_matters) {
import
sisudoc.meta.defaults,
sisudoc.meta.rgx;
diff --git a/src/sisudoc/meta/metadoc_show_metadata.d b/src/sisudoc/meta/metadoc_show_metadata.d
index 1857df8..4a7a177 100644
--- a/src/sisudoc/meta/metadoc_show_metadata.d
+++ b/src/sisudoc/meta/metadoc_show_metadata.d
@@ -50,9 +50,7 @@
module sisudoc.meta.metadoc_show_metadata;
@safe:
template spineShowMetaData() {
- void spineShowMetaData(T)(
- T doc_matters,
- ) {
+ void spineShowMetaData(T)(T doc_matters) {
import
sisudoc.meta.defaults,
sisudoc.meta.rgx;
diff --git a/src/sisudoc/meta/metadoc_show_summary.d b/src/sisudoc/meta/metadoc_show_summary.d
index 0404af4..2ceb337 100644
--- a/src/sisudoc/meta/metadoc_show_summary.d
+++ b/src/sisudoc/meta/metadoc_show_summary.d
@@ -50,10 +50,8 @@
module sisudoc.meta.metadoc_show_summary;
@safe:
template spineMetaDocSummary() {
- void spineMetaDocSummary(S,T)(
- const S doc_abstraction,
- T doc_matters,
- ) {
+ void spineMetaDocSummary(D)(D doc) {
+ auto doc_matters = doc.matters;
import
sisudoc.meta.defaults,
sisudoc.meta.rgx;
@@ -85,7 +83,7 @@ template spineMetaDocSummary() {
"last_object_number_book_index" : "0",
];
foreach (k; doc_matters.has.keys_seq.seg) {
- foreach (obj; doc_abstraction[k]) {
+ foreach (obj; doc.abstraction[k]) {
if (obj.metainfo.is_of_part != "empty") {
if (!empty(obj.metainfo.object_number)) {
if (k == "body") {
@@ -116,9 +114,9 @@ template spineMetaDocSummary() {
doc_matters.src.language,
markup.repeat_character_by_number_provided("-", char_repeat_number),
"- toc arr length:",
- to!int(doc_abstraction["toc"].length),
- "- doc_abstraction arr length:",
- to!int(doc_abstraction["body"].length),
+ to!int(doc.abstraction["toc"].length),
+ "- doc.abstraction arr length:",
+ to!int(doc.abstraction["body"].length),
" doc body last obj on.#:",
to!int(check["last_object_number_body"]),
" - number of tables:",
@@ -134,26 +132,26 @@ template spineMetaDocSummary() {
" - number of images:",
doc_matters.has.images,
"- endnotes length:", // subtract headings
- (doc_abstraction["endnotes"].length > 2)
- ? (to!int(doc_abstraction["endnotes"].length - 2))
+ (doc.abstraction["endnotes"].length > 2)
+ ? (to!int(doc.abstraction["endnotes"].length - 2))
: 0,
"- glossary length:",
- (doc_abstraction["glossary"].length > 1)
- ? (to!int(doc_abstraction["glossary"].length))
+ (doc.abstraction["glossary"].length > 1)
+ ? (to!int(doc.abstraction["glossary"].length))
: 0,
"- biblio length:",
- (doc_abstraction["bibliography"].length > 1)
- ? (to!int(doc_abstraction["bibliography"].length))
+ (doc.abstraction["bibliography"].length > 1)
+ ? (to!int(doc.abstraction["bibliography"].length))
: 0,
"- bookindex length:",
- (doc_abstraction["bookindex"].length > 1)
- ? (to!int(doc_abstraction["bookindex"].length))
+ (doc.abstraction["bookindex"].length > 1)
+ ? (to!int(doc.abstraction["bookindex"].length))
: 0,
" book idx last obj on.#:",
to!int(check["last_object_number_book_index"]),
"- blurb length:",
- (doc_abstraction["blurb"].length > 1)
- ? (to!int(doc_abstraction["blurb"].length))
+ (doc.abstraction["blurb"].length > 1)
+ ? (to!int(doc.abstraction["blurb"].length))
: 0,
"* last obj on.#:",
to!int(check["last_object_number"]),
diff --git a/src/sisudoc/meta/rgx.d b/src/sisudoc/meta/rgx.d
index eb6fc04..259ab82 100644
--- a/src/sisudoc/meta/rgx.d
+++ b/src/sisudoc/meta/rgx.d
@@ -108,8 +108,8 @@ static template spineRgxIn() {
static para_attribs = ctRegex!(`^_(?:(?:[0-9])(?:_([0-9]))?|(?:[1-9])?[*]) `);
static para_inline_link_anchor = ctRegex!(`\*[~](?P<anchor>[a-z0-9_.-]+)(?= |$)`,"i");
/+ blocked markup +/
- static block_open = ctRegex!("^((code(?:[.][a-z][0-9a-z#+_]+)?|(?:poem|group|block|quote)(?:[.][a-z][0-9a-z_]+)?|table)(?:[(][ a-zA-Z0-9;:,]*[)])?[{][ ]*$)|^`{3} (code(?:[.][a-z][0-9a-z#+_]+)?|(?:poem|group|block|quote)(?:[.][a-z][0-9a-z_]+)?|table)(?:[(][ a-zA-Z0-9;:,]*[)])?|^[{]table[(](?:h;)?(?P<columns>(?:[ ,]+[0-9]+)+)[)][}]");
- static block_poem_open = ctRegex!("^((poem(?:[(][ a-zA-Z0-9;:,]*[)])?[{][ ]*$)|`{3} poem(?:[(][ a-zA-Z0-9;:,]*[)])?)");
+ static block_open = ctRegex!("^((code(?:[.][a-z][0-9a-z#+_]+)?|(?:poem|group|block|quote)(?:[.][a-z][0-9a-z_]+)?|table)(?:[(][ a-zA-Z0-9;:,]*[)])?[{][ ]*$)|^[`']{3} (code(?:[.][a-z][0-9a-z#+_]+)?|(?:poem|group|block|quote)(?:[.][a-z][0-9a-z_]+)?|table)(?:[(][ a-zA-Z0-9;:,]*[)])?|^[{]table[(](?:h;)?(?P<columns>(?:[ ,]+[0-9]+)+)[)][}]");
+ static block_poem_open = ctRegex!("^((poem(?:[(][ a-zA-Z0-9;:,]*[)])?[{][ ]*$)|[`']{3} poem(?:[(][ a-zA-Z0-9;:,]*[)])?)");
/+ blocked markup tics +/
static block_tic_code_open = ctRegex!("^`{3} code(?:[.](?P<syntax>[a-z][0-9a-z#+_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?");
static block_tic_poem_open = ctRegex!("^`{3} poem(?:[.](?P<lang>[a-z][0-9a-z_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?");
@@ -118,6 +118,14 @@ static template spineRgxIn() {
static block_tic_quote_open = ctRegex!("^`{3} quote(?:[.](?P<lang>[a-z][0-9a-z_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?");
static block_tic_table_open = ctRegex!("^`{3} table(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?"); // ctRegex!("^`{3} table(?:\(.*?\))?");
static block_tic_close = ctRegex!("^(`{3})$","m");
+ /+ blocked markup tics +/
+ static block_quotemarks_code_open = ctRegex!(`^'{3} code(?:[.](?P<syntax>[a-z][0-9a-z#+_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?`);
+ static block_quotemarks_poem_open = ctRegex!(`^'{3} poem(?:[.](?P<lang>[a-z][0-9a-z_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?`);
+ static block_quotemarks_group_open = ctRegex!(`^'{3} group(?:[.](?P<lang>[a-z][0-9a-z_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?`);
+ static block_quotemarks_block_open = ctRegex!(`^'{3} block(?:[.](?P<lang>[a-z][0-9a-z_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?`);
+ static block_quotemarks_quote_open = ctRegex!(`^'{3} quote(?:[.](?P<lang>[a-z][0-9a-z_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?`);
+ static block_quotemarks_table_open = ctRegex!(`^'{3} table(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?`); // ctRegex!("^'{3} table(?:\(.*?\))?");
+ static block_quotemarks_close = ctRegex!(`^('{3})$`,"m");
/+ blocked markup curly +/
static block_curly_code_open = ctRegex!(`^(?:code(?:[.](?P<syntax>[a-z][0-9a-z_]+))?(?:[(](?P<attrib>[ a-zA-Z0-9;:,]*)[)])?[{][ ]*$)`);
static block_curly_code_close = ctRegex!(`^([}]code)`);