diff options
Diffstat (limited to 'org')
-rw-r--r-- | org/ao_conf_make_meta.org | 140 | ||||
-rw-r--r-- | org/ao_debugs.org | 16 | ||||
-rw-r--r-- | org/ao_doc_abstraction.org | 27 | ||||
-rw-r--r-- | org/ao_read_source_files.org | 8 | ||||
-rw-r--r-- | org/compile_time_info.org | 2 | ||||
-rw-r--r-- | org/default_misc.org | 33 | ||||
-rw-r--r-- | org/default_paths.org | 6 | ||||
-rw-r--r-- | org/default_regex.org | 29 | ||||
-rw-r--r-- | org/output_sisupod.org | 8 | ||||
-rw-r--r-- | org/output_xmls.org | 95 | ||||
-rw-r--r-- | org/output_zip.org | 2 | ||||
-rw-r--r-- | org/sdp.org | 8 |
12 files changed, 102 insertions, 272 deletions
diff --git a/org/ao_conf_make_meta.org b/org/ao_conf_make_meta.org index 30e16a0..ad656aa 100644 --- a/org/ao_conf_make_meta.org +++ b/org/ao_conf_make_meta.org @@ -136,141 +136,6 @@ private auto configSettingsSDLangToAAmake(Tag)(Tag conf_sdlang) { #+BEGIN_SRC d private auto documentMakeSDLangToAAmake(Tag)(Tag document_make_sdlang) { auto dochead_make = sdlangToAAmake(make_aa, document_make_sdlang); - /+ - /+ dochead +/ - string hm; - string hs; - /+ make +/ - auto dochead_make = make_aa; - if (!(document_make_sdlang.maybe.tags["make"].empty)) { - hm = "make"; - hs = "bold"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "breaks"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "cover_image"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "css"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "emphasis"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "footer"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "headings"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "home_button_image"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "home_button_text"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "italics"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "num_top"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "substitute"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - hs = "texpdf_font"; - if (!(document_make_sdlang.tags[hm][0].maybe.attributes[hs].empty) - && (document_make_sdlang.tags[hm][0].attributes[hs][0].value.length > 1)) { - debug(headersdlang) { - writeln(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - dochead_make[hm][hs] = - to!string(document_make_sdlang.tags[hm][0].attributes[hs][0].value); - } - } - +/ - /+ - hm = "links"; - if (!(document_make_sdlang.maybe.tags[hm].empty)) { - /+ TODO - stuff to fix - +/ - } - +/ return dochead_make; } #+END_SRC @@ -322,7 +187,6 @@ private auto headerSDLangGet(Hs)(Hs src_header) { char[][] source_header_arr = (cast(char[]) src_header).split(rgx.newline_eol_delimiter); char[] header_clean; - // TODO foreach(header_line; source_header_arr) { if (!match(header_line, rgx.comments)) { header_clean ~= header_line ~ "\n"; @@ -355,7 +219,7 @@ private auto headerSDLangToAAmake(Tag,Ma)(Tag header_sdlang, Ma dochead_make) { auto dochead_meta = sdlangToAAmake(meta_aa, header_sdlang); if (dochead_meta["title"]["main"].empty) { dochead_meta["title"]["main"] = - to!string(header_sdlang.maybe.tags["title"][0].values[0]); // test that this exists + to!string(header_sdlang.maybe.tags["title"][0].values[0]); } if (!(dochead_meta["title"]["subtitle"].empty) && (dochead_meta["title"]["sub"].empty)) { @@ -393,7 +257,7 @@ private auto headerSDLangToAA(Hs,Ma)(Hs header_sdlang_src, Ma conf_doc_make_aa) static assert(is(typeof(header_sdlang_src) == char[])); static assert(is(typeof(conf_doc_make_aa) == string[string][string])); } - auto header_sdlang_tag = headerSDLangGet(header_sdlang_src); // sdlang.ast.Tag + auto header_sdlang_tag = headerSDLangGet(header_sdlang_src); auto header_aa_tuple = headerSDLangToAAmake(header_sdlang_tag, conf_doc_make_aa); return header_aa_tuple; } diff --git a/org/ao_debugs.org b/org/ao_debugs.org index 3a73da0..e0f96da 100644 --- a/org/ao_debugs.org +++ b/org/ao_debugs.org @@ -313,10 +313,14 @@ debug(toc_nav_dom) { break; case DomTags.close_and_open : writeln(markup.indent_by_spaces_provided(k), "</", k, ">"); - writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text, " file: ", obj.segment_anchor_tag, ".xhtml#", obj.ocn); + writeln(markup.indent_by_spaces_provided(k), + "<", k, ">", obj.text, + " file: ", obj.segment_anchor_tag, ".xhtml#", obj.ocn); break; case DomTags.open : - writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text, " file: ", obj.segment_anchor_tag, ".xhtml#", obj.ocn); + writeln(markup.indent_by_spaces_provided(k), + "<", k, ">", obj.text, + " file: ", obj.segment_anchor_tag, ".xhtml#", obj.ocn); break; default : break; @@ -336,10 +340,14 @@ debug(toc_nav_dom) { break; case DomTags.close_and_open : writeln(markup.indent_by_spaces_provided(k), "</", k, ">"); - writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text, " file: ", obj.segment_anchor_tag, ".xhtml#", obj.ocn); + writeln(markup.indent_by_spaces_provided(k), + "<", k, ">", obj.text, + " file: ", obj.segment_anchor_tag, ".xhtml#", obj.ocn); break; case DomTags.open : - writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text, " file: ", obj.segment_anchor_tag, ".xhtml#", obj.ocn); + writeln(markup.indent_by_spaces_provided(k), + "<", k, ">", obj.text, + " file: ", obj.segment_anchor_tag, ".xhtml#", obj.ocn); break; default : break; diff --git a/org/ao_doc_abstraction.org b/org/ao_doc_abstraction.org index 878f1a0..f6d65e1 100644 --- a/org/ao_doc_abstraction.org +++ b/org/ao_doc_abstraction.org @@ -961,7 +961,7 @@ continue; #+BEGIN_SRC d assert( !line.empty, - "line tested, line not empty surely" + "line tested, line not empty surely:\n \"" ~ line ~ "\"" ); assert( (type["blocks"] == TriState.off) @@ -976,7 +976,9 @@ if (type["blocks"] == TriState.closing) { assert( line.matchFirst(rgx.book_index) || line.matchFirst(rgx.book_index_open) - || type["book_index"] == State.on + || type["book_index"] == State.on, + "\nblocks closed, unless followed by book index, non-matching line:\n \"" + ~ line ~ "\"" ); } #+END_SRC @@ -1022,7 +1024,7 @@ if (line.matchFirst(rgx.book_index) ++cntr; #+END_SRC -******** flag not set & line not exist: heading or para :heading:paragraph: +******** flag !set & line !exist: heading or para :heading:paragraph: #+name: abs_in_loop_body_not_block_obj #+BEGIN_SRC d @@ -1080,7 +1082,7 @@ if (line.matchFirst(rgx.book_index) } else if (line_occur["para"] > State.off) { /+ paragraph +/ debug(para) { - writeln(line); + writeln(an_object_key, "-> ", line); } an_object[an_object_key] ~= " " ~ line; ++line_occur["para"]; @@ -1114,7 +1116,8 @@ _block_flag_line_empty_( #+BEGIN_SRC d assert( line.empty, - "line should be empty" + "\nline should be empty:\n \"" + ~ line ~ "\"" ); assert( (type["blocks"] == State.off), @@ -3362,7 +3365,8 @@ void _block_flag_line_empty_(B)( ) { assert( line.empty, - "line should be empty" + "\nline should be empty:\n \"" + ~ line ~ "\"" ); assert( (type["blocks"] == TriState.closing), @@ -3523,7 +3527,7 @@ void _block_flag_line_empty_(B)( obj_cite_number, segment_anchor_tag_that_object_belongs_to ); - an_object["is"] = "verse"; + an_object["is"] = "verse"; auto comp_obj_location = node_construct.node_location_emitter( content_non_header, @@ -5098,7 +5102,7 @@ struct ObjInlineMarkup { private: #+END_SRC -******* make heading number and segment anchor tags if instructed :markup:inline:segment:anchor:tags: +******* make heading number & segment anchor tags if instructed :markup:inline:segment:anchor:tags: #+name: ao_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags #+BEGIN_SRC d @@ -5239,17 +5243,10 @@ private: } #+END_SRC -******** unittests - -#+name: ao_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags -#+BEGIN_SRC d -#+END_SRC - ******* make segment anchor tags if not provided :markup:inline:segment:anchor:tags: #+name: ao_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags #+BEGIN_SRC d - static string _make_segment_anchor_tags_if_none_provided(M,Lv)(M munge_, Lv lev_) { debug(asserts) { static assert(is(typeof(munge_) == string)); diff --git a/org/ao_read_source_files.org b/org/ao_read_source_files.org index fa3da1a..134b64b 100644 --- a/org/ao_read_source_files.org +++ b/org/ao_read_source_files.org @@ -29,7 +29,7 @@ template ConfigIn() { } #+END_SRC -** read config file, source string (conf.sdl & sisu_document_make) :file:config: +** read config file, (conf.sdl & sisu_document_make) :file:config: #+name: ao_config_file_in #+BEGIN_SRC d @@ -435,7 +435,7 @@ if (type1["curly_code"] == 1) { auto raw = MarkupRawUnit(); auto markup_sourcesubfile_insert_content = raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts); - debug(insert) { // insert file + debug(insert_file) { tell_l("red", line); tell_l("red", fn_src_insert); tell_l("fuchsia", "ERROR"); @@ -514,7 +514,7 @@ if (type["curly_code"] == 1) { } auto markup_sourcefile_insert_content = raw.getInsertMarkupSourceContentRawLineArray(fn_src_insert, rgx.src_fn_find_inserts); - debug(insert) { // insert file + debug(insert_file) { tell_l("red", line); tell_l("red", fn_src_insert); writeln( @@ -546,7 +546,7 @@ if (type["curly_code"] == 1) { #+name: ao_master_doc_scan_for_insert_filenames_post #+BEGIN_SRC d -debug(insert) { // insert file +debug(insert_file) { writeln(__LINE__); writeln(contents.length); } diff --git a/org/compile_time_info.org b/org/compile_time_info.org index 8aa083d..66e56fc 100644 --- a/org/compile_time_info.org +++ b/org/compile_time_info.org @@ -20,7 +20,7 @@ e.g. do on linux bsd osx not windows: version(Windows) {} else { ... } -** 0. compile_time_info: :compile_time_info.d: +** 0. compile_time_info :compile_time_info: #+begin_src d :tangle ../src/sdp/compile_time_info.d /++ diff --git a/org/default_misc.org b/org/default_misc.org index 4b835b1..bf18361 100644 --- a/org/default_misc.org +++ b/org/default_misc.org @@ -229,7 +229,7 @@ auto ptr_head_main = "date", "identifier", "links", - "make", /+ make +/ + "make", "original", "notes", "rights", @@ -473,7 +473,6 @@ template SiSUnode() { "is" : "", "ocn" : "", "attrib" : "", - // "segment_anchor_tag" : "", ]; return _node; } @@ -483,10 +482,6 @@ template SiSUnode() { "indent_base" : 0, "indent_hang" : 0, "bullet" : 0, // bool (0|1) - // "ptr_doc_object" : 0, - // "ptr_html_segnames" : 0, - // "parent_ocn" : 0, - // "parent_lev_markup" : 9, ]; return _node; } @@ -581,23 +576,23 @@ private import #+BEGIN_SRC d template InternalMarkup() { struct InlineMarkup { - auto en_a_o = "【"; auto en_a_c = "】"; // endnote en_a_o: '~{'; en_a_c: '}~'; - auto en_b_o = "〖"; auto en_b_c = "〗"; // endnote en_b_o: '~['; en_b_c: ']~'; - auto lnk_o = "┥"; auto lnk_c = "┝"; // auto lnk_o = "⌠"; auto lnk_c = "⌡"; // '⌈' '⌋' '⌠' '⌡' #Mx[:lnk_o= '◁'; Mx[:lnk_c= '▷' #‹ › + auto en_a_o = "【"; auto en_a_c = "】"; + auto en_b_o = "〖"; auto en_b_c = "〗"; + auto lnk_o = "┥"; auto lnk_c = "┝"; auto url_o = "┤"; auto url_c = "├"; auto mark_internal_site_lnk = "¤"; auto nbsp = "░"; - auto br_line = "┘"; // "╱"; // lB ▌ 9612 ┘ ¶ - auto br_nl = "┙"; // "╲"; // lB ▌ 』 ┘ - auto br_paragraph = "┚"; // "█"; // FB █ 9608 # PP ∥ 8741 #▐ #'┘' #'¶' #FB █ 9608 lB ▌ 9612 RB ▐ 9616 + auto br_line = "┘"; + auto br_nl = "┙"; + auto br_paragraph = "┚"; auto br_obj = "break_obj"; - auto br_page_line = "┼"; // "▭"; - auto br_page = "┿"; // "┼"; - auto br_page_new = "╂"; // "╋"; - auto tc_s = "┊"; // "┴"; //"『"; // "┏" ┓ - auto tc_o = "┏"; //"『"; // "┏" ┓ - auto tc_c = "┚"; // "』"; // "┚" table row mark #Mx[:tc_c]="』\n" - auto tc_p = "┆"; // table col/misc mark + auto br_page_line = "┼"; + auto br_page = "┿"; + auto br_page_new = "╂"; + auto tc_s = "┊"; + auto tc_o = "┏"; + auto tc_c = "┚"; + auto tc_p = "┆"; string indent_by_spaces_provided(int indent, string _indent_spaces ="░░") { _indent_spaces = replicate(_indent_spaces, indent); return _indent_spaces; diff --git a/org/default_paths.org b/org/default_paths.org index 4c1cb3d..65a0c0f 100644 --- a/org/default_paths.org +++ b/org/default_paths.org @@ -158,7 +158,7 @@ template SiSUpathsSisupodZipped() { Lng lng, ) { struct _PathsStruct { - auto spod_pths = SiSUpathsSisupod!()(); // SiSUpodPaths(); + auto spod_pths = SiSUpathsSisupod!()(); string base_filename(string fn_src) { return spod_pths.base_filename(fn_src); } @@ -181,7 +181,7 @@ template SiSUpathsSisupodZipped() { return pod_root(fn_src).chainPath("conf").array; } auto doc(string fn_src) { - return text_root(fn_src); // or pod_root? + return text_root(fn_src); } auto doc_lng(string fn_src) { return text_root(fn_src).chainPath(lng).array; @@ -216,7 +216,7 @@ template SiSUpathsSisupodFileSystem() { Lng lng, ) { struct _PathsStruct { - auto spod_pths = SiSUpathsSisupod!()(); // SiSUpodPaths(); + auto spod_pths = SiSUpathsSisupod!()(); string base_filename(string fn_src) { return spod_pths.base_filename(fn_src); } diff --git a/org/default_regex.org b/org/default_regex.org index baeca25..01aa763 100644 --- a/org/default_regex.org +++ b/org/default_regex.org @@ -62,8 +62,8 @@ static line_delimiter_ws_strip = ctRegex!("[ ]*\n[ ]*"); static para_delimiter = ctRegex!("\n[ ]*\n+"); static table_col_delimiter = ctRegex!("[ ]*\n+", "mg"); static table_row_delimiter = ctRegex!("\n[ ]*\n+", "mg"); -static table_row_delimiter_special = ctRegex!("[ ]*\n", "mg"); // -static table_col_delimiter_special = ctRegex!("[ ]*[|][ ]*", "mg"); // +static table_row_delimiter_special = ctRegex!("[ ]*\n", "mg"); +static table_col_delimiter_special = ctRegex!("[ ]*[|][ ]*", "mg"); static levels_markup = ctRegex!(`^[A-D1-4]$`); static levels_numbered = ctRegex!(`^[0-9]$`); static levels_numbered_headings = ctRegex!(`^[0-7]$`); @@ -128,12 +128,11 @@ static heading_seg_and_above = ctRegex!(`^:?([A-D1])[~] static heading_marker = ctRegex!(`^:?([A-D1-4])[~]`); static heading_anchor_tag = ctRegex!(`^:?[A-D1-4][~]([a-z0-9_.-]+) `,"i"); static heading_identify_anchor_tag = ctRegex!(`^:?[A-D1-4][~]\s+(?:(?:(?:chapter|article|section|clause)\s+[0-9.]+)|(?:[0-9]+))`,"i"); - // unless dob.obj =~/^:?[A-D1-4]~\s+(?:|(?:chapter|article|section|clause)\s+)([0-9.]+)/i static heading_extract_named_anchor_tag = ctRegex!(`^:?[A-D1-4][~]\s+(chapter|article|section|clause)\s+((?:[0-9]+.)*[0-9]+)(?:[.:;, ]|$)`,"i"); static heading_extract_unnamed_anchor_tag = ctRegex!(`^:?[A-D1-4][~]\s+((?:[0-9]+.)*[0-9]+)(?:[.:;, ]|$)`); static heading_marker_missing_tag = ctRegex!(`^:?([A-D1-4])[~] `); static heading_title = ctRegex!(`^:?[A-D1-4][~][a-z0-9_.-]*[?]?\s+(.+?)$`); -static heading_all = ctRegex!(`^:?([A-D1-4])[~]([a-z0-9_.-]*[?]?)\s+(.+?)$`); // test, particularly [2] name/hashtag which may or may not be, does this affect title [3] +static heading_all = ctRegex!(`^:?([A-D1-4])[~]([a-z0-9_.-]*[?]?)\s+(.+?)$`); static heading_backmatter = ctRegex!(`^:?1[~][!](glossary|bibliography|biblio|blurb)\s+`,"i"); static heading_biblio = ctRegex!(`^:?(1)[~][!](biblio(?:graphy)?|references?)`); static heading_glossary = ctRegex!(`^:?(1)[~][!](glossary)`); @@ -191,7 +190,7 @@ static block_curly_quote_open = ctRegex!(`^(quote[{].*?$ static block_curly_quote_close = ctRegex!(`^([}]quote)`); static block_curly_table_open = ctRegex!(`^table[{](.*)`); static block_curly_table_close = ctRegex!(`^([}]table)`); -static block_curly_table_special_markup = ctRegex!(`^[{]table((~h)?(?P<columns>(?:[ ]+[0-9]+;)+))[}]`, "mg"); // sepcial table block markup +static block_curly_table_special_markup = ctRegex!(`^[{]table((~h)?(?P<columns>(?:[ ]+[0-9]+;)+))[}]`, "mg"); #+END_SRC *** block sub-matches :block:curly: @@ -225,9 +224,9 @@ static inline_text_and_note_square_sp = ctRegex!(`(.+?)~\[[*+]+\ static inline_text_and_note_square = ctRegex!(`(.+?)~\[\s*(.+?)\]~`, "mg"); static inline_note_square_delimiters = ctRegex!(`(~\[\s*)(.+?)(\]~)`, "mg"); static inline_curly_delimiter_open_regular = ctRegex!(`~\{\s*`, "m"); -static inline_curly_delimiter_open_symbol_star = ctRegex!(`~\{[*]\s`, "m"); // -static inline_curly_delimiter_open_symbol_plus = ctRegex!(`~\{[+]\s`, "m"); // -static inline_curly_delimiter_open_star_or_plus = ctRegex!(`~\{[+*]`, "m"); // +static inline_curly_delimiter_open_symbol_star = ctRegex!(`~\{[*]\s`, "m"); +static inline_curly_delimiter_open_symbol_plus = ctRegex!(`~\{[+]\s`, "m"); +static inline_curly_delimiter_open_star_or_plus = ctRegex!(`~\{[+*]`, "m"); static inline_curly_delimiter_close_regular = ctRegex!(`\s*\}~`, "m"); static inline_text_and_note_curly = ctRegex!(`(?P<text>.+?)(?:(?:[~])[{][*+ ]*)(?P<note>.+?)(?:[}][~])`, "mg"); static note_ref = ctRegex!(`^\S+?noteref_([0-9]+)`, "mg"); // {^{73.}^}#noteref_73 @@ -259,7 +258,7 @@ static image = ctRegex!(`([a-zA-Z0-9._ /+ inline markup book index +/ static book_index = ctRegex!(`^=\{\s*(.+?)\}$`, "m"); static book_index_open = ctRegex!(`^=\{\s*([^}]+?)$`); -static book_index_close = ctRegex!(`^(.*?)\}$`, "m"); // strip +static book_index_close = ctRegex!(`^(.*?)\}$`, "m"); #+END_SRC ** no obj_cite_number object :ocn:off:object: @@ -288,7 +287,7 @@ static obj_cite_number_block_marks = ctRegex!(`^--[+~-]#$`); #+name: ao_rgx #+BEGIN_SRC d /+ ignore outside code blocks +/ -static skip_from_regular_parse = ctRegex!(`^(--[+~-]#|-[\\]{2}-|=[.\\]{2}=)$`); // not structural info +static skip_from_regular_parse = ctRegex!(`^(--[+~-]#|-[\\]{2}-|=[.\\]{2}=)$`); #+END_SRC ** line & page breaks :break: @@ -387,7 +386,7 @@ static newline = ctRegex!("\n", "mg"); static strip_br = ctRegex!("^<br>\n|<br>\n*$"); static space = ctRegex!(`[ ]`, "mg"); static spaces_line_start = ctRegex!(`^(?P<opening_spaces>[ ]+)`, "mg"); -static spaces_multiple = ctRegex!(`(?P<multiple_spaces>[ ]{2,})`, "mg"); // could be issues for endnotes +static spaces_multiple = ctRegex!(`(?P<multiple_spaces>[ ]{2,})`, "mg"); static two_spaces = ctRegex!(`[ ]{2}`, "mg"); static nbsp_char = ctRegex!(`░`, "mg"); static nbsp_chars_line_start = ctRegex!(`^░+`, "mg"); @@ -395,7 +394,7 @@ static nbsp_and_space = ctRegex!(` [ ]`, "m static nbsp_char_and_space = ctRegex!(`░[ ]`, "mg"); #+END_SRC -** filename (and path) matching (including markup insert file) :insert:file:path:filename: +** filename (& path) (including insert file) :insert:file:path:filename: #+name: prgmkup_rgx #+BEGIN_SRC d @@ -443,7 +442,7 @@ static inline_seg_link = ctRegex!(`(¤)(?:.+?)\.f static mark_internal_site_lnk = ctRegex!(`¤`, "mg"); #+END_SRC -*** inline markup font face mod :inline:font:face: +*** inline markup font face mod :inline:font:face: #+name: prgmkup_rgx #+BEGIN_SRC d @@ -471,6 +470,6 @@ static inline_underscore_line = ctRegex!(`^__ (?P<text>. #+name: prgmkup_rgx #+BEGIN_SRC d /+ table delimiters +/ -static table_delimiter_col = ctRegex!("[ ]*[┊][ ]*", "mg"); // -static table_delimiter_row = ctRegex!("[ ]*\n", "mg"); // +static table_delimiter_col = ctRegex!("[ ]*[┊][ ]*", "mg"); +static table_delimiter_row = ctRegex!("[ ]*\n", "mg"); #+END_SRC diff --git a/org/output_sisupod.org b/org/output_sisupod.org index 5471a6a..e161f54 100644 --- a/org/output_sisupod.org +++ b/org/output_sisupod.org @@ -124,7 +124,7 @@ debug(sisupod) { doc_matters.source_filename, )); } -auto zip = new ZipArchive(); // ZipArchive zip = new ZipArchive(); +auto zip = new ZipArchive(); auto fn_sisupod = pth_sisupod.sisupod_filename(doc_matters.source_filename); { /+ bundle images +/ foreach (image; doc_matters.image_list) { @@ -243,8 +243,7 @@ if (exists(fn_sisupod)) { auto zipped = new ZipArchive((fn_sisupod).read); foreach (filename, member; zipped.directory) { auto data = zipped.expand(member); - writeln("> ", filename, " length ", data.length); // filename == member.name - // Use data + writeln("> ", filename, " length ", data.length); } } catch (ZipException ex) { @@ -272,8 +271,7 @@ if (exists(fn_sisupod)) { } } } - catch (ErrnoException ex) - { + catch (ErrnoException ex) { // Handle errors } } diff --git a/org/output_xmls.org b/org/output_xmls.org index 1757ffa..4c6013c 100644 --- a/org/output_xmls.org +++ b/org/output_xmls.org @@ -268,9 +268,11 @@ auto epub3_seg_head(Dm)( <a name="top" id="top"></a>¶", html_simple, doc_matters.dochead_meta["title"]["full"], - (doc_matters.dochead_meta["creator"]["author"].empty) ? "" : ", " ~ doc_matters.dochead_meta["creator"]["author"], + (doc_matters.dochead_meta["creator"]["author"].empty) ? "" + : ", " ~ doc_matters.dochead_meta["creator"]["author"], doc_matters.dochead_meta["title"]["full"], - (doc_matters.dochead_meta["creator"]["author"].empty) ? "" : ", " ~ doc_matters.dochead_meta["creator"]["author"], + (doc_matters.dochead_meta["creator"]["author"].empty) ? "" + : ", " ~ doc_matters.dochead_meta["creator"]["author"], doc_matters.language, ); return o; @@ -368,13 +370,6 @@ auto inline_notes_scroll(O)( writeln(__LINE__, " (missed) markup endnote: ", obj.is_a, ": ", obj.text); } } - // if (obj.inline_notes_star) { - // _txt = replaceAll( - // _txt, - // rgx.inline_notes_delimiter_al_regular_number_note, - // ("<a href=\"#note_$1\"><note id=\"noteref_$1\"> <sup>$1</sup> </note></a>") - // ); - // } return _txt; } #+END_SRC @@ -541,7 +536,7 @@ auto heading_scroll(O)( string _suffix = ".html", ) { auto tags = _xhtml_anchor_tags(obj.anchor_tags); - _txt = inline_markup_scroll(obj, _txt, _suffix); // issue + _txt = inline_markup_scroll(obj, _txt, _suffix); string o = heading(obj, _txt); return o; } @@ -625,7 +620,7 @@ auto para_scroll(O)( string _suffix = ".html", ) { auto tags = _xhtml_anchor_tags(obj.anchor_tags); - _txt = inline_markup_scroll(obj, _txt, _suffix); // issue + _txt = inline_markup_scroll(obj, _txt, _suffix); string o = para(obj, _txt); return o; } @@ -700,7 +695,7 @@ auto quote_scroll(O)( string _suffix = ".html", ) { auto tags = _xhtml_anchor_tags(obj.anchor_tags); - _txt = inline_markup_scroll(obj, _txt, _suffix); // issue + _txt = inline_markup_scroll(obj, _txt, _suffix); string o = quote(obj, _txt); return o; } @@ -775,7 +770,7 @@ auto group_scroll(O)( string _suffix = ".html", ) { auto tags = _xhtml_anchor_tags(obj.anchor_tags); - _txt = inline_markup_scroll(obj, _txt, _suffix); // issue + _txt = inline_markup_scroll(obj, _txt, _suffix); string o = group(obj, _txt); return o; } @@ -846,7 +841,7 @@ auto block_scroll(O)( string _suffix = ".html", ) { auto tags = _xhtml_anchor_tags(obj.anchor_tags); - _txt = inline_markup_scroll(obj, _txt, _suffix); // issue + _txt = inline_markup_scroll(obj, _txt, _suffix); string o = block(obj, _txt); return o; } @@ -878,7 +873,7 @@ auto block_seg(O)( #+name: xhtml_format_objects #+BEGIN_SRC d -auto verse(O)( // using code from code block, review +auto verse(O)( auto return ref const O obj, string _txt, ) { @@ -917,7 +912,7 @@ auto verse_scroll(O)( string _suffix = ".html", ) { auto tags = _xhtml_anchor_tags(obj.anchor_tags); - _txt = inline_markup_scroll(obj, _txt, _suffix); // issue + _txt = inline_markup_scroll(obj, _txt, _suffix); string o = verse(obj, _txt); return o; } @@ -1002,7 +997,7 @@ auto tablarize(O)( _table ~= "<tr>"; foreach(col_idx, cell; _table_cols) { if ((_table_cols.length == 1) - && (_table_rows.length <= row_idx+2)) { // check row_idx+2 (rather than == ++row_idx) + && (_table_rows.length <= row_idx+2)) { _tablenote ~= cell; } else { string _col_is = (row_idx == 0 && obj.table_heading) ? "th" : "td"; @@ -1274,7 +1269,7 @@ void scroll_write_output(M,C)( } #+END_SRC -*** seg :seg: +*** seg :seg: **** switch (sections & objects) format html output #+name: output_html_seg @@ -1295,7 +1290,7 @@ void seg(D,I)( foreach (part; doc_matters.keys_seq.seg) { foreach (obj; doc_abstraction[part]) { string _txt = xhtml_format.special_characters(obj, obj.text); - if (obj.is_a == "heading") { // all headings: frontmatter, body & backmatter + if (obj.is_a == "heading") { switch (obj.heading_lev_markup) { case 0: .. case 3: /+ fill buffer, and replace with new levels from 1 to 3 +/ @@ -1320,7 +1315,7 @@ void seg(D,I)( goto default; default: auto t = xhtml_format.heading_seg(obj, _txt, suffix); - top_level_headings[obj.heading_lev_markup] = t[0]; // should probably have different css tagging (fontsize etc) + top_level_headings[obj.heading_lev_markup] = t[0]; break; } break; @@ -1340,10 +1335,10 @@ void seg(D,I)( doc_html[segment_filename] ~= to!string(t[0]); doc_html_endnotes[segment_filename] ~= t[1]; break; - case 8: .. case 9: // unused numbers, if remain check + case 8: .. case 9: if ((doc_matters.opt_action_bool["debug"])) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup); - writeln(__FILE__, ":", __LINE__, ": ", obj.text); // check + writeln(__FILE__, ":", __LINE__, ": ", obj.text); } break; default: @@ -1414,7 +1409,7 @@ void seg(D,I)( case "verse": auto t = xhtml_format.verse_seg(obj, _txt, suffix); doc_html[segment_filename] ~= to!string(t[0]); - doc_html_endnotes[segment_filename] ~= t[1]; // work on + doc_html_endnotes[segment_filename] ~= t[1]; break; case "code": doc_html[segment_filename] ~= xhtml_format.code(obj, _txt); @@ -1526,7 +1521,7 @@ void seg_write_output(M,D,E)( foreach (docseg; doc_html_endnotes[seg_filename]) { f.writeln(docseg); } - f.writeln(xhtml_format.tail); // needed for each lev4 + f.writeln(xhtml_format.tail); } } catch (ErrnoException ex) { @@ -1535,7 +1530,7 @@ void seg_write_output(M,D,E)( } #+END_SRC -*** css :css: +*** css :css: #+name: output_html_css #+BEGIN_SRC d @@ -1956,10 +1951,10 @@ void outputEPub3(D,I)( doc_epub3[segment_filename] ~= t[0]; doc_epub3_endnotes[segment_filename] ~= t[1]; break; - case 8: .. case 9: // unused numbers, if remain check + case 8: .. case 9: if ((doc_matters.opt_action_bool["debug"])) { writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup); - writeln(__FILE__, ":", __LINE__, ": ", obj.text); // check + writeln(__FILE__, ":", __LINE__, ": ", obj.text); } break; default: @@ -2026,7 +2021,7 @@ void outputEPub3(D,I)( doc_epub3[segment_filename] ~= to!string(t[0]); doc_epub3_endnotes[segment_filename] ~= t[1]; break; - case "poem": // double check why both poem & verse + case "poem": break; case "verse": auto t = xhtml_format.verse_seg(obj, _txt, suffix); @@ -2222,26 +2217,23 @@ void epub3_write_output_files(M,D,E,Mt,Mic,Otnx,Otn,Oc)( { /+ 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); - /+ add zip archive file members (with their content) +/ auto zip_arc_member_file = new ArchiveMember(); - // add seg fn to zip archive 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); auto f = File(fn_dbg, "w"); } - /+ // f.writeln(seg_head); // not needed built and inserted earlier +/ foreach (docseg; doc_epub3[seg_filename]) { debug(epub_output) { f.writeln(docseg); } - zip_data.write(docseg.dup); // cast as: char[] + zip_data.write(docseg.dup); } foreach (docseg; doc_epub3_endnotes[seg_filename]) { debug(epub_output) { f.writeln(docseg); } - zip_data.write(docseg.dup); // cast as: char[] + zip_data.write(docseg.dup); } - debug(epub_output) { f.writeln(xhtml_format.tail); } // needed for each lev4 - zip_data.write(xhtml_format.tail.dup); // cast as: char[] + debug(epub_output) { f.writeln(xhtml_format.tail); } + zip_data.write(xhtml_format.tail.dup); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); /+ create the zip file +/ @@ -2257,15 +2249,12 @@ void epub3_write_output_files(M,D,E,Mt,Mic,Otnx,Otn,Oc)( File(fn_dbg, "w").writeln(mimetypes); } fn = pth_epub3.fn_mimetypes(doc_matters.source_filename); - /+ add zip archive file members (with their content) +/ auto zip_arc_member_file = new ArchiveMember(); - // add mimetypes to zip archive zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); - zip_data.write(mimetypes.dup); // cast as: char[] + zip_data.write(mimetypes.dup); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); - /+ create the zip file +/ createZipFile!()(fn_epub, zip.build()); } { /+ META-INF/container.xml (identify doc root) +/ @@ -2274,15 +2263,12 @@ void epub3_write_output_files(M,D,E,Mt,Mic,Otnx,Otn,Oc)( File(fn_dbg, "w").writeln(meta_inf_container_xml); } fn = pth_epub3.fn_dmi_container_xml(doc_matters.source_filename); - /+ add zip archive file members (with their content) +/ auto zip_arc_member_file = new ArchiveMember(); - // add META-INF/container.xml to zip archive zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); - zip_data.write(meta_inf_container_xml.dup); // cast as: char[] + zip_data.write(meta_inf_container_xml.dup); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); - /+ create the zip file +/ createZipFile!()(fn_epub, zip.build()); } { /+ OEBPS/toc_nav.xhtml (navigation toc epub3) +/ @@ -2291,15 +2277,12 @@ void epub3_write_output_files(M,D,E,Mt,Mic,Otnx,Otn,Oc)( File(fn_dbg, "w").writeln(oebps_toc_nav_xhtml); } fn = pth_epub3.fn_oebps_toc_nav_xhtml(doc_matters.source_filename); - /+ add zip archive file members (with their content) +/ auto zip_arc_member_file = new ArchiveMember(); - // add OEBPS/toc_nav.xhtml to zip archive zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); - zip_data.write(oebps_toc_nav_xhtml.dup); // cast as: char[] + zip_data.write(oebps_toc_nav_xhtml.dup); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); - /+ create the zip file +/ createZipFile!()(fn_epub, zip.build()); } { /+ OEBPS/toc.ncx (navigation toc epub2) +/ @@ -2308,15 +2291,12 @@ void epub3_write_output_files(M,D,E,Mt,Mic,Otnx,Otn,Oc)( File(fn_dbg, "w").writeln(oebps_toc_ncx); } fn = pth_epub3.fn_oebps_toc_ncx(doc_matters.source_filename); - /+ add zip archive file members (with their content) +/ auto zip_arc_member_file = new ArchiveMember(); - // add OEBPS/toc.ncx to zip archive zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); - zip_data.write(oebps_toc_ncx.dup); // cast as: char[] + zip_data.write(oebps_toc_ncx.dup); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); - /+ create the zip file +/ createZipFile!()(fn_epub, zip.build()); } { /+ OEBPS/content.opf (doc manifest) +/ @@ -2325,15 +2305,12 @@ void epub3_write_output_files(M,D,E,Mt,Mic,Otnx,Otn,Oc)( File(fn_dbg, "w").writeln(oebps_content_opf); } fn = pth_epub3.fn_oebps_content_opf(doc_matters.source_filename); - /+ add zip archive file members (with their content) +/ auto zip_arc_member_file = new ArchiveMember(); - // add OEBPS/content.opf to zip archive zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); - zip_data.write(oebps_content_opf.dup); // cast as: char[] + zip_data.write(oebps_content_opf.dup); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); - /+ create the zip file +/ createZipFile!()(fn_epub, zip.build()); } { /+ OEBPS/_sisu/image (images) +/ @@ -2376,15 +2353,12 @@ void epub3_write_output_files(M,D,E,Mt,Mic,Otnx,Otn,Oc)( File(fn_dbg, "w").writeln(css.epub_css); } fn = pth_epub3.fn_oebps_css(doc_matters.source_filename); - /+ add zip archive file members (with their content) +/ auto zip_arc_member_file = new ArchiveMember(); - // add OEBPS/content.opf to zip archive zip_arc_member_file.name = fn; auto zip_data = new OutBuffer(); - zip_data.write(css.epub_css.dup); // cast as: char[] + zip_data.write(css.epub_css.dup); zip_arc_member_file.expandedData = zip_data.toBytes(); zip.addMember(zip_arc_member_file); - /+ create the zip file +/ createZipFile!()(fn_epub, zip.build()); } } @@ -2403,8 +2377,7 @@ void epub3_write_output_files(M,D,E,Mt,Mic,Otnx,Otn,Oc)( auto zipped = new ZipArchive((fn_epub).read); foreach (filename, member; zipped.directory) { auto data = zipped.expand(member); - writeln(filename, " length ", data.length); // member.name - // Use data + writeln(filename, " length ", data.length); } } catch (ZipException ex) { diff --git a/org/output_zip.org b/org/output_zip.org index a907997..8dd6f23 100644 --- a/org/output_zip.org +++ b/org/output_zip.org @@ -14,7 +14,7 @@ [[./sdp.org][sdp]] [[./][org/]] * _zip_ -** template :template: +** template :template: #+BEGIN_SRC d :tangle ../src/sdp/create_zip_file.d template createZipFile() { diff --git a/org/sdp.org b/org/sdp.org index 0817dfd..edf258e 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -130,7 +130,7 @@ check: #+NAME: imports_sdlang #+BEGIN_SRC d /+ sdlang http://sdlang.org +/ -import sdlang; // sdlang.d +import sdlang; #+END_SRC ****** notes @@ -541,7 +541,7 @@ auto da = SiSUdocAbstraction!()( ); static assert(!isTypeTuple!(da)); static assert(da.length==5); -auto doc_abstraction = da[docAbst.doc_abstraction]; // head ~ toc ~ body ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~blurb; +auto doc_abstraction = da[docAbst.doc_abstraction]; /+ head ~ toc ~ body ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~ blurb; +/ auto _document_section_keys_sequenced = da[docAbst.section_keys]; string[] _doc_html_segnames = da[docAbst.segnames]; string[] _doc_epub_segnames_0_4 = da[docAbst.segnames_0_4]; @@ -728,7 +728,3 @@ writefln( markup.repeat_character_by_number_provided("-", min_repeat_number), ); #+END_SRC - -markup.repeat_character_by_number_provided("-", 10) -markup.repeat_character_by_number_provided("-", (doc_matters.dochead_meta["title"]["full"].length)) -markup.repeat_character_by_number_provided("-", (doc_matters.source_filename.length)) |