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) {  | 
