From 17b1e024c33bac309c36f439fe267a384548a8b8 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Fri, 1 Dec 2017 11:36:01 -0500 Subject: 0.22.0 document matters & pod matters structs - better integrated, redundancy removed --- src/sdp/meta/metadoc.d | 103 +++++++++++++++++++++++----------------- src/sdp/output/epub3.d | 2 +- src/sdp/output/html.d | 4 +- src/sdp/output/paths_source.d | 8 ++-- src/sdp/output/source_sisupod.d | 2 +- src/sdp/output/sqlite.d | 2 +- src/sdp/sdp.d | 6 +-- 7 files changed, 71 insertions(+), 56 deletions(-) (limited to 'src/sdp') diff --git a/src/sdp/meta/metadoc.d b/src/sdp/meta/metadoc.d index b028f8d..79f9849 100644 --- a/src/sdp/meta/metadoc.d +++ b/src/sdp/meta/metadoc.d @@ -88,68 +88,83 @@ template SiSUabstraction() { writeln(__LINE__, ":", __FILE__, ": step4 commence → (doc_matters)"); } struct DocumentMatters { - auto keys_seq() { - /+ contains .seg & .scroll sequences +/ - auto _k = _document_section_keys_sequenced; - return _k; - } - string[] segnames() { - string[] _k = _doc_html_segnames; - return _k; - } - string[] segnames_lv_0_to_4() { - string[] _k = _doc_epub_segnames_0_4; - return _k; - } - auto conf_make_meta() { - auto _k = _make_and_meta_struct; - return _k; - } - auto source_filename() { - string _k = _manifest.src_fn; - return _k; - } - auto src_path_info() { - string _pwd = _env["pwd"]; - auto _k = SiSUpathsSRC!()(_pwd, _manifest.src_fn); - return _k; - } auto opt_action() { /+ getopt options, commandline instructions, raw - processing instructions --epub --html etc. - command line config instructions --output-path +/ - auto _k = _opt_action; + return _opt_action; + } + auto conf_make_meta() { // TODO meld with all make instructions + auto _k = _make_and_meta_struct; return _k; } auto environment() { - auto _k = _env; + struct Env_ { + auto pwd() { + return _manifest.pwd; + } + auto home() { + return _manifest.home; + } + } + return Env_(); + } + auto is_pod() { + return _manifest.is_pod; + } + auto source_filename() { + return _manifest.src_fn; + } + auto src_path_info() { // consider, reconsider? + auto _k = SiSUpathsSRC!()(_manifest.pwd, _manifest.src_fn); return _k; } auto language() { - string _k; - if (auto m = (_manifest.src_fn).match(rgx.language_code_and_filename)) { - _k = m.captures[1]; - } else { - _k = "en"; - } - return _k; + return _manifest.src_lng; + } + auto output_path() { + return _manifest.output_path; + } + auto pod_manifest_list_of_filenames() { + return _manifest.pod_manifest_list_of_filenames; + } + auto pod_manifest_list_of_languages() { + return _manifest.pod_manifest_list_of_languages; + } + auto pod_manifest_filename() { + return _manifest.pod_manifest_filename; + } + auto pod_manifest_path() { + return _manifest.pod_manifest_path; + } + auto pod_manifest_file_with_path() { + return _manifest.pod_manifest_file_with_path; + } + auto pod_config_dirs() { + return _manifest.pod_config_dirs; + } + auto pod_image_dirs() { + return _manifest.pod_image_dirs; } auto file_insert_list() { string[] _k = _header_body_inserts[headBody.insert_filelist]; return _k; } - auto pod_manifest() { - /+ extensive information on - - source processing paths - - repetition of opt_action with additional processing, including - - output path if any - +/ - auto _k = _manifest; + auto image_list() { + return _images; + } + auto keys_seq() { + /+ contains .seg & .scroll sequences +/ + auto _k = _document_section_keys_sequenced; return _k; } - auto image_list() { - auto _k = _images; + string[] segnames() { + string[] _k = _doc_html_segnames; + return _k; + } + string[] segnames_lv_0_to_4() { + string[] _k = _doc_epub_segnames_0_4; return _k; } } diff --git a/src/sdp/output/epub3.d b/src/sdp/output/epub3.d index 78603b2..e31d114 100644 --- a/src/sdp/output/epub3.d +++ b/src/sdp/output/epub3.d @@ -765,7 +765,7 @@ template outputEPub3() { catch (ErrnoException ex) { // Handle error } - writeln(" ", doc_matters.environment["pwd"], "/", fn_epub); + writeln(" ", doc_matters.environment.pwd, "/", fn_epub); debug(epub_archive) { if (exists(fn_epub)) { try { diff --git a/src/sdp/output/html.d b/src/sdp/output/html.d index b0b0405..a422a81 100644 --- a/src/sdp/output/html.d +++ b/src/sdp/output/html.d @@ -181,7 +181,7 @@ template outputHTML() { catch (ErrnoException ex) { // Handle error } - writeln(" ", doc_matters.environment["pwd"], "/", pth_html.fn_scroll(fn_src)); + writeln(" ", doc_matters.environment.pwd, "/", pth_html.fn_scroll(fn_src)); } void seg(D,I)( auto return ref const D doc_abstraction, @@ -440,7 +440,7 @@ template outputHTML() { catch (ErrnoException ex) { // handle error } - writeln(" ", doc_matters.environment["pwd"], "/", pth_html.fn_seg(doc_matters.source_filename, "toc")); + writeln(" ", doc_matters.environment.pwd, "/", pth_html.fn_seg(doc_matters.source_filename, "toc")); } void css(M)( auto return ref M doc_matters, diff --git a/src/sdp/output/paths_source.d b/src/sdp/output/paths_source.d index c22efe0..967a632 100644 --- a/src/sdp/output/paths_source.d +++ b/src/sdp/output/paths_source.d @@ -42,10 +42,10 @@ template PodManifest() { return ManifestFile_(); } } -template PodManifestAndSrcFile() { +template PodMatters() { mixin SiSUrgxInit; static auto rgx = Rgx(); - auto PodManifestAndSrcFile(O,E,P,F)( + auto PodMatters(O,E,P,F)( O _opt_actions, E _env, P _pth = "", @@ -53,7 +53,7 @@ template PodManifestAndSrcFile() { char[][] _manifest_fn_list = [[]], ) { auto _manifest = PodManifest!()(_pth); - struct ManifestFilePlus_ { + struct ManifestMatters_ { auto pwd() { return _env["pwd"]; } @@ -138,7 +138,7 @@ template PodManifestAndSrcFile() { return _image_dirs; } } - return ManifestFilePlus_(); + return ManifestMatters_(); } } template ConfigFilePaths() { diff --git a/src/sdp/output/source_sisupod.d b/src/sdp/output/source_sisupod.d index 106c419..20eaf39 100644 --- a/src/sdp/output/source_sisupod.d +++ b/src/sdp/output/source_sisupod.d @@ -15,7 +15,7 @@ template SiSUpod() { // static assert(is(typeof(doc_matters) == tuple)); } mixin SiSUoutputRgxInit; - string pwd = doc_matters.environment["pwd"]; + string pwd = doc_matters.environment.pwd; auto src_path_info = doc_matters.src_path_info; auto pth_sisudoc_src = doc_matters.src_path_info; auto pths_sisupod = SiSUpathsSisupods!()(); diff --git a/src/sdp/output/sqlite.d b/src/sdp/output/sqlite.d index 591b002..ee44d8a 100644 --- a/src/sdp/output/sqlite.d +++ b/src/sdp/output/sqlite.d @@ -457,7 +457,7 @@ template SQLiteBuildTablesAndPopulate() { auto ref I doc_matters, ) { auto pth_sqlite = SiSUpathsSQLite!()(doc_matters.src_path_info, doc_matters.language); - auto db = Database(pth_sqlite.sqlite_file(doc_matters.environment["pwd"].baseName)); + auto db = Database(pth_sqlite.sqlite_file(doc_matters.environment.pwd.baseName)); // auto db = Database(":memory:"); // open database in memory if (doc_matters.opt_action.sqlite_create) { if ((doc_matters.opt_action.verbose)) { writeln("sqlite create tables... "); } diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d index 34f11d9..30f8d03 100755 --- a/src/sdp/sdp.d +++ b/src/sdp/sdp.d @@ -303,14 +303,14 @@ void main(string[] args) { "home" : environment["HOME"], ]; auto _manifest = PodManifest!()(); - auto _manifest_plus = PodManifestAndSrcFile!()(_opt_action, _env); + auto _manifest_plus = PodMatters!()(_opt_action, _env); auto _manifests = [ _manifest_plus ]; foreach(arg; args[1..$]) { _manifest = PodManifest!()(arg); if (arg.match(rgx.flag_action)) { flag_action ~= " " ~ arg; // flags not taken by getopt } else if (arg.match(rgx.src_pth)) { - _manifests ~= PodManifestAndSrcFile!()(_opt_action, _env, arg, arg); // gather input markup source file names for processing + _manifests ~= PodMatters!()(_opt_action, _env, arg, arg); // gather input markup source file names for processing } else if (_manifest.pod_manifest_file_with_path) { string contents_location_raw_; string contents_location_; @@ -353,7 +353,7 @@ void main(string[] args) { || (contents_location_pth_).match(lang_rgx_) ) { auto _fns = (((tmp_dir_).chainPath(contents_location_pth_)).array).to!(string); - _manifest_plus = PodManifestAndSrcFile!()(_opt_action, _env, arg, _fns, contents_locations_arr); + _manifest_plus = PodMatters!()(_opt_action, _env, arg, _fns, contents_locations_arr); _manifests ~= _manifest_plus; // TODO how to capture? } } -- cgit v1.2.3