diff options
Diffstat (limited to 'src/sisudoc/meta')
| -rw-r--r-- | src/sisudoc/meta/conf_make_meta_json.d | 28 | ||||
| -rw-r--r-- | src/sisudoc/meta/conf_make_meta_structs.d | 26 | ||||
| -rw-r--r-- | src/sisudoc/meta/conf_make_meta_yaml.d | 62 | ||||
| -rw-r--r-- | src/sisudoc/meta/doc_debugs.d | 34 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc.d | 26 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc_curate.d | 24 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc_curate_authors.d | 20 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc_curate_topics.d | 20 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc_from_src.d | 40 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc_from_src_functions.d | 37 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc_object_setter.d | 96 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc_show_config.d | 56 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc_show_make.d | 28 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc_show_metadata.d | 28 | ||||
| -rw-r--r-- | src/sisudoc/meta/metadoc_show_summary.d | 30 | ||||
| -rw-r--r-- | src/sisudoc/meta/package.d | 24 | ||||
| -rw-r--r-- | src/sisudoc/meta/rgx.d | 18 | ||||
| -rw-r--r-- | src/sisudoc/meta/rgx_yaml.d (renamed from src/sisudoc/meta/rgx_yaml_tags.d) | 0 |
18 files changed, 296 insertions, 301 deletions
diff --git a/src/sisudoc/meta/conf_make_meta_json.d b/src/sisudoc/meta/conf_make_meta_json.d index 44f2c5e..4e9e5cd 100644 --- a/src/sisudoc/meta/conf_make_meta_json.d +++ b/src/sisudoc/meta/conf_make_meta_json.d @@ -54,21 +54,19 @@ module sisudoc.meta.conf_make_meta_json; @safe: static template contentJSONtoSpineStruct() { - import - std.algorithm, - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.utf, - std.conv : to; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.defaults, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.utf; + import std.conv : to; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; ConfComposite _struct_composite; auto contentJSONtoSpineStruct(C,J,M)(C _struct_composite, J _json, M _manifested, string _identifier) { mixin spineRgxIn; diff --git a/src/sisudoc/meta/conf_make_meta_structs.d b/src/sisudoc/meta/conf_make_meta_structs.d index 4738a57..9503c83 100644 --- a/src/sisudoc/meta/conf_make_meta_structs.d +++ b/src/sisudoc/meta/conf_make_meta_structs.d @@ -49,20 +49,18 @@ +/ module sisudoc.meta.conf_make_meta_structs; @safe: -import - std.exception, - std.json, - std.path, - std.regex, - std.stdio, - std.string, - std.typecons, - std.utf, - std.conv : to; -import - sisudoc.meta.defaults, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx; +import std.exception; +import std.json; +import std.path; +import std.regex; +import std.stdio; +import std.string; +import std.typecons; +import std.utf; +import std.conv : to; +import sisudoc.meta.defaults; +import sisudoc.meta.rgx_yaml; +import sisudoc.meta.rgx; mixin spineRgxIn; static auto rgx = RgxI(); mixin spineRgxYamlTags; diff --git a/src/sisudoc/meta/conf_make_meta_yaml.d b/src/sisudoc/meta/conf_make_meta_yaml.d index 98a92f9..4b56b51 100644 --- a/src/sisudoc/meta/conf_make_meta_yaml.d +++ b/src/sisudoc/meta/conf_make_meta_yaml.d @@ -54,22 +54,20 @@ module sisudoc.meta.conf_make_meta_yaml; @safe: template contentYAMLtoSpineStruct() { - import - std.algorithm, - std.array, - std.exception, - std.path, - std.regex, - std.stdio, - std.string, - std.typecons, - std.utf, - std.conv : to; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.defaults, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.path; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.utf; + import std.conv : to; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx_yaml; + import sisudoc.meta.rgx; ConfComposite _struct_composite; @system ConfComposite contentYAMLtoSpineStruct(C,Y,M,O,Cfg)( C _struct_composite, @@ -896,9 +894,8 @@ template contentYAMLtoSpineStruct() { } template configParseYAMLreturnSpineStruct() { import dyaml; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; mixin contentYAMLtoSpineStruct; @system ConfComposite configParseYAMLreturnSpineStruct(T,M,O,Cfg)( T _document_struct, @@ -928,21 +925,18 @@ template configParseYAMLreturnSpineStruct() { } } template docHeaderMakeAndMetaTupYamlExtractAndConvertToStruct() { - import - std.exception, - std.regex, - std.stdio, - // std.traits, - std.typecons, - std.utf, - std.conv : to; - import - dyaml; - import - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.rgx_yaml, - sisudoc.meta.rgx; + import std.exception; + import std.regex; + import std.stdio; + // import std.traits; + import std.typecons; + import std.utf; + import std.conv : to; + import dyaml; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.rgx_yaml; + import sisudoc.meta.rgx; mixin spineRgxIn; mixin contentJSONtoSpineStruct; static auto rgx = RgxI(); diff --git a/src/sisudoc/meta/doc_debugs.d b/src/sisudoc/meta/doc_debugs.d index 35fd3de..b28ba2e 100644 --- a/src/sisudoc/meta/doc_debugs.d +++ b/src/sisudoc/meta/doc_debugs.d @@ -52,24 +52,22 @@ +/ module sisudoc.meta.doc_debugs; template spineDebugs() { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx_files; - import - std.algorithm, - std.array, - std.container, - std.exception, - std.json, - std.stdio, - std.file, - std.path, - std.range, - std.regex, - std.string, - std.typecons, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx_files; + import std.algorithm; + import std.array; + import std.container; + import std.exception; + import std.json; + import std.stdio; + import std.file; + import std.path; + import std.range; + import std.regex; + import std.string; + import std.typecons; + import std.utf; + import std.conv : to; auto spineDebugs(S,T)( const S contents, T doc_matters, diff --git a/src/sisudoc/meta/metadoc.d b/src/sisudoc/meta/metadoc.d index 5c3694e..ffe297e 100644 --- a/src/sisudoc/meta/metadoc.d +++ b/src/sisudoc/meta/metadoc.d @@ -50,20 +50,18 @@ module sisudoc.meta.metadoc; @safe: template spineAbstraction() { - import - std.datetime, - std.digest.crc, - std.digest.sha; - import - sisudoc.meta, - sisudoc.meta.metadoc_from_src, - sisudoc.meta.conf_make_meta_structs, - sisudoc.meta.conf_make_meta_json, - sisudoc.meta.defaults, - sisudoc.io_in.paths_source, - sisudoc.io_in.read_config_files, - sisudoc.io_in.read_source_files, - sisudoc.io_out.hub; + import std.datetime; + import std.digest.crc; + import std.digest.sha; + import sisudoc.meta; + import sisudoc.meta.metadoc_from_src; + import sisudoc.meta.conf_make_meta_structs; + import sisudoc.meta.conf_make_meta_json; + import sisudoc.meta.defaults; + import sisudoc.io_in.paths_source; + import sisudoc.io_in.read_config_files; + import sisudoc.io_in.read_source_files; + import sisudoc.io_out.hub; mixin spineBiblio; mixin outputHub; enum makeMeta { make, meta } diff --git a/src/sisudoc/meta/metadoc_curate.d b/src/sisudoc/meta/metadoc_curate.d index bb7452a..da20b3e 100644 --- a/src/sisudoc/meta/metadoc_curate.d +++ b/src/sisudoc/meta/metadoc_curate.d @@ -54,19 +54,17 @@ template spineMetaDocCurate() { T doc_matters, H hvst, ) { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; static auto mkup = InlineMarkup(); import sisudoc.io_out.paths_output; diff --git a/src/sisudoc/meta/metadoc_curate_authors.d b/src/sisudoc/meta/metadoc_curate_authors.d index c86d3e1..d8b5261 100644 --- a/src/sisudoc/meta/metadoc_curate_authors.d +++ b/src/sisudoc/meta/metadoc_curate_authors.d @@ -49,17 +49,15 @@ +/ module sisudoc.meta.metadoc_curate_authors; @safe: - import - std.algorithm, - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.conv : to; - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; mixin spineCurateMetadata; mixin InternalMarkup; template spineMetaDocCuratesAuthors() { diff --git a/src/sisudoc/meta/metadoc_curate_topics.d b/src/sisudoc/meta/metadoc_curate_topics.d index fca3ff2..3045dcb 100644 --- a/src/sisudoc/meta/metadoc_curate_topics.d +++ b/src/sisudoc/meta/metadoc_curate_topics.d @@ -49,17 +49,15 @@ +/ module sisudoc.meta.metadoc_curate_topics; @safe: - import - std.algorithm, - std.array, - std.exception, - std.regex, - std.stdio, - std.string, - std.conv : to; - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; + import std.algorithm; + import std.array; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; mixin spineCurateMetadata; mixin InternalMarkup; template spineMetaDocCuratesTopics() { diff --git a/src/sisudoc/meta/metadoc_from_src.d b/src/sisudoc/meta/metadoc_from_src.d index 4aa49dc..4240a3f 100644 --- a/src/sisudoc/meta/metadoc_from_src.d +++ b/src/sisudoc/meta/metadoc_from_src.d @@ -54,19 +54,17 @@ module sisudoc.meta.metadoc_from_src; @safe: template docAbstraction() { // ↓ abstraction imports - import - std.algorithm, - std.container, - std.digest.sha, - std.file, - std.json, - std.path; - import - sisudoc.meta, - sisudoc.meta.defaults, - sisudoc.meta.rgx, - sisudoc.meta.metadoc_object_setter, - sisudoc.meta.rgx; + import std.algorithm; + import std.container; + import std.digest.sha; + import std.file; + import std.json; + import std.path; + import sisudoc.meta; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import sisudoc.meta.metadoc_object_setter; + import sisudoc.meta.rgx; public import sisudoc.meta.metadoc_from_src_functions; mixin docAbstractionFunctions; @system auto docAbstraction(CMM,Opt,Mf) ( @@ -214,8 +212,8 @@ template docAbstraction() { } if (conf_make_meta.make.substitute) { foreach(substitution_pair; conf_make_meta.make.substitute) { - writeln("regex to match: ", substitution_pair[Substitute.match]); - writeln("substitution to make: ", substitution_pair[Substitute.markup]); + writeln("regex to match: ", substitution_pair[Substitute.match]); + writeln("substitution to make: ", substitution_pair[Substitute.markup]); } } if (conf_make_meta.make.bold) { @@ -772,7 +770,7 @@ template docAbstraction() { comp_obj_.has.inline_links = substantive_obj_misc_struct.has_links; comp_obj_.has.image_without_dimensions = substantive_obj_misc_struct.has_images_without_dimensions; the_document_body_section ~= comp_obj_; - 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); { ST_txt_by_line_common_reset _get = txt_by_line_common_reset_(line_occur, an_object, pith); { @@ -941,7 +939,7 @@ template docAbstraction() { } { // document segnames ST_segnames get_segnames; - get_segnames = the_document_body_section.after_doc_determine_segnames(the_document_endnotes_section, the_document_glossary_section, the_document_bibliography_section, the_document_bookindex_section, the_document_blurb_section, segnames, html_segnames_ptr_cntr, html_segnames_ptr); // + get_segnames = the_document_body_section.after_doc_determine_segnames(the_document_endnotes_section, the_document_glossary_section, the_document_bibliography_section, the_document_bookindex_section, the_document_blurb_section, segnames, html_segnames_ptr_cntr, html_segnames_ptr); segnames = get_segnames.segnames; html_segnames_ptr_cntr = get_segnames.html_segnames_ptr_cntr; html_segnames_ptr = get_segnames.html_segnames_ptr; @@ -1378,36 +1376,42 @@ template docAbstraction() { "scroll": ["head", "toc", "body",], "seg": ["head", "toc", "body",], "sql": ["head", "body",], - "latex": ["head", "toc", "body",] + "latex": ["head", "toc", "body",], + "text": ["head", "toc", "body",], ]; if (document_the["endnotes"].length > 1) { document_section_keys_sequenced["scroll"] ~= "endnotes"; document_section_keys_sequenced["seg"] ~= "endnotes"; document_section_keys_sequenced["latex"] ~= "endnotes"; + document_section_keys_sequenced["text"] ~= "endnotes"; } if (document_the["glossary"].length > 1) { document_section_keys_sequenced["scroll"] ~= "glossary"; document_section_keys_sequenced["seg"] ~= "glossary"; document_section_keys_sequenced["sql"] ~= "glossary"; document_section_keys_sequenced["latex"] ~= "glossary"; + document_section_keys_sequenced["text"] ~= "glossary"; } if (document_the["bibliography"].length > 1) { document_section_keys_sequenced["scroll"] ~= "bibliography"; document_section_keys_sequenced["seg"] ~= "bibliography"; document_section_keys_sequenced["sql"] ~= "bibliography"; document_section_keys_sequenced["latex"] ~= "bibliography"; + document_section_keys_sequenced["text"] ~= "bibliography"; } if (document_the["bookindex"].length > 1) { document_section_keys_sequenced["scroll"] ~= "bookindex"; document_section_keys_sequenced["seg"] ~= "bookindex"; document_section_keys_sequenced["sql"] ~= "bookindex"; document_section_keys_sequenced["latex"] ~= "bookindex"; + document_section_keys_sequenced["text"] ~= "bookindex"; } if (document_the["blurb"].length > 1) { document_section_keys_sequenced["scroll"] ~= "blurb"; document_section_keys_sequenced["seg"] ~= "blurb"; document_section_keys_sequenced["sql"] ~= "blurb"; document_section_keys_sequenced["latex"] ~= "blurb"; + document_section_keys_sequenced["text"] ~= "blurb"; } if ((opt_action.html) || (opt_action.html_scroll) diff --git a/src/sisudoc/meta/metadoc_from_src_functions.d b/src/sisudoc/meta/metadoc_from_src_functions.d index 3ae10d1..63143e9 100644 --- a/src/sisudoc/meta/metadoc_from_src_functions.d +++ b/src/sisudoc/meta/metadoc_from_src_functions.d @@ -2557,10 +2557,8 @@ template docAbstractionFunctions() { CMM conf_make_meta, Flag!"_new_doc" _new_doc ) { - obj_txt["munge"] = obj_[obj_key_].dup; - obj_txt["munge"] = (obj_["is"].match(ctRegex!(`verse|code`))) - ? obj_txt["munge"] - : obj_txt["munge"].strip; + obj_txt["munge"] = obj_[obj_key_].dup; + obj_txt["munge"] = (obj_["is"].match(ctRegex!(`verse|code`))) ? obj_txt["munge"] : obj_txt["munge"].strip; if (_new_doc) { anchor_tag = ""; } @@ -2579,8 +2577,8 @@ template docAbstractionFunctions() { || (obj_["is"] == "group") || (obj_["is"] == "block") || (obj_["is"] == "verse")) { - obj_txt["munge"] = (obj_txt["munge"]).inline_markup_faces; - obj_txt["munge"] = (obj_txt["munge"]).links_and_images; + obj_txt["munge"] = (obj_txt["munge"]).inline_markup_faces; + obj_txt["munge"] = (obj_txt["munge"]).links_and_images; } switch (obj_["is"]) { case "heading": @@ -3299,8 +3297,8 @@ template docAbstractionFunctions() { // ↓ - endnotes struct NotesSection { string[string] object_notes; - int previous_count; - int mkn; + int previous_count; + int mkn; static auto rgx = RgxI(); private auto gather_notes_for_endnote_section( ObjGenericComposite[] contents_am, @@ -4235,11 +4233,31 @@ template docAbstractionFunctions() { int html_segnames_ptr_cntr, int html_segnames_ptr, ) { + string[string][string] notes_; + if (the_document_body_section.length > 1) { + string _notes; + foreach (ref obj; the_document_body_section) { + if (obj.has.inline_notes_reg) { + if ((obj.text).matchFirst(rgx.inline_notes_al_gen)) { + foreach (m; (obj.text).matchAll(rgx.inline_notes_al_regular_number_note)) { + _notes ~= "\n\n" ~ m["num"] ~ ". " ~ m["note"]; + notes_[(m["num"])]["ocn"] = obj.metainfo.ocn.to!string; + } + } + } + } + } if (the_document_endnotes_section.length > 1) { segnames["html"] ~= "endnotes"; segnames["epub"] ~= "endnotes"; html_segnames_ptr = html_segnames_ptr_cntr; foreach (ref obj; the_document_endnotes_section) { + auto matches = (obj.text).matchAll(rgx.endnote_section_note); + foreach (m; matches) { + obj.metainfo.parent_ocn = notes_[(m["notenumber"])]["ocn"].to!int; + } + } + foreach (ref obj; the_document_endnotes_section) { if (obj.metainfo.is_a == "heading") { obj.metainfo.parent_ocn = obj.metainfo.markedup_ancestors[obj.metainfo.parent_lev_markup]; } @@ -5406,6 +5424,9 @@ template docSectKeysSeq() { string[] latex() { return document_section_keys_sequenced["latex"]; } + string[] text() { + return document_section_keys_sequenced["text"]; + } } return doc_sect_keys_seq(); } diff --git a/src/sisudoc/meta/metadoc_object_setter.d b/src/sisudoc/meta/metadoc_object_setter.d index e0e896e..abcb799 100644 --- a/src/sisudoc/meta/metadoc_object_setter.d +++ b/src/sisudoc/meta/metadoc_object_setter.d @@ -57,68 +57,68 @@ module sisudoc.meta.metadoc_object_setter; template ObjectSetter() { /+ structs +/ struct DocObj_TxtAttrib_ { - int indent_base = 0; - int indent_hang = 0; - bool bullet = false; - string language = ""; + int indent_base = 0; + int indent_hang = 0; + bool bullet = false; + string language = ""; } struct DocObj_Has_ { - bool inline_links = false; - bool inline_notes_reg = false; - bool inline_notes_star = false; - bool images = false; - bool image_without_dimensions = false; + bool inline_links = false; + bool inline_notes_reg = false; + bool inline_notes_star = false; + bool images = false; + bool image_without_dimensions = false; } struct DocObj_Table_ { - int number_of_columns = 0; - double[] column_widths = []; - string[] column_aligns = []; - bool heading = false; - bool walls = false; + int number_of_columns = 0; + double[] column_widths = []; + string[] column_aligns = []; + bool heading = false; + bool walls = false; } struct DocObj_CodeBlock_ { - string syntax = ""; - bool linenumbers = false; + string syntax = ""; + bool linenumbers = false; } struct DocObj_Stow_ { - string[] link = []; + string[] link = []; } struct DocObj_Pointer_ { - int doc_object = 0; - int html_segnames = 0; - int heading = 0; + int doc_object = 0; + int html_segnames = 0; + int heading = 0; } struct DocObj_Tags_ { - string[] heading_ancestors_text = [ "", "", "", "", "", "", "", "", ]; - string anchor_tag_html = ""; - string in_segment_html = ""; - string segment_anchor_tag_epub = ""; - string html_segment_anchor_tag_is = ""; - string epub_segment_anchor_tag_is = ""; - string heading_lev_anchor_tag = ""; - string segname_prev = ""; - string segname_next = ""; - string[] lev4_subtoc = []; - string[] anchor_tags = []; + string[] heading_ancestors_text = [ "", "", "", "", "", "", "", "", ]; + string anchor_tag_html = ""; + string in_segment_html = ""; + string segment_anchor_tag_epub = ""; + string html_segment_anchor_tag_is = ""; + string epub_segment_anchor_tag_is = ""; + string heading_lev_anchor_tag = ""; + string segname_prev = ""; + string segname_next = ""; + string[] lev4_subtoc = []; + string[] anchor_tags = []; } struct DocObj_MetaInfo_ { - string is_of_part = ""; // frontmatter, body, backmatter - string is_of_section = ""; // toc, body, glossary, biography, book index, blurb - string is_of_type = ""; // para, block ? - string is_a = ""; // heading, para, table, code block, group, verse/poem ... - alias of_part = is_of_part; - alias of_section = is_of_section; - alias is_of = is_of_type; - string attrib = ""; - string lang = ""; // blocks: group, block, quote; not codeblock; - string syntax = ""; // codeblock only + string is_of_part = ""; // frontmatter, body, backmatter + string is_of_section = ""; // toc, body, glossary, biography, book index, blurb + string is_of_type = ""; // para, block ? + string is_a = ""; // heading, para, table, code block, group, verse/poem ... + alias of_part = is_of_part; + alias of_section = is_of_section; + alias is_of = is_of_type; + string attrib = ""; + string lang = ""; // blocks: group, block, quote; not codeblock; + string syntax = ""; // codeblock only /+ o_n +/ - int o_n_substantive = 0; - int o_n_non_substantive = 0; - int o_n_glossary = 0; - int o_n_bibliography = 0; - int o_n_book_index = 0; - int o_n_blurb = 0; + int o_n_substantive = 0; + int o_n_non_substantive = 0; + int o_n_glossary = 0; + int o_n_bibliography = 0; + int o_n_book_index = 0; + int o_n_blurb = 0; string object_number_substantive() const @property { return (o_n_substantive == 0) ? "" : o_n_substantive.to!string; } @@ -176,7 +176,7 @@ template ObjectSetter() { ubyte[32] sha256; } struct ObjGenericComposite { - string text = ""; + string text = ""; DocObj_MetaInfo_ metainfo; DocObj_TxtAttrib_ attrib; DocObj_Tags_ tags; diff --git a/src/sisudoc/meta/metadoc_show_config.d b/src/sisudoc/meta/metadoc_show_config.d index 7434506..5bbeea6 100644 --- a/src/sisudoc/meta/metadoc_show_config.d +++ b/src/sisudoc/meta/metadoc_show_config.d @@ -54,21 +54,19 @@ template spineShowSiteConfig() { O opt_action, T config, ) { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.digest.crc; + import std.digest.sha; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); auto char_repeat_number = 66; @@ -140,21 +138,19 @@ template spineShowSiteConfig() { } template spineShowConfig() { void spineShowConfig(T)(T doc_matters) { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.digest.crc; + import std.digest.sha; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); auto min_repeat_number = 66; diff --git a/src/sisudoc/meta/metadoc_show_make.d b/src/sisudoc/meta/metadoc_show_make.d index a5e5608..57721cf 100644 --- a/src/sisudoc/meta/metadoc_show_make.d +++ b/src/sisudoc/meta/metadoc_show_make.d @@ -51,21 +51,19 @@ module sisudoc.meta.metadoc_show_make; @safe: template spineShowMake() { void spineShowMake(T)(T doc_matters) { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.digest.crc; + import std.digest.sha; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); auto min_repeat_number = 66; diff --git a/src/sisudoc/meta/metadoc_show_metadata.d b/src/sisudoc/meta/metadoc_show_metadata.d index 4a7a177..331ab7f 100644 --- a/src/sisudoc/meta/metadoc_show_metadata.d +++ b/src/sisudoc/meta/metadoc_show_metadata.d @@ -51,21 +51,19 @@ module sisudoc.meta.metadoc_show_metadata; @safe: template spineShowMetaData() { void spineShowMetaData(T)(T doc_matters) { - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.digest.crc; + import std.digest.sha; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); auto min_repeat_number = 66; diff --git a/src/sisudoc/meta/metadoc_show_summary.d b/src/sisudoc/meta/metadoc_show_summary.d index 2ceb337..ceb4fd5 100644 --- a/src/sisudoc/meta/metadoc_show_summary.d +++ b/src/sisudoc/meta/metadoc_show_summary.d @@ -52,21 +52,19 @@ module sisudoc.meta.metadoc_show_summary; template spineMetaDocSummary() { void spineMetaDocSummary(D)(D doc) { auto doc_matters = doc.matters; - import - sisudoc.meta.defaults, - sisudoc.meta.rgx; - import - std.array, - std.digest.crc, - std.digest.sha, - std.exception, - std.regex, - std.stdio, - std.string, - std.typecons, - std.uni, - std.utf, - std.conv : to; + import sisudoc.meta.defaults; + import sisudoc.meta.rgx; + import std.array; + import std.digest.crc; + import std.digest.sha; + import std.exception; + import std.regex; + import std.stdio; + import std.string; + import std.typecons; + import std.uni; + import std.utf; + import std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); auto min_repeat_number = 66; @@ -75,7 +73,7 @@ template spineMetaDocSummary() { char_repeat_number = (char_repeat_number > min_repeat_number) ? char_repeat_number : min_repeat_number; - if (doc_matters.opt.action.vox_gt1 + if (doc_matters.opt.action.vox_gt_2 || doc_matters.opt.action.show_summary) { string[string] check = [ "last_object_number" : "NA [debug \"checkdoc\" not run]", diff --git a/src/sisudoc/meta/package.d b/src/sisudoc/meta/package.d index d24afbb..911952b 100644 --- a/src/sisudoc/meta/package.d +++ b/src/sisudoc/meta/package.d @@ -48,17 +48,15 @@ +/ module sisudoc.meta; -public import - sisudoc.meta.defaults; +public import sisudoc.meta.defaults; /+ std +/ -public import - std.array, - std.exception, - std.range, - std.regex, - std.stdio, - std.string, - std.typecons, - // std.uni, - std.utf, - std.conv : to; +public import std.array; +public import std.exception; +public import std.range; +public import std.regex; +public import std.stdio; +public import std.string; +public import std.typecons; +// public import std.uni; +public import std.utf; +public import std.conv : to; diff --git a/src/sisudoc/meta/rgx.d b/src/sisudoc/meta/rgx.d index 259ab82..86ca40c 100644 --- a/src/sisudoc/meta/rgx.d +++ b/src/sisudoc/meta/rgx.d @@ -148,16 +148,16 @@ static template spineRgxIn() { static table_col_separator_nl = ctRegex!(`[┊]$`, "mg"); /+ inline markup footnotes endnotes +/ static inline_notes_curly_gen = ctRegex!(`~\{.+?\}~`, "m"); - static inline_notes_curly = ctRegex!(`~\{\s*(.+?)\}~`, "mg"); - static inline_notes_curly_sp_asterisk = ctRegex!(`~\{[*]+\s+(.+?)\}~`, "m"); - static inline_notes_curly_sp_plus = ctRegex!(`~\{[+]+\s+(.+?)\}~`, "m"); + static inline_notes_curly = ctRegex!(`~\{\s*(.+?)\s*\}~`, "mg"); + static inline_notes_curly_sp_asterisk = ctRegex!(`~\{[*]+\s+(.+?)\s*\}~`, "m"); + static inline_notes_curly_sp_plus = ctRegex!(`~\{[+]+\s+(.+?)\s*\}~`, "m"); static note_ref = ctRegex!(`^\S+?noteref_(?P<ref>[0-9]+)`, "mg"); // {^{73.}^}#noteref_73 static smid_inline_url_generic = ctRegex!(`(?:^|[}(\[ ])(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_#]`, "mg"); static smid_inline_url = ctRegex!(`((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)[a-zA-Z0-9_]\S*)`, "mg"); static smid_inline_link_naked_url = ctRegex!(`(?P<pre>^|[ (\[])(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤)\S+?)(?=[.,;:?!'"]?([ )\]]|$))`, "mg"); static smid_inline_link_markup_regular = ctRegex!(`(?P<pre>^|[ (\[])\{\s*(?P<content>.+?)\s*\}(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[;:!,?.]?([ )\]]|$))`, "mg"); - static smid_inline_link_endnote_url_helper_punctuated = ctRegex!(`\{~\^\s+(?P<content>.+?)\}(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[.,;:?!]?([ ]|$))`, "mg"); - static smid_inline_link_endnote_url_helper = ctRegex!(`\{~\^\s+(?P<content>.+?)\}(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+)`, "mg"); + static smid_inline_link_endnote_url_helper_punctuated = ctRegex!(`\{~\^\s+(?P<content>.+?)\s*\}(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[.,;:?!]?([ ]|$))`, "mg"); + static smid_inline_link_endnote_url_helper = ctRegex!(`\{~\^\s+(?P<content>.+?)\s*\}(?P<link>(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+)`, "mg"); static image = ctRegex!(`([a-zA-Z0-9._-]+?\.(?:png|gif|jpg))`, "mg"); static smid_image = ctRegex!(`(?P<pre>(?:^|[ ])[{┥](?:~\^\s+|\s*))(?P<image>[a-zA-Z0-9._-]+?\.(?:png|gif|jpg))(?P<post>(?:.*?)\s*[}┝](?:image|┤.*?├|(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[;:!,?.]?([ )\]]|$)))`, "mg"); static smid_image_generic = ctRegex!(`(?:^|[ ])[{┥](?:~\^\s+|\s*)\S+\.(?:png|gif|jpg).*?[}┝](?:image|┤.*?├|(?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|¤|#)\S+?)(?=[;:!,?.]?([ )\]]|$))`, "mg"); @@ -221,9 +221,9 @@ static template spineRgxIn() { static br_empty_line = ctRegex!(`\n[ ]*\n`, "mg"); static br_linebreaks_newlines = ctRegex!(`[\n┘┙]`, "mg"); static br_linebreaks = ctRegex!(`[┘┙]`, "mg"); - static br_line = ctRegex!(`┘`, "mg"); - static br_line_inline = ctRegex!(`┙`, "mg"); - static br_line_spaced = ctRegex!(`┚`, "mg"); + static br_line = ctRegex!(`\s*┘\s*`, "mg"); + static br_line_inline = ctRegex!(`\s*┙\s*`, "mg"); + static br_line_spaced = ctRegex!(`\s*┚\s*`, "mg"); /+ inline markup footnotes endnotes +/ static inline_notes_al = ctRegex!(`【(?:[*+]\s+|\s*)(.+?)】`, "mg"); static inline_notes_al_special = ctRegex!(`【(?:[*+]\s+)(.+?)】`, "mg"); // TODO remove match when special footnotes are implemented @@ -236,6 +236,7 @@ static template spineRgxIn() { static inline_al_delimiter_open_symbol_star = ctRegex!(`【[*]\s`, "m"); static inline_al_delimiter_open_symbol_plus = ctRegex!(`【[+]\s`, "m"); static inline_text_and_note_al_ = ctRegex!(`(.+?(?:【[*+]*\s+.+?】|.+))`, "mg"); + static endnote_section_note = ctRegex!(`┥\s*⑆\^┨(?P<notenumber>\d+)\.┣\^┝┤(?P<link>¤?.+?)├.+`, "mg"); /+ inline markup links +/ static inline_image = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>\d+)h(?P<height>\d+))\s*(?P<post>.*?┝┤.*?├)`, "mg"); static inline_image_without_dimensions = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>[a-zA-Z0-9._-]+?\.(?:jpg|gif|png)),w(?P<width>0)h(?P<height>0))\s*(?P<post>.*?┝┤.*?├)`, "mg"); @@ -250,6 +251,7 @@ static template spineRgxIn() { static inline_link_seg_and_hash = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>(?P<seg>[^/#├]*)#(?P<hash>.+?))├`, "mg"); static inline_link_clean = ctRegex!(`┤(?:.+?)├|[┥┝]`, "mg"); static inline_link_toc_to_backmatter = ctRegex!(`┤#(?P<link>endnotes|bibliography|bookindex|glossary|blurb)├`, "mg"); + static find_bookindex_ocn_link_and_comma = ctRegex!(`[, ]*┥.+?┝┤#?\S+?├`, "mg"); static url = ctRegex!(`https?://`, "mg"); static uri = ctRegex!(`(?:https?|git)://`, "mg"); static uri_identify_components = ctRegex!(`(?P<type>(?:https?|git)://)(?P<path>\S+?/)(?P<file>[^/]+)$`, "mg"); diff --git a/src/sisudoc/meta/rgx_yaml_tags.d b/src/sisudoc/meta/rgx_yaml.d index ee57469..ee57469 100644 --- a/src/sisudoc/meta/rgx_yaml_tags.d +++ b/src/sisudoc/meta/rgx_yaml.d |
