diff options
author | Ralph Amissah <ralph@amissah.com> | 2018-07-07 13:55:43 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2019-04-10 15:14:15 -0400 |
commit | ae23669169b32d4986af06c1ae9483cc9c52d39d (patch) | |
tree | 7fc84b06846bf9b09b44ca13ed969901acb717c1 /src/sdp/output | |
parent | parent ocn (diff) |
0.26.4 file renames, cleaning, reorganisation
Diffstat (limited to 'src/sdp/output')
-rw-r--r-- | src/sdp/output/epub3.d | 4 | ||||
-rw-r--r-- | src/sdp/output/html.d | 8 | ||||
-rw-r--r-- | src/sdp/output/package.d | 2 | ||||
-rw-r--r-- | src/sdp/output/paths_output.d | 22 | ||||
-rw-r--r-- | src/sdp/output/paths_source.d | 791 | ||||
-rw-r--r-- | src/sdp/output/sqlite.d | 14 | ||||
-rw-r--r-- | src/sdp/output/xmls.d | 178 |
7 files changed, 111 insertions, 908 deletions
diff --git a/src/sdp/output/epub3.d b/src/sdp/output/epub3.d index 9389e58..cde42d1 100644 --- a/src/sdp/output/epub3.d +++ b/src/sdp/output/epub3.d @@ -293,8 +293,8 @@ template outputEPub3() { } void outputEPub3(D,I)( - auto ref const D doc_abstraction, - auto ref I doc_matters, + const D doc_abstraction, + I doc_matters, ) { mixin SiSUoutputRgxInit; auto xhtml_format = outputXHTMLs(); diff --git a/src/sdp/output/html.d b/src/sdp/output/html.d index d783579..7024b0f 100644 --- a/src/sdp/output/html.d +++ b/src/sdp/output/html.d @@ -13,8 +13,8 @@ template outputHTML() { sdp.output.xmls_css; mixin outputXHTMLs; void scroll(D,I)( - auto ref const D doc_abstraction, - auto ref I doc_matters, + const D doc_abstraction, + I doc_matters, ) { mixin SiSUoutputRgxInit; auto xhtml_format = outputXHTMLs(); @@ -181,8 +181,8 @@ template outputHTML() { writeln(" ", pth_html.fn_scroll(doc_matters.src.filename)); } void seg(D,M)( - auto ref const D doc_abstraction, - auto ref M doc_matters, + const D doc_abstraction, + M doc_matters, ) { mixin SiSUoutputRgxInit; auto rgx = Rgx(); diff --git a/src/sdp/output/package.d b/src/sdp/output/package.d index 84bdfce..2aa6544 100644 --- a/src/sdp/output/package.d +++ b/src/sdp/output/package.d @@ -15,7 +15,7 @@ public import // std.uni, std.utf; public import - sdp.output.paths_source, + sdp.source.paths_source, sdp.output.defaults, sdp.output.paths_output, sdp.output.rgx; diff --git a/src/sdp/output/paths_output.d b/src/sdp/output/paths_output.d index cd4817b..8a4d623 100644 --- a/src/sdp/output/paths_output.d +++ b/src/sdp/output/paths_output.d @@ -14,13 +14,9 @@ template SiSUoutPaths() { ) { struct _PathsStruct { string output_root() { - string out_root_; - if (output_pth_root.length > 0) { - out_root_ = output_pth_root; - } else { - out_root_ = "sisugen"; - } - return out_root_; + return (output_pth_root.length > 0) + ? output_pth_root + : "sisugen"; } string output_base() { return asNormalizedPath(output_root.chainPath(lng)).array; @@ -35,13 +31,9 @@ template SiSUoutPathSQLite() { ) { struct _PathsStruct { string output_root() { - string out_root_; - if (output_pth_root.length > 0) { - out_root_ = output_pth_root; - } else { - out_root_ = "sisugen"; - } - return out_root_; + return (output_pth_root.length > 0) + ? output_pth_root + : "sisugen"; } string output_base() { return asNormalizedPath(output_root).array; @@ -70,7 +62,7 @@ template SiSUoutPathsFnPd() { - else if pod_name != file_name - pod_name.file_name +/ - auto _fn_src = fn_src_pth.baseName.stripExtension; + string _fn_src = fn_src_pth.baseName.stripExtension; string _output_base_name; if (!(pod_name.empty)) { if (pod_name == _fn_src) { diff --git a/src/sdp/output/paths_source.d b/src/sdp/output/paths_source.d deleted file mode 100644 index e7233f0..0000000 --- a/src/sdp/output/paths_source.d +++ /dev/null @@ -1,791 +0,0 @@ -/++ - read configuration files<BR> - - read config files<BR> - meta_config_files.d -+/ -module sdp.output.paths_source; -import std.array, - std.file, - std.path, - std.regex, - std.stdio, - std.conv : to; -import sdp.meta.rgx; -template PodManifest() { - mixin SiSUrgxInit; - static auto rgx = Rgx(); - auto PodManifest(P)( - P _pth - ) { - struct ManifestFile_ { - auto pod_manifest_filename() { - string _manifest_file = "sisupod.manifest"; - return _manifest_file; - } - auto pod_manifest_path() { - string _manifest_path; - if ((isValidPath(_pth) && exists(_pth)!=0 && _pth.isDir) - && (exists(_pth.chainPath(pod_manifest_filename).array)!=0 - && (_pth.chainPath(pod_manifest_filename).array).isFile)) { - _manifest_path = _pth; - } else if (_pth.match(rgx.src_pth_contents) - && exists(_pth)!=0 && _pth.isFile) { - _manifest_path = _pth.dirName; - } else if (_pth.match(rgx.src_pth_pod_sst_or_ssm) - && exists(_pth)!=0 && (_pth.isFile)) { - if (auto m = _pth.match(rgx.src_pth_pod_sst_or_ssm)) { - _manifest_path = m.captures["podpath"]; - } - } else { - writeln("WARNING, issue with manifest_path: ", _pth); // remove? - _manifest_path = null; // _manifest_path = ""; - } - return _manifest_path; - } - string pod_manifest_file_with_path() { - string _k; - if (exists(pod_manifest_path.chainPath(pod_manifest_filename).array)!=0) { - _k = pod_manifest_path.chainPath(pod_manifest_filename).array; - } else if (exists(pod_manifest_path)!=0) { - _k = pod_manifest_path; - } - if (exists(_k)==0) { - writeln("ERROR >> Processing Skipped! Manifest not found: ", _k); - _k = null; - } - return _k; - } - } - return ManifestFile_(); - } -} -template PathMatters() { - mixin SiSUrgxInit; - static auto rgx = Rgx(); - auto PathMatters(O,E,P,F)( - O _opt_actions, - E _env, - P _pth, - F _fns = "", - char[][] _manifest_fn_list = [[]], - ) { - auto _manifest = PodManifest!()(_pth); - struct ManifestMatters_ { - auto env() { - auto _env = _env; - struct Env_ { - auto pwd() { - return _env["pwd"]; - } - auto home() { - return _env["home"]; - } - } - return Env_(); - } - auto opt() { - auto _opt_actions = _opt_actions; - struct Opt_ { - auto action() { // redundant - return _opt_actions; - } - } - return Opt_(); - } - auto src_is_pod() { - auto _src_is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; - return _src_is_pod; - } - auto pod() { - struct Pod_ { - auto src_is_pod() { - auto _src_is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; - return _src_is_pod; - } - auto collection_root() { - auto _collection_root = asNormalizedPath(chainPath(_manifest.pod_manifest_path, "..")).array; - if (auto m = (_collection_root).match(rgx.src_pth_pod_root)) { - // consider testing for last dir in path name being sisupod, and giving warning if not - } else { - writeln("WARNING, collection_root not named \"sisupod\""); - } - return _collection_root; - } - auto manifest_filename() { - return _manifest.pod_manifest_filename; - } - auto manifest_path() { - return _manifest.pod_manifest_path; - } - auto pod_name() { // TODO decide what returned if src_is_pod == false - return _manifest.pod_manifest_path.baseName; - } - auto manifest_file_with_path() { - return _manifest.pod_manifest_file_with_path; - } - auto config_sisu_document_make_dirs() { // TODO sisu_document_make - string[] _config_dirs; - return _config_dirs; - } - auto config_local_site_dirs() { // TODO sisu_document_make - string[] _config_dirs; - return _config_dirs; - } - auto image_dirs() { // TODO - string[] _image_dirs; - return _image_dirs; - } - auto manifest_list_of_filenames() { - return _manifest_fn_list; - } - auto manifest_list_of_languages() { - string[] _lngs; - foreach (filename_; manifest_list_of_filenames) { - string _k = "en"; - if (auto m = (filename_).match(rgx.language_code_and_filename)) { - _k = m.captures[1].to!string; - } - _lngs ~= _k; // all the languages from the manifest list of filenames with paths - } - return _lngs; - } - } - return Pod_(); - } - auto src() { - string _fns = _fns; // required here by dmd & not by ldc (for D:2078) - auto _opt_actions = _opt_actions; - auto _env = _env; - string _sep = "␣"; - struct SRC_ { - auto is_pod() { - auto _src_is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; - return _src_is_pod; - } - auto path_and_fn() { - return _fns; - } - auto pod_name() { /+ work on +/ - auto _pod_name = (is_pod) - ? _manifest.pod_manifest_path - : ""; - return _pod_name; - } - auto filename() { - auto _fn = (path_and_fn).baseName; - return _fn; - } - auto filename_base() { - auto _fn = filename.stripExtension; - return _fn; - } - auto filename_extension() { - auto _ext = filename.match(rgx.src_pth_sst_or_ssm).captures["extension"]; - return _ext; - } - auto lng() { - string _k; - if (auto m = path_and_fn.match(rgx.language_code_and_filename)) { - _k = m.captures[1]; - } else { - _k = "en"; - } - return _k; - } - auto docname_composite_unique_per_src_doc() { - /+ - z pod name if any + src filename + lng code - filename ~ "." ~ lng - * unique per src doc - used by - - sqlite discrete index (multilingual, each language of a document) - +/ - string _fn; - if (pod_name.baseName == filename_base) { - _fn = filename_base ~ _sep ~ filename_extension ~ _sep ~ lng; - } else if (!(pod_name.empty)) { - _fn = pod_name.baseName ~ _sep ~ filename_base ~ _sep ~ filename_extension ~ _sep ~ lng; - } else { - _fn = "_" ~ _sep ~ filename_base ~ _sep ~ filename_extension ~ _sep ~ lng; - } - return _fn; - } - auto docname_composite_unique_per_src_pod() { - /+ - z pod name if any + src filename (without lng code) - filename ~ _sep ~ lng - * unique per src pod - used by - - sisupod (multilingual collection) - - sqlite discrete index (multilingual collection) - +/ - string _fn; - if (pod_name.baseName == filename_base) { - _fn = filename_base ~ _sep ~ filename_extension; - } else if (!(pod_name.empty)) { - _fn = pod_name.baseName ~ _sep ~ filename_base ~ _sep ~ filename_extension; - } else { - _fn = "_" ~ _sep ~ filename_base ~ _sep ~ filename_extension; - } - return _fn; - } - auto language() { - return lng(); - } - auto file_with_absolute_path() { - string _pth = _env["pwd"].chainPath(path_and_fn).array; - return _pth; - } - auto absolute_path_to_src() { - string _pth = (_env["pwd"].chainPath(path_and_fn)).dirName.array; - return _pth; - } - auto base_dir() { - string _dir; - if ( // TODO this should catch generated --source sisupod, untested, needs manifest - auto m = (absolute_path_to_src) - .match(regex(r"[/](?P<dir>(?:[a-zA-Z0-9._-]+))/sisupod/" ~ filename.stripExtension)) - ) { - _dir = asNormalizedPath(path_and_fn.chainPath("../../")).array; - assert(_dir == m.captures["dir"]); - } else { - _dir = asNormalizedPath(path_and_fn.chainPath("../../../")).array; - assert(_dir == absolute_path_to_src - .match(rgx.src_base_parent_dir_name).captures["dir"]); - } - if ((_opt_actions.debug_do)) { - writeln("--> (base_dir) ", _dir); - } - return _dir; - } - auto base_parent_dir_path() { - string _dir; - if ( // TODO this should catch generated --source sisupod, untested, needs manifest - auto m = (absolute_path_to_src) - .match(regex(r"[/](?P<dir>(?:[a-zA-Z0-9._-]+))/sisupod/" ~ filename.stripExtension)) - ) { - _dir = asNormalizedPath(path_and_fn.chainPath("../../")).array; - } else { - _dir = asNormalizedPath(path_and_fn.chainPath("../../../")).array; - } - return _dir; - } - auto base_dir_path() { // looks like there is work to do - string _dir; - if ( - auto m = (absolute_path_to_src) - .match(rgx.src_formalised_file_path_parts) - ) { - _dir = asNormalizedPath(m.captures["pth"]).array; - } else if ( // TODO this should catch generated --source sisupod, untested, needs manifest - auto m = (absolute_path_to_src) - .match(regex(r"[/](?P<dir>(?:[a-zA-Z0-9._-]+))/sisupod/" ~ filename.stripExtension)) - ) { - _dir = asNormalizedPath(path_and_fn.chainPath("../")).array; - } else { - _dir = asNormalizedPath(path_and_fn.chainPath("../../")).array; - } - if ((_opt_actions.debug_do)) { - writeln("--> (base_dir_path) ", _dir); - } - return _dir; - } - auto media_dir_path() { // TODO rework, can base directly on src fn path - string _dir = asNormalizedPath(base_dir_path.chainPath("media")).array; - return _dir; - } - auto image_dir_path() { - string _paths; - string[] _possible_img_pths = [ "./image", "../image", "../../image" ]; - string _img_pth_found = ""; - if (is_pod) { - _img_pth_found = asNormalizedPath(file_with_absolute_path.dirName ~ "/../../image").array; - } else { - string _img_pth(string _possible_img_pth) { - return asNormalizedPath(file_with_absolute_path.dirName ~ "/" ~ _possible_img_pth).array; - } - foreach(_possible_img_pth; _possible_img_pths) { - if (exists(_img_pth(_possible_img_pth))) { - _img_pth_found = _img_pth(_possible_img_pth); - break; - } else { - _paths ~= " " ~ _img_pth(_possible_img_pth); - } - } - } - if (_img_pth_found.empty) { - writeln("WARNING not image path found, searched: ", _paths); - } - return _img_pth_found; - } - auto conf_dir_path() { - auto _dir = asNormalizedPath(base_dir_path.chainPath("conf")).array; - return _dir; - } - auto base_parent_dir() { - string _dir; - if ( // TODO this should catch generated --source sisupod, untested, needs manifest - auto m = (absolute_path_to_src) - .match(regex(r"[/](?P<dir>(?:[a-zA-Z0-9._-]+))/sisupod/" ~ filename.stripExtension)) - ) { - _dir = m.captures["dir"]; - } else { - _dir = (absolute_path_to_src).match(rgx.src_base_parent_dir_name).captures["dir"]; - } - if ((_opt_actions.debug_do)) { - writeln("--> (base_parent_dir) ", _dir); - } - return _dir; - } - auto config_dirs() { // TODO - string[] _config_dirs; - if (is_pod) { - } else { - } - return _config_dirs; - } - auto image_dirs() { // TODO - string[] _image_dirs; - if (is_pod) { - } else { - } - return _image_dirs; - } - } - return SRC_(); - } - auto output() { - auto _opt_actions = _opt_actions; - auto _env = _env; - struct Out_ { - auto path() { - auto _output_path = _env["pwd"]; - if ((_opt_actions.output_dir_set.length > 0) - && isValidPath(_opt_actions.output_dir_set) - ) { - _output_path = asNormalizedPath(_opt_actions.output_dir_set).array; - if (!exists(_output_path)) { - try { - _output_path.mkdirRecurse; - } - // catch (ErrnoException ex) { - catch (Exception ex) { - // Handle error - } - } - assert(_output_path.isDir, - "not a directory: " ~ _output_path); - // TODO always test that is a directory and it is writable - } - return _output_path; - } - } - return Out_(); - } - } - return ManifestMatters_(); - } -} -template ConfigFilePaths() { - mixin SiSUrgxInit; - static auto rgx = Rgx(); - auto ConfigFilePaths(M,E)( - M _manifest, - E _env, - ) { - struct ConfFilePaths { - auto config_filename_document_toml() { - return "sisu_document_make"; - } - auto config_filename_site_toml() { - return "config_local_site"; - } - auto possible_config_path_locations() { - struct _ConfFilePaths { - auto sisu_document_make() { - /+ FIX clean up conf paths ↓ +/ - /+ config local site (file system only, not in pod) +/ - /+ return paths +/ - string[] _possible_config_path_locations; - if (_manifest.src.is_pod) { - /+ config document in pod +/ - string _sisudoc_conf_pod; // - string _sisudoc_conf_pod_text; // - _sisudoc_conf_pod = asNormalizedPath(chainPath( - to!string(_env["pwd"]), - _manifest.pod.manifest_path ~ "/conf" - )).array; - _sisudoc_conf_pod_text = asNormalizedPath(chainPath( - to!string(_env["pwd"]), - _manifest.pod.manifest_path ~ "/media/text/" ~ _manifest.src.lng ~ "/conf" - )).array; - /+ return paths +/ - _possible_config_path_locations = [ - _sisudoc_conf_pod_text, - _sisudoc_conf_pod, - ]; - } else { - /+ config document (& or local site) on filesystem +/ - string _sisudoc_conf_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), "sisudoc/conf")).array; // think about - string _sisudoc_conf_pwd_a = asNormalizedPath(chainPath(to!string(_env["pwd"]), "conf")).array; - string _sisudoc_conf_pwd_b = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../conf")).array; - string _sisudoc_conf_pwd_c = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../conf")).array; - string _sisudoc_conf_pwd_d = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../../conf")).array; - /+ return paths +/ - _possible_config_path_locations = [ - _sisudoc_conf_pwd, - _sisudoc_conf_pwd_a, - _sisudoc_conf_pwd_b, - _sisudoc_conf_pwd_c, - _sisudoc_conf_pwd_d, - ]; - } - /+ FIX clean up conf paths ↑ - (compare pwd to doc path location, and build config path) - +/ - return _possible_config_path_locations; - } - auto config_local_site() { - /+ FIX clean up conf paths ↓ +/ - /+ config local site (file system only, not in pod) +/ - string _dot_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), ".sisu")).array; - string _underscore_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), "_sisu")).array; - string _dot_home = asNormalizedPath(chainPath(to!string(_env["home"]), ".sisu")).array; - /+ return paths +/ - string[] _possible_config_path_locations; - if (_manifest.src.is_pod) { - string _collection_root_a = asNormalizedPath(chainPath(to!string(_manifest.pod.collection_root.to!string), ".sisu")).array; - string _collection_root_b = asNormalizedPath(chainPath(to!string(_manifest.pod.collection_root.to!string), "_sisu")).array; - _possible_config_path_locations = [ - _dot_pwd, - _underscore_pwd, - _dot_home, - "/etc/sisu", - _collection_root_a, // set priority higher? - _collection_root_b // set priority higher? - ]; - } else { - /+ config document (& or local site) on filesystem +/ - string _sisudoc_conf_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), "sisudoc/conf")).array; // think about - string _sisudoc_conf_pwd_a = asNormalizedPath(chainPath(to!string(_env["pwd"]), "conf")).array; - string _sisudoc_conf_pwd_b = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../conf")).array; - string _sisudoc_conf_pwd_c = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../conf")).array; - string _sisudoc_conf_pwd_d = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../../conf")).array; - _possible_config_path_locations = [ - _sisudoc_conf_pwd, - _sisudoc_conf_pwd_a, - _sisudoc_conf_pwd_b, - _sisudoc_conf_pwd_c, - _sisudoc_conf_pwd_d, - _dot_pwd, - _underscore_pwd, - _dot_home, - "/etc/sisu" - ]; - } - /+ FIX clean up conf paths ↑ - (compare pwd to doc path location, and build config path) - +/ - return _possible_config_path_locations; - } - } - return _ConfFilePaths(); - } - } - return ConfFilePaths(); - } -} -template SiSUpathsSRC() { - mixin SiSUrgxInit; - static auto rgx = Rgx(); - auto SiSUpathsSRC(D,Fn)( - D _pwd, - Fn _fn_src_and_path, - ) { - struct SisuSrcPaths { - auto pwd() { - return _pwd; - } - auto language() { - // use command line info as well? - string _k; - if (auto m = _fn_src_and_path.match(rgx.language_code_and_filename)) { - _k = m.captures[1]; - } else { /+ unknown until doc_meta read, (could provide & use command line info?) +/ - _k = "xx"; // original default was "en" but is not known - } - return _k; - } - auto doc_root() { - return "sisudoc"; - } - auto media_root() { - return asNormalizedPath(doc_root.chainPath("media")).array; - } - auto conf_root() { - return asNormalizedPath(doc_root.chainPath("conf")).array; - } - auto text_root() { - return asNormalizedPath(media_root.chainPath("text")).array; - } - auto image_root() { - return asNormalizedPath(media_root.chainPath("image")).array; - } - auto doc_src_fn_with_path_for_text_root_and_lng() { - return asNormalizedPath(text_root.chainPath(language)).array; - } - auto doc_src_fn() { - return asNormalizedPath(_fn_src_and_path.baseName).array; - } - auto doc_src_with_path() { - return asNormalizedPath(pwd.chainPath(_fn_src_and_path)).array; - } - } - return SisuSrcPaths(); - } -} - - -template SiSUpathsSisupods() { - mixin SiSUrgxInit; - static auto rgx = Rgx(); - string _suffix = ".zip"; - auto SiSUpathsSisupods(Dm)(Dm doc_matters) { - string _base_dir_pod = (doc_matters.output_path.length > 0) - ? doc_matters.output_path ~ "/sisupod" - : "/sisupod"; - string _base_dir_doc = "sisudoc"; - struct _PodPaths { - string base_filename_(string fn_src) { - auto pth = fn_src.baseName.stripExtension; - return pth; - } - string sisupod_dir_() { - auto pth = _base_dir_pod; - return pth; - } - string sisudoc_dir_() { - auto pth = _base_dir_doc; - return pth; - } - string sisupod_filename_(string fn_src) { - string pth = _base_dir_pod.chainPath(base_filename_(fn_src) ~ _suffix).array; - return pth; - } - string base_filesystem_(string fn_src) { - string pth = _base_dir_pod.chainPath(base_filename_(fn_src)).array; - assert(pth == _base_dir_pod ~ "/" ~ base_filename_(fn_src), - pth ~ " == " ~ _base_dir_pod ~ "/" ~ base_filename_(fn_src) ~ "?"); - return pth; - } - string base_pod_(string fn_src) { - string pth = _base_dir_pod.chainPath(base_filename_(fn_src)).array; // change this - return pth; - } - auto base_filename(string fn_src) { - auto pth_1_ = base_filename_(fn_src); - auto pth_2_ = base_filename_(fn_src); - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - return pth_2_; - } - } - return _pods(); - } - auto sisupod_filename(string fn_src) { - auto pth_1_ = sisupod_filename_(fn_src); - auto pth_2_ = sisupod_filename_(fn_src); - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - return pth_2_; - } - } - return _pods(); - } - auto base(string fn_src) { - auto pth_1_ = ""; - auto pth_2_ = base_filesystem_(fn_src); - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - return pth_2_; - } - } - return _pods(); - } - auto pod_root(string fn_src) { - auto pth_1_ = ""; - auto pth_2_ = asNormalizedPath(base(fn_src).filesystem_open_zpod.chainPath("")).array; // "sisudoc" - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - return pth_2_; - } - } - return _pods(); - } - auto conf_root(string fn_src) { - auto pod_root_ = pod_root(fn_src); - auto pth_1_ = "conf"; - auto pth_2_ = asNormalizedPath(pod_root(fn_src).filesystem_open_zpod.chainPath("conf")).array; - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); - return pth_2_; - } - } - return _pods(); - } - auto css(string fn_src) { - auto pod_root_ = pod_root(fn_src); - auto pth_1_ = asNormalizedPath(conf_root(fn_src).zpod.chainPath("css")).array; - auto pth_2_ = asNormalizedPath(conf_root(fn_src).filesystem_open_zpod.chainPath("css")).array; - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); - return pth_2_; - } - } - return _pods(); - } - auto media_root(string fn_src) { - auto pod_root_ = pod_root(fn_src); - auto pth_1_ = "media"; - auto pth_2_ = asNormalizedPath(pod_root(fn_src).filesystem_open_zpod.chainPath("media")).array; - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); - return pth_2_; - } - } - return _pods(); - } - auto text_root(string fn_src) { - auto pod_root_ = pod_root(fn_src); - auto pth_1_ = asNormalizedPath(media_root(fn_src).zpod.chainPath("text")).array; - auto pth_2_ = asNormalizedPath(media_root(fn_src).filesystem_open_zpod.chainPath("text")).array; - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); - return pth_2_; - } - } - return _pods(); - } - auto doc(string fn_src) { - auto pod_root_ = pod_root(fn_src); - auto pth_1_ = text_root(fn_src).zpod; - auto pth_2_ = text_root(fn_src).filesystem_open_zpod; - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); - return pth_2_; - } - } - return _pods(); - } - auto doc_lng(string fn_src, string lng) { - auto pod_root_ = pod_root(fn_src); - auto pth_1_ = asNormalizedPath(text_root(fn_src).zpod.chainPath(lng)).array; - auto pth_2_ = asNormalizedPath(text_root(fn_src).filesystem_open_zpod.chainPath(lng)).array; - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); - return pth_2_; - } - } - return _pods(); - } - auto image_root(string fn_src) { - auto pod_root_ = pod_root(fn_src); - auto pth_1_ = asNormalizedPath(media_root(fn_src).zpod.chainPath("image")).array; - auto pth_2_ = asNormalizedPath(media_root(fn_src).filesystem_open_zpod.chainPath("image")).array; - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); - return pth_2_; - } - } - return _pods(); - } - auto fn_pod_filelist(string fn_src) { - auto pod_root_ = pod_root(fn_src); - auto _manifest = PodManifest!()(fn_src).pod_manifest_filename; - auto pth_1_ = _manifest; - auto pth_2_ = asNormalizedPath(pod_root(fn_src).filesystem_open_zpod.chainPath(_manifest)).array; - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); - return pth_2_; - } - } - return _pods(); - } - auto fn_doc(string fn_src, string lng) { - auto pod_root_ = pod_root(fn_src); - auto pth_1_ = asNormalizedPath(doc_lng(fn_src, lng).zpod.chainPath(fn_src.baseName)).array; - auto pth_2_ = asNormalizedPath(doc_lng(fn_src, lng).filesystem_open_zpod.chainPath(fn_src.baseName)).array; - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); - return pth_2_; - } - } - return _pods(); - } - auto fn_doc_insert(string fn_src, string fn_insert, string lng) { - auto pod_root_ = pod_root(fn_src); - auto pth_1_ = asNormalizedPath(doc_lng(fn_src, lng).zpod.chainPath(fn_insert.baseName)).array; - auto pth_2_ = asNormalizedPath(doc_lng(fn_src, lng).filesystem_open_zpod.chainPath(fn_insert.baseName)).array; - struct _pods { - auto zpod() { - return pth_1_; - } - auto filesystem_open_zpod() { - assert(pod_root_.filesystem_open_zpod.chainPath(zpod).array == pth_2_); - return pth_2_; - } - } - return _pods(); - } - } - return _PodPaths(); - } -} diff --git a/src/sdp/output/sqlite.d b/src/sdp/output/sqlite.d index f805392..faff29b 100644 --- a/src/sdp/output/sqlite.d +++ b/src/sdp/output/sqlite.d @@ -685,10 +685,11 @@ template SQLiteTablesReCreate() { seg VARCHAR(256) NULL, lev_an VARCHAR(1), lev SMALLINT NULL, - t_of VARCHAR(16), - t_is VARCHAR(16), + is_of_type VARCHAR(16), + is_a VARCHAR(16), node VARCHAR(16) NULL, parent VARCHAR(16) NULL, + last_decendant VARCHAR(16) NULL, /* headings only */ digest_clean CHAR(256), digest_all CHAR(256), types CHAR(1) NULL @@ -874,8 +875,8 @@ template SQLiteInsertDocObjectsLoop() { clean, body, lev, - t_of, - t_is + is_of_type, + is_a ) VALUES ( %d, @@ -1173,10 +1174,11 @@ template SQLiteTablesCreate() { seg VARCHAR(256) NULL, lev_an VARCHAR(1), lev SMALLINT NULL, - t_of VARCHAR(16), - t_is VARCHAR(16), + is_of_type VARCHAR(16), + is_a VARCHAR(16), node VARCHAR(16) NULL, parent VARCHAR(16) NULL, + last_decendant VARCHAR(16) NULL, /* headings only */ digest_clean CHAR(256), digest_all CHAR(256), types CHAR(1) NULL diff --git a/src/sdp/output/xmls.d b/src/sdp/output/xmls.d index e389c5c..874329f 100644 --- a/src/sdp/output/xmls.d +++ b/src/sdp/output/xmls.d @@ -51,8 +51,8 @@ template outputXHTMLs() { return delimit; } string special_characters(O)( - auto ref const O obj, - string _txt + const O obj, + string _txt ){ _txt = (_txt) .replaceAll(rgx.xhtml_ampersand, "&") @@ -312,10 +312,10 @@ template outputXHTMLs() { return o; } auto inline_images(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "seg", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "seg", ) { string _img_pth; if (_xml_type == "epub") { @@ -335,10 +335,10 @@ template outputXHTMLs() { return _txt; } auto inline_links(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "seg", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "seg", ) { if (obj.has.inline_links) { if ((_txt.match(rgx.mark_internal_site_lnk)) @@ -381,8 +381,8 @@ template outputXHTMLs() { return _txt; } auto inline_notes_scroll(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { if (obj.has.inline_notes_reg) { _txt = font_face(_txt); @@ -404,8 +404,8 @@ template outputXHTMLs() { return _txt; } auto inline_notes_seg(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { string[] _endnotes; if (obj.has.inline_notes_reg) { @@ -443,9 +443,9 @@ template outputXHTMLs() { return t; } auto inline_markup_scroll(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", + const O obj, + string _txt, + string _suffix = ".html", ) { _txt = inline_images(obj, _txt, _suffix, "scroll"); _txt = inline_links(obj, _txt, _suffix, "scroll"); @@ -453,10 +453,10 @@ template outputXHTMLs() { return _txt; } auto inline_markup_seg(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "seg", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "seg", ) { _txt = inline_images(obj, _txt, _suffix, _xml_type); _txt = inline_links(obj, _txt, _suffix, _xml_type); @@ -464,7 +464,7 @@ template outputXHTMLs() { return t; } string lev4_heading_subtoc(O)( - auto ref const O obj, + const O obj, ) { char[] lev4_subtoc; lev4_subtoc ~= " <div class=\"nav\">\n"; @@ -490,7 +490,7 @@ template outputXHTMLs() { return lev4_subtoc.to!string; } auto nav_pre_next_svg(O)( - auto ref const O obj, + const O obj, ) { string prev, next, toc; if (obj.tags.segment_anchor_tag == "toc") { @@ -567,9 +567,9 @@ template outputXHTMLs() { return bar(); } auto heading(O)( - auto ref const O obj, - string _txt, - string _xml_type = "html", + const O obj, + string _txt, + string _xml_type = "html", ) { auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags); string _horizontal_rule = "<hr />"; @@ -616,9 +616,9 @@ template outputXHTMLs() { return o; } auto heading_scroll(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", + const O obj, + string _txt, + string _suffix = ".html", ) { auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags); _txt = inline_markup_scroll(obj, _txt, _suffix); @@ -626,10 +626,10 @@ template outputXHTMLs() { return o; } auto heading_seg(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "html", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "html", ) { auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type); _txt = t[0]; @@ -642,8 +642,8 @@ template outputXHTMLs() { return u; } auto para(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags); _txt = font_face(_txt); @@ -681,9 +681,9 @@ template outputXHTMLs() { return o; } auto para_scroll(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", + const O obj, + string _txt, + string _suffix = ".html", ) { auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags); _txt = inline_markup_scroll(obj, _txt, _suffix); @@ -691,10 +691,10 @@ template outputXHTMLs() { return o; } auto para_seg(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "html", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "html", ) { auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type); _txt = t[0].to!string; @@ -707,8 +707,8 @@ template outputXHTMLs() { return u; } auto quote(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { _txt = font_face(_txt); string o; @@ -738,9 +738,9 @@ template outputXHTMLs() { return o; } auto quote_scroll(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", + const O obj, + string _txt, + string _suffix = ".html", ) { auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags); _txt = inline_markup_scroll(obj, _txt, _suffix); @@ -748,10 +748,10 @@ template outputXHTMLs() { return o; } auto quote_seg(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "html", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "html", ) { auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type); _txt = t[0].to!string; @@ -764,8 +764,8 @@ template outputXHTMLs() { return u; } auto group(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { _txt = font_face(_txt); string o; @@ -795,10 +795,10 @@ template outputXHTMLs() { return o; } auto group_scroll(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "html", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "html", ) { auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags); _txt = inline_markup_scroll(obj, _txt, _suffix); @@ -806,10 +806,10 @@ template outputXHTMLs() { return o; } auto group_seg(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "html", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "html", ) { auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type); _txt = t[0].to!string; @@ -822,8 +822,8 @@ template outputXHTMLs() { return u; } auto block(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { _txt = font_face(_txt); string o; @@ -849,10 +849,10 @@ template outputXHTMLs() { return o; } auto block_scroll(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "html", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "html", ) { auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags); _txt = inline_markup_scroll(obj, _txt, _suffix); @@ -860,10 +860,10 @@ template outputXHTMLs() { return o; } auto block_seg(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "html", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "html", ) { auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type); _txt = t[0].to!string; @@ -876,8 +876,8 @@ template outputXHTMLs() { return u; } auto verse(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { _txt = font_face(_txt); string o; @@ -903,10 +903,10 @@ template outputXHTMLs() { return o; } auto verse_scroll(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "html", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "html", ) { auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags); _txt = inline_markup_scroll(obj, _txt, _suffix); @@ -914,10 +914,10 @@ template outputXHTMLs() { return o; } auto verse_seg(O)( - auto ref const O obj, - string _txt, - string _suffix = ".html", - string _xml_type = "html", + const O obj, + string _txt, + string _suffix = ".html", + string _xml_type = "html", ) { auto t = inline_markup_seg(obj, _txt, _suffix, _xml_type); _txt = t[0].to!string; @@ -930,8 +930,8 @@ template outputXHTMLs() { return u; } auto tablarize(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { string[] _table_rows = (_txt).split(rgx.table_delimiter_row); string[] _table_cols; @@ -963,8 +963,8 @@ template outputXHTMLs() { return t; } auto table(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { auto tags = _xhtml_anchor_tags(obj.tags.anchor_tags); _txt = font_face(_txt); @@ -992,8 +992,8 @@ template outputXHTMLs() { return o; } auto endnote(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { string o; o = format(q"¶ <p class="%s" indent="h%si%s"> @@ -1007,8 +1007,8 @@ template outputXHTMLs() { return o; } auto code(O)( - auto ref const O obj, - string _txt, + const O obj, + string _txt, ) { string o; if (obj.metainfo.object_number.empty) { |