diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/doc_reform/doc_reform.d | 59 | ||||
| -rw-r--r-- | src/doc_reform/meta/conf_make_meta_structs.d | 2 | ||||
| -rw-r--r-- | src/doc_reform/meta/conf_make_meta_yaml.d | 46 | ||||
| -rw-r--r-- | src/doc_reform/meta/metadoc.d | 2 | ||||
| -rw-r--r-- | src/doc_reform/meta/metadoc_show_config.d | 106 | ||||
| -rw-r--r-- | src/doc_reform/meta/metadoc_show_make.d | 74 | ||||
| -rw-r--r-- | src/doc_reform/meta/metadoc_show_metadata.d | 122 | ||||
| -rw-r--r-- | src/doc_reform/meta/metadoc_show_summary.d | 113 | 
8 files changed, 501 insertions, 23 deletions
| diff --git a/src/doc_reform/doc_reform.d b/src/doc_reform/doc_reform.d index 9c41895..2e388d1 100755 --- a/src/doc_reform/doc_reform.d +++ b/src/doc_reform/doc_reform.d @@ -141,6 +141,9 @@ void main(string[] args) {      "pod"                : false,      "serial"             : false,      "show-summary"       : false, +    "show-metadata"      : false, +    "show-make"          : false, +    "show-config"        : false,      "source"             : false,      "sqlite-discrete"    : false,      "sqlite-db-create"   : false, @@ -201,6 +204,9 @@ void main(string[] args) {      "pod",                "--pod doc reform pod source content bundled",                              &opts["pod"],      "serial",             "--serial serial processing",                                               &opts["serial"],      "show-summary",       "--show-summary",                                                           &opts["show-summary"], +    "show-make",          "--show-make",                                                              &opts["show-make"], +    "show-metadata",      "--show-metadata",                                                          &opts["show-metadata"], +    "show-config",        "--show-config",                                                            &opts["show-config"],      "source",             "--source markup source text content",                                      &opts["source"],      "sqlite-discrete",    "--sqlite process discrete sqlite output",                                  &opts["sqlite-discrete"],      "sqlite-db-create",   "--sqlite-db-create create db, create tables",                              &opts["sqlite-db-create"], @@ -341,6 +347,15 @@ void main(string[] args) {      bool show_summary() {        return opts["show-summary"];      } +    bool show_make() { +      return opts["show-make"]; +    } +    bool show_metadata() { +      return opts["show-metadata"]; +    } +    bool show_config() { +      return opts["show-config"]; +    }      bool source() {        return opts["source"];      } @@ -694,9 +709,27 @@ void main(string[] args) {            if (doc_matters.opt.action.verbose              || doc_matters.opt.action.show_summary            ) { -            import doc_reform.meta.metadoc_summary; +            import doc_reform.meta.metadoc_show_summary;              DocReformMetaDocSummary!()(doc_abstraction, doc_matters);            } +          /+ ↓ debugs +/ +          if (doc_matters.opt.action.show_metadata +          ) { +            import doc_reform.meta.metadoc_show_metadata; +            DocReformShowMetaData!()(doc_matters); +          } +          /+ ↓ debugs +/ +          if (doc_matters.opt.action.show_make +          ) { +            import doc_reform.meta.metadoc_show_make; +            DocReformShowMake!()(doc_matters); +          } +          /+ ↓ debugs +/ +          if (doc_matters.opt.action.show_config +          ) { +            import doc_reform.meta.metadoc_show_config; +            DocReformShowConfig!()(doc_matters); +          }            if (doc_matters.opt.action.harvest) {              hvst.harvests ~= DocReformMetaDocHarvest!()(doc_matters, hvst);            } @@ -721,7 +754,7 @@ void main(string[] args) {            scope(exit) {              if (!(_opt_action.quiet)) {                writefln( -                "processed file: %s (%s)", +                "processed file: %s [%s]",                  manifest.src.filename,                  manifest.src.language                ); @@ -780,9 +813,27 @@ void main(string[] args) {            if (doc_matters.opt.action.verbose              || doc_matters.opt.action.show_summary            ) { -            import doc_reform.meta.metadoc_summary; +            import doc_reform.meta.metadoc_show_summary;              DocReformMetaDocSummary!()(doc_abstraction, doc_matters);            } +          /+ ↓ debugs +/ +          if (doc_matters.opt.action.show_metadata +          ) { +            import doc_reform.meta.metadoc_show_metadata; +            DocReformShowMetaData!()(doc_matters); +          } +          /+ ↓ debugs +/ +          if (doc_matters.opt.action.show_make +          ) { +            import doc_reform.meta.metadoc_show_make; +            DocReformShowMake!()(doc_matters); +          } +          /+ ↓ debugs +/ +          if (doc_matters.opt.action.show_config +          ) { +            import doc_reform.meta.metadoc_show_config; +            DocReformShowConfig!()(doc_matters); +          }            if (doc_matters.opt.action.harvest) {              hvst.harvests ~= DocReformMetaDocHarvest!()(doc_matters, hvst);            } @@ -807,7 +858,7 @@ void main(string[] args) {            scope(exit) {              if (!(_opt_action.quiet)) {                writefln( -                "processed file: %s (%s)", +                "processed file: %s [%s]",                  manifest.src.filename,                  manifest.src.language                ); diff --git a/src/doc_reform/meta/conf_make_meta_structs.d b/src/doc_reform/meta/conf_make_meta_structs.d index 4dba388..f56141f 100644 --- a/src/doc_reform/meta/conf_make_meta_structs.d +++ b/src/doc_reform/meta/conf_make_meta_structs.d @@ -2,6 +2,7 @@ module doc_reform.meta.conf_make_meta_structs;  import    std.exception,    std.json, +  std.path,    std.regex,    std.stdio,    std.string, @@ -151,6 +152,7 @@ struct ConfCompositeSiteLocal {    string webserv_cgi_port;    string webserv_cgi_user;    string webserv_cgi_file_links; +  string output_path;    string processing_path;    string processing_dir;    string processing_concord_max; diff --git a/src/doc_reform/meta/conf_make_meta_yaml.d b/src/doc_reform/meta/conf_make_meta_yaml.d index bb072a9..f36a7cf 100644 --- a/src/doc_reform/meta/conf_make_meta_yaml.d +++ b/src/doc_reform/meta/conf_make_meta_yaml.d @@ -8,6 +8,7 @@ static template contentYAMLtoDocReformStruct() {      std.algorithm,      std.array,      std.exception, +    std.path,      std.regex,      std.stdio,      std.string, @@ -236,24 +237,33 @@ static template contentYAMLtoDocReformStruct() {          }        }      } +    if (!(_struct_composite.conf.output_path)) { +      _struct_composite.conf.output_path = ((_manifest.output.path).asNormalizedPath).array; +    } +    if ("output" in _yaml +      && _yaml["output"].type.sequence +    ) { +      if (_yaml["output"].type.mapping +        && _yaml["output"].tag.match(rgx.yaml_tag_is_map) +      ) { +        if ("path" in _yaml["output"] +          && _yaml["output"]["path"].type.string +          && _yaml["output"]["path"].tag.match(rgx.yaml_tag_is_str) +        ) { +          if (_manifest.output.path == _manifest.env.pwd +            && _yaml["output"]["path"].get!string.length > 0 +          ) { +            _struct_composite.conf.output_path = (((_yaml["output"]["path"].get!string).expandTilde).asNormalizedPath).array; +          } +        } +      } +    }      if ("processing" in _yaml        && _yaml["processing"].type.sequence      ) {        if (_yaml["processing"].type.mapping          && _yaml["processing"].tag.match(rgx.yaml_tag_is_map)        ) { -        if ("path" in _yaml["processing"] -          && _yaml["processing"]["path"].type.string -          && _yaml["processing"]["path"].tag.match(rgx.yaml_tag_is_str) -        ) { -          _struct_composite.conf.processing_path = _yaml["processing"]["path"].get!string; -        } -        if ("dir" in _yaml["processing"] -          && _yaml["processing"]["dir"].type.string -          && _yaml["processing"]["dir"].tag.match(rgx.yaml_tag_is_str) -        ) { -          _struct_composite.conf.processing_dir = _yaml["processing"]["dir"].get!string; -        }          if ("concord_max" in _yaml["processing"]            && _yaml["processing"]["concord_max"].type.string            && _yaml["processing"]["concord_max"].tag.match(rgx.yaml_tag_is_str) @@ -268,18 +278,18 @@ static template contentYAMLtoDocReformStruct() {        if (_yaml["flag"].type.mapping          && _yaml["flag"].tag.match(rgx.yaml_tag_is_map)        ) { -        if ("act1" in _yaml["flag"] -          && _yaml["flag"]["act1"].type.string -          && _yaml["flag"]["act1"].tag.match(rgx.yaml_tag_is_str) -        ) { -          _struct_composite.conf.flag_act1 = _yaml["flag"]["act1"].get!string; -        }          if ("act0" in _yaml["flag"]            && _yaml["flag"]["act0"].type.string            && _yaml["flag"]["act0"].tag.match(rgx.yaml_tag_is_str)          ) {            _struct_composite.conf.flag_act0 = _yaml["flag"]["act0"].get!string;          } +        if ("act1" in _yaml["flag"] +          && _yaml["flag"]["act1"].type.string +          && _yaml["flag"]["act1"].tag.match(rgx.yaml_tag_is_str) +        ) { +          _struct_composite.conf.flag_act1 = _yaml["flag"]["act1"].get!string; +        }          if ("act2" in _yaml["flag"]            && _yaml["flag"]["act2"].type.string            && _yaml["flag"]["act2"].tag.match(rgx.yaml_tag_is_str) diff --git a/src/doc_reform/meta/metadoc.d b/src/doc_reform/meta/metadoc.d index 9adc0c2..a4ff476 100644 --- a/src/doc_reform/meta/metadoc.d +++ b/src/doc_reform/meta/metadoc.d @@ -226,7 +226,7 @@ template DocReformAbstraction() {          return SQLite_();        }        auto output_path() { -        return _manifest.output.path; +        return _make_and_meta_struct.conf.output_path;        }        auto srcs() {          struct SRC_ { diff --git a/src/doc_reform/meta/metadoc_show_config.d b/src/doc_reform/meta/metadoc_show_config.d new file mode 100644 index 0000000..25300aa --- /dev/null +++ b/src/doc_reform/meta/metadoc_show_config.d @@ -0,0 +1,106 @@ +module doc_reform.meta.metadoc_show_config; +template DocReformShowConfig() { +  void DocReformShowConfig(T)( +    T  doc_matters, +  ) { +    import +      doc_reform.meta.defaults, +      doc_reform.meta.rgx; +    import +      std.array, +      std.exception, +      std.regex, +      std.stdio, +      std.string, +      std.traits, +      std.typecons, +      std.uni, +      std.utf, +      std.conv : to; +    mixin InternalMarkup; +    auto markup = InlineMarkup(); +    auto min_repeat_number = 66; +    auto char_repeat_number = (doc_matters.conf_make_meta.meta.title_full.length +      + doc_matters.conf_make_meta.meta.creator_author.length + 4); +    char_repeat_number = (char_repeat_number > min_repeat_number) +    ? char_repeat_number +    : min_repeat_number; +    if (doc_matters.opt.action.show_config +      && doc_matters.opt.action.debug_do +    ) { +      writeln(doc_matters.conf_make_meta.conf); +    } +    if (doc_matters.opt.action.show_config) { +      writefln( +        "%s\n\"%s\", %s\n%s\n%s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n", +        markup.repeat_character_by_number_provided("-", char_repeat_number), +        doc_matters.conf_make_meta.meta.title_full, +        doc_matters.conf_make_meta.meta.creator_author, +        doc_matters.src.filename, +        markup.repeat_character_by_number_provided("-", char_repeat_number), +        "- webserv url domain:", +        doc_matters.conf_make_meta.conf.webserv_url_domain, +        "- webserv doc root:", +        doc_matters.conf_make_meta.conf.webserv_url_doc_root, +        "- webserv doc path:", +        doc_matters.conf_make_meta.conf.webserv_url_doc_path, +        "- webserv images (location):", +        doc_matters.conf_make_meta.conf.webserv_images, +        "- webserv cgi:", +        doc_matters.conf_make_meta.conf.webserv_cgi, +        "- webserv cgi host:", +        doc_matters.conf_make_meta.conf.webserv_cgi_host, +        "- webserv cgi host path:", +        doc_matters.conf_make_meta.conf.webserv_cgi_host_path, +        "- webserv cgi port:", +        doc_matters.conf_make_meta.conf.webserv_cgi_port, +        "- webserv cgi user:", +        doc_matters.conf_make_meta.conf.webserv_cgi_user, +        "- webserv cgi file links:", +        doc_matters.conf_make_meta.conf.webserv_cgi_file_links, +        "- output path:", +        doc_matters.conf_make_meta.conf.output_path, +        "- processing concordance max:", +        doc_matters.conf_make_meta.conf.processing_concord_max, +        "- flag act0:", +        doc_matters.conf_make_meta.conf.flag_act0, +        "- flag act1:", +        doc_matters.conf_make_meta.conf.flag_act1, +        "- flag act2:", +        doc_matters.conf_make_meta.conf.flag_act2, +        "- flag act3:", +        doc_matters.conf_make_meta.conf.flag_act3, +        "- flag act4:", +        doc_matters.conf_make_meta.conf.flag_act4, +        "- flag act5:", +        doc_matters.conf_make_meta.conf.flag_act5, +        "- flag act6:", +        doc_matters.conf_make_meta.conf.flag_act6, +        "- flag act7:", +        doc_matters.conf_make_meta.conf.flag_act7, +        "- flag act8:", +        doc_matters.conf_make_meta.conf.flag_act8, +        "- flag act9:", +        doc_matters.conf_make_meta.conf.flag_act9, +        "- default papersize:", +        doc_matters.conf_make_meta.conf.default_papersize, +        "- default text wrap:", +        doc_matters.conf_make_meta.conf.default_text_wrap, +        "- default emphasis markup symbol:", +        doc_matters.conf_make_meta.conf.default_emphasis, +        "- default language:", +        doc_matters.conf_make_meta.conf.default_language, +        "- default hash digest:", +        doc_matters.conf_make_meta.conf.default_digest, +        "- search flag:", +        doc_matters.conf_make_meta.conf.search_flag, +        "- search action:", +        doc_matters.conf_make_meta.conf.search_action, +        "- search db:", +        doc_matters.conf_make_meta.conf.search_db, +        "- search title:", +        doc_matters.conf_make_meta.conf.search_title, +      ); +    } +  } +} diff --git a/src/doc_reform/meta/metadoc_show_make.d b/src/doc_reform/meta/metadoc_show_make.d new file mode 100644 index 0000000..017480c --- /dev/null +++ b/src/doc_reform/meta/metadoc_show_make.d @@ -0,0 +1,74 @@ +module doc_reform.meta.metadoc_show_make; +template DocReformShowMake() { +  void DocReformShowMake(T)( +    T  doc_matters, +  ) { +    import +      doc_reform.meta.defaults, +      doc_reform.meta.rgx; +    import +      std.array, +      std.exception, +      std.regex, +      std.stdio, +      std.string, +      std.traits, +      std.typecons, +      std.uni, +      std.utf, +      std.conv : to; +    mixin InternalMarkup; +    auto markup = InlineMarkup(); +    auto min_repeat_number = 66; +    auto char_repeat_number = (doc_matters.conf_make_meta.meta.title_full.length +      + doc_matters.conf_make_meta.meta.creator_author.length + 4); +    char_repeat_number = (char_repeat_number > min_repeat_number) +    ? char_repeat_number +    : min_repeat_number; +    if (doc_matters.opt.action.show_make +      && doc_matters.opt.action.debug_do +    ) { +      writeln(doc_matters.conf_make_meta.make); +    } +    if (doc_matters.opt.action.show_make) { +      writefln( +        "%s\n\"%s\", %s\n%s\n%s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n", +        markup.repeat_character_by_number_provided("-", char_repeat_number), +        doc_matters.conf_make_meta.meta.title_full, +        doc_matters.conf_make_meta.meta.creator_author, +        doc_matters.src.filename, +        markup.repeat_character_by_number_provided("-", char_repeat_number), +        "- bold:", +        doc_matters.conf_make_meta.make.bold, +        "- breaks:", +        doc_matters.conf_make_meta.make.breaks, +        "- cover image:", +        doc_matters.conf_make_meta.make.cover_image, +        "- css:", +        doc_matters.conf_make_meta.make.css, +        "- emphasis:", +        doc_matters.conf_make_meta.make.emphasis, +        "- css:", +        doc_matters.conf_make_meta.make.css, +        "- footer:", +        doc_matters.conf_make_meta.make.footer, +        "- headings:", +        doc_matters.conf_make_meta.make.headings, +        "- home button image:", +        doc_matters.conf_make_meta.make.home_button_image, +        "- home button text:", +        doc_matters.conf_make_meta.make.home_button_text, +        "- italics:", +        doc_matters.conf_make_meta.make.italics, +        "- auto num top at level:", +        doc_matters.conf_make_meta.make.auto_num_top_at_level, +        "- auto num top level:", +        doc_matters.conf_make_meta.make.auto_num_top_lv, +        "- auto num depth:", +        doc_matters.conf_make_meta.make.auto_num_depth, +        "- texpdf font:", +        doc_matters.conf_make_meta.make.texpdf_font, +      ); +    } +  } +} diff --git a/src/doc_reform/meta/metadoc_show_metadata.d b/src/doc_reform/meta/metadoc_show_metadata.d new file mode 100644 index 0000000..11769db --- /dev/null +++ b/src/doc_reform/meta/metadoc_show_metadata.d @@ -0,0 +1,122 @@ +module doc_reform.meta.metadoc_show_metadata; +template DocReformShowMetaData() { +  void DocReformShowMetaData(T)( +    T  doc_matters, +  ) { +    import +      doc_reform.meta.defaults, +      doc_reform.meta.rgx; +    import +      std.array, +      std.exception, +      std.regex, +      std.stdio, +      std.string, +      std.traits, +      std.typecons, +      std.uni, +      std.utf, +      std.conv : to; +    mixin InternalMarkup; +    auto markup = InlineMarkup(); +    auto min_repeat_number = 66; +    auto char_repeat_number = (doc_matters.conf_make_meta.meta.title_full.length +      + doc_matters.conf_make_meta.meta.creator_author.length + 4); +    char_repeat_number = (char_repeat_number > min_repeat_number) +    ? char_repeat_number +    : min_repeat_number; +    if (doc_matters.opt.action.show_metadata +      && doc_matters.opt.action.debug_do +    ) { +      writeln(doc_matters.conf_make_meta.meta); +    } +    if (doc_matters.opt.action.show_metadata) { +      writefln( +        "%s\n\"%s\", %s\n%s\n%s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n%30-s%10-s\n", +        markup.repeat_character_by_number_provided("-", char_repeat_number), +        doc_matters.conf_make_meta.meta.title_full, +        doc_matters.conf_make_meta.meta.creator_author, +        doc_matters.src.filename, +        markup.repeat_character_by_number_provided("-", char_repeat_number), +        "- author:", +        doc_matters.conf_make_meta.meta.creator_author, +        "- author array:", +        doc_matters.conf_make_meta.meta.creator_author_arr, +        "- author surname:", +        doc_matters.conf_make_meta.meta.creator_author_surname, +        "- author email:", +        doc_matters.conf_make_meta.meta.creator_author_email, +        "- illustrator:", +        doc_matters.conf_make_meta.meta.creator_illustrator, +        "- translator:", +        doc_matters.conf_make_meta.meta.creator_translator, +        "- title full:", +        doc_matters.conf_make_meta.meta.title_full, +        "- title main:", +        doc_matters.conf_make_meta.meta.title_main, +        "- title sub:", +        doc_matters.conf_make_meta.meta.title_subtitle, +        "- title edition:", +        doc_matters.conf_make_meta.meta.title_edition, +        "- title language:", +        doc_matters.conf_make_meta.meta.title_language, +        "- title note:", +        doc_matters.conf_make_meta.meta.title_note, +        "- classify dewey:", +        doc_matters.conf_make_meta.meta.classify_dewey, +        "- classify library of congress:", +        doc_matters.conf_make_meta.meta.classify_loc, +        "- classify keywords:", +        doc_matters.conf_make_meta.meta.classify_keywords, +        "- classify topic register:", +        doc_matters.conf_make_meta.meta.classify_topic_register, +        "- date added to site:", +        doc_matters.conf_make_meta.meta.date_added_to_site, +        "- date available:", +        doc_matters.conf_make_meta.meta.date_available, +        "- date created:", +        doc_matters.conf_make_meta.meta.date_created, +        "- date issued:", +        doc_matters.conf_make_meta.meta.date_issued, +        "- date modified:", +        doc_matters.conf_make_meta.meta.date_modified, +        "- date published:", +        doc_matters.conf_make_meta.meta.date_published, +        "- date valid:", +        doc_matters.conf_make_meta.meta.date_valid, +        // links +        "- notes abstract:", +        doc_matters.conf_make_meta.meta.notes_abstract, +        "- notes description:", +        doc_matters.conf_make_meta.meta.notes_description, +        "- original language:", +        doc_matters.conf_make_meta.meta.original_language, +        "- original language character:", +        doc_matters.conf_make_meta.meta.original_language_char, +        "- original source:", +        doc_matters.conf_make_meta.meta.original_source, +        "- original title:", +        doc_matters.conf_make_meta.meta.original_title, +        // publisher +        "- rights copyright:", +        doc_matters.conf_make_meta.meta.rights_copyright, +        "- rights copyright text:", +        doc_matters.conf_make_meta.meta.rights_copyright_text, +        "- rights copyright audio:", +        doc_matters.conf_make_meta.meta.rights_copyright_audio, +        "- rights copyright cover:", +        doc_matters.conf_make_meta.meta.rights_copyright_cover, +        "- rights copyright illustrations:", +        doc_matters.conf_make_meta.meta.rights_copyright_illustrations, +        "- rights copyright photographs:", +        doc_matters.conf_make_meta.meta.rights_copyright_photographs, +        "- rights copyright translation:", +        doc_matters.conf_make_meta.meta.rights_copyright_translation, +        "- rights copyright video:", +        doc_matters.conf_make_meta.meta.rights_copyright_video, +        "- rights license:", +        doc_matters.conf_make_meta.meta.rights_license, +      ); +    } +  } +} diff --git a/src/doc_reform/meta/metadoc_show_summary.d b/src/doc_reform/meta/metadoc_show_summary.d new file mode 100644 index 0000000..67db962 --- /dev/null +++ b/src/doc_reform/meta/metadoc_show_summary.d @@ -0,0 +1,113 @@ +module doc_reform.meta.metadoc_show_summary; +template DocReformMetaDocSummary() { +  void DocReformMetaDocSummary(S,T)( +    const S  doc_abstraction, +          T  doc_matters, +  ) { +    import +      doc_reform.meta.defaults, +      doc_reform.meta.rgx; +    import +      std.array, +      std.exception, +      std.regex, +      std.stdio, +      std.string, +      std.traits, +      std.typecons, +      std.uni, +      std.utf, +      std.conv : to; +    mixin InternalMarkup; +    auto markup = InlineMarkup(); +    auto min_repeat_number = 66; +    auto char_repeat_number = (doc_matters.conf_make_meta.meta.title_full.length +      + doc_matters.conf_make_meta.meta.creator_author.length + 4); +    char_repeat_number = (char_repeat_number > min_repeat_number) +    ? char_repeat_number +    : min_repeat_number; +    if (doc_matters.opt.action.verbose +    || doc_matters.opt.action.show_summary) { +      string[string] check = [ +        "last_object_number" : "NA [debug \"checkdoc\" not run]", +        "last_object_number_body"  : "0", +        "last_object_number_book_index" : "0", +      ]; +      foreach (k; doc_matters.has.keys_seq.seg) { +        foreach (obj; doc_abstraction[k]) { +          if (obj.metainfo.is_of_part != "empty") { +            if (!empty(obj.metainfo.object_number)) { +              if (k == "body") { +                check["last_object_number_body"] = obj.metainfo.object_number; +              } +              if (!(obj.metainfo.object_number.empty)) { +                check["last_object_number"] = obj.metainfo.object_number; +              } +            } +            if (k == "bookindex") { +              if (obj.metainfo.object_number_type == 2) { +                check["last_object_number_book_index"] = obj.metainfo.object_number_book_index; +              } +            } +          } +        } +      } +      writefln( +        "%s\n\"%s\", %s\n%s [%s]\n%s\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%30-s%10-d\n%s", +        markup.repeat_character_by_number_provided("-", char_repeat_number), +        doc_matters.conf_make_meta.meta.title_full, +        doc_matters.conf_make_meta.meta.creator_author, +        doc_matters.src.filename, +        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), +        "  doc body last obj on.#:", +        to!int(check["last_object_number_body"]), +        "  - number of tables:", +        doc_matters.has.tables, +        "  - number of codeblocks:", +        doc_matters.has.codeblocks, +        "  - number of poems:", +        doc_matters.has.poems, +        "  - number of blocks:", +        doc_matters.has.blocks, +        "  - number of groups:", +        doc_matters.has.groups, +        "  - number of images:", +        doc_matters.has.images, +        "- endnotes length:",                                // subtract headings +        (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)) +        : 0, +        "- biblio 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)) +        : 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)) +        : 0, +        "* last obj on.#:", +        to!int(check["last_object_number"]), +        "number of segments:", +        (doc_matters.has.segnames_lv4.length > 1) +        ? (to!int(doc_matters.has.segnames_lv4.length)) +        : 0, +        markup.repeat_character_by_number_provided("-", min_repeat_number), +      ); +    } +  } +} | 
