diff options
author | Ralph Amissah <ralph@amissah.com> | 2017-05-06 11:33:10 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2019-04-10 15:14:14 -0400 |
commit | 7a73aa10276b0c1151500d26b194336b56af7aba (patch) | |
tree | e267901f73375393cc429c5c17ce661216de111a /src/sdp | |
parent | xmls work particularly with epub output (diff) |
cleaningdoc-reform_v0.0.14
Diffstat (limited to 'src/sdp')
-rw-r--r-- | src/sdp/abstraction.d | 4 | ||||
-rw-r--r-- | src/sdp/ao_abstract_doc_source.d | 18 | ||||
-rw-r--r-- | src/sdp/ao_conf_make_meta_sdlang.d | 140 | ||||
-rw-r--r-- | src/sdp/ao_defaults.d | 33 | ||||
-rw-r--r-- | src/sdp/ao_doc_debugs.d | 16 | ||||
-rw-r--r-- | src/sdp/ao_read_source_files.d | 6 | ||||
-rw-r--r-- | src/sdp/ao_rgx.d | 25 | ||||
-rw-r--r-- | src/sdp/defaults.d | 26 | ||||
-rw-r--r-- | src/sdp/output_epub3.d | 50 | ||||
-rw-r--r-- | src/sdp/output_html.d | 12 | ||||
-rw-r--r-- | src/sdp/output_rgx.d | 6 | ||||
-rw-r--r-- | src/sdp/output_xmls.d | 29 | ||||
-rw-r--r-- | src/sdp/paths_output.d | 6 | ||||
-rw-r--r-- | src/sdp/source_sisupod.d | 8 |
14 files changed, 109 insertions, 270 deletions
diff --git a/src/sdp/abstraction.d b/src/sdp/abstraction.d index 51b76d6..726513c 100644 --- a/src/sdp/abstraction.d +++ b/src/sdp/abstraction.d @@ -14,7 +14,7 @@ template SiSUabstraction() { output_hub, paths_source; /+ sdlang http://sdlang.org +/ - import sdlang; // sdlang.d + import sdlang; /+ std +/ private import std.array, @@ -70,7 +70,7 @@ template SiSUabstraction() { ); 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]; diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d index f231af6..baf13b8 100644 --- a/src/sdp/ao_abstract_doc_source.d +++ b/src/sdp/ao_abstract_doc_source.d @@ -613,7 +613,7 @@ template SiSUdocAbstraction() { /+ non blocks (headings, paragraphs) & closed blocks +/ assert( !line.empty, - "line tested, line not empty surely" + "line tested, line not empty surely:\n \"" ~ line ~ "\"" ); assert( (type["blocks"] == TriState.off) @@ -628,7 +628,9 @@ template SiSUdocAbstraction() { 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 ~ "\"" ); } if (line.matchFirst(rgx.book_index) @@ -696,7 +698,7 @@ template SiSUdocAbstraction() { } 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"]; @@ -721,7 +723,8 @@ template SiSUdocAbstraction() { /+ line.empty, post contents, empty variables: +/ assert( line.empty, - "line should be empty" + "\nline should be empty:\n \"" + ~ line ~ "\"" ); assert( (type["blocks"] == State.off), @@ -2577,7 +2580,8 @@ template SiSUdocAbstraction() { ) { assert( line.empty, - "line should be empty" + "\nline should be empty:\n \"" + ~ line ~ "\"" ); assert( (type["blocks"] == TriState.closing), @@ -2714,7 +2718,7 @@ template SiSUdocAbstraction() { 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, @@ -4175,8 +4179,6 @@ template SiSUdocAbstraction() { } return munge_; } - - 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/src/sdp/ao_conf_make_meta_sdlang.d b/src/sdp/ao_conf_make_meta_sdlang.d index 533f482..74bb996 100644 --- a/src/sdp/ao_conf_make_meta_sdlang.d +++ b/src/sdp/ao_conf_make_meta_sdlang.d @@ -45,141 +45,6 @@ template SiSUheaderExtractSDLang() { } 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; } final private auto headerMakeSDLang(Hs)(Hs src_header) { @@ -218,7 +83,6 @@ template SiSUheaderExtractSDLang() { 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"; @@ -245,7 +109,7 @@ template SiSUheaderExtractSDLang() { 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)) { @@ -277,7 +141,7 @@ template SiSUheaderExtractSDLang() { 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/src/sdp/ao_defaults.d b/src/sdp/ao_defaults.d index 0f1ba2a..363cc39 100644 --- a/src/sdp/ao_defaults.d +++ b/src/sdp/ao_defaults.d @@ -170,7 +170,7 @@ template SiSUregisters() { "date", "identifier", "links", - "make", /+ make +/ + "make", "original", "notes", "rights", @@ -325,7 +325,6 @@ template SiSUnode() { "is" : "", "ocn" : "", "attrib" : "", - // "segment_anchor_tag" : "", ]; return _node; } @@ -335,10 +334,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; } @@ -382,23 +377,23 @@ template SiSUbiblio() { } 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/src/sdp/ao_doc_debugs.d b/src/sdp/ao_doc_debugs.d index 11eb148..e650e5b 100644 --- a/src/sdp/ao_doc_debugs.d +++ b/src/sdp/ao_doc_debugs.d @@ -125,10 +125,14 @@ template SiSUdebugs() { 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; @@ -148,10 +152,14 @@ template SiSUdebugs() { 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/src/sdp/ao_read_source_files.d b/src/sdp/ao_read_source_files.d index b47918a..33e7987 100644 --- a/src/sdp/ao_read_source_files.d +++ b/src/sdp/ao_read_source_files.d @@ -196,7 +196,7 @@ template SiSUrawMarkupContent() { 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"); @@ -264,7 +264,7 @@ template SiSUrawMarkupContent() { } 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( @@ -291,7 +291,7 @@ template SiSUrawMarkupContent() { contents ~= line; } } // end src doc loop - debug(insert) { // insert file + debug(insert_file) { writeln(__LINE__); writeln(contents.length); } diff --git a/src/sdp/ao_rgx.d b/src/sdp/ao_rgx.d index 8c73423..38c7fae 100644 --- a/src/sdp/ao_rgx.d +++ b/src/sdp/ao_rgx.d @@ -26,8 +26,8 @@ template SiSUrgxInit() { 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]$`); @@ -67,12 +67,11 @@ template SiSUrgxInit() { 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)`); @@ -111,7 +110,7 @@ template SiSUrgxInit() { 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"); static table_head_instructions = ctRegex!(`(?P<c_heading>h)?(?:[ ]+c(?P<c_num>[0-9]);)?(?P<c_widths>(?:[ ]+[0-9]+[lr]?;)+)`); static table_col_widths_and_alignment = ctRegex!(`(?P<width>[0-9]+)(?P<align>[lr]?)`); static table_col_widths = ctRegex!(`(?P<widths>[0-9]+)`); @@ -133,9 +132,9 @@ template SiSUrgxInit() { 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 @@ -149,7 +148,7 @@ template SiSUrgxInit() { /+ 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"); /+ no obj_cite_number object +/ static obj_cite_number_off = ctRegex!(`~#$`, "m"); static obj_cite_number_off_dh = ctRegex!(`-#$`, "m"); @@ -160,7 +159,7 @@ template SiSUrgxInit() { static obj_cite_number_off_block_close = ctRegex!(`^--\+#$`); static obj_cite_number_block_marks = ctRegex!(`^--[+~-]#$`); /+ ignore outside code blocks +/ - static skip_from_regular_parse = ctRegex!(`^(--[+~-]#|-[\\]{2}-|=[.\\]{2}=)$`); // not structural info + static skip_from_regular_parse = ctRegex!(`^(--[+~-]#|-[\\]{2}-|=[.\\]{2}=)$`); /+ line & page breaks +/ static break_line_within_object = ctRegex!(`[\\]{2}( |$)`); static break_page = ctRegex!(`^-[\\]{2}-$`); @@ -187,7 +186,7 @@ template SiSUrgxInit() { 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"); @@ -240,7 +239,7 @@ template SiSUrgxInit() { static inline_italics_line = ctRegex!(`^/_ (?P<text>.+?)((?: [\\]{2}|[~]#){0,2}$)`); static inline_underscore_line = ctRegex!(`^__ (?P<text>.+?)((?: [\\]{2}|[~]#){0,2}$)`); /+ 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"); } } diff --git a/src/sdp/defaults.d b/src/sdp/defaults.d index bbfd8d8..d4e4220 100644 --- a/src/sdp/defaults.d +++ b/src/sdp/defaults.d @@ -4,23 +4,23 @@ 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/src/sdp/output_epub3.d b/src/sdp/output_epub3.d index 074808c..56f9be3 100644 --- a/src/sdp/output_epub3.d +++ b/src/sdp/output_epub3.d @@ -346,10 +346,10 @@ template outputEPub3() { 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: @@ -416,7 +416,7 @@ template outputEPub3() { 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); @@ -606,26 +606,23 @@ template outputEPub3() { { /+ 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 +/ @@ -641,15 +638,12 @@ template outputEPub3() { 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) +/ @@ -658,15 +652,12 @@ template outputEPub3() { 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) +/ @@ -675,15 +666,12 @@ template outputEPub3() { 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) +/ @@ -692,15 +680,12 @@ template outputEPub3() { 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) +/ @@ -709,15 +694,12 @@ template outputEPub3() { 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) +/ @@ -760,15 +742,12 @@ template outputEPub3() { 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()); } } @@ -781,8 +760,7 @@ template outputEPub3() { 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/src/sdp/output_html.d b/src/sdp/output_html.d index 048d6e9..363ff4a 100644 --- a/src/sdp/output_html.d +++ b/src/sdp/output_html.d @@ -213,7 +213,7 @@ template outputHTML() { 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 +/ @@ -238,7 +238,7 @@ template outputHTML() { 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; @@ -258,10 +258,10 @@ template outputHTML() { 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: @@ -332,7 +332,7 @@ template outputHTML() { 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); @@ -438,7 +438,7 @@ template outputHTML() { 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) { diff --git a/src/sdp/output_rgx.d b/src/sdp/output_rgx.d index 149b41b..be0a91e 100644 --- a/src/sdp/output_rgx.d +++ b/src/sdp/output_rgx.d @@ -8,7 +8,7 @@ template SiSUoutputRgxInit() { 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"); @@ -61,8 +61,8 @@ template SiSUoutputRgxInit() { static inline_italics_line = ctRegex!(`^/_ (?P<text>.+?)((?: [\\]{2}|[~]#){0,2}$)`); static inline_underscore_line = ctRegex!(`^__ (?P<text>.+?)((?: [\\]{2}|[~]#){0,2}$)`); /+ 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"); static xhtml_ampersand = ctRegex!(`[&]`); // & static xhtml_quotation = ctRegex!(`[&]`); // " static xhtml_less_than = ctRegex!(`[<]`); // < diff --git a/src/sdp/output_xmls.d b/src/sdp/output_xmls.d index 78ee414..a408872 100644 --- a/src/sdp/output_xmls.d +++ b/src/sdp/output_xmls.d @@ -198,9 +198,11 @@ template outputXHTMLs() { <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; @@ -279,13 +281,6 @@ template outputXHTMLs() { 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; } auto inline_notes_seg(O)( @@ -415,7 +410,7 @@ template outputXHTMLs() { 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; } @@ -480,7 +475,7 @@ template outputXHTMLs() { 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; } @@ -536,7 +531,7 @@ template outputXHTMLs() { 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; } @@ -592,7 +587,7 @@ template outputXHTMLs() { 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; } @@ -644,7 +639,7 @@ template outputXHTMLs() { 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; } @@ -663,7 +658,7 @@ template outputXHTMLs() { ); return u; } - auto verse(O)( // using code from code block, review + auto verse(O)( auto return ref const O obj, string _txt, ) { @@ -696,7 +691,7 @@ template outputXHTMLs() { 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; } @@ -728,7 +723,7 @@ template outputXHTMLs() { _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"; diff --git a/src/sdp/paths_output.d b/src/sdp/paths_output.d index 9c91384..e9599db 100644 --- a/src/sdp/paths_output.d +++ b/src/sdp/paths_output.d @@ -34,7 +34,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); } @@ -57,7 +57,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; @@ -86,7 +86,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/src/sdp/source_sisupod.d b/src/sdp/source_sisupod.d index 8718074..e5233ba 100644 --- a/src/sdp/source_sisupod.d +++ b/src/sdp/source_sisupod.d @@ -71,7 +71,7 @@ template 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) { @@ -184,8 +184,7 @@ template 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) { @@ -213,8 +212,7 @@ template SiSUpod() { } } } - catch (ErrnoException ex) - { + catch (ErrnoException ex) { // Handle errors } } |