From b70dfcf862ef81795210d6ceafc6ba9082199bf9 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 4 Oct 2019 21:42:07 -0400 Subject: --show-{config,make,metadata,summary} --- src/doc_reform/meta/conf_make_meta_structs.d | 2 + src/doc_reform/meta/conf_make_meta_yaml.d | 46 ++++++---- src/doc_reform/meta/metadoc.d | 2 +- src/doc_reform/meta/metadoc_show_config.d | 106 +++++++++++++++++++++++ src/doc_reform/meta/metadoc_show_make.d | 74 ++++++++++++++++ src/doc_reform/meta/metadoc_show_metadata.d | 122 +++++++++++++++++++++++++++ src/doc_reform/meta/metadoc_show_summary.d | 113 +++++++++++++++++++++++++ 7 files changed, 446 insertions(+), 19 deletions(-) create mode 100644 src/doc_reform/meta/metadoc_show_config.d create mode 100644 src/doc_reform/meta/metadoc_show_make.d create mode 100644 src/doc_reform/meta/metadoc_show_metadata.d create mode 100644 src/doc_reform/meta/metadoc_show_summary.d (limited to 'src/doc_reform/meta') 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), + ); + } + } +} -- cgit v1.2.3