diff options
-rw-r--r-- | org/ao_debugs.org (renamed from org/ao_summary_and_debugs.org) | 124 | ||||
-rw-r--r-- | org/ao_defaults.org | 2 | ||||
-rw-r--r-- | org/ao_doc_abstraction.org | 34 | ||||
-rw-r--r-- | org/ao_read_source_files.org | 1 | ||||
-rw-r--r-- | org/output.org | 30 | ||||
-rw-r--r-- | org/sdp.org | 177 | ||||
-rw-r--r-- | src/sdp/abstraction.d | 4 | ||||
-rw-r--r-- | src/sdp/abstraction_summary.d | 32 | ||||
-rw-r--r-- | src/sdp/ao_abstract_doc_source.d | 16 | ||||
-rw-r--r-- | src/sdp/ao_doc_debugs.d | 42 | ||||
-rw-r--r-- | src/sdp/ao_rgx.d | 2 | ||||
-rw-r--r-- | src/sdp/output_hub.d | 16 |
12 files changed, 263 insertions, 217 deletions
diff --git a/org/ao_summary_and_debugs.org b/org/ao_debugs.org index 2fc405e..7a63a3a 100644 --- a/org/ao_summary_and_debugs.org +++ b/org/ao_debugs.org @@ -13,127 +13,7 @@ #+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n) [[./sdp.org][sdp]] [[./][org/]] -* 1. abstraction summary [#A] :summary:doc:abstraction: -** 0. code structure: :abstraction_summary: - -#+BEGIN_SRC d :tangle ../src/sdp/abstraction_summary.d -template SiSUabstractionSummary() { - auto SiSUabstractionSummary(S,T)( - auto ref const S contents, - auto ref T doc_matters, - ) { - <<abstraction_summary_imports>> - mixin InternalMarkup; - <<abstraction_summary_initialize>> - if (doc_matters.opt_action_bool["verbose"]) { - <<ao_abstraction_summary>> - } - } -} -#+END_SRC - -** imports - -#+name: abstraction_summary_imports -#+BEGIN_SRC d -import - ao_defaults, - ao_rgx; -import - std.array, - std.exception, - std.stdio, - std.regex, - std.string, - std.traits, - std.typecons, - std.uni, - std.utf, - std.conv : to; -#+END_SRC - -** initialize :report: - -#+name: abstraction_summary_initialize -#+BEGIN_SRC d -auto markup = InlineMarkup(); -#+END_SRC - -** (last ocn) - -#+name: ao_abstraction_summary -#+BEGIN_SRC d -string[string] check = [ - "last_obj_cite_number" : "NA [debug \"checkdoc\" not run]", -]; -foreach (k; doc_matters.keys_seq_seg) { - foreach (obj; contents[k]) { - if (obj.use != "empty") { - if (!empty(obj.obj_cite_number)) { - check["last_obj_cite_number"] = obj.obj_cite_number; - } - } - } -} -#+END_SRC - -** summary - -#+name: ao_abstraction_summary -#+BEGIN_SRC d -// auto char_repeat_number = doc_matters.source_filename.length; -// char_repeat_number = (char_repeat_number > 33) -auto min_repeat_number = 66; -auto char_repeat_number = (doc_matters.dochead_meta["title"]["full"].length - + doc_matters.dochead_meta["creator"]["author"].length + 4); -char_repeat_number = (char_repeat_number > min_repeat_number) -? char_repeat_number -: min_repeat_number; -// writeln(char_repeat_number); -writefln( - "%s\n\"%s\", %s\n%s\n%s\n%s%10d\n%s%10d\n%s%10d\n%s%10d\n%s%10d\n%s%10d\n%s%10d\n%s%10d\n(%s: %s)\n%s", - markup.repeat_character_by_number_provided("-", char_repeat_number), - doc_matters.dochead_meta["title"]["full"], - doc_matters.dochead_meta["creator"]["author"], - doc_matters.source_filename, - markup.repeat_character_by_number_provided("-", char_repeat_number), - "length toc array: ", - to!int(contents["toc_seg"].length), - "length contents array: ", - to!int(contents["body"].length), - "last obj_cite_number: ", - to!int(check["last_obj_cite_number"]), - "length endnotes: ", - (contents["endnotes"].length > 1) - ? (to!int(contents["endnotes"].length)) - : 0, - "length glossary: ", - (contents["glossary"].length > 1) - ? (to!int(contents["glossary"].length)) - : 0, - "length biblio: ", - (contents["bibliography"].length > 1) - ? (to!int(contents["bibliography"].length)) - : 0, - "length bookindex: ", - (contents["bookindex_seg"].length > 1) - ? (to!int(contents["bookindex_seg"].length)) - : 0, - "length blurb: ", - (contents["blurb"].length > 1) - ? (to!int(contents["blurb"].length)) - : 0, - __FILE__, - __LINE__, - 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)) - -* 2. abstraction debugs :debug:doc:abstraction: +* 1. abstraction debugs :debug:doc:abstraction: ** 0. code structure: :ao_doc_debugs: #+BEGIN_SRC d :tangle ../src/sdp/ao_doc_debugs.d @@ -815,7 +695,7 @@ debug(heading) { // heading ** (summary) [+1] :summary: -#+name: ao_output_debugs_summary +#+name: ao_output_debugs #+BEGIN_SRC d debug(headings) { writefln( diff --git a/org/ao_defaults.org b/org/ao_defaults.org index a798763..2cb0eee 100644 --- a/org/ao_defaults.org +++ b/org/ao_defaults.org @@ -1007,7 +1007,7 @@ static inline_a_url = ctRegex!(`(┤)(\S+?)(â #+name: ao_rgx #+BEGIN_SRC d -static image = ctRegex!(`([a-zA-Z._-]+?\.(?:png|gif|jpg))`, "mg"); +static image = ctRegex!(`([a-zA-Z0-9._-]+?\.(?:png|gif|jpg))`, "mg"); #+END_SRC ** inline markup book index :inline:bookindex: diff --git a/org/ao_doc_abstraction.org b/org/ao_doc_abstraction.org index 33ebea3..e4f38d3 100644 --- a/org/ao_doc_abstraction.org +++ b/org/ao_doc_abstraction.org @@ -26,11 +26,11 @@ Process markup document, create document abstraction. +/ template SiSUdocAbstraction() { /+ ↓ abstraction imports +/ - <<abs_imports>> + <<abs_top_imports>> /+ ↓ abstraction mixins +/ - <<abs_mixins>> + <<abs_top_mixins>> /+ ↓ abstraction struct init +/ - <<abs_init_struct>> + <<abs_top_init_struct>> /+ ↓ abstract marked up document +/ auto SiSUdocAbstraction(Src,Make,Meta,Opt)( Src markup_sourcefile_content, @@ -137,10 +137,9 @@ template SiSUdocAbstraction() { ** 1. _pre loop processing_ :pre: *** imports :imports: - [[./ao_defaults.org][ao_defaults]] -#+name: abs_imports +#+name: abs_top_imports #+BEGIN_SRC d import ao_object_setter, @@ -170,7 +169,7 @@ private import *** mixins :mixins: -#+name: abs_mixins +#+name: abs_top_mixins #+BEGIN_SRC d mixin ObjectSetter; mixin InternalMarkup; @@ -180,7 +179,7 @@ mixin SiSUrgxInit; *** initialize :initialize: **** initialize general -#+name: abs_init_struct +#+name: abs_top_init_struct #+BEGIN_SRC d /+ initialize +/ ObjGenericComposite[][string] the_table_of_contents_section; @@ -240,7 +239,7 @@ enum DomTags { none, open, close, close_and_open, open_still, } **** initialize heading ancestors -#+name: abs_init_struct +#+name: abs_top_init_struct #+BEGIN_SRC d void heading_ancestors(O)( auto ref O obj, @@ -298,7 +297,7 @@ void heading_ancestors(O)( **** initialize dom markup tags -#+name: abs_init_struct +#+name: abs_top_init_struct #+BEGIN_SRC d auto dom_set_markup_tags(int[] dom, int lev) { foreach (i; 0 .. 8) { @@ -343,7 +342,7 @@ auto dom_set_markup_tags(int[] dom, int lev) { **** initialize dom collapsed tags -#+name: abs_init_struct +#+name: abs_top_init_struct #+BEGIN_SRC d auto dom_set_collapsed_tags(int[] dom, int lev) { foreach (i; 0 .. 8) { @@ -388,7 +387,7 @@ auto dom_set_collapsed_tags(int[] dom, int lev) { **** initialize ocn emit -#+name: abs_init_struct +#+name: abs_top_init_struct #+BEGIN_SRC d int ocn_emit(int ocn_status_flag) { return object_citation_number.ocn_emitter(ocn_status_flag); @@ -1172,10 +1171,10 @@ if (the_document_body_section.length > 0) { type["blurb_section"] = State.off; } previous_length = to!int(the_document_body_section.length); - if ( - match(the_document_body_section[$-1].text, - rgx.inline_notes_delimiter_al_regular_number_note) - ) { + if (match( + the_document_body_section[$-1].text, + rgx.inline_notes_delimiter_al_regular_number_note + )) { previous_count=to!int(the_document_body_section.length -1); note_section.gather_notes_for_endnote_section( the_document_body_section, @@ -1962,7 +1961,7 @@ if (the_blurb_section.length > 1) { #+END_SRC ** 4. _return document tuple_ :post: -*** the document :document: +*** _the document_ :document: #+name: abs_post #+BEGIN_SRC d @@ -2026,8 +2025,9 @@ if ((opt_action_bool["html"]) *** clean out structure #+name: abs_post +#+BEGIN_SRC d destroy(the_document_head_section); -destroy(the_document_table_of_contents_section); +destroy(the_table_of_contents_section); destroy(the_document_body_section); destroy(the_endnotes_section); destroy(the_glossary_section); diff --git a/org/ao_read_source_files.org b/org/ao_read_source_files.org index c325517..73594dd 100644 --- a/org/ao_read_source_files.org +++ b/org/ao_read_source_files.org @@ -81,7 +81,6 @@ template ConfigSDLang() { } #+END_SRC - ** config file get sdl root tag :file:conf:sdlang: #+name: ao_config_file_sdlang diff --git a/org/output.org b/org/output.org index 2d15db3..673fc4f 100644 --- a/org/output.org +++ b/org/output.org @@ -13,7 +13,7 @@ #+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n) [[./sdp.org][sdp]] [[./][org/]] -* 0. output hub template file [#A] +* 0. output hub [#A] #+BEGIN_SRC d :tangle ../src/sdp/output_hub.d /++ @@ -47,7 +47,7 @@ template outputHub() { import ao_rgx, output_xhtmls; - void outputHub(C,D)(C contents, D doc_matters) { + void outputHub(D,I)(D doc_abstraction, I doc_matters) { mixin SiSUrgxInit; auto rgx = Rgx(); if ((doc_matters.opt_action_bool["verbose"])) { @@ -68,23 +68,23 @@ template outputHub() { } if (doc_matters.opt_action_bool["html"]) { if ((doc_matters.opt_action_bool["verbose"])) {write("html scroll processing... ");} - outputHTML!().scroll(contents,doc_matters); + outputHTML!().scroll(doc_abstraction, doc_matters); if ((doc_matters.opt_action_bool["verbose"])) {writeln("html scroll done");} if ((doc_matters.opt_action_bool["verbose"])) {write("html seg processing... ");} - outputHTML!().seg(contents,doc_matters); + outputHTML!().seg(doc_abstraction, doc_matters); if ((doc_matters.opt_action_bool["verbose"])) {writeln("html seg done");} - } else if(doc_matters.opt_action_bool["html_seg"]) { + } else if (doc_matters.opt_action_bool["html_seg"]) { if ((doc_matters.opt_action_bool["verbose"])) {write("html seg processing... ");} - outputHTML!().seg(contents,doc_matters); + outputHTML!().seg(doc_abstraction, doc_matters); if ((doc_matters.opt_action_bool["verbose"])) {writeln("html seg done");} - } else if(doc_matters.opt_action_bool["html_scroll"]) { + } else if (doc_matters.opt_action_bool["html_scroll"]) { if ((doc_matters.opt_action_bool["verbose"])) {write("html scroll processing... ");} - outputHTML!().scroll(contents,doc_matters); + outputHTML!().scroll(doc_abstraction, doc_matters); if ((doc_matters.opt_action_bool["verbose"])) {writeln("html scroll done");} } if (doc_matters.opt_action_bool["epub"]) { if ((doc_matters.opt_action_bool["verbose"])) {write("epub processing... ");} - outputEPub!()(contents, doc_matters); + outputEPub!()(doc_abstraction, doc_matters); // epub.css_write; if ((doc_matters.opt_action_bool["verbose"])) {writeln("epub done");} } @@ -137,8 +137,8 @@ import output_xhtmls; #+END_SRC -** sisupod :sisupod: -*** sisupod template :template: +** _sisupod_ :sisupod: +*** template :template: #+BEGIN_SRC d :tangle ../src/sdp/source_sisupod.d template SiSUpod() { @@ -534,8 +534,8 @@ auto endnote(O)( } #+END_SRC -*** html [#A] :html: -**** html template :template: +*** _html_ [#A] :html: +**** template :template: #+BEGIN_SRC d :tangle ../src/sdp/output_html.d template outputHTML() { @@ -2212,8 +2212,8 @@ auto css_write() { } #+END_SRC -*** epub [#B] :epub: -**** epub template :template: +*** _epub_ [#B] :epub: +**** template :template: #+BEGIN_SRC d :tangle ../src/sdp/output_epub.d template outputEPub() { diff --git a/org/sdp.org b/org/sdp.org index 9cb677b..658c0b9 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -365,7 +365,11 @@ enforce( ); #+END_SRC -*** 1. _document abstraction_ +*** 1. _document abstraction_ [#A] + +- return tuple of: + - doc_abstraction (the document) + - doc_matters #+NAME: sdp_abstraction #+BEGIN_SRC d @@ -378,7 +382,7 @@ auto doc_matters = t[1]; #+END_SRC *** 2. _output processing_ (post abstraction processing) -**** 0. abstraction summary :abstraction:summary: +**** 0. abstraction _print summary_ :abstraction:summary: #+NAME: sdp_each_file_do_debugs_checkdoc #+BEGIN_SRC d @@ -434,8 +438,8 @@ writeln("no recognized filename"); break; // terminate, stop #+END_SRC -* 2. _document abstraction_ -** 0. abstraction template :template: +* 2. _document abstraction functions_ +** 0. abstraction template [#A] :template: #+BEGIN_SRC d :tangle ../src/sdp/abstraction.d template SiSUabstraction() { @@ -458,9 +462,19 @@ template SiSUabstraction() { } #+END_SRC -** 1. (a) _read in raw file_ & (b) split content into: _doc header & doc content_ +** 1. (a) _read in raw file_ (b) split content into: _doc header & doc content_ - [[./ao_read_source_files.org][ao_read_source_files]] +- read in the source marked up document and + - split the document into: + - document header + - document body + - if a master document make a list of insert files +- return a tuple of: + - header + - body + - insert file list + #+NAME: sdp_each_file_do_read_and_split_sisu_markup_file_content_into_header_and_body #+BEGIN_SRC d /+ ↓ read file (filename with path) +/ @@ -476,9 +490,19 @@ debug(header_and_body) { } #+END_SRC -** 2. split doc header into: _metadata & make_ :doc:header:metadata:make: +** 2. _document metadata_ & _make instructions_ :doc:header:metadata:make: - [[./ao_conf_make_meta.org][ao_conf_make_meta]] +- read document header, split into: + - metadata + - make instructions +- read config files + - consolidate make instructions +- return tuple of: + - document metadata + - make instructions (from configuration files & document header make + instructions) + #+NAME: sdp_each_file_do_split_sisu_markup_file_header_into_make_and_meta #+BEGIN_SRC d /+ ↓ split header into make and meta +/ @@ -491,6 +515,17 @@ static assert(_0_make_1_dochead_meta_tuple.length==2); ** 3. _document abstraction, tuple_ (pre-processing) :processing: - [[./ao_abstract_doc_source.org][ao_abstract_doc_source]] +- prepare the document abstraction used in downstream processing + +- return tuple of: + - document abstraction (the_document or doc_abstraction) + - document abstraction keys + - (head, toc, body, endnotes, glossary, bibliography, bookindex, blurb, + tail) + - (passed in doc_matters) + - segnames for html epub (passed in doc_matters) + - image list (passed in doc_matters) + #+NAME: sdp_each_file_do_document_abstraction #+BEGIN_SRC d /+ ↓ document abstraction: process document, return abstraction as tuple +/ @@ -502,13 +537,16 @@ auto da = SiSUdocAbstraction!()( ); static assert(!isTypeTuple!(da)); static assert(da.length==4); -auto doc_abstraction = da[0]; // head ~ toc ~ contents ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~blurb; +auto doc_abstraction = da[0]; // head ~ toc ~ body ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~blurb; string[][string] _document_section_keys_sequenced = da[1]; string[] _doc_html_segnames = da[2]; auto _images = da[3]; #+END_SRC -** 4. _document matters_ (compiled from various sources) +** 4. _document matters_ (doc info gathered, various sources) + +- prepare document_matters, miscellany about processing and the document of use + in downstream processing #+NAME: sdp_each_file_do_document_matters #+BEGIN_SRC d @@ -530,7 +568,7 @@ struct DocumentMatters { return _k; } auto dochead_meta() { - string[string][string] _k = _0_make_1_dochead_meta_tuple[1]; + string[string][string] _k = _0_make_1_dochead_meta_tuple[1]; return _k; } auto source_filename() { @@ -556,3 +594,124 @@ struct DocumentMatters { } auto doc_matters = DocumentMatters(); #+END_SRC + +* 3. document abstraction _summary_ :summary:doc: +** 0. template: :template: + +#+BEGIN_SRC d :tangle ../src/sdp/abstraction_summary.d +template SiSUabstractionSummary() { + auto SiSUabstractionSummary(S,T)( + auto ref const S doc_abstraction, + auto ref T doc_matters, + ) { + <<abstraction_summary_imports>> + mixin InternalMarkup; + <<abstraction_summary_initialize>> + if (doc_matters.opt_action_bool["verbose"]) { + <<ao_abstraction_summary>> + } + } +} +#+END_SRC + +** init +*** imports + +#+name: abstraction_summary_imports +#+BEGIN_SRC d +import + ao_defaults, + ao_rgx; +import + std.array, + std.exception, + std.stdio, + std.regex, + std.string, + std.traits, + std.typecons, + std.uni, + std.utf, + std.conv : to; +#+END_SRC + +*** initialize :report: + +#+name: abstraction_summary_initialize +#+BEGIN_SRC d +auto markup = InlineMarkup(); +#+END_SRC + +** (last ocn) + +#+name: ao_abstraction_summary +#+BEGIN_SRC d +string[string] check = [ + "last_obj_cite_number" : "NA [debug \"checkdoc\" not run]", +]; +foreach (k; doc_matters.keys_seq_seg) { + foreach (obj; doc_abstraction[k]) { + if (obj.use != "empty") { + if (!empty(obj.obj_cite_number)) { + check["last_obj_cite_number"] = obj.obj_cite_number; + } + } + } +} +#+END_SRC + +** summary + +#+name: ao_abstraction_summary +#+BEGIN_SRC d +// auto char_repeat_number = doc_matters.source_filename.length; +// char_repeat_number = (char_repeat_number > 33) +auto min_repeat_number = 66; +auto char_repeat_number = (doc_matters.dochead_meta["title"]["full"].length + + doc_matters.dochead_meta["creator"]["author"].length + 4); +char_repeat_number = (char_repeat_number > min_repeat_number) +? char_repeat_number +: min_repeat_number; +// writeln(char_repeat_number); +writefln( + "%s\n\"%s\", %s\n%s\n%s\n%s%10d\n%s%10d\n%s%10d\n%s%10d\n%s%10d\n%s%10d\n%s%10d\n%s%10d\n(%s: %s)\n%s", + markup.repeat_character_by_number_provided("-", char_repeat_number), + doc_matters.dochead_meta["title"]["full"], + doc_matters.dochead_meta["creator"]["author"], + doc_matters.source_filename, + markup.repeat_character_by_number_provided("-", char_repeat_number), + "length toc arr: ", + to!int(doc_abstraction["toc_seg"].length), + "length doc_abstraction arr: ", + to!int(doc_abstraction["body"].length), + "last obj_cite_number: ", + to!int(check["last_obj_cite_number"]), + "length endnotes: ", + (doc_abstraction["endnotes"].length > 1) + ? (to!int(doc_abstraction["endnotes"].length)) + : 0, + "length glossary: ", + (doc_abstraction["glossary"].length > 1) + ? (to!int(doc_abstraction["glossary"].length)) + : 0, + "length biblio: ", + (doc_abstraction["bibliography"].length > 1) + ? (to!int(doc_abstraction["bibliography"].length)) + : 0, + "length bookindex: ", + (doc_abstraction["bookindex_seg"].length > 1) + ? (to!int(doc_abstraction["bookindex_seg"].length)) + : 0, + "length blurb: ", + (doc_abstraction["blurb"].length > 1) + ? (to!int(doc_abstraction["blurb"].length)) + : 0, + __FILE__, + __LINE__, + 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)) diff --git a/src/sdp/abstraction.d b/src/sdp/abstraction.d index d358f33..c1907f7 100644 --- a/src/sdp/abstraction.d +++ b/src/sdp/abstraction.d @@ -71,7 +71,7 @@ template SiSUabstraction() { ); static assert(!isTypeTuple!(da)); static assert(da.length==4); - auto doc_abstraction = da[0]; // head ~ toc ~ contents ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~blurb; + auto doc_abstraction = da[0]; // head ~ toc ~ body ~ endnotes_seg ~ glossary ~ bibliography ~ bookindex ~blurb; string[][string] _document_section_keys_sequenced = da[1]; string[] _doc_html_segnames = da[2]; auto _images = da[3]; @@ -93,7 +93,7 @@ template SiSUabstraction() { return _k; } auto dochead_meta() { - string[string][string] _k = _0_make_1_dochead_meta_tuple[1]; + string[string][string] _k = _0_make_1_dochead_meta_tuple[1]; return _k; } auto source_filename() { diff --git a/src/sdp/abstraction_summary.d b/src/sdp/abstraction_summary.d index 237d1e0..75faf0e 100644 --- a/src/sdp/abstraction_summary.d +++ b/src/sdp/abstraction_summary.d @@ -1,6 +1,6 @@ template SiSUabstractionSummary() { auto SiSUabstractionSummary(S,T)( - auto ref const S contents, + auto ref const S doc_abstraction, auto ref T doc_matters, ) { import @@ -24,7 +24,7 @@ template SiSUabstractionSummary() { "last_obj_cite_number" : "NA [debug \"checkdoc\" not run]", ]; foreach (k; doc_matters.keys_seq_seg) { - foreach (obj; contents[k]) { + foreach (obj; doc_abstraction[k]) { if (obj.use != "empty") { if (!empty(obj.obj_cite_number)) { check["last_obj_cite_number"] = obj.obj_cite_number; @@ -48,31 +48,31 @@ template SiSUabstractionSummary() { doc_matters.dochead_meta["creator"]["author"], doc_matters.source_filename, markup.repeat_character_by_number_provided("-", char_repeat_number), - "length toc array: ", - to!int(contents["toc_seg"].length), - "length contents array: ", - to!int(contents["body"].length), + "length toc arr: ", + to!int(doc_abstraction["toc_seg"].length), + "length doc_abstraction arr: ", + to!int(doc_abstraction["body"].length), "last obj_cite_number: ", to!int(check["last_obj_cite_number"]), "length endnotes: ", - (contents["endnotes"].length > 1) - ? (to!int(contents["endnotes"].length)) + (doc_abstraction["endnotes"].length > 1) + ? (to!int(doc_abstraction["endnotes"].length)) : 0, "length glossary: ", - (contents["glossary"].length > 1) - ? (to!int(contents["glossary"].length)) + (doc_abstraction["glossary"].length > 1) + ? (to!int(doc_abstraction["glossary"].length)) : 0, "length biblio: ", - (contents["bibliography"].length > 1) - ? (to!int(contents["bibliography"].length)) + (doc_abstraction["bibliography"].length > 1) + ? (to!int(doc_abstraction["bibliography"].length)) : 0, "length bookindex: ", - (contents["bookindex_seg"].length > 1) - ? (to!int(contents["bookindex_seg"].length)) + (doc_abstraction["bookindex_seg"].length > 1) + ? (to!int(doc_abstraction["bookindex_seg"].length)) : 0, "length blurb: ", - (contents["blurb"].length > 1) - ? (to!int(contents["blurb"].length)) + (doc_abstraction["blurb"].length > 1) + ? (to!int(doc_abstraction["blurb"].length)) : 0, __FILE__, __LINE__, diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d index 12bbd71..119a718 100644 --- a/src/sdp/ao_abstract_doc_source.d +++ b/src/sdp/ao_abstract_doc_source.d @@ -853,10 +853,10 @@ template SiSUdocAbstraction() { type["blurb_section"] = State.off; } previous_length = to!int(the_document_body_section.length); - if ( - match(the_document_body_section[$-1].text, - rgx.inline_notes_delimiter_al_regular_number_note) - ) { + if (match( + the_document_body_section[$-1].text, + rgx.inline_notes_delimiter_al_regular_number_note + )) { previous_count=to!int(the_document_body_section.length -1); note_section.gather_notes_for_endnote_section( the_document_body_section, @@ -1552,6 +1552,14 @@ template SiSUdocAbstraction() { document_section_keys_sequenced["seg"] ~= "tail"; document_section_keys_sequenced["scroll"] ~= "tail"; } + destroy(the_document_head_section); + destroy(the_table_of_contents_section); + destroy(the_document_body_section); + destroy(the_endnotes_section); + destroy(the_glossary_section); + destroy(the_bibliography_section); + destroy(the_bookindex_section); + destroy(the_blurb_section); auto t = tuple( document_the, document_section_keys_sequenced, diff --git a/src/sdp/ao_doc_debugs.d b/src/sdp/ao_doc_debugs.d index adc8c53..feb7de4 100644 --- a/src/sdp/ao_doc_debugs.d +++ b/src/sdp/ao_doc_debugs.d @@ -423,6 +423,27 @@ template SiSUdebugs() { } } } + debug(headings) { + writefln( + "%s\n%s:%s", + "-------------------------------", + __FILE__, + __LINE__, + ); + foreach (k; doc_matters.keys_seq_seg) { + foreach (obj; contents[k]) { + if (obj.is_a == "heading") { + writefln( + "%s~ [%s] %s", + obj.marked_up_level, + obj.obj_cite_number, + // "[", obj["is"], "] ", + obj.text + ); + } + } + } + } debug(summary) { string[string] check = [ "last_obj_cite_number" : "NA [debug \"checkdoc\" not run]", @@ -430,27 +451,6 @@ template SiSUdebugs() { } debug(checkdoc) { if ((doc_matters.opt_action_bool["debug"])) { - debug(headings) { - writefln( - "%s\n%s:%s", - "-------------------------------", - __FILE__, - __LINE__, - ); - foreach (k; doc_matters.keys_seq_seg) { - foreach (obj; contents[k]) { - if (obj.is_a == "heading") { - writefln( - "%s~ [%s] %s", - obj.marked_up_level, - obj.obj_cite_number, - // "[", obj["is"], "] ", - obj.text - ); - } - } - } - } debug(checkdoc) { if (auto mfn=match(doc_matters.source_filename, rgx.src_fn)) { if (doc_matters.opt_action_bool["assertions"]) { diff --git a/src/sdp/ao_rgx.d b/src/sdp/ao_rgx.d index 2d83d06..b91ae35 100644 --- a/src/sdp/ao_rgx.d +++ b/src/sdp/ao_rgx.d @@ -155,7 +155,7 @@ template SiSUrgxInit() { static inline_link_endnote_url_helper_punctuated = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); static inline_link_endnote_url_helper = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+)`, "mg"); static inline_a_url = ctRegex!(`(┤)(\S+?)(├)`, "mg"); - static image = ctRegex!(`([a-zA-Z._-]+?\.(?:png|gif|jpg))`, "mg"); + static image = ctRegex!(`([a-zA-Z0-9._-]+?\.(?:png|gif|jpg))`, "mg"); /+ inline markup book index +/ static book_index = ctRegex!(`^=\{\s*(.+?)\}$`, "m"); static book_index_open = ctRegex!(`^=\{\s*([^}]+?)$`); diff --git a/src/sdp/output_hub.d b/src/sdp/output_hub.d index c5c5510..6d6c134 100644 --- a/src/sdp/output_hub.d +++ b/src/sdp/output_hub.d @@ -29,7 +29,7 @@ template outputHub() { import ao_rgx, output_xhtmls; - void outputHub(C,D)(C contents, D doc_matters) { + void outputHub(D,I)(D doc_abstraction, I doc_matters) { mixin SiSUrgxInit; auto rgx = Rgx(); if ((doc_matters.opt_action_bool["verbose"])) { @@ -50,23 +50,23 @@ template outputHub() { } if (doc_matters.opt_action_bool["html"]) { if ((doc_matters.opt_action_bool["verbose"])) {write("html scroll processing... ");} - outputHTML!().scroll(contents,doc_matters); + outputHTML!().scroll(doc_abstraction, doc_matters); if ((doc_matters.opt_action_bool["verbose"])) {writeln("html scroll done");} if ((doc_matters.opt_action_bool["verbose"])) {write("html seg processing... ");} - outputHTML!().seg(contents,doc_matters); + outputHTML!().seg(doc_abstraction, doc_matters); if ((doc_matters.opt_action_bool["verbose"])) {writeln("html seg done");} - } else if(doc_matters.opt_action_bool["html_seg"]) { + } else if (doc_matters.opt_action_bool["html_seg"]) { if ((doc_matters.opt_action_bool["verbose"])) {write("html seg processing... ");} - outputHTML!().seg(contents,doc_matters); + outputHTML!().seg(doc_abstraction, doc_matters); if ((doc_matters.opt_action_bool["verbose"])) {writeln("html seg done");} - } else if(doc_matters.opt_action_bool["html_scroll"]) { + } else if (doc_matters.opt_action_bool["html_scroll"]) { if ((doc_matters.opt_action_bool["verbose"])) {write("html scroll processing... ");} - outputHTML!().scroll(contents,doc_matters); + outputHTML!().scroll(doc_abstraction, doc_matters); if ((doc_matters.opt_action_bool["verbose"])) {writeln("html scroll done");} } if (doc_matters.opt_action_bool["epub"]) { if ((doc_matters.opt_action_bool["verbose"])) {write("epub processing... ");} - outputEPub!()(contents, doc_matters); + outputEPub!()(doc_abstraction, doc_matters); // epub.css_write; if ((doc_matters.opt_action_bool["verbose"])) {writeln("epub done");} } |