diff options
24 files changed, 393 insertions, 910 deletions
| @@ -13,7 +13,8 @@  !conf.sdl  !org  !src -!src/* +!src/sdp +!src/sdp/*  !data  !data/*  !data/sisupod/** @@ -139,9 +139,10 @@ ldc_rel_expunge_tangle: expunge skel tangle ldc_rel_tangle  ldc_debug_tangle: tangle  	$(DUB) --compiler=ldc2 --config=sdp-ldc-debug  skel: -	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/meta; \  	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/conf; \ +	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/meta; \  	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/output; \ +	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/source; \  	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME); \  	mkdir -p $(PRG_BINDIR);  init: skel @@ -327,9 +327,10 @@ ldc_debug_tangle: tangle  #+BEGIN_SRC makefile :tangle makefile  skel: -	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/meta; \  	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/conf; \ +	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/meta; \  	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/output; \ +	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME)/source; \  	mkdir -p $(PRG_SRCDIR)/$(PRG_NAME); \  	mkdir -p $(PRG_BINDIR);  init: skel @@ -1091,7 +1092,8 @@ mixin build!(_compile, _dub_conf);  !conf.sdl  !org  !src -!src/* +!src/sdp +!src/sdp/*  !data  !data/*  !data/sisupod/** diff --git a/org/default_paths.org b/org/default_paths.org index b8ff2a4..5b7141a 100644 --- a/org/default_paths.org +++ b/org/default_paths.org @@ -18,13 +18,13 @@  * 0. source paths                                   :module:sdp:paths_source:  ** 0. module template -#+BEGIN_SRC d :tangle ../src/sdp/output/paths_source.d +#+BEGIN_SRC d :tangle ../src/sdp/source/paths_source.d  /++    read configuration files<BR>    - read config files<BR>    meta_config_files.d  +/ -module sdp.output.paths_source; +module sdp.source.paths_source;  import std.array,    std.file,    std.path, @@ -49,11 +49,10 @@ template PodManifest() {      P   _pth    ) {      struct ManifestFile_ { -      auto pod_manifest_filename() { -        string _manifest_file = "sisupod.manifest"; -        return _manifest_file; +      string pod_manifest_filename() { +        return "sisupod.manifest";        } -      auto pod_manifest_path() { +      string pod_manifest_path() {          string _manifest_path;          if ((isValidPath(_pth) && exists(_pth)!=0 && _pth.isDir)          && (exists(_pth.chainPath(pod_manifest_filename).array)!=0 @@ -115,11 +114,11 @@ sisupod  template PathMatters() {    mixin SiSUrgxInit;    static auto rgx = Rgx(); -  auto PathMatters(O,E,P,F)( -    O   _opt_actions, -    E   _env, -    P   _pth, -    F   _fns                   = "", +  auto PathMatters(O,E)( +    O        _opt_actions, +    E        _env, +    string   _pth, +    string   _fns              = "",      char[][] _manifest_fn_list = [[]],    ) {      auto _manifest = PodManifest!()(_pth); @@ -145,15 +144,13 @@ template PathMatters() {          }          return Opt_();        } -      auto src_is_pod() { -        auto _src_is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; -        return _src_is_pod; +      bool src_is_pod() { +        return (_manifest.pod_manifest_path.length > 0) ? true : false;        }        auto pod() {          struct Pod_ { -          auto src_is_pod() { -            auto _src_is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; -            return _src_is_pod; +          bool src_is_pod() { +            return (_manifest.pod_manifest_path.length > 0) ? true : false;            }            auto collection_root() {              auto _collection_root = asNormalizedPath(chainPath(_manifest.pod_manifest_path, "..")).array; @@ -164,34 +161,34 @@ template PathMatters() {              }              return _collection_root;            } -          auto manifest_filename() { +          string manifest_filename() {              return _manifest.pod_manifest_filename;            } -          auto manifest_path() { +          string manifest_path() {              return _manifest.pod_manifest_path;            } -          auto pod_name() { // TODO decide what returned if src_is_pod == false +          string pod_name() {              return _manifest.pod_manifest_path.baseName;            } -          auto manifest_file_with_path() { +          string manifest_file_with_path() {              return _manifest.pod_manifest_file_with_path;            } -          auto config_sisu_document_make_dirs() {                              // TODO sisu_document_make +          string[] config_sisu_document_make_dirs() {              string[] _config_dirs;              return _config_dirs;            } -          auto config_local_site_dirs() {                   // TODO sisu_document_make +          string[] config_local_site_dirs() {              string[] _config_dirs;              return _config_dirs;            } -          auto image_dirs() {                               // TODO +          string[] image_dirs() {              string[] _image_dirs;              return _image_dirs;            }            auto manifest_list_of_filenames() {              return _manifest_fn_list;            } -          auto manifest_list_of_languages() { +          string[] manifest_list_of_languages() {              string[] _lngs;              foreach (filename_; manifest_list_of_filenames) {                string _k = "en"; @@ -211,41 +208,32 @@ template PathMatters() {          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; +          bool is_pod() { +            return (_manifest.pod_manifest_path.length > 0) ? true : false;            } -          auto path_and_fn() { +          string path_and_fn() {              return _fns;            } -          auto pod_name() { /+ work on +/ -            auto _pod_name = (is_pod) -            ? _manifest.pod_manifest_path -            : ""; -            return _pod_name; +          string pod_name() { +            return (is_pod) ? _manifest.pod_manifest_path : "";            } -          auto filename() { -            auto _fn = (path_and_fn).baseName; -            return _fn; +          string filename() { +            return path_and_fn.baseName;            } -          auto filename_base() { -            auto _fn = filename.stripExtension; -            return _fn; +          string filename_base() { +            return filename.stripExtension;            } -          auto filename_extension() { -            auto _ext = filename.match(rgx.src_pth_sst_or_ssm).captures["extension"]; -            return _ext; +          string filename_extension() { +            return filename.match(rgx.src_pth_sst_or_ssm).captures["extension"];            } -          auto lng() { +          string lng() {              string _k;              if (auto m = path_and_fn.match(rgx.language_code_and_filename)) {                _k = m.captures[1]; -            } else { -              _k = "en"; -            } +            } else {_k = "en"; }              return _k;            } -          auto docname_composite_unique_per_src_doc() { +          string docname_composite_unique_per_src_doc() {            /+              z pod name if any + src filename + lng code               filename ~ "." ~  lng @@ -263,7 +251,7 @@ template PathMatters() {              }              return _fn;            } -          auto docname_composite_unique_per_src_pod() { +          string docname_composite_unique_per_src_pod() {            /+              z pod name if any + src filename (without lng code)               filename ~ _sep ~ lng @@ -282,18 +270,16 @@ template PathMatters() {              }              return _fn;            } -          auto language() { +          string language() {              return lng();            } -          auto file_with_absolute_path() { -            string _pth = _env["pwd"].chainPath(path_and_fn).array; -            return _pth; +          string file_with_absolute_path() { +            return _env["pwd"].chainPath(path_and_fn).array;            } -          auto absolute_path_to_src() { -            string _pth = (_env["pwd"].chainPath(path_and_fn)).dirName.array; -            return _pth; +          string absolute_path_to_src() { +            return (_env["pwd"].chainPath(path_and_fn)).dirName.array;            } -          auto base_dir() { +          string base_dir() {              string _dir;              if ( // TODO this should catch generated --source sisupod, untested, needs manifest                auto m = (absolute_path_to_src) @@ -311,7 +297,7 @@ template PathMatters() {              }              return _dir;            } -          auto base_parent_dir_path() { +          string base_parent_dir_path() {              string _dir;              if ( // TODO this should catch generated --source sisupod, untested, needs manifest                auto m = (absolute_path_to_src) @@ -323,7 +309,7 @@ template PathMatters() {              }              return _dir;            } -          auto base_dir_path() { // looks like there is work to do +          string base_dir_path() {              string _dir;              if (                auto m = (absolute_path_to_src) @@ -343,11 +329,11 @@ template PathMatters() {              }              return _dir;            } -          auto media_dir_path() { // TODO rework, can base directly on src fn path +          string media_dir_path() {              string _dir = asNormalizedPath(base_dir_path.chainPath("media")).array;              return _dir;            } -          auto image_dir_path() { +          string image_dir_path() {              string _paths;              string[] _possible_img_pths = [ "./image", "../image", "../../image" ];              string _img_pth_found = ""; @@ -372,8 +358,7 @@ template PathMatters() {              return _img_pth_found;            }            auto conf_dir_path() { -            auto _dir = asNormalizedPath(base_dir_path.chainPath("conf")).array; -            return _dir; +            return asNormalizedPath(base_dir_path.chainPath("conf")).array;            }            auto base_parent_dir() {              string _dir; @@ -390,18 +375,16 @@ template PathMatters() {              }              return _dir;            } -          auto config_dirs() {                              // TODO +          string[] config_dirs() {              string[] _config_dirs;              if (is_pod) { -            } else { -            } +            } else {}              return _config_dirs;            } -          auto image_dirs() {                               // TODO +          string[] image_dirs() {              string[] _image_dirs;              if (is_pod) { -            } else { -            } +            } else {}              return _image_dirs;            }          } @@ -453,15 +436,15 @@ template ConfigFilePaths() {      E   _env,    ) {      struct ConfFilePaths { -      auto config_filename_document_toml() { +      string config_filename_document_toml() {          return "sisu_document_make";        } -      auto config_filename_site_toml() { +      string config_filename_site_toml() {          return "config_local_site";        }        auto possible_config_path_locations() {          struct _ConfFilePaths { -          auto sisu_document_make() { +          string[] sisu_document_make() {              /+ FIX clean up conf paths ↓ +/              /+ config local site (file system only, not in pod) +/              /+ return paths +/ @@ -504,7 +487,7 @@ template ConfigFilePaths() {              +/              return _possible_config_path_locations;            } -          auto config_local_site() { +          string[] 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; @@ -617,7 +600,7 @@ template SiSUpathsSRC() {        auto pwd() {          return _pwd;        } -      auto language() { +      string language() {          // use command line info as well?          string _k;          if (auto m = _fn_src_and_path.match(rgx.language_code_and_filename)) { @@ -627,7 +610,7 @@ template SiSUpathsSRC() {          }          return _k;        } -      auto doc_root() { +      string doc_root() {          return "sisudoc";        }        auto media_root() { @@ -944,13 +927,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; @@ -965,13 +944,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; @@ -1006,7 +981,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/org/imports.org b/org/imports.org index 64bc4c3..d82da9e 100644 --- a/org/imports.org +++ b/org/imports.org @@ -73,7 +73,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/org/meta_debugs.org b/org/meta_debugs.org index 8542a32..1807ec8 100644 --- a/org/meta_debugs.org +++ b/org/meta_debugs.org @@ -26,8 +26,8 @@ module sdp.meta.doc_debugs;  template SiSUdebugs() {    <<debug_imports>>    auto SiSUdebugs(S,T)( -    auto return ref const S  contents, -    auto return ref T        doc_matters, +    const S  contents, +          T  doc_matters,    ) {      mixin SiSUrgxInit;      mixin InternalMarkup; @@ -136,8 +136,8 @@ debug(dumpdoc) {  #+BEGIN_SRC d  debug(checkdoc) {    void out_segnames(S,T)( -    auto return ref const S  contents, -    auto return ref T        doc_matters, +    const S  contents, +          T  doc_matters,    ) {      foreach (key; doc_matters.xml.keys_seq.seg) {        if (contents[key].length > 1) { @@ -159,7 +159,7 @@ debug(checkdoc) {  #+BEGIN_SRC d  debug(checkdoc) {    void out_toc(S)( -    auto return ref const S  contents, +    const S  contents,      string                   key,    ) {      if (contents[key].length > 1) { @@ -183,7 +183,7 @@ debug(checkdoc) {  #+BEGIN_SRC d  debug(checkdoc) {    void out_endnotes(S)( -    auto return ref const S  contents, +    const S  contents,      string                   key,    ) {      if (contents[key].length > 1) { @@ -205,7 +205,7 @@ debug(checkdoc) {  #+BEGIN_SRC d  debug(checkdoc) {    void out_bookindex(S)( -    auto return ref const S  contents, +    const S  contents,      string                   key,    ) {      if (contents[key].length > 1) { diff --git a/org/output_sqlite.org b/org/output_sqlite.org index e8a29bf..dc76da4 100644 --- a/org/output_sqlite.org +++ b/org/output_sqlite.org @@ -1223,10 +1223,11 @@ CREATE TABLE doc_objects (    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 @@ -1276,8 +1277,8 @@ _insert_doc_objects_row = format(q"¶      clean,      body,      lev, -    t_of, -    t_is +    is_of_type, +    is_a    )  #+END_SRC diff --git a/org/output_xmls.org b/org/output_xmls.org index 122b15c..0aa50d5 100644 --- a/org/output_xmls.org +++ b/org/output_xmls.org @@ -98,8 +98,8 @@ string div_delimit(  #+name: xhtml_format_objects  #+BEGIN_SRC d  string special_characters(O)( -  auto ref const O           obj, -  string                     _txt +  const  O         obj, +  string           _txt  ){    _txt = (_txt)      .replaceAll(rgx.xhtml_ampersand,    "&") @@ -421,10 +421,10 @@ auto tail() {  #+name: xhtml_format_objects  #+BEGIN_SRC d  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") { @@ -450,10 +450,10 @@ auto inline_images(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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)) @@ -502,8 +502,8 @@ auto inline_links(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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); @@ -531,8 +531,8 @@ auto inline_notes_scroll(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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) { @@ -576,9 +576,9 @@ auto inline_notes_seg(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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"); @@ -592,10 +592,10 @@ auto inline_markup_scroll(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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); @@ -610,7 +610,7 @@ auto inline_markup_seg(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  string lev4_heading_subtoc(O)( -  auto ref const O    obj, +  const  O         obj,  ) {    char[] lev4_subtoc;    lev4_subtoc ~= "  <div class=\"nav\">\n"; @@ -642,7 +642,7 @@ string lev4_heading_subtoc(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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") { @@ -726,9 +726,9 @@ auto nav_pre_next_svg(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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 />"; @@ -781,9 +781,9 @@ auto heading(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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); @@ -797,10 +797,10 @@ auto heading_scroll(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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]; @@ -820,8 +820,8 @@ auto heading_seg(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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); @@ -865,9 +865,9 @@ auto para(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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); @@ -881,10 +881,10 @@ auto para_scroll(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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; @@ -904,8 +904,8 @@ auto para_seg(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  auto quote(O)( -  auto ref const O    obj, -  string                     _txt, +  const  O         obj, +  string           _txt,  ) {    _txt = font_face(_txt);    string o; @@ -941,9 +941,9 @@ auto quote(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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); @@ -957,10 +957,10 @@ auto quote_scroll(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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; @@ -980,8 +980,8 @@ auto quote_seg(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  auto group(O)( -  auto ref const O    obj, -  string                     _txt, +  const  O         obj, +  string           _txt,  ) {    _txt = font_face(_txt);    string o; @@ -1017,10 +1017,10 @@ auto group(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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); @@ -1034,10 +1034,10 @@ auto group_scroll(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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; @@ -1057,8 +1057,8 @@ auto group_seg(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  auto block(O)( -  auto ref const O    obj, -  string                     _txt, +  const  O         obj, +  string           _txt,  ) {    _txt = font_face(_txt);    string o; @@ -1090,10 +1090,10 @@ auto block(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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); @@ -1107,10 +1107,10 @@ auto block_scroll(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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; @@ -1130,8 +1130,8 @@ auto block_seg(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  auto verse(O)( -  auto ref const O    obj, -  string                     _txt, +  const  O         obj, +  string           _txt,  ) {    _txt = font_face(_txt);    string o; @@ -1163,10 +1163,10 @@ auto verse(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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); @@ -1180,10 +1180,10 @@ auto verse_scroll(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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; @@ -1202,8 +1202,8 @@ auto verse_seg(O)(  #+name: xhtml_format_objects_code  #+BEGIN_SRC d  auto code(O)( -  auto ref const O  obj, -  string                   _txt, +  const  O         obj, +  string           _txt,  ) {    string o;    if (obj.metainfo.object_number.empty) { @@ -1243,8 +1243,8 @@ align="left|right|center"  #+name: xhtml_format_objects  #+BEGIN_SRC d  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; @@ -1282,8 +1282,8 @@ auto tablarize(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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); @@ -1317,8 +1317,8 @@ auto table(O)(  #+name: xhtml_format_objects  #+BEGIN_SRC d  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"> @@ -1354,8 +1354,8 @@ template outputHTML() {  #+name: output_html_scroll  #+BEGIN_SRC d  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(); @@ -1535,8 +1535,8 @@ void scroll_write_output(M,C)(  #+name: output_html_seg  #+BEGIN_SRC d  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(); @@ -2216,8 +2216,8 @@ string epub2_oebps_toc_ncx(D,I)(D doc_abstraction, I doc_matters) {  #+name: output_epub3_xhtml_seg  #+BEGIN_SRC d  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/org/sdp.org b/org/sdp.org index fe34840..b26f317 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -26,7 +26,7 @@ struct Version {    int minor;    int patch;  } -enum ver = Version(0, 26, 3); +enum ver = Version(0, 26, 4);  #+END_SRC  ** compilation restrictions (supported compilers) @@ -120,11 +120,11 @@ import    sdp.meta.conf_make_meta_json,    sdp.meta.defaults,    sdp.meta.doc_debugs, -  sdp.meta.read_config_files, -  sdp.meta.read_source_files,    sdp.meta.rgx, -  sdp.output.hub, -  sdp.output.paths_source; +  sdp.source.paths_source, +  sdp.source.read_config_files, +  sdp.source.read_source_files, +  sdp.output.hub;  #+END_SRC  ****** notes @@ -141,7 +141,7 @@ import  [[./meta_conf_make_meta.org][meta_conf_make_meta]]  [[./meta_defaults.org][meta_defaults]]  [[./meta_output_debugs.org][meta_output_debugs]] -[[./meta_read_source_files.org][meta_read_source_files]] +[[./source_read_files.org][source_read_files]]  [[./compile_time_info.org][compile time info]]  [[./output.org][output]]  [[./sdp.org][sdp]] @@ -201,7 +201,7 @@ static auto rgx = Rgx();  scope(success) {    debug(checkdoc) {      writefln( -      "~ run complete, ok ~ (sdp-%s.%s.%s, %s v%s, %s %s)", +      "~ run complete, ok ~ (sdp-%s.%s.%s, %s D:%s, %s %s)",        ver.major, ver.minor, ver.patch,        __VENDOR__, __VERSION__,        bits, os, @@ -740,7 +740,7 @@ template SiSUabstraction() {  #+END_SRC  ** 1. raw file content split, doc: _header_, _content_ +(lists: subdocs? images?)   >> -- [[./meta_read_source_files.org][meta_read_source_files]] +- [[./source_read_files.org][source_read_files]]  - read in the _marked up source document_ and    - split the document into: diff --git a/org/meta_read_source_files.org b/org/source_files_read.org index b726631..899e628 100644 --- a/org/meta_read_source_files.org +++ b/org/source_files_read.org @@ -21,21 +21,21 @@  #+BEGIN_SRC d  import    sdp.meta, -  sdp.output.paths_source, +  sdp.source.paths_source,    std.file,    std.path;  #+END_SRC -* A. get _config file_ (read in)            :module:sdp:meta_read_config_files: +* A. get _config file_ (read in)            :module:sdp:source_read_config_files:  ** 0. module template -#+BEGIN_SRC d :tangle ../src/sdp/meta/read_config_files.d +#+BEGIN_SRC d :tangle ../src/sdp/source/read_config_files.d  /++    read configuration files<BR>    - read config files<BR>    meta_config_files.d  +/ -module sdp.meta.read_config_files; +module sdp.source.read_config_files;  <<meta_config_file_in>>  <<meta_config_file_toml>>  <<meta_config_file_hub>> @@ -272,16 +272,16 @@ static template configReadDocTOML() {  }  #+END_SRC -* B. get _markup source_, read file         :module:sdp:meta_read_source_files: +* B. get _markup source_, read file         :module:sdp:source_read_source_files:  ** 0. module template (includes tuple) -#+BEGIN_SRC d :tangle ../src/sdp/meta/read_source_files.d +#+BEGIN_SRC d :tangle ../src/sdp/source/read_source_files.d  /++ -  module meta_read_source_files;<BR> +  module source_read_source_files;<BR>    - open markup files<BR>    - if master file scan for addional files to import/insert  +/ -module sdp.meta.read_source_files; +module sdp.source.read_source_files;  static template SiSUrawMarkupContent() {    import      sdp.meta.rgx; diff --git a/src/sdp/meta/conf_make_meta_sdlang.d b/src/sdp/meta/conf_make_meta_sdlang.d deleted file mode 100644 index 4ebe960..0000000 --- a/src/sdp/meta/conf_make_meta_sdlang.d +++ /dev/null @@ -1,474 +0,0 @@ -/++ -  extract native/orig header return associative array<BR> - -  the header is passed as text (lopped off top of a sisu markup file until the -  required first heading ^A~), determine whether is a native header or sdlang one -  with a regex check if whether it contains the "native header" required tag/field -  @title: then process accordingly as a "native header" or "sdlang header" -  converting the metadata and make instructions to a common json format used by -  program internally. Moved to associative array. -+/ -module sdp.meta.conf_make_meta_sdlang; -static template docHeaderMakeAndMetaTupSDLangExtractAndConvertToStruct() { -  import -    std.exception, -    std.regex, -    std.stdio, -    std.traits, -    std.typecons, -    std.utf, -    std.conv : to; -  import sdlang; -  import -    sdp.meta.conf_make_meta_sdlang, -    sdp.meta.rgx; -  mixin SiSUrgxInit; -  mixin SiSUextractSDLang; -  static auto rgx = Rgx(); -  auto docHeaderMakeAndMetaTupSDLangExtractAndConvertToStruct(CCm, Src)( -    CCm     conf_composite_make, -    Src     header_src, -  ) { -    auto header_sdlang_tag = (header_src.match(rgx.sdlang_header_meta_title)) -    ? extractSDL().docHeaderSDLtagGet(header_src) // sdlang.ast.Tag -    : null; -    auto header_make_and_meta_struct = extractSDL().docSDLtoStruct(conf_composite_make, header_sdlang_tag); -    return header_make_and_meta_struct; -  } -} -/++ -  sdlang headers<BR> -  extract sdlang header return sdlang -+/ -static template SiSUextractSDLang() { -  import -    std.exception, -    std.regex, -    std.stdio, -    std.string, -    std.traits, -    std.typecons, -    std.utf, -    std.conv : to; -  import -    sdp.meta.conf_make_meta_structs, -    sdp.meta.rgx; -  struct extractSDL { -    mixin SiSUmakeMetaStructsSDLang; -    mixin SiSUrgxInit; -    static auto rgx = Rgx(); -    private auto docHeaderSDLtagGet(Hs)(Hs src_header) { -      debug(asserts){ -        static assert(is(typeof(src_header) == char[])); -      } -      char[][] source_header_arr -        = (cast(char[]) src_header).split(rgx.newline_eol_delimiter); -      char[] _src_header; -      foreach(header_line; source_header_arr) { -        if (!match(header_line, rgx.comments)) { -          _src_header ~= header_line ~ "\n"; -        } -      } -      scope(failure) { -        stderr.writefln( -          "%s\n%s\n%s:%s failed here:\n  _src_header: %s", -          __MODULE__, __FUNCTION__, -          __FILE__, __LINE__, -          _src_header, -        ); -      } -      Tag sdl_root_header; -      try { -        sdl_root_header = parseSource(_src_header.to!string); -      } -      catch(ParseException e) { -        stderr.writeln("SDLang problem with this document header:"); -        stderr.writeln(_src_header); -        // Error messages of the form: -        // myFile.sdl(5:28): Error: Invalid integer suffix. -        stderr.writeln(e.msg); -      } -      debug(sdlang) { -        writeln("header SDL:"); -        writeln(__LINE__, ": ",  sdl_root_header.toSDLDocument()); -        writeln(__LINE__, ": ",  sdl_root_header.maybe.namespaces); -        writeln("header make sdlang: ", sdl_root_header.toSDLDocument()); -        writeln(__LINE__, ": ", sdl_root_header.getTagValues("title")); -        writeln(__LINE__, ": ", sdl_root_header.getTagValues("creator")); -        Tag creator = sdl_root_header.getTag("creator"); -        if (creator !is null) { -          if ("author" in creator.maybe.tags) { -            writeln(__LINE__, ": ", creator.getTagValues("author")); -          } else if ("author" in creator.maybe.attributes) { -            writeln(__LINE__, ": ", creator.maybe.attributes["author"][0].value); -          } -        } -      } -      return sdl_root_header; // sdlang.ast.Tag -    } -    private auto docSDLtoStruct(C,Tag)(C _conf_composite, Tag header_sdlang) { // work on -      /+ make ------------------------------------------------------------------- +/ -      if ("make" in header_sdlang.maybe.tags) { -        confCompositeMakeBuild _mk; -        _conf_composite.make_str.bold                       = extractSDLangTabOrAttrib(header_sdlang, "make", "bold"); // TODO -        _conf_composite.make_str.breaks                     = extractSDLangTabOrAttrib(header_sdlang, "make", "breaks"); -        _conf_composite.make_str.cover_image                = extractSDLangTabOrAttrib(header_sdlang, "make", "cover_image"); -        _conf_composite.make_str.css                        = extractSDLangTabOrAttrib(header_sdlang, "make", "css"); -        _conf_composite.make_str.emphasis                   = extractSDLangTabOrAttrib(header_sdlang, "make", "emphasis"); // TODO -        _conf_composite.make_str.footer                     = extractSDLangTabOrAttrib(header_sdlang, "make", "footer"); -        _conf_composite.make_str.headings                   = extractSDLangTabOrAttrib(header_sdlang, "make", "headings"); -        _conf_composite.make_str.home_button_image          = extractSDLangTabOrAttrib(header_sdlang, "make", "home_button_image"); -        _conf_composite.make_str.home_button_text           = extractSDLangTabOrAttrib(header_sdlang, "make", "home_button_text"); -        _conf_composite.make_str.italics                    = extractSDLangTabOrAttrib(header_sdlang, "make", "italics"); // TODO -        _conf_composite.make_str.num_top                    = extractSDLangTabOrAttrib(header_sdlang, "make", "num_top"); -        _conf_composite.make_str.num_depth                  = extractSDLangTabOrAttrib(header_sdlang, "make", "num_depth"); -        _conf_composite.make_str.substitute                 = extractSDLangTabOrAttrib(header_sdlang, "make", "substitute"); // TODO -        _conf_composite.make_str.texpdf_font                = extractSDLangTabOrAttrib(header_sdlang, "make", "texpdf_font"); -        _conf_composite.make.bold_rgxmatch                  = _mk.bold_rgxmatch(_conf_composite.make_str.bold); -        _conf_composite.make.breaks                         = _mk.breaks(_conf_composite.make_str.breaks); -        _conf_composite.make.cover_image                    = _mk.cover_image(_conf_composite.make_str.cover_image); -        _conf_composite.make.css                            = _mk.css(_conf_composite.make_str.css); -        _conf_composite.make.emphasis_rgxmatch              = _mk.emphasis_rgxmatch(_conf_composite.make_str.emphasis); -        _conf_composite.make.footer                         = _mk.footer(_conf_composite.make_str.footer); -        _conf_composite.make.headings                       = _mk.headings(_conf_composite.make_str.headings); -        _conf_composite.make.home_button_image              = _mk.home_button_image(_conf_composite.make_str.home_button_image); -        _conf_composite.make.home_button_text               = _mk.home_button_text(_conf_composite.make_str.home_button_text); -        _conf_composite.make.italics_rgxmatch               = _mk.italics_rgxmatch(_conf_composite.make_str.italics); -        _conf_composite.make.num_top                        = _mk.num_top(_conf_composite.make_str.num_top); -        _conf_composite.make.num_depth                      = _mk.num_depth(_conf_composite.make_str.num_depth); -        _conf_composite.make.substitute                     = _mk.substitute(_conf_composite.make_str.substitute); -        _conf_composite.make.texpdf_font                    = _mk.texpdf_font(_conf_composite.make_str.texpdf_font); -      } -      /+ conf ------------------------------------------------------------------- +/ -      if ("webserv" in header_sdlang.maybe.tags) { -        _conf_composite.conf.webserv_url_root               = extractSDLangTabOrAttrib(header_sdlang, "webserv", "url_root"); -        _conf_composite.conf.webserv_path                   = extractSDLangTabOrAttrib(header_sdlang, "webserv", "path"); -        _conf_composite.conf.webserv_images                 = extractSDLangTabOrAttrib(header_sdlang, "webserv", "images"); -        _conf_composite.conf.webserv_cgi                    = extractSDLangTabOrAttrib(header_sdlang, "webserv", "cgi"); -        _conf_composite.conf.webserv_cgi_host               = extractSDLangTabOrAttrib(header_sdlang, "webserv", "cgi_host"); -        _conf_composite.conf.webserv_cgi_host_path          = extractSDLangTabOrAttrib(header_sdlang, "webserv", "cgi_host_path"); -        _conf_composite.conf.webserv_cgi_port               = extractSDLangTabOrAttrib(header_sdlang, "webserv", "cgi_port"); -        _conf_composite.conf.webserv_cgi_user               = extractSDLangTabOrAttrib(header_sdlang, "webserv", "cgi_user"); -        _conf_composite.conf.webserv_cgi_file_links         = extractSDLangTabOrAttrib(header_sdlang, "webserv", "cgi_file_links"); -      } -      if ("processing" in header_sdlang.maybe.tags) { -        _conf_composite.conf.processing_path                = extractSDLangTabOrAttrib(header_sdlang, "webserv", "processing_path"); -        _conf_composite.conf.processing_dir                 = extractSDLangTabOrAttrib(header_sdlang, "webserv", "processing_dir"); -        _conf_composite.conf.processing_concord_max         = extractSDLangTabOrAttrib(header_sdlang, "webserv", "processing_concord_max"); -      } -      if ("flag" in header_sdlang.maybe.tags) { -        _conf_composite.conf.flag_act0                      = extractSDLangTabOrAttrib(header_sdlang, "flag", "act0"); -        _conf_composite.conf.flag_act1                      = extractSDLangTabOrAttrib(header_sdlang, "flag", "act1"); -        _conf_composite.conf.flag_act2                      = extractSDLangTabOrAttrib(header_sdlang, "flag", "act2"); -        _conf_composite.conf.flag_act3                      = extractSDLangTabOrAttrib(header_sdlang, "flag", "act3"); -        _conf_composite.conf.flag_act4                      = extractSDLangTabOrAttrib(header_sdlang, "flag", "act4"); -        _conf_composite.conf.flag_act5                      = extractSDLangTabOrAttrib(header_sdlang, "flag", "act5"); -        _conf_composite.conf.flag_act6                      = extractSDLangTabOrAttrib(header_sdlang, "flag", "act6"); -        _conf_composite.conf.flag_act7                      = extractSDLangTabOrAttrib(header_sdlang, "flag", "act7"); -        _conf_composite.conf.flag_act8                      = extractSDLangTabOrAttrib(header_sdlang, "flag", "act8"); -        _conf_composite.conf.flag_act9                      = extractSDLangTabOrAttrib(header_sdlang, "flag", "act9"); -      } -      if ("default" in header_sdlang.maybe.tags) { -        _conf_composite.conf.default_papersize              = extractSDLangTabOrAttrib(header_sdlang, "default", "papersize"); -        _conf_composite.conf.default_text_wrap              = extractSDLangTabOrAttrib(header_sdlang, "default", "text_wrap"); -        _conf_composite.conf.default_emphasis               = extractSDLangTabOrAttrib(header_sdlang, "default", "emphasis"); -        _conf_composite.conf.default_language               = extractSDLangTabOrAttrib(header_sdlang, "default", "language"); -        _conf_composite.conf.default_digest                 = extractSDLangTabOrAttrib(header_sdlang, "default", "digest"); -      } -      if ("search" in header_sdlang.maybe.tags) { -        _conf_composite.conf.search_flag                    = extractSDLangTabOrAttrib(header_sdlang, "search", "flag"); -        _conf_composite.conf.search_action                  = extractSDLangTabOrAttrib(header_sdlang, "search", "action"); -        _conf_composite.conf.search_db                      = extractSDLangTabOrAttrib(header_sdlang, "search", "db"); -        _conf_composite.conf.search_title                   = extractSDLangTabOrAttrib(header_sdlang, "search", "title"); -      } -      /+ meta ------------------------------------------------------------------- +/ -      if ("classify" in header_sdlang.maybe.tags) { -        _conf_composite.meta.classify_dewey                 = extractSDLangTabOrAttrib(header_sdlang, "classify", "dewey"); -        _conf_composite.meta.classify_keywords              = extractSDLangTabOrAttrib(header_sdlang, "classify", "keywords"); -        _conf_composite.meta.classify_loc                   = extractSDLangTabOrAttrib(header_sdlang, "classify", "loc"); -        _conf_composite.meta.classify_subject               = extractSDLangTabOrAttrib(header_sdlang, "classify", "subject"); -        _conf_composite.meta.classify_topic_register        = extractSDLangTabOrAttrib(header_sdlang, "classify", "topic_register"); -      } -      if ("date" in header_sdlang.maybe.tags) { -        _conf_composite.meta.date_added_to_site             = extractSDLangTabOrAttrib(header_sdlang, "date", "added_to_site"); -        _conf_composite.meta.date_available                 = extractSDLangTabOrAttrib(header_sdlang, "date", "available"); -        _conf_composite.meta.date_created                   = extractSDLangTabOrAttrib(header_sdlang, "date", "created"); -        _conf_composite.meta.date_issued                    = extractSDLangTabOrAttrib(header_sdlang, "date", "issued"); -        _conf_composite.meta.date_modified                  = extractSDLangTabOrAttrib(header_sdlang, "date", "modified"); -        _conf_composite.meta.date_published                 = extractSDLangTabOrAttrib(header_sdlang, "date", "published"); -        _conf_composite.meta.date_valid                     = extractSDLangTabOrAttrib(header_sdlang, "date", "valid"); -      } -      if ("identifier" in header_sdlang.maybe.tags) { -        _conf_composite.meta.identifier_isbn                = extractSDLangTabOrAttrib(header_sdlang, "identifier", "isbn"); -        _conf_composite.meta.identifier_oclc                = extractSDLangTabOrAttrib(header_sdlang, "identifier", "oclc"); -        _conf_composite.meta.identifier_pg                  = extractSDLangTabOrAttrib(header_sdlang, "identifier", "pg"); -      } -      if ("links" in header_sdlang.maybe.tags) { -        // _conf_composite.meta.links                         = extractSDLangTabOrAttrib(header_sdlang, "links", ""); -      } -      if ("notes" in header_sdlang.maybe.tags) { -        _conf_composite.meta.notes_abstract                 = extractSDLangTabOrAttrib(header_sdlang, "notes", "abstract"); -        _conf_composite.meta.notes_description              = extractSDLangTabOrAttrib(header_sdlang, "notes", "description"); -      } -      if ("original" in header_sdlang.maybe.tags) { -        _conf_composite.meta.original_language              = extractSDLangTabOrAttrib(header_sdlang, "original", "language"); -        _conf_composite.meta.original_language_char         = extractSDLangTabOrAttrib(header_sdlang, "original", "language_char"); -        _conf_composite.meta.original_source                = extractSDLangTabOrAttrib(header_sdlang, "original", "source"); -        _conf_composite.meta.original_title                 = extractSDLangTabOrAttrib(header_sdlang, "original", "title"); -      } -      if ("publisher" in header_sdlang.maybe.tags) { -        // _conf_composite.meta.publisher                     = extractSDLangTabOrAttrib(header_sdlang, "publisher", ""); -      } -      if ("rights" in header_sdlang.maybe.tags) { -        _conf_composite.meta.rights_copyright               = extractSDLangTabOrAttrib(header_sdlang, "rights", "copyright"); -        _conf_composite.meta.rights_copyright_text          = extractSDLangTabOrAttrib(header_sdlang, "rights", "copyright_text"); -        _conf_composite.meta.rights_copyright_audio         = extractSDLangTabOrAttrib(header_sdlang, "rights", "copyright_audio"); -        _conf_composite.meta.rights_copyright_cover         = extractSDLangTabOrAttrib(header_sdlang, "rights", "copyright_cover"); -        _conf_composite.meta.rights_copyright_illustrations = extractSDLangTabOrAttrib(header_sdlang, "rights", "copyright_illustrations"); -        _conf_composite.meta.rights_copyright_photographs   = extractSDLangTabOrAttrib(header_sdlang, "rights", "copyright_photographs"); -        _conf_composite.meta.rights_copyright_translation   = extractSDLangTabOrAttrib(header_sdlang, "rights", "copyright_translation"); -        _conf_composite.meta.rights_copyright_video         = extractSDLangTabOrAttrib(header_sdlang, "rights", "copyright_video"); -        _conf_composite.meta.rights_license                 = extractSDLangTabOrAttrib(header_sdlang, "rights", "license"); -      } -      if (_conf_composite.meta.creator_author.empty) { -        if ("creator" in header_sdlang.maybe.tags) { -          _conf_composite.meta.creator_author               = extractSDLangTabOrAttrib(header_sdlang, "creator", "author"); -          _conf_composite.meta.creator_author_email         = extractSDLangTabOrAttrib(header_sdlang, "creator", "author_email"); -          _conf_composite.meta.creator_illustrator          = extractSDLangTabOrAttrib(header_sdlang, "creator", "illustrator"); -          _conf_composite.meta.creator_translator           = extractSDLangTabOrAttrib(header_sdlang, "creator", "translator"); -        } -        // dochead_meta["creator"]["author_raw"] = dochead_meta["creator"]["author"]; -        string[] authors_arr; -        auto authors_raw_arr = _conf_composite.meta.creator_author.split(rgx.arr_delimiter); -        foreach (author_raw; authors_raw_arr) { -          authors_arr ~= author_raw.replace(rgx.raw_author_munge, "$2 $1"); -        } -        _conf_composite.meta.creator_author = join(authors_arr, ", ").chomp.chomp; -      } -      if (_conf_composite.meta.title_main.empty) { -        if ("title" in header_sdlang.maybe.tags) { -          _conf_composite.meta.title_edition                = extractSDLangTabOrAttrib(header_sdlang, "title", "edition"); -          // _conf_composite.meta.title_full                  = extractSDLangTabOrAttrib(header_sdlang, "title", "full"); -          _conf_composite.meta.title_language               = extractSDLangTabOrAttrib(header_sdlang, "title", "language"); -          _conf_composite.meta.title_main                   = extractSDLangTabOrAttrib(header_sdlang, "title", "main"); -          _conf_composite.meta.title_note                   = extractSDLangTabOrAttrib(header_sdlang, "title", "note"); -          _conf_composite.meta.title_sub                    = extractSDLangTabOrAttrib(header_sdlang, "title", "sub"); -          _conf_composite.meta.title_subtitle               = extractSDLangTabOrAttrib(header_sdlang, "title", "subtitle"); -        } -        if (_conf_composite.meta.title_main.empty) { -          Tag _maintag = header_sdlang.getTag("title"); -          if (_maintag !is null) { -            if ("main" in _maintag.maybe.tags) { -              _conf_composite.meta.title_main -                = to!string(_maintag.getTagValues("main")); -            } else if ("main" !in _maintag.maybe.attributes) { -              _conf_composite.meta.title_main -                = (_maintag.values[0]).to!string; // test that this exists -            } -          } -        } -        if ((!(_conf_composite.meta.title_subtitle.empty)) -        && (_conf_composite.meta.title_sub.empty)) { -          _conf_composite.meta.title_sub = _conf_composite.meta.title_subtitle; -        } -        _conf_composite.meta.title_full = (_conf_composite.meta.title_sub.empty) -        ? _conf_composite.meta.title_main -        : format( -            "%s - %s", -            _conf_composite.meta.title_main, -            _conf_composite.meta.title_sub, -          ); -      } -      return _conf_composite; -    } -  } -} -static template parseSDLangConfig() { -  import -    std.exception, -    std.regex, -    std.stdio, -    std.string, -    std.traits, -    std.typecons, -    std.utf, -    std.conv : to; -  import sdlang; -  auto parseSDLangConfig(string configuration, string conf_sdl_filename) { -    Tag sdl_root_conf; -    try { -      sdl_root_conf = parseSource(configuration); -    } -    catch(ParseException e) { -      stderr.writeln("SDLang problem with content for ", conf_sdl_filename); -      stderr.writeln(e.msg); -    } -    return sdl_root_conf; -  } -} -/++ -  return composite make from config files -+/ - -template confFilesSDLtoStruct() { -  import -    std.exception, -    std.regex, -    std.stdio, -    std.string, -    std.traits, -    std.typecons, -    std.utf, -    std.conv : to; -  import -    sdp.meta.conf_make_meta_structs, -    sdp.meta.rgx; -  auto configParseSDL(T)( -    T _text -  ){ -    Tag sdl_root; -    try { -      sdl_root = parseSource(_text.to!string); -    } -    catch(ParseException e) { -      stderr.writeln("SDLang problem with this document header:"); -      stderr.writeln(_src_header); -      // Error messages of the form: -      // myFile.sdl(5:28): Error: Invalid integer suffix. -      stderr.writeln(e.msg); -    } -    debug(sdlang) { -      writeln("header SDL:"); -      writeln(__LINE__, ": ",  sdl_root.toSDLDocument()); -      writeln(__LINE__, ": ",  sdl_root.maybe.namespaces); -      writeln("header make sdlang: ", sdl_root.toSDLDocument()); -      writeln(__LINE__, ": ", sdl_root.getTagValues("title")); -      writeln(__LINE__, ": ", sdl_root.getTagValues("creator")); -      Tag creator = sdl_root.getTag("creator"); -      if (creator !is null) { -        if ("author" in creator.maybe.tags) { -          writeln(__LINE__, ": ", creator.getTagValues("author")); -        } else if ("author" in creator.maybe.attributes) { -          writeln(__LINE__, ": ", creator.maybe.attributes["author"][0].value); -        } -      } -    } -    return sdl_root; // sdlang.ast.Tag -  } -  auto confFilesSDLtoStruct(S,L)( -    S sdl_root_config_share, -    L sdl_root_config_local, -  ){ -    mixin SiSUmakeMetaStructsSDLang; -    ConfCompositePlus _conf_composite; -    foreach (conf_sdlang; [sdl_root_config_share, sdl_root_config_local]) { -      if ("make" in conf_sdlang.maybe.tags) { -        confCompositeMakeBuild _mk; -        _conf_composite.make_str.bold               = extractSDLangTabOrAttrib(conf_sdlang, "make", "bold"); // TODO -        _conf_composite.make_str.breaks             = extractSDLangTabOrAttrib(conf_sdlang, "make", "breaks"); -        _conf_composite.make_str.cover_image        = extractSDLangTabOrAttrib(conf_sdlang, "make", "cover_image"); -        _conf_composite.make_str.css                = extractSDLangTabOrAttrib(conf_sdlang, "make", "css"); -        _conf_composite.make_str.emphasis           = extractSDLangTabOrAttrib(conf_sdlang, "make", "emphasis"); // TODO -        _conf_composite.make_str.footer             = extractSDLangTabOrAttrib(conf_sdlang, "make", "footer"); -        _conf_composite.make_str.headings           = extractSDLangTabOrAttrib(conf_sdlang, "make", "headings"); -        _conf_composite.make_str.home_button_image  = extractSDLangTabOrAttrib(conf_sdlang, "make", "home_button_image"); -        _conf_composite.make_str.home_button_text   = extractSDLangTabOrAttrib(conf_sdlang, "make", "home_button_text"); -        _conf_composite.make_str.italics            = extractSDLangTabOrAttrib(conf_sdlang, "make", "italics"); // TODO -        _conf_composite.make_str.num_top            = extractSDLangTabOrAttrib(conf_sdlang, "make", "num_top"); -        _conf_composite.make_str.num_depth          = extractSDLangTabOrAttrib(conf_sdlang, "make", "num_depth"); -        _conf_composite.make_str.substitute         = extractSDLangTabOrAttrib(conf_sdlang, "make", "substitute"); // TODO -        _conf_composite.make_str.texpdf_font        = extractSDLangTabOrAttrib(conf_sdlang, "make", "texpdf_font"); -        _conf_composite.make.bold_rgxmatch          = _mk.bold_rgxmatch(_conf_composite.make_str.bold); // -        _conf_composite.make.breaks                 = _mk.breaks(_conf_composite.make_str.breaks); -        _conf_composite.make.cover_image            = _mk.cover_image(_conf_composite.make_str.cover_image); -        _conf_composite.make.css                    = _mk.css(_conf_composite.make_str.css); -        _conf_composite.make.emphasis_rgxmatch      = _mk.emphasis_rgxmatch(_conf_composite.make_str.emphasis); -        _conf_composite.make.footer                 = _mk.footer(_conf_composite.make_str.footer); -        _conf_composite.make.headings               = _mk.headings(_conf_composite.make_str.headings); -        _conf_composite.make.home_button_image      = _mk.home_button_image(_conf_composite.make_str.home_button_image); -        _conf_composite.make.home_button_text       = _mk.home_button_text(_conf_composite.make_str.home_button_text); -        _conf_composite.make.italics_rgxmatch       = _mk.italics_rgxmatch(_conf_composite.make_str.italics); -        _conf_composite.make.num_top                = _mk.num_top(_conf_composite.make_str.num_top); -        _conf_composite.make.num_depth              = _mk.num_depth(_conf_composite.make_str.num_depth); -        _conf_composite.make.substitute             = _mk.substitute(_conf_composite.make_str.substitute); // TODO -        _conf_composite.make.texpdf_font            = _mk.texpdf_font(_conf_composite.make_str.texpdf_font); -      } -    } -    return _conf_composite; -  } -} -/++ -  default settings -+/ -template SiSUmakeMetaStructsSDLang() { -  import -    std.algorithm, -    std.array, -    std.container, -    std.exception, -    std.file, -    std.getopt, -    std.json, -    std.path, -    std.process, -    std.range, -    std.regex, -    std.stdio, -    std.string, -    std.traits, -    std.typecons, -    std.uni, -    std.utf, -    std.conv : to; -  import sdp.meta.conf_make_meta_structs; -  string extractSDLangTabOrAttrib(S)( -    S conf_sdlang, -    string maintab, -    string atab -  ) { -    string _conf_composite_string = ""; -    if (maintab in conf_sdlang.maybe.tags) { -      auto _maintag = conf_sdlang.getTag(maintab); -      if ( -        (atab in _maintag.maybe.tags) -        && (_maintag.getTagValues(atab).length > 0) -      ) { -        debug(configsdlang) { -          writeln( -            "  ", __LINE__, -            ": sdl tag, ", -            maintab, ":", atab, ": ", -            _maintag.getTagValues(atab)[0] -          ); -        } -        if (_maintag.getTagValues(atab).length == 1) { -          writeln((_maintag.getTagValues(atab)[0]).to!string); -          _conf_composite_string -            = (_maintag.getTagValues(atab)[0]).to!string; -        } else if (_maintag.getTagValues(atab).length > 1) { -          string _tmp = ""; -          foreach (st; _maintag.getTagValues(atab)) { -            writeln(st.to!string, ";"); -            _tmp ~= st.to!string ~ ";"; -          } -          _conf_composite_string = _tmp; -        } -      } else if ( -        (atab in _maintag.maybe.attributes) -        && (_maintag.attributes[atab][0].value.length > 0) -      ) { -        debug(configsdlang) { -          writeln( -            "  ", __LINE__, -            ": sdl attrib, ", -            maintab, ":", atab, ": ", -            _maintag.attributes[atab][0].value -          ); -        } -        _conf_composite_string -          = (_maintag.attributes[atab][0].value).to!string; -      } -    } -    return _conf_composite_string; -  } -} diff --git a/src/sdp/meta/doc_debugs.d b/src/sdp/meta/doc_debugs.d index 89ca3a7..66b5f0e 100644 --- a/src/sdp/meta/doc_debugs.d +++ b/src/sdp/meta/doc_debugs.d @@ -23,8 +23,8 @@ template SiSUdebugs() {      std.utf,      std.conv : to;    auto SiSUdebugs(S,T)( -    auto return ref const S  contents, -    auto return ref T        doc_matters, +    const S  contents, +          T  doc_matters,    ) {      mixin SiSUrgxInit;      mixin InternalMarkup; @@ -595,8 +595,8 @@ template SiSUdebugs() {          }          debug(checkdoc) {            void out_segnames(S,T)( -            auto return ref const S  contents, -            auto return ref T        doc_matters, +            const S  contents, +                  T  doc_matters,            ) {              foreach (key; doc_matters.xml.keys_seq.seg) {                if (contents[key].length > 1) { @@ -611,7 +611,7 @@ template SiSUdebugs() {          }          debug(checkdoc) {            void out_toc(S)( -            auto return ref const S  contents, +            const S  contents,              string                   key,            ) {              if (contents[key].length > 1) { @@ -629,7 +629,7 @@ template SiSUdebugs() {          }          debug(checkdoc) {            void out_endnotes(S)( -            auto return ref const S  contents, +            const S  contents,              string                   key,            ) {              if (contents[key].length > 1) { @@ -645,7 +645,7 @@ template SiSUdebugs() {          }          debug(checkdoc) {            void out_bookindex(S)( -            auto return ref const S  contents, +            const S  contents,              string                   key,            ) {              if (contents[key].length > 1) { diff --git a/src/sdp/meta/metadoc.d b/src/sdp/meta/metadoc.d index 8160010..29af49c 100644 --- a/src/sdp/meta/metadoc.d +++ b/src/sdp/meta/metadoc.d @@ -14,11 +14,11 @@ template SiSUabstraction() {      sdp.meta.conf_make_meta_json,      sdp.meta.defaults,      sdp.meta.doc_debugs, -    sdp.meta.read_config_files, -    sdp.meta.read_source_files,      sdp.meta.rgx, -    sdp.output.hub, -    sdp.output.paths_source; +    sdp.source.paths_source, +    sdp.source.read_config_files, +    sdp.source.read_source_files, +    sdp.output.hub;    mixin SiSUrgxInit;    mixin contentJSONtoSiSUstruct;    mixin SiSUbiblio; 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/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) { diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d index 0c2c271..b703838 100755 --- a/src/sdp/sdp.d +++ b/src/sdp/sdp.d @@ -17,11 +17,11 @@ import    sdp.meta.conf_make_meta_json,    sdp.meta.defaults,    sdp.meta.doc_debugs, -  sdp.meta.read_config_files, -  sdp.meta.read_source_files,    sdp.meta.rgx, -  sdp.output.hub, -  sdp.output.paths_source; +  sdp.source.paths_source, +  sdp.source.read_config_files, +  sdp.source.read_source_files, +  sdp.output.hub;  mixin(import("version.txt"));  mixin CompileTimeInfo;  /++ @@ -42,7 +42,7 @@ void main(string[] args) {    scope(success) {      debug(checkdoc) {        writefln( -        "~ run complete, ok ~ (sdp-%s.%s.%s, %s v%s, %s %s)", +        "~ run complete, ok ~ (sdp-%s.%s.%s, %s D:%s, %s %s)",          ver.major, ver.minor, ver.patch,          __VENDOR__, __VERSION__,          bits, os, diff --git a/src/sdp/output/paths_source.d b/src/sdp/source/paths_source.d index e7233f0..8d3aefe 100644 --- a/src/sdp/output/paths_source.d +++ b/src/sdp/source/paths_source.d @@ -3,7 +3,7 @@    - read config files<BR>    meta_config_files.d  +/ -module sdp.output.paths_source; +module sdp.source.paths_source;  import std.array,    std.file,    std.path, @@ -18,11 +18,10 @@ template PodManifest() {      P   _pth    ) {      struct ManifestFile_ { -      auto pod_manifest_filename() { -        string _manifest_file = "sisupod.manifest"; -        return _manifest_file; +      string pod_manifest_filename() { +        return "sisupod.manifest";        } -      auto pod_manifest_path() { +      string pod_manifest_path() {          string _manifest_path;          if ((isValidPath(_pth) && exists(_pth)!=0 && _pth.isDir)          && (exists(_pth.chainPath(pod_manifest_filename).array)!=0 @@ -62,11 +61,11 @@ template PodManifest() {  template PathMatters() {    mixin SiSUrgxInit;    static auto rgx = Rgx(); -  auto PathMatters(O,E,P,F)( -    O   _opt_actions, -    E   _env, -    P   _pth, -    F   _fns                   = "", +  auto PathMatters(O,E)( +    O        _opt_actions, +    E        _env, +    string   _pth, +    string   _fns              = "",      char[][] _manifest_fn_list = [[]],    ) {      auto _manifest = PodManifest!()(_pth); @@ -92,15 +91,13 @@ template PathMatters() {          }          return Opt_();        } -      auto src_is_pod() { -        auto _src_is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; -        return _src_is_pod; +      bool src_is_pod() { +        return (_manifest.pod_manifest_path.length > 0) ? true : false;        }        auto pod() {          struct Pod_ { -          auto src_is_pod() { -            auto _src_is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; -            return _src_is_pod; +          bool src_is_pod() { +            return (_manifest.pod_manifest_path.length > 0) ? true : false;            }            auto collection_root() {              auto _collection_root = asNormalizedPath(chainPath(_manifest.pod_manifest_path, "..")).array; @@ -111,34 +108,34 @@ template PathMatters() {              }              return _collection_root;            } -          auto manifest_filename() { +          string manifest_filename() {              return _manifest.pod_manifest_filename;            } -          auto manifest_path() { +          string manifest_path() {              return _manifest.pod_manifest_path;            } -          auto pod_name() { // TODO decide what returned if src_is_pod == false +          string pod_name() {              return _manifest.pod_manifest_path.baseName;            } -          auto manifest_file_with_path() { +          string manifest_file_with_path() {              return _manifest.pod_manifest_file_with_path;            } -          auto config_sisu_document_make_dirs() {                              // TODO sisu_document_make +          string[] config_sisu_document_make_dirs() {              string[] _config_dirs;              return _config_dirs;            } -          auto config_local_site_dirs() {                   // TODO sisu_document_make +          string[] config_local_site_dirs() {              string[] _config_dirs;              return _config_dirs;            } -          auto image_dirs() {                               // TODO +          string[] image_dirs() {              string[] _image_dirs;              return _image_dirs;            }            auto manifest_list_of_filenames() {              return _manifest_fn_list;            } -          auto manifest_list_of_languages() { +          string[] manifest_list_of_languages() {              string[] _lngs;              foreach (filename_; manifest_list_of_filenames) {                string _k = "en"; @@ -158,41 +155,32 @@ template PathMatters() {          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; +          bool is_pod() { +            return (_manifest.pod_manifest_path.length > 0) ? true : false;            } -          auto path_and_fn() { +          string path_and_fn() {              return _fns;            } -          auto pod_name() { /+ work on +/ -            auto _pod_name = (is_pod) -            ? _manifest.pod_manifest_path -            : ""; -            return _pod_name; +          string pod_name() { +            return (is_pod) ? _manifest.pod_manifest_path : "";            } -          auto filename() { -            auto _fn = (path_and_fn).baseName; -            return _fn; +          string filename() { +            return path_and_fn.baseName;            } -          auto filename_base() { -            auto _fn = filename.stripExtension; -            return _fn; +          string filename_base() { +            return filename.stripExtension;            } -          auto filename_extension() { -            auto _ext = filename.match(rgx.src_pth_sst_or_ssm).captures["extension"]; -            return _ext; +          string filename_extension() { +            return filename.match(rgx.src_pth_sst_or_ssm).captures["extension"];            } -          auto lng() { +          string lng() {              string _k;              if (auto m = path_and_fn.match(rgx.language_code_and_filename)) {                _k = m.captures[1]; -            } else { -              _k = "en"; -            } +            } else {_k = "en"; }              return _k;            } -          auto docname_composite_unique_per_src_doc() { +          string docname_composite_unique_per_src_doc() {            /+              z pod name if any + src filename + lng code               filename ~ "." ~  lng @@ -210,7 +198,7 @@ template PathMatters() {              }              return _fn;            } -          auto docname_composite_unique_per_src_pod() { +          string docname_composite_unique_per_src_pod() {            /+              z pod name if any + src filename (without lng code)               filename ~ _sep ~ lng @@ -229,18 +217,16 @@ template PathMatters() {              }              return _fn;            } -          auto language() { +          string language() {              return lng();            } -          auto file_with_absolute_path() { -            string _pth = _env["pwd"].chainPath(path_and_fn).array; -            return _pth; +          string file_with_absolute_path() { +            return _env["pwd"].chainPath(path_and_fn).array;            } -          auto absolute_path_to_src() { -            string _pth = (_env["pwd"].chainPath(path_and_fn)).dirName.array; -            return _pth; +          string absolute_path_to_src() { +            return (_env["pwd"].chainPath(path_and_fn)).dirName.array;            } -          auto base_dir() { +          string base_dir() {              string _dir;              if ( // TODO this should catch generated --source sisupod, untested, needs manifest                auto m = (absolute_path_to_src) @@ -258,7 +244,7 @@ template PathMatters() {              }              return _dir;            } -          auto base_parent_dir_path() { +          string base_parent_dir_path() {              string _dir;              if ( // TODO this should catch generated --source sisupod, untested, needs manifest                auto m = (absolute_path_to_src) @@ -270,7 +256,7 @@ template PathMatters() {              }              return _dir;            } -          auto base_dir_path() { // looks like there is work to do +          string base_dir_path() {              string _dir;              if (                auto m = (absolute_path_to_src) @@ -290,11 +276,11 @@ template PathMatters() {              }              return _dir;            } -          auto media_dir_path() { // TODO rework, can base directly on src fn path +          string media_dir_path() {              string _dir = asNormalizedPath(base_dir_path.chainPath("media")).array;              return _dir;            } -          auto image_dir_path() { +          string image_dir_path() {              string _paths;              string[] _possible_img_pths = [ "./image", "../image", "../../image" ];              string _img_pth_found = ""; @@ -319,8 +305,7 @@ template PathMatters() {              return _img_pth_found;            }            auto conf_dir_path() { -            auto _dir = asNormalizedPath(base_dir_path.chainPath("conf")).array; -            return _dir; +            return asNormalizedPath(base_dir_path.chainPath("conf")).array;            }            auto base_parent_dir() {              string _dir; @@ -337,18 +322,16 @@ template PathMatters() {              }              return _dir;            } -          auto config_dirs() {                              // TODO +          string[] config_dirs() {              string[] _config_dirs;              if (is_pod) { -            } else { -            } +            } else {}              return _config_dirs;            } -          auto image_dirs() {                               // TODO +          string[] image_dirs() {              string[] _image_dirs;              if (is_pod) { -            } else { -            } +            } else {}              return _image_dirs;            }          } @@ -394,15 +377,15 @@ template ConfigFilePaths() {      E   _env,    ) {      struct ConfFilePaths { -      auto config_filename_document_toml() { +      string config_filename_document_toml() {          return "sisu_document_make";        } -      auto config_filename_site_toml() { +      string config_filename_site_toml() {          return "config_local_site";        }        auto possible_config_path_locations() {          struct _ConfFilePaths { -          auto sisu_document_make() { +          string[] sisu_document_make() {              /+ FIX clean up conf paths ↓ +/              /+ config local site (file system only, not in pod) +/              /+ return paths +/ @@ -445,7 +428,7 @@ template ConfigFilePaths() {              +/              return _possible_config_path_locations;            } -          auto config_local_site() { +          string[] 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; @@ -506,7 +489,7 @@ template SiSUpathsSRC() {        auto pwd() {          return _pwd;        } -      auto language() { +      string language() {          // use command line info as well?          string _k;          if (auto m = _fn_src_and_path.match(rgx.language_code_and_filename)) { @@ -516,7 +499,7 @@ template SiSUpathsSRC() {          }          return _k;        } -      auto doc_root() { +      string doc_root() {          return "sisudoc";        }        auto media_root() { diff --git a/src/sdp/meta/read_config_files.d b/src/sdp/source/read_config_files.d index 22d285f..9d976a5 100644 --- a/src/sdp/meta/read_config_files.d +++ b/src/sdp/source/read_config_files.d @@ -3,11 +3,11 @@    - read config files<BR>    meta_config_files.d  +/ -module sdp.meta.read_config_files; +module sdp.source.read_config_files;  static template configReadInSiteTOML() {    import      sdp.meta, -    sdp.output.paths_source, +    sdp.source.paths_source,      std.file,      std.path;    final string configReadInSiteTOML(M,E)(M manifest, E env) { @@ -44,7 +44,7 @@ static template configReadInSiteTOML() {  static template configReadInDocTOML() {    import      sdp.meta, -    sdp.output.paths_source, +    sdp.source.paths_source,      std.file,      std.path;    final string configReadInDocTOML(M,E)(M manifest, E env) { @@ -82,7 +82,7 @@ static template configTOML() {    import toml; //    import      sdp.meta, -    sdp.output.paths_source, +    sdp.source.paths_source,      std.file,      std.path;    auto configTOML(string configuration, string conf_toml_filename) { @@ -100,7 +100,7 @@ static template configTOML() {  static template readConfigSite() {    import      sdp.meta, -    sdp.output.paths_source, +    sdp.source.paths_source,      std.file,      std.path;    final auto readConfigSite(M,E)(M _manifest, E _env) { @@ -148,7 +148,7 @@ static template readConfigSite() {  static template readConfigDoc() {    import      sdp.meta, -    sdp.output.paths_source, +    sdp.source.paths_source,      std.file,      std.path;    final auto readConfigDoc(M,E)(M _manifest, E _env) { @@ -197,7 +197,7 @@ static template readConfigDoc() {  static template configReadSiteTOML() {    import      sdp.meta, -    sdp.output.paths_source, +    sdp.source.paths_source,      std.file,      std.path;    import toml; @@ -212,7 +212,7 @@ static template configReadSiteTOML() {  static template configReadDocTOML() {    import      sdp.meta, -    sdp.output.paths_source, +    sdp.source.paths_source,      std.file,      std.path;    import toml; diff --git a/src/sdp/meta/read_source_files.d b/src/sdp/source/read_source_files.d index 135d8e8..28a660a 100644 --- a/src/sdp/meta/read_source_files.d +++ b/src/sdp/source/read_source_files.d @@ -1,15 +1,15 @@  /++ -  module meta_read_source_files;<BR> +  module source_read_source_files;<BR>    - open markup files<BR>    - if master file scan for addional files to import/insert  +/ -module sdp.meta.read_source_files; +module sdp.source.read_source_files;  static template SiSUrawMarkupContent() {    import      sdp.meta.rgx;    import      sdp.meta, -    sdp.output.paths_source, +    sdp.source.paths_source,      std.file,      std.path;    mixin SiSUrgxInit; diff --git a/views/version.txt b/views/version.txt index 45dcb3b..805de17 100644 --- a/views/version.txt +++ b/views/version.txt @@ -4,7 +4,7 @@ struct Version {    int minor;    int patch;  } -enum ver = Version(0, 26, 3); +enum ver = Version(0, 26, 4);  version (Posix) {    version (DigitalMars) {    } else version (LDC) { | 
