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 --- org/default_paths.org | 8 +-- org/output_sisupod.org | 2 +- org/output_sqlite.org | 2 +- org/output_xmls.org | 6 +-- org/sdp.org | 111 +++++++++++++++++++++++----------------- 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 +-- views/version.txt | 2 +- 13 files changed, 144 insertions(+), 114 deletions(-) diff --git a/org/default_paths.org b/org/default_paths.org index b2c1980..99da708 100644 --- a/org/default_paths.org +++ b/org/default_paths.org @@ -79,10 +79,10 @@ template PodManifest() { #+name: template_paths_src #+BEGIN_SRC d -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 = "", @@ -90,7 +90,7 @@ template PodManifestAndSrcFile() { char[][] _manifest_fn_list = [[]], ) { auto _manifest = PodManifest!()(_pth); - struct ManifestFilePlus_ { + struct ManifestMatters_ { auto pwd() { return _env["pwd"]; } @@ -175,7 +175,7 @@ template PodManifestAndSrcFile() { return _image_dirs; } } - return ManifestFilePlus_(); + return ManifestMatters_(); } } #+END_SRC diff --git a/org/output_sisupod.org b/org/output_sisupod.org index a267384..deb1c82 100644 --- a/org/output_sisupod.org +++ b/org/output_sisupod.org @@ -61,7 +61,7 @@ debug(asserts) { // 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/org/output_sqlite.org b/org/output_sqlite.org index 328af1a..14b6577 100644 --- a/org/output_sqlite.org +++ b/org/output_sqlite.org @@ -467,7 +467,7 @@ auto html_table(O)( #+name: sqlite_db_initialize #+BEGIN_SRC d 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/org/output_xmls.org b/org/output_xmls.org index 3f82899..bcf8d8d 100644 --- a/org/output_xmls.org +++ b/org/output_xmls.org @@ -1490,7 +1490,7 @@ void scroll_write_output(M,C)( 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)); } #+END_SRC @@ -1762,7 +1762,7 @@ void seg_write_output(M,D,E)( 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")); } #+END_SRC @@ -2632,7 +2632,7 @@ void epub3_write_output_files(M,D,E,Mt,Mic,Otnx,Otn,Oc)( catch (ErrnoException ex) { // Handle error } - writeln(" ", doc_matters.environment["pwd"], "/", fn_epub); + writeln(" ", doc_matters.environment.pwd, "/", fn_epub); #+END_SRC ** zip debug, read zip archive diff --git a/org/sdp.org b/org/sdp.org index 32e9833..650fb21 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -26,7 +26,7 @@ struct Version { int minor; int patch; } -enum ver = Version(0, 21, 0); +enum ver = Version(0, 22, 0); #+END_SRC ** compilation restrictions (supported compilers) @@ -486,14 +486,14 @@ auto _env = [ "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_; @@ -536,7 +536,7 @@ foreach(arg; args[1..$]) { || (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? } } @@ -805,68 +805,83 @@ debug(steps) { 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/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? } } diff --git a/views/version.txt b/views/version.txt index 022ef80..003d862 100644 --- a/views/version.txt +++ b/views/version.txt @@ -4,7 +4,7 @@ struct Version { int minor; int patch; } -enum ver = Version(0, 21, 0); +enum ver = Version(0, 22, 0); version (Posix) { version (DigitalMars) { } else version (LDC) { -- cgit v1.2.3