diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/sdp/meta/conf_make_meta_sdlang.d | 12 | ||||
-rw-r--r-- | src/sdp/meta/defaults.d | 44 | ||||
-rw-r--r-- | src/sdp/meta/doc_debugs.d | 42 | ||||
-rw-r--r-- | src/sdp/meta/metadoc.d | 186 | ||||
-rw-r--r-- | src/sdp/meta/metadoc_from_src.d | 410 | ||||
-rw-r--r-- | src/sdp/meta/metadoc_summary.d | 8 | ||||
-rw-r--r-- | src/sdp/meta/read_config_files.d | 24 | ||||
-rw-r--r-- | src/sdp/meta/read_source_files.d | 43 | ||||
-rw-r--r-- | src/sdp/meta/rgx.d | 1 | ||||
-rw-r--r-- | src/sdp/output/epub3.d | 102 | ||||
-rw-r--r-- | src/sdp/output/html.d | 62 | ||||
-rw-r--r-- | src/sdp/output/hub.d | 125 | ||||
-rw-r--r-- | src/sdp/output/paths_source.d | 491 | ||||
-rw-r--r-- | src/sdp/output/rgx.d | 1 | ||||
-rw-r--r-- | src/sdp/output/source_sisupod.d | 160 | ||||
-rw-r--r-- | src/sdp/output/sqlite.d | 46 | ||||
-rw-r--r-- | src/sdp/output/sqlite_discrete.d | 42 | ||||
-rw-r--r-- | src/sdp/output/xmls.d | 12 | ||||
-rwxr-xr-x | src/sdp/sdp.d | 28 |
19 files changed, 1032 insertions, 807 deletions
diff --git a/src/sdp/meta/conf_make_meta_sdlang.d b/src/sdp/meta/conf_make_meta_sdlang.d index 728f095..ef395d0 100644 --- a/src/sdp/meta/conf_make_meta_sdlang.d +++ b/src/sdp/meta/conf_make_meta_sdlang.d @@ -24,8 +24,8 @@ static template SiSUextractSDLang() { debug(asserts){ static assert(is(typeof(src_header) == char[])); } - char[][] source_header_arr = - (cast(char[]) src_header).split(rgx.newline_eol_delimiter); + 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)) { @@ -207,12 +207,12 @@ static template SiSUextractSDLang() { 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")); + _conf_composite.meta.title_main + = to!string(_maintag.getTagValues("main")); } else if ("main" !in _maintag.maybe.attributes) { writeln(_maintag.values[0]); // document title - _conf_composite.meta.title_main = - (_maintag.values[0]).to!string; // test that this exists + _conf_composite.meta.title_main + = (_maintag.values[0]).to!string; // test that this exists } } } diff --git a/src/sdp/meta/defaults.d b/src/sdp/meta/defaults.d index e598aa8..7f0586e 100644 --- a/src/sdp/meta/defaults.d +++ b/src/sdp/meta/defaults.d @@ -178,8 +178,8 @@ template SiSUregisters() { } return _conf_composite_string; } - static auto ptr_head_main = - [ + static auto ptr_head_main + = [ "classify", "creator", "date", @@ -191,24 +191,24 @@ template SiSUregisters() { "rights", "title" ]; - static auto ptr_head_sub_classify = - [ + static auto ptr_head_sub_classify + = [ "dewey", "keywords", "loc", "subject", "topic_register" ]; - static auto ptr_head_sub_creator = - [ + static auto ptr_head_sub_creator + = [ "author", "author_email", "cover", "illustrator", "translator" ]; - static auto ptr_head_sub_date = - [ + static auto ptr_head_sub_date + = [ "added_to_site", "available", "created", @@ -217,15 +217,15 @@ template SiSUregisters() { "published", "valid" ]; - static auto ptr_head_sub_identifier = - [ + static auto ptr_head_sub_identifier + = [ "isbn", "oclc", "pg" ]; /+ make +/ - static auto ptr_head_sub_make = - [ + static auto ptr_head_sub_make + = [ "cover_image", "home_button_image", "home_button_text", @@ -239,28 +239,28 @@ template SiSUregisters() { "texpdf_font", "css" ]; - static auto ptr_head_sub_notes = - [ + static auto ptr_head_sub_notes + = [ "abstract", "description" ]; - static auto ptr_head_sub_original = - [ + static auto ptr_head_sub_original + = [ "language", "source", "title" ]; - static auto ptr_head_sub_publisher = - [ "name" ]; - static auto ptr_head_sub_rights = - [ + static auto ptr_head_sub_publisher + = [ "name" ]; + static auto ptr_head_sub_rights + = [ "copyright", "cover", "illustrations", "license" ]; - static auto ptr_head_sub_title = - [ + static auto ptr_head_sub_title + = [ "edition", "full", "language", diff --git a/src/sdp/meta/doc_debugs.d b/src/sdp/meta/doc_debugs.d index 2b274a3..255ea92 100644 --- a/src/sdp/meta/doc_debugs.d +++ b/src/sdp/meta/doc_debugs.d @@ -37,7 +37,7 @@ template SiSUdebugs() { __FILE__, __LINE__, ); - foreach (key; doc_matters.keys_seq.seg) { + foreach (key; doc_matters.xml.keys_seq.seg) { foreach (obj; contents[key]) { if (obj.of_part != "empty") { if (obj.is_a == "heading") { @@ -60,14 +60,16 @@ template SiSUdebugs() { __FILE__, __LINE__, ); - foreach (obj; contents[key]) { - if (obj.of_part != "empty") { - writefln( - "[%s][%s]\n%s", - obj.obj_cite_number, - obj.is_a, - obj.text - ); + if (key.length > 0) { + foreach (obj; contents[key]) { + if (obj.of_part != "empty") { + writefln( + "[%s][%s]\n%s", + obj.obj_cite_number, + obj.is_a, + obj.text + ); + } } } } @@ -115,7 +117,7 @@ template SiSUdebugs() { } debug(toc_nav_dom) { enum DomTags { none, open, close, close_and_open, open_still, } - foreach (sect; doc_matters.keys_seq.seg) { + foreach (sect; doc_matters.xml.keys_seq.seg) { foreach (obj; contents[sect]) { if (obj.is_a == "heading") { foreach_reverse (k; 0 .. 7) { @@ -142,7 +144,7 @@ template SiSUdebugs() { } } writeln("--------------------"); - foreach (sect; doc_matters.keys_seq.seg) { + foreach (sect; doc_matters.xml.keys_seq.seg) { foreach (obj; contents[sect]) { if (obj.is_a == "heading") { foreach_reverse (k; 0 .. 7) { @@ -401,7 +403,7 @@ template SiSUdebugs() { __FILE__, __LINE__, ); - foreach (k; doc_matters.keys_seq.seg) { + foreach (k; doc_matters.xml.keys_seq.seg) { foreach (obj; contents[k]) { if (obj.is_a == "heading") { writefln( @@ -417,7 +419,7 @@ template SiSUdebugs() { } } debug(heading) { // heading - foreach (k; doc_matters.keys_seq.seg) { + foreach (k; doc_matters.xml.keys_seq.seg) { foreach (o; contents[k]) { if (o.is_a == "heading") { writefln( @@ -438,7 +440,7 @@ template SiSUdebugs() { __FILE__, __LINE__, ); - foreach (k; doc_matters.keys_seq.seg) { + foreach (k; doc_matters.xml.keys_seq.seg) { foreach (obj; contents[k]) { if (obj.is_a == "heading") { writefln( @@ -458,10 +460,10 @@ template SiSUdebugs() { ]; } debug(checkdoc) { - if ((doc_matters.opt_action.do_debug)) { + if ((doc_matters.opt.action.debug_do)) { debug(checkdoc) { - if (auto mfn=match(doc_matters.source_filename, rgx.src_fn)) { - if (doc_matters.opt_action.assertions) { + if (auto mfn=match(doc_matters.src.filename, rgx.src_fn)) { + if (doc_matters.opt.action.assertions) { switch (mfn.captures[2]) { // live manual: case "live-manual.ssm": @@ -580,7 +582,7 @@ template SiSUdebugs() { // error in bookindex ... (ch7 ... building the cc machine, an extra semi colon) break; default: - writeln(doc_matters.source_filename); + writeln(doc_matters.src.filename); break; } } @@ -591,11 +593,11 @@ template SiSUdebugs() { auto return ref const S contents, auto return ref T doc_matters, ) { - foreach (key; doc_matters.keys_seq.seg) { + foreach (key; doc_matters.xml.keys_seq.seg) { if (contents[key].length > 1) { foreach (obj; contents[key]) { if (obj.heading_lev_markup == 4) { - writeln(obj.ptr_html_segnames, ". (", doc_matters.segnames[obj.ptr_html_segnames], ") -> ", obj.text); + writeln(obj.ptr_html_segnames, ". (", doc_matters.xml.segnames[obj.ptr_html_segnames], ") -> ", obj.text); } } } diff --git a/src/sdp/meta/metadoc.d b/src/sdp/meta/metadoc.d index 44807b2..129e53c 100644 --- a/src/sdp/meta/metadoc.d +++ b/src/sdp/meta/metadoc.d @@ -46,8 +46,8 @@ template SiSUabstraction() { ": step1 commence → (get document header & body & insert file list & if needed image list)" ); } - auto _header_body_insertfilelist_imagelist = - SiSUrawMarkupContent!()(_opt_action, _manifest.src_path_and_fn); + auto _header_body_insertfilelist_imagelist + = SiSUrawMarkupContent!()(_opt_action, _manifest.src.path_and_fn); static assert(!isTypeTuple!(_header_body_insertfilelist_imagelist)); static assert(_header_body_insertfilelist_imagelist.length==4); debug(steps) { @@ -64,8 +64,11 @@ template SiSUabstraction() { ": step2 commence → (doc header: make & meta as struct)" ); } - auto _make_and_meta_struct = - docHeaderMakeAndMetaTupExtractAndConvertToStruct!()(conf_files_composite_make, _header_body_insertfilelist_imagelist[headBody.header]); // breakage ... + auto _make_and_meta_struct + = docHeaderMakeAndMetaTupExtractAndConvertToStruct!()( + conf_files_composite_make, + _header_body_insertfilelist_imagelist[headBody.header] + ); // breakage ... debug(steps) { writeln(__LINE__, ":", __FILE__, ": step2 complete"); } @@ -92,84 +95,135 @@ template SiSUabstraction() { writeln(__LINE__, ":", __FILE__, ": step4 commence → (doc_matters)"); } struct DocumentMatters { - auto opt_action() { - /+ getopt options, commandline instructions, raw - - processing instructions --epub --html etc. - - command line config instructions --output-path - +/ - return _opt_action; - } auto conf_make_meta() { // TODO meld with all make instructions auto _k = _make_and_meta_struct; return _k; } - auto environment() { + auto env() { struct Env_ { auto pwd() { - return _manifest.pwd; + return _manifest.env.pwd; } auto home() { - return _manifest.home; + return _manifest.env.home; } } return Env_(); } - auto is_pod() { - return _manifest.is_pod; - } - auto source_filename() { - return _manifest.src_fn; + auto opt() { + struct Opt_ { + auto action() { + /+ getopt options, commandline instructions, raw + - processing instructions --epub --html etc. + - command line config instructions --output-path + +/ + return _opt_action; + } + } + return Opt_(); } - auto src_path_info() { // consider, reconsider? - auto _k = SiSUpathsSRC!()(_manifest.pwd, _manifest.src_fn); - return _k; + auto src() { + struct SRC_ { + auto is_pod() { + return _manifest.src.is_pod; + } + auto filename() { + return _manifest.src.filename; + } + auto language() { + return _manifest.src.lng; + } + auto path_info() { + auto _k = SiSUpathsSRC!()(_manifest.env.pwd, _manifest.src.file_with_absolute_path); // would like (to have and use) relative path + return _k; + } + auto file_with_absolute_path() { + auto _k = _manifest.src.file_with_absolute_path; + return _k; + } + auto absolute_path_to_src() { + auto _k = _manifest.src.absolute_path_to_src; + return _k; + } + auto base_dir() { + auto _k = _manifest.src.base_dir; + return _k; + } + auto base_parent_dir_path() { + auto _k = _manifest.src.base_parent_dir_path; + return _k; + } + auto base_dir_path() { + auto _k = _manifest.src.base_dir_path; + return _k; + } + auto media_dir_path() { + auto _k = _manifest.src.media_dir_path; + return _k; + } + auto base_parent_dir() { + auto _k = _manifest.src.base_parent_dir; + return _k; + } + auto file_insert_list() { + string[] _k = _header_body_insertfilelist_imagelist[headBody.insert_file_list]; + return _k; + } + auto image_list() { + return _images; + } + } + return SRC_(); } - auto language() { - return _manifest.src_lng; + auto pod() { + struct Pod_ { + auto src_is_pod() { + return _manifest.pod.src_is_pod; + } + auto manifest_list_of_filenames() { + return _manifest.pod.manifest_list_of_filenames; + } + auto manifest_list_of_languages() { + return _manifest.pod.manifest_list_of_languages; + } + auto manifest_filename() { + return _manifest.pod.manifest_filename; + } + auto manifest_path() { + return _manifest.pod.manifest_path; + } + auto manifest_file_with_path() { + return _manifest.pod.manifest_file_with_path; + } + auto config_dirs() { + return _manifest.pod.config_dirs; + } + auto image_dirs() { + return _manifest.pod.image_dirs; + } + } + return Pod_(); + } + auto xml() { + struct XML_ { + auto keys_seq() { + /+ contains .seg & .scroll sequences +/ + auto _k = _document_section_keys_sequenced; + return _k; + } + string[] segnames() { + string[] _k = _doc_html_segnames; + return _k; + } + string[] segnames_lv_0_to_4() { + string[] _k = _doc_epub_segnames_0_4; + return _k; + } + } + return XML_(); } auto output_path() { - return _manifest.output_path; - } - auto pod_manifest_list_of_filenames() { - return _manifest.pod_manifest_list_of_filenames; - } - auto pod_manifest_list_of_languages() { - return _manifest.pod_manifest_list_of_languages; - } - auto pod_manifest_filename() { - return _manifest.pod_manifest_filename; - } - auto pod_manifest_path() { - return _manifest.pod_manifest_path; - } - auto pod_manifest_file_with_path() { - return _manifest.pod_manifest_file_with_path; - } - auto pod_config_dirs() { - return _manifest.pod_config_dirs; - } - auto pod_image_dirs() { - return _manifest.pod_image_dirs; - } - auto file_insert_list() { - string[] _k = _header_body_insertfilelist_imagelist[headBody.insert_file_list]; - return _k; - } - auto image_list() { - return _images; - } - auto keys_seq() { - /+ contains .seg & .scroll sequences +/ - auto _k = _document_section_keys_sequenced; - return _k; - } - string[] segnames() { - string[] _k = _doc_html_segnames; - return _k; - } - string[] segnames_lv_0_to_4() { - string[] _k = _doc_epub_segnames_0_4; - return _k; + return _manifest.output.path; } } auto doc_matters = DocumentMatters(); diff --git a/src/sdp/meta/metadoc_from_src.d b/src/sdp/meta/metadoc_from_src.d index 917b66f..a8014e3 100644 --- a/src/sdp/meta/metadoc_from_src.d +++ b/src/sdp/meta/metadoc_from_src.d @@ -779,8 +779,8 @@ template SiSUdocAbstraction() { : ocn_emit(OCNstatus.on); // : ocn_emit(obj_type_status["ocn_status"]); an_object["is"] = "heading"; an_object_key="body_nugget"; - auto substantive_object_and_anchor_tags_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + auto substantive_object_and_anchor_tags_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); an_object["substantive"] = substantive_object_and_anchor_tags_tuple[sObj.content]; anchor_tags = substantive_object_and_anchor_tags_tuple[sObj.anchor_tags]; if (an_object["lev_markup_number"].to!int == 4) { @@ -814,10 +814,10 @@ template SiSUdocAbstraction() { break; } } - an_object["bookindex_nugget"] = - ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; - bookindex_unordered_hashes = - bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to); + an_object["bookindex_nugget"] + = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; + bookindex_unordered_hashes + = bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to); /+ (incrementally build toc) table of contents here! +/ _anchor_tag=to!string(obj_cite_digits.on); the_table_of_contents_section = obj_im.table_of_contents_gather_headings( @@ -833,8 +833,8 @@ template SiSUdocAbstraction() { html_segnames_ptr = html_segnames_ptr_cntr; html_segnames_ptr_cntr++; } - auto comp_obj_heading = - node_construct.node_emitter_heading( + auto comp_obj_heading + = node_construct.node_emitter_heading( an_object["substantive"], // string an_object["lev"], // string an_object["lev_markup_number"], // string @@ -868,13 +868,13 @@ template SiSUdocAbstraction() { && (line_occur["para"] > State.off)) { /+ paragraph object (current line empty) +/ obj_cite_digits = ocn_emit(obj_type_status["ocn_status"]); - an_object["bookindex_nugget"] = - ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; - bookindex_unordered_hashes = - bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to); + an_object["bookindex_nugget"] + = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; + bookindex_unordered_hashes + = bookindex_extract_hash.bookindex_nugget_hash(an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to); an_object["is"] = "para"; - auto comp_obj_heading = - node_construct.node_location_emitter( + auto comp_obj_heading + = node_construct.node_location_emitter( content_non_header, segment_anchor_tag_that_object_belongs_to, obj_cite_digits, @@ -882,8 +882,8 @@ template SiSUdocAbstraction() { heading_ptr-1, an_object["is"], ); - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags]; comp_obj_para = comp_obj_para.init; @@ -968,8 +968,8 @@ template SiSUdocAbstraction() { } } /+ ← closed: loop markup document/text line by line +/ /+ ↓ post loop markup document/text +/ - auto en_tuple = - note_section.endnote_objects(obj_cite_digits, opt_action); + auto en_tuple + = note_section.endnote_objects(obj_cite_digits, opt_action); static assert(!isTypeTuple!(en_tuple)); auto the_endnotes_section = en_tuple[0]; obj_cite_digits = en_tuple[1]; @@ -1010,8 +1010,8 @@ template SiSUdocAbstraction() { } auto biblio_unsorted_incomplete = biblio_arr_json.dup; auto biblio = Bibliography(); - auto biblio_ordered = - biblio._bibliography_(biblio_unsorted_incomplete, bib_arr_json); + auto biblio_ordered + = biblio._bibliography_(biblio_unsorted_incomplete, bib_arr_json); if (biblio_ordered.length > 0) { comp_obj_heading_ = comp_obj_heading_.init; comp_obj_heading_.of_part = "backmatter"; @@ -1104,8 +1104,8 @@ template SiSUdocAbstraction() { } } auto bi = BookIndexReportSection(); - auto bi_tuple = - bi.bookindex_build_abstraction_section( + auto bi_tuple + = bi.bookindex_build_abstraction_section( bookindex_unordered_hashes, obj_cite_digits, opt_action, @@ -1894,8 +1894,8 @@ template SiSUdocAbstraction() { obj_type_status["ocn_status"] = OCNstatus.on; } } else { - obj_type_status["ocn_status"] = - obj_type_status["ocn_status_off_for_multiple_objects"]; + obj_type_status["ocn_status"] + = obj_type_status["ocn_status_off_for_multiple_objects"]; } } } else if ((!line.empty) && (obj_type_status["ocn_status_off_for_multiple_objects"] > TriState.off)) { @@ -2250,8 +2250,8 @@ template SiSUdocAbstraction() { ); } an_object["is"] = "verse"; - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags]; comp_obj_block = comp_obj_block.init; @@ -2308,8 +2308,8 @@ template SiSUdocAbstraction() { heading_ptr-1, an_object["is"] ); - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags]; comp_obj_block = comp_obj_block.init; @@ -2351,8 +2351,8 @@ template SiSUdocAbstraction() { } processing.remove("verse"); an_object["is"] = "verse"; - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags]; comp_obj_block = comp_obj_block.init; @@ -2400,8 +2400,8 @@ template SiSUdocAbstraction() { } processing.remove("verse"); an_object["is"] = "verse"; - auto comp_obj_location = - node_construct.node_location_emitter( + auto comp_obj_location + = node_construct.node_location_emitter( content_non_header, segment_anchor_tag_that_object_belongs_to, obj_cite_digits, @@ -2409,8 +2409,8 @@ template SiSUdocAbstraction() { heading_ptr-1, an_object["is"] ); - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags]; comp_obj_block = comp_obj_block.init; @@ -2631,8 +2631,8 @@ template SiSUdocAbstraction() { } switch (biblio_tag_name) { case "author_raw": // author_arr author (fn sn) - j["author_arr"] = - header_tag_value.split(rgx.arr_delimiter); + j["author_arr"] + = header_tag_value.split(rgx.arr_delimiter); string tmp; biblioAuthorLoop: foreach (au; j["author_arr"].array) { @@ -2646,8 +2646,8 @@ template SiSUdocAbstraction() { j["author"].str = tmp; goto default; case "editor_raw": // editor_arr editor (fn sn) - j["editor_arr"] = - header_tag_value.split(rgx.arr_delimiter); + j["editor_arr"] + = header_tag_value.split(rgx.arr_delimiter); string tmp; biblioEditorLoop: foreach (ed; j["editor_arr"].array) { @@ -2701,8 +2701,8 @@ template SiSUdocAbstraction() { ) { comp_obj_block = comp_obj_block.init; obj_cite_digits = ocn_emit(OCNstatus.on); - auto comp_obj_location = - node_construct.node_location_emitter( + auto comp_obj_location + = node_construct.node_location_emitter( content_non_header, segment_anchor_tag_that_object_belongs_to, obj_cite_digits, @@ -2711,8 +2711,8 @@ template SiSUdocAbstraction() { "table" ); an_object["is"] = "table"; - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, "body_nugget", conf_make_meta); + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, "body_nugget", conf_make_meta); an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; comp_obj_block.ocn = obj_cite_digits.on; comp_obj_block.obj_cite_number = (obj_cite_digits.on==0) ? "" : obj_cite_digits.on.to!string; @@ -2751,17 +2751,17 @@ template SiSUdocAbstraction() { assertions_flag_types_block_status_none_or_closed(obj_type_status); if (obj_type_status["quote"] == TriState.closing) { obj_cite_digits = ocn_emit(OCNstatus.on); - an_object["bookindex_nugget"] = - ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; - bookindex_unordered_hashes = - bookindex_extract_hash.bookindex_nugget_hash( + an_object["bookindex_nugget"] + = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; + bookindex_unordered_hashes + = bookindex_extract_hash.bookindex_nugget_hash( an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to ); an_object["is"] = "quote"; - auto comp_obj_location = - node_construct.node_location_emitter( + auto comp_obj_location + = node_construct.node_location_emitter( content_non_header, segment_anchor_tag_that_object_belongs_to, obj_cite_digits, @@ -2769,8 +2769,8 @@ template SiSUdocAbstraction() { heading_ptr-1, an_object["is"] ); - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags]; comp_obj_block = comp_obj_block.init; @@ -2795,17 +2795,17 @@ template SiSUdocAbstraction() { ++cntr; } else if (obj_type_status["group"] == TriState.closing) { obj_cite_digits = ocn_emit(OCNstatus.on); - an_object["bookindex_nugget"] = - ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; - bookindex_unordered_hashes = - bookindex_extract_hash.bookindex_nugget_hash( + an_object["bookindex_nugget"] + = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; + bookindex_unordered_hashes + = bookindex_extract_hash.bookindex_nugget_hash( an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to ); an_object["is"] = "group"; - auto comp_obj_location = - node_construct.node_location_emitter( + auto comp_obj_location + = node_construct.node_location_emitter( content_non_header, segment_anchor_tag_that_object_belongs_to, obj_cite_digits, @@ -2813,8 +2813,8 @@ template SiSUdocAbstraction() { heading_ptr-1, an_object["is"] ); - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags]; comp_obj_block = comp_obj_block.init; @@ -2839,17 +2839,17 @@ template SiSUdocAbstraction() { ++cntr; } else if (obj_type_status["block"] == TriState.closing) { obj_cite_digits = ocn_emit(OCNstatus.on); - an_object["bookindex_nugget"] = - ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; - bookindex_unordered_hashes = - bookindex_extract_hash.bookindex_nugget_hash( + an_object["bookindex_nugget"] + = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; + bookindex_unordered_hashes + = bookindex_extract_hash.bookindex_nugget_hash( an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to ); an_object["is"] = "block"; - auto comp_obj_location = - node_construct.node_location_emitter( + auto comp_obj_location + = node_construct.node_location_emitter( content_non_header, segment_anchor_tag_that_object_belongs_to, obj_cite_digits, @@ -2857,8 +2857,8 @@ template SiSUdocAbstraction() { heading_ptr-1, an_object["is"] ); - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; comp_obj_block = comp_obj_block.init; comp_obj_block.of_part = "body"; @@ -2881,17 +2881,17 @@ template SiSUdocAbstraction() { processing.remove("verse"); ++cntr; } else if (obj_type_status["poem"] == TriState.closing) { - an_object["bookindex_nugget"] = - ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; - bookindex_unordered_hashes = - bookindex_extract_hash.bookindex_nugget_hash( + an_object["bookindex_nugget"] + = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; + bookindex_unordered_hashes + = bookindex_extract_hash.bookindex_nugget_hash( an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to ); an_object["is"] = "verse"; - auto comp_obj_location = - node_construct.node_location_emitter( + auto comp_obj_location + = node_construct.node_location_emitter( content_non_header, segment_anchor_tag_that_object_belongs_to, obj_cite_digits, @@ -2917,17 +2917,17 @@ template SiSUdocAbstraction() { processing.remove("verse"); } else if (obj_type_status["code"] == TriState.closing) { obj_cite_digits = ocn_emit(OCNstatus.on); - an_object["bookindex_nugget"] = - ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; - bookindex_unordered_hashes = - bookindex_extract_hash.bookindex_nugget_hash( + an_object["bookindex_nugget"] + = ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; + bookindex_unordered_hashes + = bookindex_extract_hash.bookindex_nugget_hash( an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to ); an_object["is"] = "code"; - auto comp_obj_location = - node_construct.node_location_emitter( + auto comp_obj_location + = node_construct.node_location_emitter( content_non_header, segment_anchor_tag_that_object_belongs_to, obj_cite_digits, @@ -2935,8 +2935,8 @@ template SiSUdocAbstraction() { heading_ptr-1, an_object["is"] ); - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags]; comp_obj_code = comp_obj_code.init; @@ -2962,17 +2962,17 @@ template SiSUdocAbstraction() { } else if (obj_type_status["table"] == TriState.closing) { comp_obj_block = comp_obj_block.init; obj_cite_digits = ocn_emit(OCNstatus.on); - an_object["bookindex_nugget"] = - ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; - bookindex_unordered_hashes = - bookindex_extract_hash.bookindex_nugget_hash( + an_object["bookindex_nugget"] + =("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : ""; + bookindex_unordered_hashes + = bookindex_extract_hash.bookindex_nugget_hash( an_object["bookindex_nugget"], obj_cite_digits, segment_anchor_tag_that_object_belongs_to ); an_object["is"] = "table"; - auto comp_obj_location = - node_construct.node_location_emitter( + auto comp_obj_location + = node_construct.node_location_emitter( content_non_header, segment_anchor_tag_that_object_belongs_to, obj_cite_digits, @@ -2980,9 +2980,9 @@ template SiSUdocAbstraction() { heading_ptr-1, an_object["is"] ); - auto substantive_obj_misc_tuple = - obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); - an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; + auto substantive_obj_misc_tuple + = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); + an_object["substantive"] = substantive_obj_misc_tuple[sObj.content]; comp_obj_block = comp_obj_block.init; comp_obj_block.ocn = obj_cite_digits.on; comp_obj_block.obj_cite_number = (obj_cite_digits.on==0) ? "" : obj_cite_digits.on.to!string; @@ -3078,8 +3078,8 @@ template SiSUdocAbstraction() { debug(headingsfound) { writeln(dochead_make_identify_unmarked_headings); } - char[][] make_headings_spl = - (cast(char[]) dochead_make_identify_unmarked_headings) + char[][] make_headings_spl + = (cast(char[]) dochead_make_identify_unmarked_headings) .split(rgx.make_heading_delimiter); debug(headingsfound) { writeln(make_headings_spl.length); @@ -3088,58 +3088,58 @@ template SiSUdocAbstraction() { switch (make_headings_spl.length) { case 7 : if (!empty(make_headings_spl[6])) { - heading_match_str["h_4"] = - "^(" ~ make_headings_spl[6].to!string ~ ")"; - heading_match_rgx["h_4"] = - regex(heading_match_str["h_4"]); + heading_match_str["h_4"] + = "^(" ~ make_headings_spl[6].to!string ~ ")"; + heading_match_rgx["h_4"] + = regex(heading_match_str["h_4"]); } goto case; case 6 : if (!empty(make_headings_spl[5])) { - heading_match_str["h_3"] = - "^(" ~ make_headings_spl[5].to!string ~ ")"; - heading_match_rgx["h_3"] = - regex(heading_match_str["h_3"]); + heading_match_str["h_3"] + = "^(" ~ make_headings_spl[5].to!string ~ ")"; + heading_match_rgx["h_3"] + = regex(heading_match_str["h_3"]); } goto case; case 5 : if (!empty(make_headings_spl[4])) { - heading_match_str["h_2"] = - "^(" ~ make_headings_spl[4].to!string ~ ")"; - heading_match_rgx["h_2"] = - regex(heading_match_str["h_2"]); + heading_match_str["h_2"] + = "^(" ~ make_headings_spl[4].to!string ~ ")"; + heading_match_rgx["h_2"] + = regex(heading_match_str["h_2"]); } goto case; case 4 : if (!empty(make_headings_spl[3])) { - heading_match_str["h_1"] = - "^(" ~ make_headings_spl[3].to!string ~ ")"; - heading_match_rgx["h_1"] = - regex(heading_match_str["h_1"]); + heading_match_str["h_1"] + = "^(" ~ make_headings_spl[3].to!string ~ ")"; + heading_match_rgx["h_1"] + = regex(heading_match_str["h_1"]); } goto case; case 3 : if (!empty(make_headings_spl[2])) { - heading_match_str["h_D"] = - "^(" ~ make_headings_spl[2].to!string ~ ")"; - heading_match_rgx["h_D"] = - regex(heading_match_str["h_D"]); + heading_match_str["h_D"] + = "^(" ~ make_headings_spl[2].to!string ~ ")"; + heading_match_rgx["h_D"] + = regex(heading_match_str["h_D"]); } goto case; case 2 : if (!empty(make_headings_spl[1])) { - heading_match_str["h_C"] = - "^(" ~ make_headings_spl[1].to!string ~ ")"; - heading_match_rgx["h_C"] = - regex(heading_match_str["h_C"]); + heading_match_str["h_C"] + = "^(" ~ make_headings_spl[1].to!string ~ ")"; + heading_match_rgx["h_C"] + = regex(heading_match_str["h_C"]); } goto case; case 1 : if (!empty(make_headings_spl[0])) { - heading_match_str["h_B"] = - "^(" ~ make_headings_spl[0].to!string ~ ")"; - heading_match_rgx["h_B"] = - regex(heading_match_str["h_B"]); + heading_match_str["h_B"] + = "^(" ~ make_headings_spl[0].to!string ~ ")"; + heading_match_rgx["h_B"] + = regex(heading_match_str["h_B"]); } break; default: @@ -3252,8 +3252,8 @@ template SiSUdocAbstraction() { .replaceFirst(rgx.variable_doc_author, conf_make_meta.meta.creator_author); collapsed_lev["h0"] = 0; - an_object["lev_collapsed_number"] = - collapsed_lev["h0"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h0"].to!string; lv["lv"] = DocStructMarkupHeading.h_sect_A; ++lv["h0"]; lv["h1"] = State.off; @@ -3266,8 +3266,8 @@ template SiSUdocAbstraction() { goto default; case "B": collapsed_lev["h1"] = collapsed_lev["h0"] + 1; - an_object["lev_collapsed_number"] = - collapsed_lev["h1"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h1"].to!string; lv["lv"] = DocStructMarkupHeading.h_sect_B; ++lv["h1"]; lv["h2"] = State.off; @@ -3279,8 +3279,8 @@ template SiSUdocAbstraction() { goto default; case "C": collapsed_lev["h2"] = collapsed_lev["h1"] + 1; - an_object["lev_collapsed_number"] = - collapsed_lev["h2"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h2"].to!string; lv["lv"] = DocStructMarkupHeading.h_sect_C; ++lv["h2"]; lv["h3"] = State.off; @@ -3291,8 +3291,8 @@ template SiSUdocAbstraction() { goto default; case "D": collapsed_lev["h3"] = collapsed_lev["h2"] + 1; - an_object["lev_collapsed_number"] = - collapsed_lev["h3"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h3"].to!string; lv["lv"] = DocStructMarkupHeading.h_sect_D; ++lv["h3"]; lv["h4"] = State.off; @@ -3310,8 +3310,8 @@ template SiSUdocAbstraction() { } else if (lv["h0"] > State.off) { collapsed_lev["h4"] = collapsed_lev["h0"] + 1; } - an_object["lev_collapsed_number"] = - collapsed_lev["h4"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h4"].to!string; lv["lv"] = DocStructMarkupHeading.h_text_1; ++lv["h4"]; lv["h5"] = State.off; @@ -3320,12 +3320,12 @@ template SiSUdocAbstraction() { goto default; case "2": if (lv["h5"] > State.off) { - an_object["lev_collapsed_number"] = - collapsed_lev["h5"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h5"].to!string; } else if (lv["h4"] > State.off) { collapsed_lev["h5"] = collapsed_lev["h4"] + 1; - an_object["lev_collapsed_number"] = - collapsed_lev["h5"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h5"].to!string; } lv["lv"] = DocStructMarkupHeading.h_text_2; ++lv["h5"]; @@ -3334,12 +3334,12 @@ template SiSUdocAbstraction() { goto default; case "3": if (lv["h6"] > State.off) { - an_object["lev_collapsed_number"] = - collapsed_lev["h6"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h6"].to!string; } else if (lv["h5"] > State.off) { collapsed_lev["h6"] = collapsed_lev["h5"] + 1; - an_object["lev_collapsed_number"] = - collapsed_lev["h6"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h6"].to!string; } lv["lv"] = DocStructMarkupHeading.h_text_3; ++lv["h6"]; @@ -3347,12 +3347,12 @@ template SiSUdocAbstraction() { goto default; case "4": if (lv["h7"] > State.off) { - an_object["lev_collapsed_number"] = - collapsed_lev["h7"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h7"].to!string; } else if (lv["h6"] > State.off) { collapsed_lev["h7"] = collapsed_lev["h6"] + 1; - an_object["lev_collapsed_number"] = - collapsed_lev["h7"].to!string; + an_object["lev_collapsed_number"] + = collapsed_lev["h7"].to!string; } lv["lv"] = DocStructMarkupHeading.h_text_4; ++lv["h7"]; @@ -3818,8 +3818,8 @@ template SiSUdocAbstraction() { rgx.inline_notes_curly_sp_asterisk, (mkup.en_a_o ~ "*" ~ " $1" ~ mkup.en_a_c) ); - obj_txt_in = - obj_txt_in.replaceAll( + obj_txt_in + = obj_txt_in.replaceAll( rgx.inline_notes_curly_sp_plus, (mkup.en_a_o ~ "+" ~ " $1" ~ mkup.en_a_c) ); @@ -4313,7 +4313,7 @@ template SiSUdocAbstraction() { heading_num_3 = 0; } else if ( heading_num_top_level - == obj_["lev_markup_number"].to!uint + == obj_["lev_markup_number"].to!uint ) { heading_num_0 ++; heading_num_1 = 0; @@ -4321,26 +4321,26 @@ template SiSUdocAbstraction() { heading_num_3 = 0; } else if ( heading_num_top_level - == (obj_["lev_markup_number"].to!uint - 1) + == (obj_["lev_markup_number"].to!uint - 1) ) { heading_num_1 ++; heading_num_2 = 0; heading_num_3 = 0; } else if ( heading_num_top_level - == (obj_["lev_markup_number"].to!uint - 2) + == (obj_["lev_markup_number"].to!uint - 2) ) { heading_num_2 ++; heading_num_3 = 0; } else if ( heading_num_top_level - == (obj_["lev_markup_number"].to!uint - 3) + == (obj_["lev_markup_number"].to!uint - 3) ) { heading_num_3 ++; } if (heading_num_3 > 0) { - heading_number_auto_composite = - (heading_num_depth == 3) + heading_number_auto_composite + = (heading_num_depth == 3) ? ( heading_num_0.to!string ~ "." ~ heading_num_1.to!string ~ "." ~ heading_num_2.to!string ~ "." @@ -4348,8 +4348,8 @@ template SiSUdocAbstraction() { ) : ""; } else if (heading_num_2 > 0) { - heading_number_auto_composite = - ((heading_num_depth >= 2) + heading_number_auto_composite + = ((heading_num_depth >= 2) && (heading_num_depth <= 3)) ? ( heading_num_0.to!string ~ "." ~ heading_num_1.to!string ~ "." @@ -4357,16 +4357,16 @@ template SiSUdocAbstraction() { ) : ""; } else if (heading_num_1 > 0) { - heading_number_auto_composite = - ((heading_num_depth >= 1) + heading_number_auto_composite + = ((heading_num_depth >= 1) && (heading_num_depth <= 3)) ? ( heading_num_0.to!string ~ "." ~ heading_num_1.to!string ) : ""; } else if (heading_num_0 > 0) { - heading_number_auto_composite = - ((heading_num_depth >= 0) + heading_number_auto_composite + = ((heading_num_depth >= 0) && (heading_num_depth <= 3)) ? (heading_num_0.to!string) : ""; @@ -4706,10 +4706,10 @@ template SiSUdocAbstraction() { oa_j.object["obj_cite_number"] = _comp_obj_heading.ocn; oa_j.object["lev_markup_number"] = _comp_obj_heading.heading_lev_markup; oa_j.object["lev_collapsed_number"] = _comp_obj_heading.heading_lev_collapsed; - oa_j.object["heading_ptr"] = - _comp_obj_heading.ptr_heading; - oa_j.object["doc_object_ptr"] = - _comp_obj_heading.ptr_doc_object; + oa_j.object["heading_ptr"] + = _comp_obj_heading.ptr_heading; + oa_j.object["doc_object_ptr"] + = _comp_obj_heading.ptr_doc_object; } oa_j.object["parent_obj_cite_number"] = _comp_obj_heading.parent_ocn; oa_j.object["parent_lev_markup_number"] = _comp_obj_heading.parent_lev_markup; @@ -4747,11 +4747,11 @@ template SiSUdocAbstraction() { body { static auto rgx = Rgx(); if (!bookindex_section.empty) { - auto bi_main_terms_split_arr = - bookindex_section.split(rgx.bi_main_terms_split); + auto bi_main_terms_split_arr + = bookindex_section.split(rgx.bi_main_terms_split); foreach (bi_main_terms_content; bi_main_terms_split_arr) { - auto bi_main_term_and_rest = - bi_main_terms_content.split(rgx.bi_main_term_plus_rest_split); + auto bi_main_term_and_rest + = bi_main_terms_content.split(rgx.bi_main_term_plus_rest_split); if (auto m = bi_main_term_and_rest[0].match( rgx.bi_term_and_obj_cite_numbers_match) ) { @@ -4768,8 +4768,8 @@ template SiSUdocAbstraction() { bi[main_term]["_a"] ~= obj_cite_numbers; obj_cite_numbers=null; if (bi_main_term_and_rest.length > 1) { - auto bi_sub_terms_split_arr = - bi_main_term_and_rest[1].split( + auto bi_sub_terms_split_arr + = bi_main_term_and_rest[1].split( rgx.bi_sub_terms_plus_obj_cite_number_offset_split ); foreach (sub_terms_bits; bi_sub_terms_split_arr) { @@ -4806,14 +4806,14 @@ template SiSUdocAbstraction() { debug(asserts) { static assert(is(typeof(bookindex_unordered_hashes) == string[][string][string])); } - auto mainkeys= - bookindex_unordered_hashes.byKey.array.sort().release; + auto mainkeys + = bookindex_unordered_hashes.byKey.array.sort().release; foreach (mainkey; mainkeys) { debug(bookindex1) { writeln(mainkey); } - auto subkeys= - bookindex_unordered_hashes[mainkey].byKey.array.sort().release; + auto subkeys + = bookindex_unordered_hashes[mainkey].byKey.array.sort().release; foreach (subkey; subkeys) { debug(bookindex1) { writeln(" ", subkey); @@ -4846,8 +4846,8 @@ template SiSUdocAbstraction() { } writeln(" \\\\"); bookindex_unordered_hashes[mainkey].remove("_a"); - auto subkeys= - bookindex_unordered_hashes[mainkey].byKey.array.sort().release; + auto subkeys + = bookindex_unordered_hashes[mainkey].byKey.array.sort().release; foreach (subkey; subkeys) { write(" ", subkey, ", "); foreach (ref_; bookindex_unordered_hashes[mainkey][subkey]) { @@ -4877,8 +4877,8 @@ template SiSUdocAbstraction() { int heading_lev_markup, heading_lev_collapsed; string attrib; int[string] indent; - auto mainkeys = - bookindex_unordered_hashes.byKey.array.sort().release; + auto mainkeys + = bookindex_unordered_hashes.byKey.array.sort().release; ObjGenericComposite[][string] bookindex_section; ObjGenericComposite comp_obj_heading_, comp_obj_para; auto node_para_int_ = node_metadata_para_int; @@ -4941,8 +4941,8 @@ template SiSUdocAbstraction() { auto bkidx_lnk_seg(string locs) { string markup = ""; if (auto m = locs.matchFirst(rgx.book_index_go_seg)) { - markup = - munge.url_links("{ " ~ m["link"] ~ " }" + markup + = munge.url_links("{ " ~ m["link"] ~ " }" ~ mkup.mark_internal_site_lnk ~ m["seg"] ~ ".fnSuffix" ~ "#" ~ m["ocn"] ~ ", "); } else { @@ -4953,8 +4953,8 @@ template SiSUdocAbstraction() { auto bkidx_lnk_scroll(string locs) { string markup = ""; if (auto m = locs.matchFirst(rgx.book_index_go)) { - markup = - munge.url_links("{ " ~ m["link"] ~ " }" + markup + = munge.url_links("{ " ~ m["link"] ~ " }" ~ mkup.mark_internal_site_lnk ~ "#" ~ m["ocn"] ~ ", "); } else { @@ -4969,8 +4969,8 @@ template SiSUdocAbstraction() { bi_tmp_scroll ~= " \\\\\n "; bi_tmp_seg ~= " \\\\\n "; bookindex_unordered_hashes[mainkey].remove("_a"); - auto subkeys = - bookindex_unordered_hashes[mainkey].byKey.array.sort().release; + auto subkeys + = bookindex_unordered_hashes[mainkey].byKey.array.sort().release; foreach (subkey; subkeys) { bi_tmp_scroll ~= subkey ~ ", "; buffer.clear(); @@ -5214,8 +5214,8 @@ template SiSUdocAbstraction() { } } body { - JSONValue[] biblio_unsorted = - _biblio_unsorted_complete_(biblio_unsorted_incomplete, bib_arr_json); + JSONValue[] biblio_unsorted + = _biblio_unsorted_complete_(biblio_unsorted_incomplete, bib_arr_json); biblio_arr_json = []; biblio_unsorted_incomplete = []; JSONValue[] biblio_sorted__ = biblio_sort(biblio_unsorted); @@ -5265,8 +5265,8 @@ template SiSUdocAbstraction() { } bib_arr_json ~= j; } - JSONValue[] biblio_unsorted_array_of_json_objects = - bib_arr_json.dup; + JSONValue[] biblio_unsorted_array_of_json_objects + = bib_arr_json.dup; destroy(bib_arr_json); return biblio_unsorted_array_of_json_objects; } @@ -5275,8 +5275,8 @@ template SiSUdocAbstraction() { static assert(is(typeof(biblio_unordered) == JSONValue[])); } JSONValue[] biblio_sorted_; - biblio_sorted_ = - sort!((a, b){ + biblio_sorted_ + = sort!((a, b){ return ((a["sortby_deemed_author_year_title"].str) < (b["sortby_deemed_author_year_title"].str)); })(biblio_unordered).array; debug(bibliosorted) { @@ -5426,24 +5426,24 @@ template SiSUdocAbstraction() { lv = DocStructMarkupHeading.h_sect_B; lv1 = obj_cite_digit; lv2=0; lv3=0; lv4=0; lv5=0; lv6=0; lv7=0; - p_["lev_markup_number"] = - DocStructMarkupHeading.h_sect_A; + p_["lev_markup_number"] + = DocStructMarkupHeading.h_sect_A; p_["obj_cite_number"] = lv0; break; case 2: lv = DocStructMarkupHeading.h_sect_C; lv2 = obj_cite_digit; lv3=0; lv4=0; lv5=0; lv6=0; lv7=0; - p_["lev_markup_number"] = - DocStructMarkupHeading.h_sect_B; + p_["lev_markup_number"] + = DocStructMarkupHeading.h_sect_B; p_["obj_cite_number"] = lv1; break; case 3: lv = DocStructMarkupHeading.h_sect_D; lv3=obj_cite_digit; lv4=0; lv5=0; lv6=0; lv7=0; - p_["lev_markup_number"] = - DocStructMarkupHeading.h_sect_C; + p_["lev_markup_number"] + = DocStructMarkupHeading.h_sect_C; p_["obj_cite_number"] = lv2; break; case 4: @@ -5451,20 +5451,20 @@ template SiSUdocAbstraction() { lv4 = obj_cite_digit; lv5=0; lv6=0; lv7=0; if (lv3 > State.off) { - p_["lev_markup_number"] = - DocStructMarkupHeading.h_sect_D; + p_["lev_markup_number"] + = DocStructMarkupHeading.h_sect_D; p_["obj_cite_number"] = lv3; } else if (lv2 > State.off) { - p_["lev_markup_number"] = - DocStructMarkupHeading.h_sect_C; + p_["lev_markup_number"] + = DocStructMarkupHeading.h_sect_C; p_["obj_cite_number"] = lv2; } else if (lv1 > State.off) { - p_["lev_markup_number"] = - DocStructMarkupHeading.h_sect_B; + p_["lev_markup_number"] + = DocStructMarkupHeading.h_sect_B; p_["obj_cite_number"] = lv1; } else { - p_["lev_markup_number"] = - DocStructMarkupHeading.h_sect_A; + p_["lev_markup_number"] + = DocStructMarkupHeading.h_sect_A; p_["obj_cite_number"] = lv0; } break; @@ -5472,23 +5472,23 @@ template SiSUdocAbstraction() { lv = DocStructMarkupHeading.h_text_2; lv5 = obj_cite_digit; lv6=0; lv7=0; - p_["lev_markup_number"] = - DocStructMarkupHeading.h_text_1; + p_["lev_markup_number"] + = DocStructMarkupHeading.h_text_1; p_["obj_cite_number"] = lv4; break; case 6: lv = DocStructMarkupHeading.h_text_3; lv6 = obj_cite_digit; lv7=0; - p_["lev_markup_number"] = - DocStructMarkupHeading.h_text_2; + p_["lev_markup_number"] + = DocStructMarkupHeading.h_text_2; p_["obj_cite_number"] = lv5; break; case 7: lv = DocStructMarkupHeading.h_text_4; lv7 = obj_cite_digit; - p_["lev_markup_number"] = - DocStructMarkupHeading.h_text_3; + p_["lev_markup_number"] + = DocStructMarkupHeading.h_text_3; p_["obj_cite_number"] = lv6; break; default: diff --git a/src/sdp/meta/metadoc_summary.d b/src/sdp/meta/metadoc_summary.d index c1e3f76..ac2477e 100644 --- a/src/sdp/meta/metadoc_summary.d +++ b/src/sdp/meta/metadoc_summary.d @@ -2,7 +2,7 @@ module sdp.meta.metadoc_summary; template SiSUabstractionSummary() { auto SiSUabstractionSummary(S,T)( auto return ref const S doc_abstraction, - auto return ref T doc_matters, + auto return ref T doc_matters, ) { import sdp.meta.defaults, @@ -20,13 +20,13 @@ template SiSUabstractionSummary() { std.conv : to; mixin InternalMarkup; auto markup = InlineMarkup(); - if (doc_matters.opt_action.verbose) { + if (doc_matters.opt.action.verbose) { string[string] check = [ "last_obj_cite_number" : "NA [debug \"checkdoc\" not run]", "last_obj_cite_number_body" : "0", "last_obj_cite_number_bkidx" : "0", ]; - foreach (k; doc_matters.keys_seq.seg) { + foreach (k; doc_matters.xml.keys_seq.seg) { foreach (obj; doc_abstraction[k]) { if (obj.of_part != "empty") { if (!empty(obj.obj_cite_number)) { @@ -56,7 +56,7 @@ template SiSUabstractionSummary() { markup.repeat_character_by_number_provided("-", char_repeat_number), doc_matters.conf_make_meta.meta.title_full, doc_matters.conf_make_meta.meta.creator_author, - doc_matters.source_filename, + doc_matters.src.filename, markup.repeat_character_by_number_provided("-", char_repeat_number), "length toc arr:", to!int(doc_abstraction["toc_seg"].length), diff --git a/src/sdp/meta/read_config_files.d b/src/sdp/meta/read_config_files.d index 57aba7f..52446e8 100644 --- a/src/sdp/meta/read_config_files.d +++ b/src/sdp/meta/read_config_files.d @@ -12,9 +12,13 @@ static template configInSite() { std.path; final string configInSite(M,E)(M manifest, E env) { auto conf_file_details = ConfigFilePaths!()(manifest, env); - string conf_sdl = conf_file_details.config_filename_site; - auto possible_config_path_locations = conf_file_details.possible_config_path_locations_local_site; + string conf_sdl = conf_file_details.possible_config_path_locations.config_filename_site; + auto possible_config_path_locations = conf_file_details.possible_config_path_locations.local_site; string config_file_str; + debug(io) { + writeln("in config filename: ", conf_sdl); + writeln("in config possible path locations: ", possible_config_path_locations); + } foreach(pth; possible_config_path_locations) { auto conf_file = asNormalizedPath(chainPath(to!string(pth), conf_sdl)).array; if (config_file_str.length > 0) { @@ -22,8 +26,8 @@ static template configInSite() { } try { if (exists(conf_file)) { - debug(configfile) { - writeln(conf_file); + debug(io) { + writeln("in config file found: ", conf_file); } config_file_str = conf_file.readText; break; @@ -46,8 +50,12 @@ static template configInDoc() { final string configInDoc(M,E)(M manifest, E env) { auto conf_file_details = ConfigFilePaths!()(manifest, env); string conf_sdl = conf_file_details.config_filename_document; - auto possible_config_path_locations = conf_file_details.possible_config_path_locations_document; + auto possible_config_path_locations = conf_file_details.possible_config_path_locations.document; string config_file_str; + debug(io) { + writeln("in config filename: ", conf_sdl); + writeln("in config possible path locations: ", possible_config_path_locations); + } foreach(pth; possible_config_path_locations) { auto conf_file = asNormalizedPath(chainPath(to!string(pth), conf_sdl)).array; if (config_file_str.length > 0) { @@ -55,8 +63,8 @@ static template configInDoc() { } try { if (exists(conf_file)) { - debug(configfile) { - writeln(conf_file); + debug(io) { + writeln("in config file found: ", conf_file); } config_file_str = conf_file.readText; break; @@ -104,7 +112,7 @@ static template configReadSite() { final auto configReadSite(M,E)(M manifest, E env) { auto configuration = configInSite!()(manifest, env); auto conf_file_details = ConfigFilePaths!()(manifest, env); - string conf_sdl = conf_file_details.config_filename_site; + string conf_sdl = conf_file_details.possible_config_path_locations.config_filename_site; auto sdl_root = ConfigSDLang!()(configuration, conf_sdl); return sdl_root; } diff --git a/src/sdp/meta/read_source_files.d b/src/sdp/meta/read_source_files.d index 95a9dbe..0e53e73 100644 --- a/src/sdp/meta/read_source_files.d +++ b/src/sdp/meta/read_source_files.d @@ -25,37 +25,37 @@ static template SiSUrawMarkupContent() { } auto rawsrc = RawMarkupContent(); auto SiSUrawMarkupContent(O,Fn)(O _opt_action, Fn fn_src) { - auto _0_header_1_body_content_2_insert_filelist_tuple = - rawsrc.sourceContentSplitIntoHeaderAndBody(_opt_action, rawsrc.sourceContent(fn_src), fn_src); + auto _0_header_1_body_content_2_insert_filelist_tuple + = rawsrc.sourceContentSplitIntoHeaderAndBody(_opt_action, rawsrc.sourceContent(fn_src), fn_src); return _0_header_1_body_content_2_insert_filelist_tuple; } struct RawMarkupContent { final sourceContent(in string fn_src) { auto raw = MarkupRawUnit(); - auto source_txt_str = - raw.markupSourceReadIn(fn_src); + auto source_txt_str + = raw.markupSourceReadIn(fn_src); return source_txt_str; } final auto sourceContentSplitIntoHeaderAndBody(O)(O _opt_action, in string source_txt_str, in string fn_src="") { auto raw = MarkupRawUnit(); string[] insert_file_list; string[] images_list; - auto t = - raw.markupSourceHeaderContentRawLineTupleArray(source_txt_str); + auto t + = raw.markupSourceHeaderContentRawLineTupleArray(source_txt_str); auto header_raw = t[0]; auto sourcefile_body_content = t[1]; if (fn_src.match(rgx.src_fn_master)) { // filename with path needed if master file (.ssm) not otherwise auto ins = Inserts(); - auto tu = - ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src); + auto tu + = ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src); static assert(!isTypeTuple!(tu)); sourcefile_body_content = tu[0]; insert_file_list = tu[1].dup; images_list = tu[2].dup; } else if (_opt_action.source || _opt_action.sisupod) { auto ins = Inserts(); - auto tu = - ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src); + auto tu + = ins.scan_master_src_for_insert_files_and_import_content(_opt_action, sourcefile_body_content, fn_src); static assert(!isTypeTuple!(tu)); images_list = tu[2].dup; } @@ -80,6 +80,9 @@ static template SiSUrawMarkupContent() { string source_txt_str; try { if (exists(fn_src)) { + debug(io) { + writeln("in src, markup source file found: ", fn_src); + } source_txt_str = fn_src.readText; } } @@ -108,8 +111,8 @@ static template SiSUrawMarkupContent() { return header_and_content; } final private char[][] markupSourceLineArray(in char[] src_text) { - char[][] source_line_arr = - (cast(char[]) src_text).split(rgx.newline_eol_strip_preceding); + char[][] source_line_arr + = (cast(char[]) src_text).split(rgx.newline_eol_strip_preceding); return source_line_arr; } auto markupSourceReadIn(in string fn_src) { @@ -205,11 +208,11 @@ static template SiSUrawMarkupContent() { type1["header_meta"] = 0; auto insert_fn = m.captures[2]; auto insert_sub_pth = m.captures[1]; - auto fn_src_insert = - chainPath(markup_src_file_path, insert_sub_pth ~ insert_fn).array; + auto fn_src_insert + = chainPath(markup_src_file_path, insert_sub_pth ~ insert_fn).array; auto raw = MarkupRawUnit(); - auto markup_sourcesubfile_insert_content = - raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts); + auto markup_sourcesubfile_insert_content + = raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts); debug(insert_file) { tell_l("red", line); tell_l("red", fn_src_insert); @@ -285,8 +288,8 @@ static template SiSUrawMarkupContent() { } else if (auto m = line.match(rgx.insert_src_fn_ssi_or_sst)) { auto insert_fn = m.captures[2]; auto insert_sub_pth = m.captures[1]; - auto fn_src_insert = - chainPath(markup_src_file_path, insert_sub_pth ~ insert_fn).array; + auto fn_src_insert + = chainPath(markup_src_file_path, insert_sub_pth ~ insert_fn).array; insert_file_list ~= to!string(fn_src_insert); auto raw = MarkupRawUnit(); /+ TODO +/ @@ -294,8 +297,8 @@ static template SiSUrawMarkupContent() { /+ .sst when inserted, not used: headers and heading level ^:?A~ so remove +/ writeln(__LINE__); writeln(ma); } - auto markup_sourcefile_insert_content = - raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts); + auto markup_sourcefile_insert_content + = raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts); debug(insert_file) { tell_l("red", line); tell_l("red", fn_src_insert); diff --git a/src/sdp/meta/rgx.d b/src/sdp/meta/rgx.d index 37db8e7..c196ad2 100644 --- a/src/sdp/meta/rgx.d +++ b/src/sdp/meta/rgx.d @@ -211,6 +211,7 @@ static template SiSUrgxInit() { static src_fn_insert = ctRegex!(`^(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ssi)$`); static src_fn_find_inserts = ctRegex!(`^(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ss[im])$`); static insert_src_fn_ssi_or_sst = ctRegex!(`^<<\s*(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ss[ti])$`); + static src_base_parent_dir_name = ctRegex!(`[/](?P<dir>(?:[a-zA-Z0-9._-]+))(?:/media/text/[a-z]{2})$`); // formalizes dir structure /+ inline markup footnotes endnotes +/ static inline_notes_al = ctRegex!(`【(?:[*+]\s+|\s*)(.+?)】`, "mg"); static inline_notes_al_gen = ctRegex!(`【.+?】`, "m"); diff --git a/src/sdp/output/epub3.d b/src/sdp/output/epub3.d index 2641784..3c8eb4d 100644 --- a/src/sdp/output/epub3.d +++ b/src/sdp/output/epub3.d @@ -31,7 +31,7 @@ template outputEPub3() { } string epub3_oebps_content(D,I,P)(D doc_abstraction, I doc_matters, P parts) { auto xhtml_format = outputXHTMLs(); - auto pth_epub3 = SiSUpathsEPUB!()(doc_matters.output_path, doc_matters.language); + auto pth_epub3 = SiSUpathsEPUB!()(doc_matters.output_path, doc_matters.src.language); string uuid = "18275d951861c77f78acd05672c9906924c59f18a2e0ba06dad95959693e9bd8"; // TODO sort uuid in doc_matters! string content = format(q"¶ <?xml version='1.0' encoding='utf-8'?> <package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="EPB-UUID"> @@ -70,7 +70,7 @@ template outputEPub3() { ? "" : xhtml_format.special_characters_text(doc_matters.conf_make_meta.meta.creator_author), (doc_matters.conf_make_meta.meta.creator_author.empty) ? "" : xhtml_format.special_characters_text(doc_matters.conf_make_meta.meta.creator_author), - doc_matters.language, // language, fix (needed in dochead metadata) + doc_matters.src.language, // language, fix (needed in dochead metadata) (doc_matters.conf_make_meta.meta.date_published.empty) ? "" : xhtml_format.special_characters_text(doc_matters.conf_make_meta.meta.date_published), (doc_matters.conf_make_meta.meta.rights_copyright.empty) @@ -78,17 +78,17 @@ template outputEPub3() { uuid, uuid, uuid, - (pth_epub3.fn_oebps_css(doc_matters.source_filename)).chompPrefix("OEBPS/"), + (pth_epub3.fn_oebps_css(doc_matters.src.filename)).chompPrefix("OEBPS/"), ); content ~= " " ~ "<!-- Content Documents -->" ~ "\n "; content ~= parts["manifest_documents"]; // TODO sort jpg & png content ~= " " ~ "<!-- Images -->" ~ "\n "; - foreach (image; doc_matters.image_list) { + foreach (image; doc_matters.src.image_list) { content ~= format(q"¶ <item id="%s" href="%s/%s" media-type="image/%s" /> ¶", image.baseName.stripExtension, - (pth_epub3.doc_oebps_image(doc_matters.source_filename)).chompPrefix("OEBPS/"), + (pth_epub3.doc_oebps_image(doc_matters.src.filename)).chompPrefix("OEBPS/"), image, image.extension.chompPrefix("."), ); @@ -102,7 +102,7 @@ template outputEPub3() { content ~= " " ~ "</guide>" ~ "\n "; content ~= "" ~ "</package>"; debug(epubmanifest) { - foreach (s; doc_matters.keys_seq.seg) { + foreach (s; doc_matters.xml.keys_seq.seg) { foreach (obj; doc_abstraction[s]) { if (obj.is_a == "heading") { if (obj.heading_lev_markup == 4) { @@ -144,7 +144,7 @@ template outputEPub3() { <nav epub:type=\"toc\" id=\"toc\">\n", doc_matters.conf_make_meta.meta.title_full, ); - foreach (sect; doc_matters.keys_seq.seg) { + foreach (sect; doc_matters.xml.keys_seq.seg) { foreach (obj; doc_abstraction[sect]) { if (obj.is_a == "heading") { string _txt = obj.text.replaceAll(rgx.inline_notes_al_gen, "").strip; @@ -241,7 +241,7 @@ template outputEPub3() { (doc_matters.conf_make_meta.meta.creator_author.empty) ? "" : doc_matters.conf_make_meta.meta.creator_author, // author ); - foreach (sect; doc_matters.keys_seq.seg) { + foreach (sect; doc_matters.xml.keys_seq.seg) { foreach (obj; doc_abstraction[sect]) { if (obj.is_a == "heading") { string _txt = obj.text.replaceAll(rgx.inline_notes_al_gen, "").strip; @@ -307,7 +307,7 @@ template outputEPub3() { string[string] oepbs_content_parts; string suffix = ".xhtml"; string[] doc_parts_; - foreach (part; doc_matters.keys_seq.seg) { + foreach (part; doc_matters.xml.keys_seq.seg) { foreach (obj; doc_abstraction[part]) { string _txt = xhtml_format.special_characters(obj, obj.text); if (obj.is_a == "heading") { @@ -356,13 +356,13 @@ template outputEPub3() { doc_epub3_endnotes[segment_filename] ~= t[1]; break; case 8: .. case 9: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup); writeln(__FILE__, ":", __LINE__, ": ", obj.text); } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup); } break; @@ -380,14 +380,14 @@ template outputEPub3() { doc_epub3_endnotes[segment_filename] ~= t[1]; break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -403,7 +403,7 @@ template outputEPub3() { doc_epub3_endnotes[segment_filename] ~= t[1]; break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; @@ -442,14 +442,14 @@ template outputEPub3() { doc_epub3_endnotes[segment_filename] ~= t[1]; break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -485,14 +485,14 @@ template outputEPub3() { doc_epub3_endnotes[segment_filename] ~= t[1]; break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -501,7 +501,7 @@ template outputEPub3() { case "comment": break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.of_part); } break; @@ -591,10 +591,10 @@ template outputEPub3() { static assert(is(typeof(oebps_toc_ncx) == string)); static assert(is(typeof(oebps_content_opf) == string)); } - auto pth_epub3 = SiSUpathsEPUB!()(doc_matters.output_path, doc_matters.language); + auto pth_epub3 = SiSUpathsEPUB!()(doc_matters.output_path, doc_matters.src.language); auto xhtml_format = outputXHTMLs(); /+ zip file +/ - auto fn_epub = pth_epub3.epub_file(doc_matters.source_filename); + auto fn_epub = pth_epub3.epub_file(doc_matters.src.filename); auto zip = new ZipArchive(); // ZipArchive zip = new ZipArchive(); /+ zip archive member files +/ try { @@ -602,24 +602,24 @@ template outputEPub3() { pth_epub3.base.mkdirRecurse; } debug(epub_output) { - if (!exists(pth_epub3.dbg_doc_meta_inf(doc_matters.source_filename))) { - pth_epub3.dbg_doc_meta_inf(doc_matters.source_filename).mkdirRecurse; + if (!exists(pth_epub3.dbg_doc_meta_inf(doc_matters.src.filename))) { + pth_epub3.dbg_doc_meta_inf(doc_matters.src.filename).mkdirRecurse; } - if (!exists(pth_epub3.dbg_doc_oebps_css(doc_matters.source_filename))) { - pth_epub3.dbg_doc_oebps_css(doc_matters.source_filename).mkdirRecurse; + if (!exists(pth_epub3.dbg_doc_oebps_css(doc_matters.src.filename))) { + pth_epub3.dbg_doc_oebps_css(doc_matters.src.filename).mkdirRecurse; } - if (!exists(pth_epub3.dbg_doc_oebps_image(doc_matters.source_filename))) { - pth_epub3.dbg_doc_oebps_image(doc_matters.source_filename).mkdirRecurse; + if (!exists(pth_epub3.dbg_doc_oebps_image(doc_matters.src.filename))) { + pth_epub3.dbg_doc_oebps_image(doc_matters.src.filename).mkdirRecurse; } } { /+ OEBPS/[segments].xhtml (the document contents) +/ - foreach (seg_filename; doc_matters.segnames_lv_0_to_4) { - string fn = pth_epub3.fn_oebps_content_xhtml(doc_matters.source_filename, seg_filename); + foreach (seg_filename; doc_matters.xml.segnames_lv_0_to_4) { + string fn = pth_epub3.fn_oebps_content_xhtml(doc_matters.src.filename, seg_filename); auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); debug(epub_output) { - string fn_dbg = pth_epub3.dbg_fn_oebps_content_xhtml(doc_matters.source_filename, seg_filename); + string fn_dbg = pth_epub3.dbg_fn_oebps_content_xhtml(doc_matters.src.filename, seg_filename); auto f = File(fn_dbg, "w"); } foreach (docseg; doc_epub3[seg_filename]) { @@ -643,10 +643,10 @@ template outputEPub3() { File f; { /+ mimetypes (identify zip file type) +/ debug(epub_output) { - fn_dbg = pth_epub3.dbg_fn_mimetypes(doc_matters.source_filename); + fn_dbg = pth_epub3.dbg_fn_mimetypes(doc_matters.src.filename); File(fn_dbg, "w").writeln(mimetypes); } - fn = pth_epub3.fn_mimetypes(doc_matters.source_filename); + fn = pth_epub3.fn_mimetypes(doc_matters.src.filename); auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); @@ -657,10 +657,10 @@ template outputEPub3() { } { /+ META-INF/container.xml (identify doc root) +/ debug(epub_output) { - fn_dbg = pth_epub3.dbg_fn_dmi_container_xml(doc_matters.source_filename); + fn_dbg = pth_epub3.dbg_fn_dmi_container_xml(doc_matters.src.filename); File(fn_dbg, "w").writeln(meta_inf_container_xml); } - fn = pth_epub3.fn_dmi_container_xml(doc_matters.source_filename); + fn = pth_epub3.fn_dmi_container_xml(doc_matters.src.filename); auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); @@ -671,10 +671,10 @@ template outputEPub3() { } { /+ OEBPS/toc_nav.xhtml (navigation toc epub3) +/ debug(epub_output) { - fn_dbg = pth_epub3.dbg_fn_oebps_toc_nav_xhtml(doc_matters.source_filename); + fn_dbg = pth_epub3.dbg_fn_oebps_toc_nav_xhtml(doc_matters.src.filename); File(fn_dbg, "w").writeln(oebps_toc_nav_xhtml); } - fn = pth_epub3.fn_oebps_toc_nav_xhtml(doc_matters.source_filename); + fn = pth_epub3.fn_oebps_toc_nav_xhtml(doc_matters.src.filename); auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); @@ -685,10 +685,10 @@ template outputEPub3() { } { /+ OEBPS/toc.ncx (navigation toc epub2) +/ debug(epub_output) { - fn_dbg = pth_epub3.dbg_fn_oebps_toc_ncx(doc_matters.source_filename); + fn_dbg = pth_epub3.dbg_fn_oebps_toc_ncx(doc_matters.src.filename); File(fn_dbg, "w").writeln(oebps_toc_ncx); } - fn = pth_epub3.fn_oebps_toc_ncx(doc_matters.source_filename); + fn = pth_epub3.fn_oebps_toc_ncx(doc_matters.src.filename); auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); @@ -699,10 +699,10 @@ template outputEPub3() { } { /+ OEBPS/content.opf (doc manifest) +/ debug(epub_output) { - fn_dbg = pth_epub3.dbg_fn_oebps_content_opf(doc_matters.source_filename); + fn_dbg = pth_epub3.dbg_fn_oebps_content_opf(doc_matters.src.filename); File(fn_dbg, "w").writeln(oebps_content_opf); } - fn = pth_epub3.fn_oebps_content_opf(doc_matters.source_filename); + fn = pth_epub3.fn_oebps_content_opf(doc_matters.src.filename); auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); @@ -712,25 +712,25 @@ template outputEPub3() { createZipFile!()(fn_epub, zip.build()); } { /+ OEBPS/_sisu/image (images) +/ - foreach (image; doc_matters.image_list) { + foreach (image; doc_matters.src.image_list) { debug(epub_output) { - if (exists(doc_matters.src_path_info.image_root ~ "/" ~ image)) { - (doc_matters.src_path_info.image_root ~ "/" ~ image) - .copy((pth_epub3.dbg_doc_oebps_image(doc_matters.source_filename)) ~ "/" ~ image); + if (exists(doc_matters.src.path_info.image_root ~ "/" ~ image)) { + (doc_matters.src.path_info.image_root ~ "/" ~ image) + .copy((pth_epub3.dbg_doc_oebps_image(doc_matters.src.filename)) ~ "/" ~ image); } } } - foreach (image; doc_matters.image_list) { + foreach (image; doc_matters.src.image_list) { debug(epub_output) { debug(epub_images) { writeln( - doc_matters.src_path_info.image_root, image, " -> ", - pth_epub3.dbg_doc_oebps_image(doc_matters.source_filename), "/", image + doc_matters.src.path_info.image_root, image, " -> ", + pth_epub3.dbg_doc_oebps_image(doc_matters.src.filename), "/", image ); } } - auto fn_src = doc_matters.src_path_info.image_root ~ image; - auto fn_out = pth_epub3.doc_oebps_image(doc_matters.source_filename).to!string ~ "/" ~ image; + auto fn_src = doc_matters.src.path_info.image_root ~ image; + auto fn_out = pth_epub3.doc_oebps_image(doc_matters.src.filename).to!string ~ "/" ~ image; if (exists(fn_src)) { { auto zip_arc_member_file = new ArchiveMember(); @@ -747,10 +747,10 @@ template outputEPub3() { { /+ OEBPS/epub.css +/ auto css = SiSUcss(); debug(epub_output) { - fn_dbg = pth_epub3.dbg_fn_oebps_css(doc_matters.source_filename); + fn_dbg = pth_epub3.dbg_fn_oebps_css(doc_matters.src.filename); File(fn_dbg, "w").writeln(css.epub_css); } - fn = pth_epub3.fn_oebps_css(doc_matters.source_filename); + fn = pth_epub3.fn_oebps_css(doc_matters.src.filename); auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); diff --git a/src/sdp/output/html.d b/src/sdp/output/html.d index 6767e11..10539a5 100644 --- a/src/sdp/output/html.d +++ b/src/sdp/output/html.d @@ -24,7 +24,7 @@ template outputHTML() { string suffix = ".html"; string previous_part = ""; string delimit = ""; - foreach (part; doc_matters.keys_seq.scroll) { + foreach (part; doc_matters.xml.keys_seq.scroll) { foreach (obj; doc_abstraction[part]) { delimit = xhtml_format.div_delimit(part, previous_part); string _txt = xhtml_format.special_characters(obj, obj.text); @@ -40,14 +40,14 @@ template outputHTML() { doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -64,7 +64,7 @@ template outputHTML() { doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; @@ -93,14 +93,14 @@ template outputHTML() { doc_html ~= xhtml_format.table(obj, _txt); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -130,14 +130,14 @@ template outputHTML() { doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -146,7 +146,7 @@ template outputHTML() { case "comment": break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.of_part); writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); writeln(__FILE__, ":", __LINE__, ": ", obj.text); @@ -165,12 +165,12 @@ template outputHTML() { debug(asserts) { static assert(is(typeof(doc) == string[])); } - auto pth_html = SiSUpathsHTML!()(doc_matters.output_path, doc_matters.language); + auto pth_html = SiSUpathsHTML!()(doc_matters.output_path, doc_matters.src.language); try { if (!exists(pth_html.base)) { pth_html.base.mkdirRecurse; } - auto f = File(pth_html.fn_scroll(doc_matters.source_filename), "w"); + auto f = File(pth_html.fn_scroll(doc_matters.src.filename), "w"); foreach (o; doc) { f.writeln(o); } @@ -178,7 +178,7 @@ template outputHTML() { catch (ErrnoException ex) { // Handle error } - writeln(" ", pth_html.fn_scroll(doc_matters.source_filename)); + writeln(" ", pth_html.fn_scroll(doc_matters.src.filename)); } void seg(D,I)( auto return ref const D doc_abstraction, @@ -196,7 +196,7 @@ template outputHTML() { string suffix = ".html"; string previous_part = ""; string delimit = ""; - foreach (part; doc_matters.keys_seq.seg) { + foreach (part; doc_matters.xml.keys_seq.seg) { foreach (obj; doc_abstraction[part]) { delimit = xhtml_format.div_delimit(part, previous_part); string _txt = xhtml_format.special_characters(obj, obj.text); @@ -251,13 +251,13 @@ template outputHTML() { doc_html_endnotes[segment_filename] ~= t[1]; break; case 8: .. case 9: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup); writeln(__FILE__, ":", __LINE__, ": ", obj.text); } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup); } break; @@ -274,14 +274,14 @@ template outputHTML() { doc_html[segment_filename] ~= to!string(t[0]); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; @@ -297,7 +297,7 @@ template outputHTML() { doc_html_endnotes[segment_filename] ~= t[1]; break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; @@ -335,14 +335,14 @@ template outputHTML() { doc_html_endnotes[segment_filename] ~= ""; break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -378,14 +378,14 @@ template outputHTML() { doc_html_endnotes[segment_filename] ~= t[1]; break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -394,7 +394,7 @@ template outputHTML() { case "comment": break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.of_part); } break; @@ -414,15 +414,15 @@ template outputHTML() { } mixin SiSUoutputRgxInit; auto rgx = Rgx(); - auto pth_html = SiSUpathsHTML!()(doc_matters.output_path, doc_matters.language); + auto pth_html = SiSUpathsHTML!()(doc_matters.output_path, doc_matters.src.language); auto xhtml_format = outputXHTMLs(); - auto m = doc_matters.source_filename.matchFirst(rgx.src_fn); + auto m = doc_matters.src.filename.matchFirst(rgx.src_fn); try { - if (!exists(pth_html.seg(doc_matters.source_filename))) { - pth_html.seg(doc_matters.source_filename).mkdirRecurse; + if (!exists(pth_html.seg(doc_matters.src.filename))) { + pth_html.seg(doc_matters.src.filename).mkdirRecurse; } - foreach (seg_filename; doc_matters.segnames) { - auto f = File(pth_html.fn_seg(doc_matters.source_filename, seg_filename), "w"); + foreach (seg_filename; doc_matters.xml.segnames) { + auto f = File(pth_html.fn_seg(doc_matters.src.filename, seg_filename), "w"); foreach (docseg; doc_html[seg_filename]) { f.writeln(docseg); } @@ -435,13 +435,13 @@ template outputHTML() { catch (ErrnoException ex) { // handle error } - writeln(" ", pth_html.fn_seg(doc_matters.source_filename, "toc")); + writeln(" ", pth_html.fn_seg(doc_matters.src.filename, "toc")); } void css(M)( auto return ref M doc_matters, ) { auto css = SiSUcss(); - auto pth_html = SiSUpathsHTML!()(doc_matters.output_path, doc_matters.language); + auto pth_html = SiSUpathsHTML!()(doc_matters.output_path, doc_matters.src.language); try { if (!exists(pth_html.css)) { (pth_html.css).mkdirRecurse; diff --git a/src/sdp/output/hub.d b/src/sdp/output/hub.d index 1600dd2..7f03360 100644 --- a/src/sdp/output/hub.d +++ b/src/sdp/output/hub.d @@ -16,73 +16,108 @@ template outputHub() { void outputHub(D,I)(D doc_abstraction, I doc_matters) { mixin SiSUoutputRgxInit; static auto rgx = Rgx(); - if ((doc_matters.opt_action.verbose)) { - writeln(doc_matters.keys_seq.seg); + if ((doc_matters.opt.action.verbose)) { + writeln(doc_matters.xml.keys_seq.seg); } - if ((doc_matters.opt_action.source) - || (doc_matters.opt_action.sisupod)) { - if ((doc_matters.opt_action.verbose) - && (doc_matters.opt_action.source)) - { writeln("sisu source processing... "); } - if ((doc_matters.opt_action.verbose) - && (doc_matters.opt_action.sisupod)) - { writeln("sisupod source processing... "); } + if ((doc_matters.opt.action.source) + || (doc_matters.opt.action.sisupod)) { + if ((doc_matters.opt.action.verbose) + && (doc_matters.opt.action.source)) { + writeln("sisu source processing... "); + } + if ((doc_matters.opt.action.verbose) + && (doc_matters.opt.action.sisupod)) { + writeln("sisupod source processing... "); + } SiSUpod!()(doc_matters); - if ((doc_matters.opt_action.verbose) - && (doc_matters.opt_action.debug_do) - && (doc_matters.opt_action.source)) - { writeln("sisu source done"); } - if ((doc_matters.opt_action.verbose) - && (doc_matters.opt_action.debug_do) - && (doc_matters.opt_action.sisupod)) - { writeln("sisupod done"); } + if ((doc_matters.opt.action.verbose) + && (doc_matters.opt.action.debug_do) + && (doc_matters.opt.action.source)) { + writeln("sisu source done"); + } + if ((doc_matters.opt.action.verbose) + && (doc_matters.opt.action.debug_do) + && (doc_matters.opt.action.sisupod)) { + writeln("sisupod done"); + } } - if (doc_matters.opt_action.text) { + if (doc_matters.opt.action.text) { /+ mixin outputText; +/ - if ((doc_matters.opt_action.verbose)) { writeln("text processing... "); } + if ((doc_matters.opt.action.verbose)) { + writeln("text processing... "); + } } - if (doc_matters.opt_action.html) { - if ((doc_matters.opt_action.verbose)) { writeln("html scroll processing... "); } + if (doc_matters.opt.action.html) { + if ((doc_matters.opt.action.verbose)) { + writeln("html scroll processing... "); + } outputHTML!().scroll(doc_abstraction, doc_matters); - if ((doc_matters.opt_action.verbose) && (doc_matters.opt_action.debug_do)) { writeln("html scroll done"); } - if ((doc_matters.opt_action.verbose)) { writeln("html seg processing... "); } + if ((doc_matters.opt.action.verbose) + && (doc_matters.opt.action.debug_do)) { + writeln("html scroll done"); + } + if ((doc_matters.opt.action.verbose)) { + writeln("html seg processing... "); + } outputHTML!().seg(doc_abstraction, doc_matters); - if ((doc_matters.opt_action.verbose) && (doc_matters.opt_action.debug_do)) { writeln("html seg done"); } + if ((doc_matters.opt.action.verbose) + && (doc_matters.opt.action.debug_do)) { + writeln("html seg done"); + } outputHTML!().css(doc_matters); - } else if (doc_matters.opt_action.html_seg) { - if ((doc_matters.opt_action.verbose)) { writeln("html seg processing... "); } + } else if (doc_matters.opt.action.html_seg) { + if ((doc_matters.opt.action.verbose)) { + writeln("html seg processing... "); + } outputHTML!().seg(doc_abstraction, doc_matters); - if ((doc_matters.opt_action.verbose) && (doc_matters.opt_action.debug_do)) { writeln("html seg done"); } + if ((doc_matters.opt.action.verbose) + && (doc_matters.opt.action.debug_do)) { + writeln("html seg done"); + } outputHTML!().css(doc_matters); - } else if (doc_matters.opt_action.html_scroll) { - if ((doc_matters.opt_action.verbose)) { writeln("html scroll processing... "); } + } else if (doc_matters.opt.action.html_scroll) { + if ((doc_matters.opt.action.verbose)) { + writeln("html scroll processing... "); + } outputHTML!().scroll(doc_abstraction, doc_matters); - if ((doc_matters.opt_action.verbose) && (doc_matters.opt_action.debug_do)) { writeln("html scroll done"); } + if ((doc_matters.opt.action.verbose) + && (doc_matters.opt.action.debug_do)) { + writeln("html scroll done"); + } outputHTML!().css(doc_matters); } - if (doc_matters.opt_action.epub) { - if ((doc_matters.opt_action.verbose)) { writeln("epub3 processing... "); } + if (doc_matters.opt.action.epub) { + if ((doc_matters.opt.action.verbose)) { + writeln("epub3 processing... "); + } outputEPub3!()(doc_abstraction, doc_matters); // epub.css_write; - if ((doc_matters.opt_action.verbose) && (doc_matters.opt_action.debug_do)) { writeln("epub3 done"); } + if ((doc_matters.opt.action.verbose) + && (doc_matters.opt.action.debug_do)) { + writeln("epub3 done"); + } } - if (doc_matters.opt_action.pdf) { + if (doc_matters.opt.action.pdf) { /+ mixin outputPDF; +/ writeln("pdf processing"); } - if (doc_matters.opt_action.odt) { + if (doc_matters.opt.action.odt) { /+ mixin outputODT; +/ writeln("odt processing"); } - if (doc_matters.opt_action.sqlite_discrete) { - if ((doc_matters.opt_action.verbose)) { writeln("sqlite processing... "); } + if (doc_matters.opt.action.sqlite_discrete) { + if ((doc_matters.opt.action.verbose)) { + writeln("sqlite processing... "); + } SQLiteDiscreteBuildTablesAndPopulate!()(doc_abstraction, doc_matters); } - if (doc_matters.opt_action.sqlite_update) { - if ((doc_matters.opt_action.verbose)) { writeln("sqlite processing... "); } + if (doc_matters.opt.action.sqlite_update) { + if ((doc_matters.opt.action.verbose)) { + writeln("sqlite processing... "); + } SQLiteBuildTablesAndPopulate!()(doc_abstraction, doc_matters); } - if (doc_matters.opt_action.postgresql) { + if (doc_matters.opt.action.postgresql) { /+ mixin outputPostgreSQL; +/ writeln("pgsql processing"); } @@ -102,11 +137,15 @@ template outputHubOp() { mixin SiSUoutputRgxInit; static auto rgx = Rgx(); if ((opt_action.sqlite_create)) { - if ((opt_action.verbose)) { writeln("sqlite create table... "); } + if ((opt_action.verbose)) { + writeln("sqlite create table... "); + } SQLiteTablesCreate!()(); } if ((opt_action.sqlite_drop)) { - if ((opt_action.verbose)) { writeln("sqlite drop table... "); } + if ((opt_action.verbose)) { + writeln("sqlite drop table... "); + } SQLiteTablesDrop!()(); } } diff --git a/src/sdp/output/paths_source.d b/src/sdp/output/paths_source.d index 1330606..d141b86 100644 --- a/src/sdp/output/paths_source.d +++ b/src/sdp/output/paths_source.d @@ -42,10 +42,10 @@ template PodManifest() { return ManifestFile_(); } } -template PodMatters() { +template PathMatters() { mixin SiSUrgxInit; static auto rgx = Rgx(); - auto PodMatters(O,E,P,F)( + auto PathMatters(O,E,P,F)( O _opt_actions, E _env, P _pth = "", @@ -54,99 +54,206 @@ template PodMatters() { ) { auto _manifest = PodManifest!()(_pth); struct ManifestMatters_ { - auto pwd() { - return _env["pwd"]; - } - auto home() { - return _env["home"]; - } - auto opt_action() { - return _opt_actions; - } - auto is_pod() { - auto _is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; - return _is_pod; - } - auto pod_manifest_list_of_filenames() { - return _manifest_fn_list; - } - auto pod_manifest_list_of_languages() { - string[] _lngs; - foreach (filename_; pod_manifest_list_of_filenames) { - string _k = "en"; - if (auto m = (filename_).match(rgx.language_code_and_filename)) { - _k = m.captures[1].to!string; + auto env() { + struct Env_ { + auto pwd() { + return _env["pwd"]; + } + auto home() { + return _env["home"]; } - _lngs ~= _k; // all the languages from the manifest list of filenames with paths } - return _lngs; - } - auto pod_manifest_filename() { - return _manifest.pod_manifest_filename; - } - auto pod_manifest_path() { - return _manifest.pod_manifest_path; + return Env_(); } - auto pod_manifest_file_with_path() { - return _manifest.pod_manifest_file_with_path; - } - auto pod_config_dirs() { // TODO - string[] _config_dirs; - return _config_dirs; - } - auto pod_image_dirs() { // TODO - string[] _image_dirs; - return _image_dirs; - } - auto src_path_and_fn() { - return _fns; + auto opt() { + struct Opt_ { + auto action() { // redundant + return _opt_actions; + } + } + return Opt_(); } - auto src_fn() { - auto _fn = (src_path_and_fn).match(rgx.src_pth_sst_or_ssm).captures["filename"]; - return _fn; + auto src_is_pod() { + auto _src_is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; + return _src_is_pod; } - auto src_lng() { - string _k; - if (auto m = (src_path_and_fn).match(rgx.language_code_and_filename)) { - _k = m.captures[1]; - } else { - _k = "en"; + auto pod() { + struct Pod_ { + auto src_is_pod() { + auto _src_is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; + return _src_is_pod; + } + auto manifest_filename() { + return _manifest.pod_manifest_filename; + } + auto manifest_path() { + return _manifest.pod_manifest_path; + } + auto manifest_file_with_path() { + return _manifest.pod_manifest_file_with_path; + } + auto config_dirs() { // TODO + string[] _config_dirs; + return _config_dirs; + } + auto image_dirs() { // TODO + string[] _image_dirs; + return _image_dirs; + } + auto manifest_list_of_filenames() { + return _manifest_fn_list; + } + auto manifest_list_of_languages() { + string[] _lngs; + foreach (filename_; manifest_list_of_filenames) { + string _k = "en"; + if (auto m = (filename_).match(rgx.language_code_and_filename)) { + _k = m.captures[1].to!string; + } + _lngs ~= _k; // all the languages from the manifest list of filenames with paths + } + return _lngs; + } } - return _k; + return Pod_(); } - auto output_path() { - auto _output_path = pwd; - if ((_opt_actions.output_dir_set.length > 0) - && isValidPath(_opt_actions.output_dir_set) - ) { - _output_path = asNormalizedPath(_opt_actions.output_dir_set).array; - if (!exists(_output_path)) { - try { - _output_path.mkdirRecurse; + auto src() { + struct SRC_ { + auto is_pod() { + auto _src_is_pod = (_manifest.pod_manifest_path.length > 0) ? true : false; + return _src_is_pod; + } + auto path_and_fn() { + return _fns; + } + auto filename() { + auto _fn = (path_and_fn).baseName; + return _fn; + } + auto lng() { + string _k; + if (auto m = (path_and_fn).match(rgx.language_code_and_filename)) { + _k = m.captures[1]; + } else { + _k = "en"; } - catch (Exception ex) { - // Handle error + return _k; + } + auto file_with_absolute_path() { + string _pth = _env["pwd"].chainPath(path_and_fn).array; + return _pth; + } + auto absolute_path_to_src() { + string _pth = (_env["pwd"].chainPath(path_and_fn)).dirName.array; + return _pth; + } + auto base_dir() { + string _dir; + if ( // TODO this should catch generated --source sisupod, untested, needs manifest + auto m = (absolute_path_to_src) + .match(regex(r"[/](?P<dir>(?:[a-zA-Z0-9._-]+))/sisupod/" ~ filename.stripExtension)) + ) { + _dir = asAbsolutePath(path_and_fn.chainPath("../../")).array; + assert(_dir == m.captures["dir"]); + } else { + _dir = asAbsolutePath(path_and_fn.chainPath("../../../")).array; + assert(_dir == absolute_path_to_src.match(rgx.src_base_parent_dir_name).captures["dir"]); } + writeln("--> ", _dir); + return _dir; + } + auto base_parent_dir_path() { + string _dir; + if ( // TODO this should catch generated --source sisupod, untested, needs manifest + auto m = (absolute_path_to_src) + .match(regex(r"[/](?P<dir>(?:[a-zA-Z0-9._-]+))/sisupod/" ~ filename.stripExtension)) + ) { + _dir = asAbsolutePath(path_and_fn.chainPath("../../")).array; + } else { + _dir = asAbsolutePath(path_and_fn.chainPath("../../../")).array; + } + return _dir; + } + auto base_dir_path() { // looks like there is work to do + string _dir; + if ( // TODO this should catch generated --source sisupod, untested, needs manifest + auto m = (absolute_path_to_src) + .match(regex(r"[/](?P<dir>(?:[a-zA-Z0-9._-]+))/sisupod/" ~ filename.stripExtension)) + ) { + _dir = asAbsolutePath(path_and_fn.chainPath("../")).array; + } else { + _dir = asAbsolutePath(path_and_fn.chainPath("../../")).array; + } + writeln("--> ", _dir); + return _dir; + } + auto media_dir_path() { // TODO rework, can base directly on src fn path + auto _dir = asAbsolutePath(base_dir_path.chainPath("media")).array; + return _dir; + } + auto image_dir_path() { + auto _dir = asAbsolutePath(base_dir_path.chainPath("media/image")).array; + return _dir; + } + auto conf_dir_path() { + auto _dir = asAbsolutePath(base_dir_path.chainPath("conf")).array; + return _dir; + } + auto base_parent_dir() { + string _dir; + if ( // TODO this should catch generated --source sisupod, untested, needs manifest + auto m = (absolute_path_to_src) + .match(regex(r"[/](?P<dir>(?:[a-zA-Z0-9._-]+))/sisupod/" ~ filename.stripExtension)) + ) { + _dir = m.captures["dir"]; + } else { + _dir = (absolute_path_to_src).match(rgx.src_base_parent_dir_name).captures["dir"]; + } + writeln("--> ", _dir); + return _dir; + } + auto config_dirs() { // TODO + string[] _config_dirs; + if (is_pod) { + } else { + } + return _config_dirs; + } + auto image_dirs() { // TODO + string[] _image_dirs; + if (is_pod) { + } else { + } + return _image_dirs; } - assert(_output_path.isDir, - "not a directory: " ~ _output_path); - // TODO always test that is a directory and it is writable - } - return _output_path; - } - auto src_config_dirs() { // TODO - string[] _config_dirs; - if (is_pod) { - } else { } - return _config_dirs; - } - auto src_image_dirs() { // TODO - string[] _image_dirs; - if (is_pod) { - } else { + return SRC_(); + } + auto output() { + struct Out_ { + auto path() { + auto _output_path = _env["pwd"]; + if ((_opt_actions.output_dir_set.length > 0) + && isValidPath(_opt_actions.output_dir_set) + ) { + _output_path = asNormalizedPath(_opt_actions.output_dir_set).array; + if (!exists(_output_path)) { + try { + _output_path.mkdirRecurse; + } + // catch (ErrnoException ex) { + catch (Exception ex) { + // Handle error + } + } + assert(_output_path.isDir, + "not a directory: " ~ _output_path); + // TODO always test that is a directory and it is writable + } + return _output_path; + } } - return _image_dirs; + return Out_(); } } return ManifestMatters_(); @@ -163,90 +270,95 @@ template ConfigFilePaths() { auto config_filename_document() { return "config_document"; } - auto possible_config_path_locations_document() { - /+ FIX clean up conf paths ↓ +/ - /+ config local site (file system only, not in pod) +/ - /+ return paths +/ - string[] _possible_config_path_locations; - if (_manifest.is_pod) { - /+ config document in pod +/ - string _sisudoc_conf_pod; - string _sisudoc_conf_pod_text; - _sisudoc_conf_pod = asNormalizedPath(chainPath( - to!string(_env["pwd"]), - _manifest.pod_manifest_path ~ "/conf" - )).array; - _sisudoc_conf_pod_text = asNormalizedPath(chainPath( - to!string(_env["pwd"]), - _manifest.pod_manifest_path ~ "/media/text/" ~ _manifest.src_lng ~ "/conf" - )).array; - /+ return paths +/ - _possible_config_path_locations = [ - _sisudoc_conf_pod_text, - _sisudoc_conf_pod, - ]; - } else { - /+ config document (& or local site) on filesystem +/ - string _sisudoc_conf_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), "sisudoc/conf")).array; // think about - string _sisudoc_conf_pwd_a = asNormalizedPath(chainPath(to!string(_env["pwd"]), "conf")).array; - string _sisudoc_conf_pwd_b = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../conf")).array; - string _sisudoc_conf_pwd_c = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../conf")).array; - string _sisudoc_conf_pwd_d = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../../conf")).array; - /+ return paths +/ - _possible_config_path_locations = [ - _sisudoc_conf_pwd, - _sisudoc_conf_pwd_a, - _sisudoc_conf_pwd_b, - _sisudoc_conf_pwd_c, - _sisudoc_conf_pwd_d, - ]; - } - /+ FIX clean up conf paths ↑ - (compare pwd to doc path location, and build config path) - +/ - return _possible_config_path_locations; - } - auto config_filename_site() { - return "config_local_site"; - } - auto possible_config_path_locations_local_site() { - /+ FIX clean up conf paths ↓ +/ - /+ config local site (file system only, not in pod) +/ - string _dot_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), ".sisu")).array; - string _underscore_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), "_sisu")).array; - string _dot_home = asNormalizedPath(chainPath(to!string(_env["home"]), ".sisu")).array; - /+ return paths +/ - string[] _possible_config_path_locations; - if (_manifest.is_pod) { - _possible_config_path_locations = [ - _dot_pwd, - _underscore_pwd, - _dot_home, - "/etc/sisu" - ]; - } else { - /+ config document (& or local site) on filesystem +/ - string _sisudoc_conf_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), "sisudoc/conf")).array; // think about - string _sisudoc_conf_pwd_a = asNormalizedPath(chainPath(to!string(_env["pwd"]), "conf")).array; - string _sisudoc_conf_pwd_b = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../conf")).array; - string _sisudoc_conf_pwd_c = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../conf")).array; - string _sisudoc_conf_pwd_d = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../../conf")).array; - _possible_config_path_locations = [ - _sisudoc_conf_pwd, - _sisudoc_conf_pwd_a, - _sisudoc_conf_pwd_b, - _sisudoc_conf_pwd_c, - _sisudoc_conf_pwd_d, - _dot_pwd, - _underscore_pwd, - _dot_home, - "/etc/sisu" - ]; + auto possible_config_path_locations() { + struct _ConfFilePaths { + auto document() { + /+ FIX clean up conf paths ↓ +/ + /+ config local site (file system only, not in pod) +/ + /+ return paths +/ + string[] _possible_config_path_locations; + if (_manifest.src.is_pod) { + /+ config document in pod +/ + string _sisudoc_conf_pod; // + string _sisudoc_conf_pod_text; // + _sisudoc_conf_pod = asNormalizedPath(chainPath( + to!string(_env["pwd"]), + _manifest.pod.manifest_path ~ "/conf" + )).array; + _sisudoc_conf_pod_text = asNormalizedPath(chainPath( + to!string(_env["pwd"]), + _manifest.pod.manifest_path ~ "/media/text/" ~ _manifest.src.lng ~ "/conf" + )).array; + /+ return paths +/ + _possible_config_path_locations = [ + _sisudoc_conf_pod_text, + _sisudoc_conf_pod, + ]; + } else { + /+ config document (& or local site) on filesystem +/ + string _sisudoc_conf_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), "sisudoc/conf")).array; // think about + string _sisudoc_conf_pwd_a = asNormalizedPath(chainPath(to!string(_env["pwd"]), "conf")).array; + string _sisudoc_conf_pwd_b = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../conf")).array; + string _sisudoc_conf_pwd_c = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../conf")).array; + string _sisudoc_conf_pwd_d = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../../conf")).array; + /+ return paths +/ + _possible_config_path_locations = [ + _sisudoc_conf_pwd, + _sisudoc_conf_pwd_a, + _sisudoc_conf_pwd_b, + _sisudoc_conf_pwd_c, + _sisudoc_conf_pwd_d, + ]; + } + /+ FIX clean up conf paths ↑ + (compare pwd to doc path location, and build config path) + +/ + return _possible_config_path_locations; + } + auto config_filename_site() { + return "config_local_site"; + } + auto local_site() { + /+ FIX clean up conf paths ↓ +/ + /+ config local site (file system only, not in pod) +/ + string _dot_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), ".sisu")).array; + string _underscore_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), "_sisu")).array; + string _dot_home = asNormalizedPath(chainPath(to!string(_env["home"]), ".sisu")).array; + /+ return paths +/ + string[] _possible_config_path_locations; + if (_manifest.src.is_pod) { + _possible_config_path_locations = [ + _dot_pwd, + _underscore_pwd, + _dot_home, + "/etc/sisu" + ]; + } else { + /+ config document (& or local site) on filesystem +/ + string _sisudoc_conf_pwd = asNormalizedPath(chainPath(to!string(_env["pwd"]), "sisudoc/conf")).array; // think about + string _sisudoc_conf_pwd_a = asNormalizedPath(chainPath(to!string(_env["pwd"]), "conf")).array; + string _sisudoc_conf_pwd_b = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../conf")).array; + string _sisudoc_conf_pwd_c = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../conf")).array; + string _sisudoc_conf_pwd_d = asNormalizedPath(chainPath(to!string(_env["pwd"]), "../../../conf")).array; + _possible_config_path_locations = [ + _sisudoc_conf_pwd, + _sisudoc_conf_pwd_a, + _sisudoc_conf_pwd_b, + _sisudoc_conf_pwd_c, + _sisudoc_conf_pwd_d, + _dot_pwd, + _underscore_pwd, + _dot_home, + "/etc/sisu" + ]; + } + /+ FIX clean up conf paths ↑ + (compare pwd to doc path location, and build config path) + +/ + return _possible_config_path_locations; + } } - /+ FIX clean up conf paths ↑ - (compare pwd to doc path location, and build config path) - +/ - return _possible_config_path_locations; + return _ConfFilePaths(); } } return ConfFilePaths(); @@ -301,52 +413,17 @@ template SiSUpathsSRC() { return SisuSrcPaths(); } } -template SiSUpathsSisupod() { - mixin SiSUrgxInit; - static auto rgx = Rgx(); - string _base_dir_pod = "sisupod"; - string _base_dir_doc = "sisudoc"; - string _suffix = ".zip"; - auto SiSUpathsSisupod()() { - struct _PathsStruct { - string base_filename(string fn_src) { - auto pth = fn_src.baseName.stripExtension; - return pth; - } - string sisupod_dir() { - auto pth = _base_dir_pod; - return pth; - } - string sisudoc_dir() { - auto pth = _base_dir_doc; - return pth; - } - string sisupod_filename(string fn_src) { - string pth = _base_dir_pod.chainPath(base_filename(fn_src) ~ _suffix).array; - return pth; - } - string base_filesystem(string fn_src) { - string pth = _base_dir_pod.chainPath(base_filename(fn_src)).array; - assert(pth == _base_dir_pod ~ "/" ~ base_filename(fn_src), - pth ~ " == " ~ _base_dir_pod ~ "/" ~ base_filename(fn_src) ~ "?"); - return pth; - } - string base_pod(string fn_src) { - string pth = _base_dir_pod.chainPath(base_filename(fn_src)).array; // change this - return pth; - } - } - return _PathsStruct(); - } -} + template SiSUpathsSisupods() { mixin SiSUrgxInit; static auto rgx = Rgx(); - string _base_dir_pod = "sisupod"; - string _base_dir_doc = "sisudoc"; string _suffix = ".zip"; - auto SiSUpathsSisupods()() { + auto SiSUpathsSisupods(Dm)(Dm doc_matters) { + string _base_dir_pod = (doc_matters.output_path.length > 0) + ? doc_matters.output_path ~ "/sisupod" + : "/sisupod"; + string _base_dir_doc = "sisudoc"; struct _PodPaths { string base_filename_(string fn_src) { auto pth = fn_src.baseName.stripExtension; diff --git a/src/sdp/output/rgx.d b/src/sdp/output/rgx.d index 3e03620..1c32351 100644 --- a/src/sdp/output/rgx.d +++ b/src/sdp/output/rgx.d @@ -30,6 +30,7 @@ static template SiSUoutputRgxInit() { static src_fn_insert = ctRegex!(`^(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ssi)$`); static src_fn_find_inserts = ctRegex!(`^(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ss[im])$`); static insert_src_fn_ssi_or_sst = ctRegex!(`^<<\s*(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ss[ti])$`); + static src_base_parent_dir_name = ctRegex!(`[/](?P<dir>(?:[a-zA-Z0-9._-]+))(?:/media/text/[a-z]{2})$`); // formalizes dir structure /+ inline markup footnotes endnotes +/ static inline_notes_al = ctRegex!(`【(?:[*+]\s+|\s*)(.+?)】`, "mg"); static inline_notes_al_gen = ctRegex!(`【.+?】`, "m"); diff --git a/src/sdp/output/source_sisupod.d b/src/sdp/output/source_sisupod.d index 0d529b6..c48a0e3 100644 --- a/src/sdp/output/source_sisupod.d +++ b/src/sdp/output/source_sisupod.d @@ -15,64 +15,71 @@ template SiSUpod() { // static assert(is(typeof(doc_matters) == tuple)); } mixin SiSUoutputRgxInit; - string pwd = doc_matters.environment.pwd; - auto src_path_info = doc_matters.src_path_info; - auto pth_sisudoc_src = doc_matters.src_path_info; - auto pths_sisupod = SiSUpathsSisupods!()(); + string pwd = doc_matters.env.pwd; + auto src_path_info = doc_matters.src.path_info; + auto pth_sisudoc_src = doc_matters.src.path_info; + auto pths_sisupod = SiSUpathsSisupods!()(doc_matters); mixin SiSUlanguageCodes; auto lang = Lang(); static auto rgx = Rgx(); - assert (doc_matters.source_filename.match(rgx.src_fn)); + assert (doc_matters.src.filename.match(rgx.src_fn)); try { /+ create directory structure +/ if (!exists(pths_sisupod.sisupod_dir_())) { // used both by sisupod zipped (& sisupod filesystem (unzipped) which makes its own recursive dirs) pths_sisupod.sisupod_dir_().mkdirRecurse; } - if (doc_matters.opt_action.source) { - if (!exists(pths_sisupod.text_root(doc_matters.source_filename).filesystem_open_zpod)) { - pths_sisupod.text_root(doc_matters.source_filename).filesystem_open_zpod.mkdirRecurse; + if (doc_matters.opt.action.source) { + if (!exists(pths_sisupod.text_root(doc_matters.src.filename).filesystem_open_zpod)) { + pths_sisupod.text_root(doc_matters.src.filename).filesystem_open_zpod.mkdirRecurse; } - if (!exists(pths_sisupod.conf_root(doc_matters.source_filename).filesystem_open_zpod)) { - pths_sisupod.conf_root(doc_matters.source_filename).filesystem_open_zpod.mkdirRecurse; + if (!exists(pths_sisupod.conf_root(doc_matters.src.filename).filesystem_open_zpod)) { + pths_sisupod.conf_root(doc_matters.src.filename).filesystem_open_zpod.mkdirRecurse; } - if (!exists(pths_sisupod.media_root(doc_matters.source_filename).filesystem_open_zpod)) { - pths_sisupod.media_root(doc_matters.source_filename).filesystem_open_zpod.mkdirRecurse; + if (!exists(pths_sisupod.media_root(doc_matters.src.filename).filesystem_open_zpod)) { + pths_sisupod.media_root(doc_matters.src.filename).filesystem_open_zpod.mkdirRecurse; } - if (!exists(pths_sisupod.css(doc_matters.source_filename).filesystem_open_zpod)) { - pths_sisupod.css(doc_matters.source_filename).filesystem_open_zpod.mkdirRecurse; + if (!exists(pths_sisupod.css(doc_matters.src.filename).filesystem_open_zpod)) { + pths_sisupod.css(doc_matters.src.filename).filesystem_open_zpod.mkdirRecurse; } - if (!exists(pths_sisupod.image_root(doc_matters.source_filename).filesystem_open_zpod)) { - pths_sisupod.image_root(doc_matters.source_filename).filesystem_open_zpod.mkdirRecurse; + if (!exists(pths_sisupod.image_root(doc_matters.src.filename).filesystem_open_zpod)) { + pths_sisupod.image_root(doc_matters.src.filename).filesystem_open_zpod.mkdirRecurse; } - if (!exists(pths_sisupod.doc_lng(doc_matters.source_filename, doc_matters.language).filesystem_open_zpod)) { - pths_sisupod.doc_lng(doc_matters.source_filename, doc_matters.language).filesystem_open_zpod.mkdirRecurse; + if (!exists(pths_sisupod.doc_lng(doc_matters.src.filename, doc_matters.src.language).filesystem_open_zpod)) { + pths_sisupod.doc_lng(doc_matters.src.filename, doc_matters.src.language).filesystem_open_zpod.mkdirRecurse; } } debug(sisupod) { writeln(__LINE__, ": ", - doc_matters.source_filename, " -> ", - pths_sisupod.fn_doc(doc_matters.source_filename, doc_matters.language).filesystem_open_zpod + doc_matters.src.filename, " -> ", + pths_sisupod.fn_doc(doc_matters.src.filename, doc_matters.src.language).filesystem_open_zpod ); } auto zip = new ZipArchive(); - auto fn_sisupod = pths_sisupod.sisupod_filename(doc_matters.source_filename).zpod; + auto fn_sisupod = pths_sisupod.sisupod_filename(doc_matters.src.filename).zpod; { /+ bundle images +/ - foreach (image; doc_matters.image_list) { + foreach (image; doc_matters.src.image_list) { debug(sisupodimages) { writeln( pth_sisudoc_src.image_root.to!string, "/", image, " -> ", - pths_sisupod.image_root(doc_matters.source_filename).zpod, "/", image + pths_sisupod.image_root(doc_matters.src.filename).zpod, "/", image ); } auto fn_src_in = pth_sisudoc_src.image_root.to!string ~ "/" ~ image; - auto fn_src_out_sisupod_zip_base = pths_sisupod.image_root(doc_matters.source_filename).zpod.to!string ~ "/" ~ image; - auto fn_src_out_filesystem = pths_sisupod.image_root(doc_matters.source_filename).filesystem_open_zpod.to!string ~ "/" ~ image; + auto fn_src_out_sisupod_zip_base + = pths_sisupod.image_root(doc_matters.src.filename).zpod.to!string + ~ "/" ~ image; + auto fn_src_out_filesystem + = pths_sisupod.image_root(doc_matters.src.filename).filesystem_open_zpod.to!string + ~ "/" ~ image; if (exists(fn_src_in)) { - if (doc_matters.opt_action.source) { + debug(io) { + writeln("src out found: ", fn_src_in); + } + if (doc_matters.opt.action.source) { fn_src_in.copy(fn_src_out_filesystem); } - if (doc_matters.opt_action.sisupod) { + if (doc_matters.opt.action.sisupod) { auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn_src_out_sisupod_zip_base; auto zip_data = new OutBuffer(); @@ -80,17 +87,28 @@ template SiSUpod() { zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); } + } else { + if (doc_matters.opt.action.verbose) { + writeln("src out NOT found (image): ", fn_src_in); + } } } } { /+ bundle sisu_document_make +/ - auto fn_src_in = pth_sisudoc_src.conf_root.to!string ~ "/" ~ "sisu_document_make"; // check (_sisu/sisu_document_make) - auto fn_src_out_sisupod_zip_base = pths_sisupod.conf_root(doc_matters.source_filename).zpod.to!string ~ "/" ~ "sisu_document_make"; - auto fn_src_out_filesystem = pths_sisupod.conf_root(doc_matters.source_filename).filesystem_open_zpod.to!string ~ "/" ~ "sisu_document_make"; + auto fn_src_in + = pth_sisudoc_src.conf_root.to!string ~ "/" ~ "sisu_document_make"; // check (_sisu/sisu_document_make) + auto fn_src_out_sisupod_zip_base + = pths_sisupod.conf_root(doc_matters.src.filename).zpod.to!string ~ "/" ~ "sisu_document_make"; + auto fn_src_out_filesystem + = pths_sisupod.conf_root(doc_matters.src.filename).filesystem_open_zpod.to!string + ~ "/" ~ "sisu_document_make"; // TODO if (exists(fn_src_in)) { - if (doc_matters.opt_action.source) { + debug(io) { + writeln("src out found: ", fn_src_in); + } + if (doc_matters.opt.action.source) { fn_src_in.copy(fn_src_out_filesystem); } - if (doc_matters.opt_action.sisupod) { + if (doc_matters.opt.action.sisupod) { auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn_src_out_sisupod_zip_base; auto zip_data = new OutBuffer(); @@ -98,25 +116,36 @@ template SiSUpod() { zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); } + } else { + if (doc_matters.opt.action.verbose) { + writeln("src out NOT found (document make): ", fn_src_in); + } } } { /+ TODO bundle primary file +/ - auto fn_src_in = doc_matters.source_filename; - auto fn_src_out_sisupod_zip_base = pths_sisupod.fn_doc(doc_matters.source_filename, doc_matters.language).zpod.to!string; - auto fn_src_out_filesystem = pths_sisupod.fn_doc(doc_matters.source_filename, doc_matters.language).filesystem_open_zpod.to!string; // needed without root path: - auto fn_src_out_inside_pod = pths_sisupod.fn_doc(doc_matters.source_filename, doc_matters.language).zpod.to!string; // needed without root path: + auto fn_src_in = doc_matters.src.file_with_absolute_path.to!string; + auto fn_src_out_sisupod_zip_base + = pths_sisupod.fn_doc(doc_matters.src.filename, doc_matters.src.language).zpod.to!string; + auto fn_src_out_filesystem + = pths_sisupod.fn_doc(doc_matters.src.filename, doc_matters.src.language).filesystem_open_zpod.to!string; // needed without root path: + auto fn_src_out_inside_pod + = pths_sisupod.fn_doc(doc_matters.src.filename, doc_matters.src.language).zpod.to!string; // needed without root path: string[] filelist_src_out_sisupod_arr; string[] filelist_src_zpod_arr; if (exists(fn_src_in)) { - filelist_src_out_sisupod_arr ~= fn_src_out_sisupod_zip_base; + debug(io) { + writeln("src out found: ", fn_src_in); + } + filelist_src_out_sisupod_arr ~= fn_src_out_sisupod_zip_base; filelist_src_zpod_arr ~= fn_src_out_inside_pod; - if (doc_matters.opt_action.source) { - auto filelist = File(pths_sisupod.fn_pod_filelist(doc_matters.source_filename).filesystem_open_zpod, "w"); + if (doc_matters.opt.action.source) { + auto filelist + = File(pths_sisupod.fn_pod_filelist(doc_matters.src.filename).filesystem_open_zpod, "w"); foreach (source_pth_and_fn; filelist_src_zpod_arr) { filelist.writeln(source_pth_and_fn); } fn_src_in.copy(fn_src_out_filesystem); } - if (doc_matters.opt_action.sisupod) { + if (doc_matters.opt.action.sisupod) { auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn_src_out_sisupod_zip_base; auto zip_data = new OutBuffer(); @@ -124,38 +153,45 @@ template SiSUpod() { zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); } + } else { + if (doc_matters.opt.action.verbose) { + writeln("src out NOT found (markup source): ", fn_src_in); + } } } { /+ bundle insert files +/ - if (doc_matters.file_insert_list.length > 0) { - foreach (insert_file; doc_matters.file_insert_list) { + if (doc_matters.src.file_insert_list.length > 0) { + foreach (insert_file; doc_matters.src.file_insert_list) { debug(sisupod) { writeln( insert_file, " -> ", pths_sisupod.fn_doc_insert( - doc_matters.source_filename, + doc_matters.src.filename, insert_file, - doc_matters.language, + doc_matters.src.language, ).zpod ); } auto fn_src_in = insert_file; - auto fn_src_out_sisupod_zip_base = - pths_sisupod.fn_doc_insert( - doc_matters.source_filename, + auto fn_src_out_sisupod_zip_base + = pths_sisupod.fn_doc_insert( + doc_matters.src.filename, insert_file, - doc_matters.language, + doc_matters.src.language, ).zpod.to!string; - auto fn_src_out_filesystem = - pths_sisupod.fn_doc_insert( - doc_matters.source_filename, + auto fn_src_out_filesystem + = pths_sisupod.fn_doc_insert( + doc_matters.src.filename, insert_file, - doc_matters.language, + doc_matters.src.language, ).filesystem_open_zpod.to!string; if (exists(fn_src_in)) { - if (doc_matters.opt_action.source) { + debug(io) { + writeln("src out found: ", fn_src_in); + } + if (doc_matters.opt.action.source) { fn_src_in.copy(fn_src_out_filesystem); } - if (doc_matters.opt_action.sisupod) { + if (doc_matters.opt.action.sisupod) { auto zip_arc_member_file = new ArchiveMember(); zip_arc_member_file.name = fn_src_out_sisupod_zip_base; auto zip_data = new OutBuffer(); @@ -164,13 +200,17 @@ template SiSUpod() { zip.addMember(zip_arc_member_file); createZipFile!()(fn_sisupod, zip.build()); } + } else { + if (doc_matters.opt.action.verbose) { + writeln("src out NOT found (insert file): ", fn_src_in); + } } } } } { - auto fn_src_in = doc_matters.source_filename; + auto fn_src_in = doc_matters.src.filename; if (exists(fn_src_in)) { - if (doc_matters.opt_action.sisupod) { + if (doc_matters.opt.action.sisupod) { createZipFile!()(fn_sisupod, zip.build()); } } @@ -190,22 +230,22 @@ template SiSUpod() { catch (ZipException ex) { // Handle errors } - if (doc_matters.source_filename == "sisudoc/media/text/en/the_wealth_of_networks.yochai_benkler.sst") { + if (doc_matters.src.filename == "sisudoc/media/text/en/the_wealth_of_networks.yochai_benkler.sst") { assert( ((data).sha256Of).toHexString == "626F83A31ED82F42CF528E922C1643498A137ABA3F2E5AFF8A379EA79EA22A1E", "\nsisupod: sha256 value for " - ~ doc_matters.source_filename + ~ doc_matters.src.filename ~ " has changed, is now: " ~ ((data).sha256Of).toHexString ); } - if (doc_matters.source_filename == "sisudoc/media/text/en/sisu_markup_stress_test.sst") { + if (doc_matters.src.filename == "sisudoc/media/text/en/sisu_markup_stress_test.sst") { assert( ((data).sha256Of).toHexString == "AAE0C87AB3F6D5F7385AEEA6EE661F56D40475CFE87AD930C78C9FE07FFB0D91", "\nsisupod: sha256 value for " - ~ doc_matters.source_filename + ~ doc_matters.src.filename ~ " has changed, is now: " ~ ((data).sha256Of).toHexString ); diff --git a/src/sdp/output/sqlite.d b/src/sdp/output/sqlite.d index 5804da7..4abe3d1 100644 --- a/src/sdp/output/sqlite.d +++ b/src/sdp/output/sqlite.d @@ -44,7 +44,7 @@ template SQLiteBuildTablesAndPopulate() { if (_urls.length > 0) { _txt ~= _urls; } - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { writeln(_txt, "\n"); } debug(sql_text_clean) { @@ -96,7 +96,7 @@ template SQLiteBuildTablesAndPopulate() { if (_notes.length > 0) { _txt ~= _notes; } - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { writeln(_txt, "\n"); } return _txt; @@ -303,7 +303,7 @@ template SQLiteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_heading(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -322,7 +322,7 @@ template SQLiteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_para(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -341,7 +341,7 @@ template SQLiteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_quote(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -360,7 +360,7 @@ template SQLiteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_group(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -379,7 +379,7 @@ template SQLiteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_block(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -398,7 +398,7 @@ template SQLiteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_verse(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -417,7 +417,7 @@ template SQLiteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_code(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -436,7 +436,7 @@ template SQLiteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_table(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -456,11 +456,11 @@ template SQLiteBuildTablesAndPopulate() { Statement SQLiteInstruct(I)( auto ref I doc_matters, ) { - auto pth_sqlite = SiSUpathsSQLite!()(doc_matters.output_path, doc_matters.language); - auto db = Database(pth_sqlite.sqlite_file(doc_matters.environment.pwd.baseName)); + auto pth_sqlite = SiSUpathsSQLite!()(doc_matters.output_path, doc_matters.src.language); + auto db = Database(pth_sqlite.sqlite_file(doc_matters.env.pwd.baseName)); // auto db = Database(":memory:"); // open database in memory - if (doc_matters.opt_action.sqlite_create) { - if ((doc_matters.opt_action.verbose)) { writeln("sqlite create tables... "); } + if (doc_matters.opt.action.sqlite_create) { + if ((doc_matters.opt.action.verbose)) { writeln("sqlite create tables... "); } db.run(" DROP TABLE IF EXISTS metadata_and_text; DROP TABLE IF EXISTS doc_objects; @@ -911,14 +911,14 @@ template SQLiteBuildTablesAndPopulate() { obj_txt = format_and_sqlite_load.heading(obj); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -940,7 +940,7 @@ template SQLiteBuildTablesAndPopulate() { obj_txt = format_and_sqlite_load.para(obj); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; @@ -969,14 +969,14 @@ template SQLiteBuildTablesAndPopulate() { obj_txt = format_and_sqlite_load.table(obj); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -1006,14 +1006,14 @@ template SQLiteBuildTablesAndPopulate() { obj_txt = format_and_sqlite_load.para(obj); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -1022,7 +1022,7 @@ template SQLiteBuildTablesAndPopulate() { case "comment": break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.of_part); // check where empty value could come from writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); writeln(__FILE__, ":", __LINE__, ": ", obj.text); // check where empty value could come from @@ -1073,7 +1073,7 @@ template SQLiteBuildTablesAndPopulate() { } } } - SQLiteObjectsLoop!()(doc_matters.keys_seq.sql); + SQLiteObjectsLoop!()(doc_matters.xml.keys_seq.sql); } } template SQLiteTablesCreate() { diff --git a/src/sdp/output/sqlite_discrete.d b/src/sdp/output/sqlite_discrete.d index f97692f..0c323d1 100644 --- a/src/sdp/output/sqlite_discrete.d +++ b/src/sdp/output/sqlite_discrete.d @@ -44,7 +44,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { if (_urls.length > 0) { _txt ~= _urls; } - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { writeln(_txt, "\n"); } debug(sql_text_clean) { @@ -96,7 +96,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { if (_notes.length > 0) { _txt ~= _notes; } - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { writeln(_txt, "\n"); } return _txt; @@ -303,7 +303,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_heading(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -322,7 +322,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_para(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -341,7 +341,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_quote(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -360,7 +360,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_group(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -379,7 +379,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_block(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -398,7 +398,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_verse(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -417,7 +417,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_code(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -436,7 +436,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { "text": generic_munge_sanitize_text_for_search(obj.text), "html": html_table(obj) ]; - if (doc_matters.opt_action.debug_do) { + if (doc_matters.opt.action.debug_do) { debug(sql_txt) { writeln(obj_txt["text"]); } @@ -456,8 +456,8 @@ template SQLiteDiscreteBuildTablesAndPopulate() { Statement SQLiteInstruct(I)( auto ref I doc_matters, ) { - auto pth_sqlite = SiSUpathsSQLiteDiscrete!()(doc_matters.output_path, doc_matters.language); - auto db = Database(pth_sqlite.sqlite_file(doc_matters.source_filename)); + auto pth_sqlite = SiSUpathsSQLiteDiscrete!()(doc_matters.output_path, doc_matters.src.language); + auto db = Database(pth_sqlite.sqlite_file(doc_matters.src.filename)); // auto db = Database(":memory:"); // open database in memory db.run(" DROP TABLE IF EXISTS metadata_and_text; @@ -908,14 +908,14 @@ template SQLiteDiscreteBuildTablesAndPopulate() { obj_txt = format_and_sqlite_load.heading(obj); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -937,7 +937,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { obj_txt = format_and_sqlite_load.para(obj); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; @@ -966,14 +966,14 @@ template SQLiteDiscreteBuildTablesAndPopulate() { obj_txt = format_and_sqlite_load.table(obj); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -1003,14 +1003,14 @@ template SQLiteDiscreteBuildTablesAndPopulate() { obj_txt = format_and_sqlite_load.para(obj); break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); } break; } break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_of); } break; @@ -1019,7 +1019,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { case "comment": break; default: - if ((doc_matters.opt_action.debug_do)) { + if ((doc_matters.opt.action.debug_do)) { writeln(__FILE__, ":", __LINE__, ": ", obj.of_part); // check where empty value could come from writeln(__FILE__, ":", __LINE__, ": ", obj.is_a); writeln(__FILE__, ":", __LINE__, ": ", obj.text); // check where empty value could come from @@ -1070,7 +1070,7 @@ template SQLiteDiscreteBuildTablesAndPopulate() { } } } - SQLiteObjectsLoop!()(doc_matters.keys_seq.sql); + SQLiteObjectsLoop!()(doc_matters.xml.keys_seq.sql); } } template SQLiteDiscreteTablesCreate() { diff --git a/src/sdp/output/xmls.d b/src/sdp/output/xmls.d index 622e599..5e7f2e9 100644 --- a/src/sdp/output/xmls.d +++ b/src/sdp/output/xmls.d @@ -243,7 +243,7 @@ template outputXHTMLs() { ((type == "seg") ? "../../../css/html_seg.css" : "../../css/html_scroll.css"), - doc_matters.language, + doc_matters.src.language, site_info_button(doc_matters), inline_search_form(doc_matters), ((type == "seg") ? "" : "\n</div>"), @@ -261,16 +261,16 @@ template outputXHTMLs() { xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="%s" xml:lang="%s">¶", - doc_matters.language, - doc_matters.language, + doc_matters.src.language, + doc_matters.src.language, ); string html_strict = format(q"¶<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" lang="%s" xml:lang="%s">¶", - doc_matters.language, - doc_matters.language, + doc_matters.src.language, + doc_matters.src.language, ); string o; o = format(q"¶%s @@ -304,7 +304,7 @@ template outputXHTMLs() { doc_matters.conf_make_meta.meta.title_full, (doc_matters.conf_make_meta.meta.creator_author.empty) ? "" : ", " ~ doc_matters.conf_make_meta.meta.creator_author, - doc_matters.language, + doc_matters.src.language, ); return o; } diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d index 8434841..4e43a67 100755 --- a/src/sdp/sdp.d +++ b/src/sdp/sdp.d @@ -303,7 +303,7 @@ void main(string[] args) { "home" : environment["HOME"], ]; auto _manifest_start = PodManifest!()(); - auto _manifest_matter = PodMatters!()(_opt_action, _env); + auto _manifest_matter = PathMatters!()(_opt_action, _env); auto _manifests = [ _manifest_matter ]; foreach(arg; args[1..$]) { _manifest_start = PodManifest!()(arg); @@ -340,8 +340,8 @@ void main(string[] args) { } else { // (file name with path \n)+ contents_location_ = contents_location_raw_; } - auto contents_locations_arr = - (cast(char[]) contents_location_).split; + auto contents_locations_arr + = (cast(char[]) contents_location_).split; auto tmp_dir_ = (sisudoc_txt_).dirName.array; foreach (contents_location; contents_locations_arr) { assert(contents_location.match(rgx.src_pth_sst_or_ssm), @@ -354,12 +354,12 @@ void main(string[] args) { || (contents_location_pth_).match(lang_rgx_) ) { auto _fns = (((tmp_dir_).chainPath(contents_location_pth_)).array).to!(string); - _manifest_matter = PodMatters!()(_opt_action, _env, arg, _fns, contents_locations_arr); + _manifest_matter = PathMatters!()(_opt_action, _env, arg, _fns, contents_locations_arr); _manifests ~= _manifest_matter; // TODO how to capture? } } } else if (arg.match(rgx.src_pth_sst_or_ssm)) { - _manifests ~= PodMatters!()(_opt_action, _env, arg, arg); // gather input markup source file names for processing + _manifests ~= PathMatters!()(_opt_action, _env, arg, arg); // gather input markup source file names for processing } else if (arg.match(rgx.src_pth_zip)) { // fns_src ~= arg; // gather input markup source file names for processing } else { // anything remaining, unused @@ -372,7 +372,7 @@ void main(string[] args) { } if (_manifests.length > 1) { // _manifests[0] initialized dummy element foreach(manifest; _manifests[1..$]) { - if (!empty(manifest.src_fn)) { + if (!empty(manifest.src.filename)) { scope(success) { debug(checkdoc) { writefln( @@ -387,14 +387,14 @@ void main(string[] args) { stderr.writefln( "~ document run failure ~ (%s v%s)\n\t%s", __VENDOR__, __VERSION__, - src_fn + manifest.src.filename ); } } enforce( - manifest.src_fn.match(rgx.src_pth_types), + manifest.src.filename.match(rgx.src_pth_types), "not a sisu markup filename: «" ~ - manifest.src_fn ~ "»" + manifest.src.filename ~ "»" ); auto t = SiSUabstraction!()(_env, _opt_action, manifest); static assert(!isTypeTuple!(t)); @@ -402,24 +402,24 @@ void main(string[] args) { auto doc_abstraction = t[dAM.abstraction]; auto doc_matters = t[dAM.matters]; /+ ↓ debugs +/ - if (doc_matters.opt_action.verbose) { + if (doc_matters.opt.action.verbose) { SiSUabstractionSummary!()(doc_abstraction, doc_matters); } /+ ↓ debugs +/ - if ((doc_matters.opt_action.debug_do) - || (doc_matters.opt_action.verbose) + if ((doc_matters.opt.action.debug_do) + || (doc_matters.opt.action.verbose) ) { SiSUdebugs!()(doc_abstraction, doc_matters); } /+ ↓ output hub +/ - if (!(doc_matters.opt_action.skip_output)) { + if (!(doc_matters.opt.action.skip_output)) { outputHub!()(doc_abstraction, doc_matters); } scope(exit) { debug(checkdoc) { writefln( "processed file: %s", - manifest.src_fn + manifest.src.filename ); } destroy(manifest); |