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