diff options
| -rw-r--r-- | org/ao_read_source_files.org | 8 | ||||
| -rw-r--r-- | org/ao_summary_and_debugs.org (renamed from org/ao_output_debugs.org) | 215 | ||||
| -rw-r--r-- | org/sdp.org | 27 | ||||
| -rwxr-xr-x | src/sdp.d | 7 | ||||
| -rw-r--r-- | src/sdp/abstraction.d | 5 | ||||
| -rw-r--r-- | src/sdp/abstraction_summary.d | 89 | ||||
| -rw-r--r-- | src/sdp/ao_doc_debugs.d | 653 | ||||
| -rw-r--r-- | src/sdp/ao_output_debugs.d | 708 | ||||
| -rw-r--r-- | src/sdp/ao_read_source_files.d | 8 | ||||
| -rw-r--r-- | views/version.txt | 2 | 
10 files changed, 913 insertions, 809 deletions
| diff --git a/org/ao_read_source_files.org b/org/ao_read_source_files.org index 24b95e4..c325517 100644 --- a/org/ao_read_source_files.org +++ b/org/ao_read_source_files.org @@ -168,19 +168,19 @@ final auto ConfigHub(C,E)(C conf_sdl, E env) {    - open markup files<BR>    - if master file scan for addional files to import/insert  +/ -template SiSUmarkupRaw() { +template SiSUrawMarkupContent() {    private import      ao_rgx;    <<imports_std>>    mixin SiSUrgxInit;    auto rgx = Rgx(); -  auto rawsrc = MarkupRaw(); -  auto SiSUmarkupRaw(Fn)(Fn fn_src) { +  auto rawsrc = RawMarkupContent(); +  auto SiSUrawMarkupContent(Fn)(Fn fn_src) {      auto _0_header_1_body_content_2_insert_filelist_tuple =        rawsrc.sourceContentSplitIntoHeaderAndBody(rawsrc.sourceContent(fn_src), fn_src);      return _0_header_1_body_content_2_insert_filelist_tuple;    } -  struct MarkupRaw { +  struct RawMarkupContent {      final sourceContent(in string fn_src) {        auto raw = MarkupRawUnit();        auto source_txt_str = diff --git a/org/ao_output_debugs.org b/org/ao_summary_and_debugs.org index 7a7a8c7..c921700 100644 --- a/org/ao_output_debugs.org +++ b/org/ao_summary_and_debugs.org @@ -13,12 +13,136 @@  #+TAGS: assert(a) class(c) debug(d) mixin(m) sdp(s) tangle(T) template(t) WEB(W) noexport(n)  [[./sdp.org][sdp]]  [[./][org/]] -* 1. output debugs                                             :debug:output: -[[./sdp.org][sdp]]  [[./][org/]] +* 1. abstraction summary [#A] +** 0. code structure:                                     :ao_doc_debugs: + +#+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.algorithm, +  std.array, +  std.container, +  std.exception, +  std.getopt, +  std.stdio, +  std.file, +  std.path, +  std.range, +  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:output:  ** 0. code structure:                                     :ao_output_debugs: -#+name: tangle_ao_output_debugs -#+BEGIN_SRC d :tangle ../src/sdp/ao_output_debugs.d +#+BEGIN_SRC d :tangle ../src/sdp/ao_doc_debugs.d  /++    output debugs  +/ @@ -28,25 +152,20 @@ template SiSUdebugs() {      auto ref const S         contents,      auto ref T               doc_matters,    ) { -      mixin SiSUrgxInit; -      mixin InternalMarkup; -      <<initialize>> -      <<ao_output_debugs>> -      debug(checkdoc) { -        if ((doc_matters.opt_action_bool["debug"])) { -          <<ao_output_debugs_summary>> -        } +    mixin SiSUrgxInit; +    mixin InternalMarkup; +    <<initialize>> +    <<ao_output_debugs>> +    debug(checkdoc) { +      if ((doc_matters.opt_action_bool["debug"])) { +        <<ao_output_debugs_summary>>          <<ao_output_debugs_checkdoc>>        } -      if ((doc_matters.opt_action_bool["verbose"])) { -        <<ao_output_debugs_summary_doc>> -      }      }    }  }  #+END_SRC -  ** imports  #+name: debug_imports @@ -735,73 +854,9 @@ debug(summary) {    string[string] check = [      "last_obj_cite_number" : "NA [debug \"checkdoc\" not run]",    ]; -#+END_SRC - -*** (last ocn)                                                   :checkdoc: - -#+name: ao_output_debugs_summary_doc -#+BEGIN_SRC d -if ((doc_matters.opt_action_bool["verbose"])) { -  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 -*** [#A] output summary - -#+name: ao_output_debugs_summary_doc -#+BEGIN_SRC d -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; -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 -  *** compare number of obj_cite_number for known sisu markup output (checkdoc)  #+name: ao_output_debugs_summary diff --git a/org/sdp.org b/org/sdp.org index 9cd8265..cafb5d9 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -23,10 +23,10 @@ struct Version {    int minor;    int patch;  } -enum ver = Version(0, 12, 1); +enum ver = Version(0, 12, 2);  #+END_SRC -* 1. sdp.d (sisu document parser)                                       :sdp: +* 1. sdp (sisu document parser)                                         :sdp:  - deal with imports  - get options @@ -34,10 +34,10 @@ enum ver = Version(0, 12, 1);    - read config instructions  - process files as instructed by options    - read in file -  - proess file +  - process file    - output -** 0. sdp src/sdp.d                                                    :sdp: +** 0. sdp src/sdp.d                                               :template:  #+BEGIN_SRC d  :tangle ../src/sdp.d :shebang #!/usr/bin/env rdmd  /+ @@ -88,12 +88,13 @@ unittest {  #+BEGIN_SRC d  /+ sdp: sisu document parser, see http://sisudoc.org +/  import +  abstraction_summary,    ao_abstract_doc_source,    ao_conf_make_meta,    ao_conf_make_meta_native,    ao_conf_make_meta_sdlang,    ao_defaults, -  ao_output_debugs, +  ao_doc_debugs,    ao_read_config_files,    ao_read_source_files,    ao_rgx, @@ -377,6 +378,15 @@ auto doc_matters = t[1];  #+END_SRC  *** 2. _output processing_ (post abstraction processing) +**** 0. abstraction summary                          :abstraction:summary: + +#+NAME: sdp_each_file_do_debugs_checkdoc +#+BEGIN_SRC d +/+ ↓ debugs +/ +if (doc_matters.opt_action_bool["verbose"]) { +  SiSUabstractionSummary!()(doc_abstraction, doc_matters); +} +#+END_SRC  **** 1. _debug_ (document parts, checkdoc)                  :debug:checkdoc:  - [[./ao_output_debugs.org][ao_output_debugs]] @@ -425,7 +435,7 @@ break; // terminate, stop  #+END_SRC  * 2. _document abstraction_ -** 0. abstraction template +** 0. abstraction template                                        :template:  #+BEGIN_SRC d  :tangle ../src/sdp/abstraction.d  template SiSUabstraction() { @@ -450,14 +460,13 @@ template SiSUabstraction() {  ** 1. (a) _read in raw file_ & (b) split content into: _doc header & doc content_  - [[./ao_read_source_files.org][ao_read_source_files]] -- [[./ao_read_source_files.org][ao_read_source_files]]  #+NAME: sdp_each_file_do_read_and_split_sisu_markup_file_content_into_header_and_body  #+BEGIN_SRC d  /+ ↓ read file (filename with path) +/  /+ ↓ file tuple of header and content +/  auto _0_header_1_body_content_2_insert_filelist_tuple = -  SiSUmarkupRaw!()(fn_src); +  SiSUrawMarkupContent!()(fn_src);  static assert(!isTypeTuple!(_0_header_1_body_content_2_insert_filelist_tuple));  static assert(_0_header_1_body_content_2_insert_filelist_tuple.length==3);  debug(header_and_body) { @@ -479,7 +488,7 @@ static assert(!isTypeTuple!(_0_make_1_dochead_meta_tuple));  static assert(_0_make_1_dochead_meta_tuple.length==2);  #+END_SRC -** 3. pre-processing: _document abstraction, tuple_               :processing: +** 3. _document abstraction, tuple_ (pre-processing)              :processing:  - [[./ao_abstract_doc_source.org][ao_abstract_doc_source]]  #+NAME: sdp_each_file_do_document_abstraction @@ -7,12 +7,13 @@ import    abstraction;  /+ sdp: sisu document parser, see http://sisudoc.org +/  import +  abstraction_summary,    ao_abstract_doc_source,    ao_conf_make_meta,    ao_conf_make_meta_native,    ao_conf_make_meta_sdlang,    ao_defaults, -  ao_output_debugs, +  ao_doc_debugs,    ao_read_config_files,    ao_read_source_files,    ao_rgx, @@ -189,6 +190,10 @@ void main(string[] args) {        auto doc_abstraction = t[0];        auto doc_matters = t[1];        /+ ↓ debugs +/ +      if (doc_matters.opt_action_bool["verbose"]) { +        SiSUabstractionSummary!()(doc_abstraction, doc_matters); +      } +      /+ ↓ debugs +/        if ((doc_matters.opt_action_bool["debug"])        || (doc_matters.opt_action_bool["verbose"])        ) { diff --git a/src/sdp/abstraction.d b/src/sdp/abstraction.d index de26582..c799fb7 100644 --- a/src/sdp/abstraction.d +++ b/src/sdp/abstraction.d @@ -1,12 +1,13 @@  template SiSUabstraction() {    /+ sdp: sisu document parser, see http://sisudoc.org +/    import +    abstraction_summary,      ao_abstract_doc_source,      ao_conf_make_meta,      ao_conf_make_meta_native,      ao_conf_make_meta_sdlang,      ao_defaults, -    ao_output_debugs, +    ao_doc_debugs,      ao_read_config_files,      ao_read_source_files,      ao_rgx, @@ -48,7 +49,7 @@ template SiSUabstraction() {      /+ ↓ read file (filename with path) +/      /+ ↓ file tuple of header and content +/      auto _0_header_1_body_content_2_insert_filelist_tuple = -      SiSUmarkupRaw!()(fn_src); +      SiSUrawMarkupContent!()(fn_src);      static assert(!isTypeTuple!(_0_header_1_body_content_2_insert_filelist_tuple));      static assert(_0_header_1_body_content_2_insert_filelist_tuple.length==3);      debug(header_and_body) { diff --git a/src/sdp/abstraction_summary.d b/src/sdp/abstraction_summary.d new file mode 100644 index 0000000..d39e020 --- /dev/null +++ b/src/sdp/abstraction_summary.d @@ -0,0 +1,89 @@ +template SiSUabstractionSummary() { +  auto SiSUabstractionSummary(S,T)( +    auto ref const S         contents, +    auto ref T               doc_matters, +  ) { +    import +      ao_defaults, +      ao_rgx; +    import +      std.algorithm, +      std.array, +      std.container, +      std.exception, +      std.getopt, +      std.stdio, +      std.file, +      std.path, +      std.range, +      std.regex, +      std.string, +      std.traits, +      std.typecons, +      std.uni, +      std.utf, +      std.conv : to; +    mixin InternalMarkup; +    auto markup = InlineMarkup(); +    if (doc_matters.opt_action_bool["verbose"]) { +      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; +            } +          } +        } +      } +      // 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), +      ); +    } +  } +} diff --git a/src/sdp/ao_doc_debugs.d b/src/sdp/ao_doc_debugs.d new file mode 100644 index 0000000..c5f1486 --- /dev/null +++ b/src/sdp/ao_doc_debugs.d @@ -0,0 +1,653 @@ +/++ +  output debugs ++/ +template SiSUdebugs() { +  import +    ao_defaults, +    ao_rgx; +  private import +    std.algorithm, +    std.array, +    std.container, +    std.exception, +    std.getopt, +    std.json, +    std.process, +    std.stdio, +    std.file, +    std.path, +    std.range, +    std.regex, +    std.string, +    std.traits, +    std.typecons, +    std.uni, +    std.utf, +    std.conv : to; +  auto SiSUdebugs(S,T)( +    auto ref const S         contents, +    auto ref T               doc_matters, +  ) { +    mixin SiSUrgxInit; +    mixin InternalMarkup; +    auto rgx = Rgx(); +    auto markup = InlineMarkup(); +    string key; +    debug(parent) { +      writefln( +        "%s:%s", +        __FILE__, +        __LINE__, +      ); +      foreach (key; doc_matters.keys_seq_seg) { +        foreach (obj; contents[key]) { +          if (obj.use != "empty") { +            if (obj.is_a == "heading") { +              writefln( +                "%s node: %s heading: %s %s", +                obj.obj_cite_number, +                obj.node, +                obj.heading_lev_markup, +                obj.text, +              ); +            } +          } +        } +      } +    } +    debug(dumpdoc) { +      writefln( +        "%s\n%s:%s", +        "-------------------------------", +        __FILE__, +        __LINE__, +      ); +      foreach (obj; contents) { +        if (obj.use != "empty") { +          writefln( +            "[%s][%s]\n%s", +            obj.obj_cite_number, +            obj.is_a, +            obj.text +          ); +        } +      } +    } +    debug(section_head) { +      key="head"; +      if (contents[key].length > 1) { +        foreach (obj; contents[key]) { +          writefln( +            "[%s][%s]\n%s", +            obj.obj_cite_number, +            obj.is_a, +            obj.text +          ); +        } +      } +    } +    debug(section_toc) { +      key="toc_seg"; +      out_toc(contents, key); +    } +    debug(section_toc_seg) { +      key="toc_seg"; +      out_toc(contents, key); +    } +    debug(section_toc_scroll) { +      key="toc_scroll"; +      out_toc(contents, key); +    } +    debug(segnames) { +      writeln(__LINE__); +      out_segnames(contents, doc_matters); +    } +    debug(section_body) { +      key="body"; +      if (contents[key].length > 1) { +        foreach (obj; contents[key]) { +          writefln( +            "[%s][%s]\n%s", +            obj.obj_cite_number, +            obj.is_a, +            obj.text +          ); +        } +      } +    } +    debug(dom) { +      enum DomTags { none, open, close, close_and_open, open_still, } +      foreach (sect; doc_matters.keys_seq_seg) { +        foreach (obj; contents[sect]) { +          if (obj.is_a == "heading") { +            foreach_reverse (k; 0 .. 7) { +              switch (obj.dom_markedup[k]) { +              case DomTags.close : +                writeln(markup.indent_by_spaces_provided(k), "</", k, ">"); +                break; +              case DomTags.close_and_open : +                writeln(markup.indent_by_spaces_provided(k), "</", k, ">"); +                writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text); +                break; +              case DomTags.open : +                writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text); +                break; +              default : +                break; +              } +            } +          } +        } +      } +      writeln("--------------------"); +      foreach (sect; doc_matters.keys_seq_seg) { +        foreach (obj; contents[sect]) { +          if (obj.is_a == "heading") { +            foreach_reverse (k; 0 .. 7) { +              switch (obj.dom_collapsed[k]) { +              case DomTags.close : +                writeln(markup.indent_by_spaces_provided(k), "</", k, ">"); +                break; +              case DomTags.close_and_open : +                writeln(markup.indent_by_spaces_provided(k), "</", k, ">"); +                writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text); +                break; +              case DomTags.open : +                writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text); +                break; +              default : +                break; +              } +            } +          } +        } +      } +    } +    debug(section_endnotes) { +      key="endnotes"; +      out_endnotes(contents, key); +    } +    debug(section_endnotes_seg) { +      key="endnotes"; +      out_endnotes(contents, key); +    } +    debug(section_glossary) { +      key="glossary"; +      if (contents[key].length > 1) { +        foreach (obj; contents[key]) { +          writefln( +            "[%s][%s]\n%s", +            obj.obj_cite_number, +            obj.is_a, +            obj.text +          ); +        } +      } +    } +    debug(section_bibliography) { +      key="bibliography"; +      if (contents[key].length > 1) { +        foreach (obj; contents[key]) { +          writefln( +            "[%s][%s]\n%s", +            obj.obj_cite_number, +            obj.is_a, +            obj.text +          ); +        } +      } +    } +    debug(section_bookindex) { +      key="bookindex_seg"; +      out_bookindex(contents, key); +    } +    debug(section_bookindex_seg) { +      key="bookindex_seg"; +      out_bookindex(contents, key); +    } +    debug(section_bookindex_scroll) { +      key="bookindex_scroll"; +      out_bookindex(contents, key); +    } +    debug(blurb_section) { +      key="blurb"; +      if (contents[key].length > 1) { +        foreach (obj; contents[key]) { +          writefln( +            "[%s][%s]\n%s", +            obj.obj_cite_number, +            obj.is_a, +            obj.text +          ); +        } +      } +    } +    debug(objects) { +      writefln( +        "%s\n%s:%s", +        "-------------------------------", +        __FILE__, +        __LINE__, +      ); +      foreach (obj; contents) { +        if (obj.use != "empty") { +          writefln( +            "* [%s][%s] %s", +            obj.obj_cite_number, +            obj.is_a, +            obj.text +          ); +        } +      } +    } +    debug(headermakejson) { +      writefln( +        "%s\n%s\n%s", +        "document header, metadata & make instructions:", +        doc_matters.dochead_meta, +        ptr_head_main, +      ); +      foreach (main_header; ptr_head_main) { +        switch (main_header) { +        case "make": +          foreach (sub_header; ptr_head_sub_make) { +            if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { +              writefln( +                "%s:%s: %s", +                main_header, +                sub_header, +                doc_matters.dochead_meta[main_header][sub_header] +              ); +            } +          } +          break; +        default: +          break; +        } +      } +    } +    debug(headermetadatajson) { +      writefln( +        "%s\n%s\n%s", +        "document header, metadata & make instructions:", +        doc_matters.dochead_meta, +        ptr_head_main, +      ); +      foreach (main_header; ptr_head_main) { +        switch (main_header) { +        case "creator": +          foreach (sub_header; ptr_head_sub_creator) { +            if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { +              writefln( +                "%s:%s: %s", +                main_header, +                sub_header, +                doc_matters.dochead_meta[main_header][sub_header] +              ); +            } +          } +          break; +        case "title": +          foreach (sub_header; ptr_head_sub_title) { +            if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { +              writefln( +                "%s:%s: %s", +                main_header, +                sub_header, +                doc_matters.dochead_meta[main_header][sub_header] +              ); +            } +          } +          break; +        case "rights": +          foreach (sub_header; ptr_head_sub_rights) { +            if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { +              writefln( +                "%s:%s: %s", +                main_header, +                sub_header, +                doc_matters.dochead_meta[main_header][sub_header] +              ); +            } +          } +          break; +        case "date": +          foreach (sub_header; ptr_head_sub_date) { +            if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { +              writefln( +                "%s:%s: %s", +                main_header, +                sub_header, +                doc_matters.dochead_meta[main_header][sub_header] +              ); +            } +          } +          break; +        case "original": +          foreach (sub_header; ptr_head_sub_original) { +            if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { +              writefln( +                "%s:%s: %s", +                main_header, +                sub_header, +                doc_matters.dochead_meta[main_header][sub_header] +              ); +            } +          } +          break; +        case "classify": +          foreach (sub_header; ptr_head_sub_classify) { +            if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { +              writefln( +                "%s:%s: %s", +                main_header, +                sub_header, +                doc_matters.dochead_meta[main_header][sub_header] +              ); +            } +          } +          break; +        case "identifier": +          foreach (sub_header; ptr_head_sub_identifier) { +            if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { +              writefln( +                "%s:%s: %s", +                main_header, +                sub_header, +                doc_matters.dochead_meta[main_header][sub_header] +              ); +            } +          } +          break; +        case "notes": +          foreach (sub_header; ptr_head_sub_notes) { +            if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { +              writefln( +                "%s:%s: %s", +                main_header, +                sub_header, +                doc_matters.dochead_meta[main_header][sub_header] +              ); +            } +          } +          break; +        case "publisher": +          foreach (sub_header; ptr_head_sub_publisher) { +            if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { +              writefln( +                "%s:%s: %s", +                main_header, +                sub_header, +                doc_matters.dochead_meta[main_header][sub_header] +              ); +            } +          } +          break; +        default: +          break; +        } +      } +    } +    debug(anchor) { +      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 %s", +              obj.marked_up_level, +              obj.obj_cite_number, +              obj.anchor_tags, +              // "[", obj["is"], "] ", +              obj.text +            ); +          } +        } +      } +    } +    debug(heading) {                         // heading +      foreach (k; doc_matters.keys_seq_seg) { +        foreach (o; contents[k]) { +          if (o.is_a == "heading") { +            writefln( +              "%s* %s\n                (markup level: %s; collapsed level: %s)", +              replicate("  ", o.heading_lev_markup), +              strip(o.text), +              o.heading_lev_markup, +              o.heading_lev_collapsed, +            ); +          } +        } +      } +    } +    debug(summary) { +      string[string] check = [ +        "last_obj_cite_number" : "NA [debug \"checkdoc\" not run]", +      ]; +    } +    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"]) { +              switch (mfn.captures[2]) { +              // live manual: +              case "live-manual.ssm": +                assert(check["last_obj_cite_number"] == +                  "1019","last obj_cite_number should be: 1019 (check test, document is frequently updated)"); // ok +                break; +              // sisu_markup: +              case "sisu_markup.sst": +                assert(check["last_obj_cite_number"] == +                  "297","last obj_cite_number expected to be: 297 rather than " ~ check["last_obj_cite_number"]); // ok +                // assert(check["last_obj_cite_number"] == "297","last obj_cite_number expected to be: 297 rather than " ~ check["last_obj_cite_number"]); +                // notes for first divergance study sisu headings 247 250 +                // sisu has issue with code that contains heading 1~ which results in no obj_cite_number! ?? +                // sisu currently has incorrect last body obj_cite_number of 294! +                // bug in sisu? attend +                break; +              // sisu-markup-samples: +              case "accelerando.charles_stross.sst": +                assert(check["last_obj_cite_number"] == +                  "2861","last obj_cite_number expected to be: 2861 rather than " ~ check["last_obj_cite_number"]); // ok +                break; +              case "alices_adventures_in_wonderland.lewis_carroll.sst": +                assert(check["last_obj_cite_number"] == +                  "805","last obj_cite_number expected to be: 805 rather than " ~ check["last_obj_cite_number"]); // 808 +                break; +              case "autonomy_markup0.sst": +                assert(check["last_obj_cite_number"] == +                  "77","last obj_cite_number expected to be: 77 rather than " ~ check["last_obj_cite_number"]); // ok endnotes +                // assert(check["last_obj_cite_number"] == "78","last obj_cite_number expected to be: 78 rather than " ~ check["last_obj_cite_number"]); +                break; +              case "content.cory_doctorow.sst": +                assert(check["last_obj_cite_number"] == +                  "953","last obj_cite_number expected to be: 953 rather than " ~ check["last_obj_cite_number"]); // 1007 way off, check obj_cite_number off switches +                // assert(check["last_obj_cite_number"] == "953","last obj_cite_number expected to be: 953 rather than " ~ check["last_obj_cite_number"]); +                break; +              case "democratizing_innovation.eric_von_hippel.sst": +                // fixed ERROR! range violation, broken check! endnotes, bookindex, biblio +                // error in bookindex ... (ch1; ch6; ch8 ) +                assert(check["last_obj_cite_number"] == +                  "905","last obj_cite_number expected to be: 905 rather than " ~ check["last_obj_cite_number"]); // 911 +                break; +              case "down_and_out_in_the_magic_kingdom.cory_doctorow.sst": +                assert(check["last_obj_cite_number"] == +                  "1417","last obj_cite_number expected to be: 1417 rather than " ~ check["last_obj_cite_number"]); // 1455 check obj_cite_number off switches +                break; +              case "for_the_win.cory_doctorow.sst": +                assert(check["last_obj_cite_number"] == +                  "3510","last obj_cite_number expected to be: 3510 rather than " ~ check["last_obj_cite_number"]); // 3569 check obj_cite_number off switches +                break; +              case "free_as_in_freedom_2.richard_stallman_and_the_free_software_revolution.sam_williams.richard_stallman.sst": +                assert(check["last_obj_cite_number"] == +                  "1082","last obj_cite_number expected to be: 1082 rather than " ~ check["last_obj_cite_number"]); // check 1079 too few +                break; +              case "free_culture.lawrence_lessig.sst": +                assert(check["last_obj_cite_number"] == +                  "1330","last obj_cite_number expected to be: 1330 rather than " ~ check["last_obj_cite_number"]); // 1312 +                // fixed ERROR! range violation, broken check! +                // error in bookindex ... sections piracy (ch1) & property (ch10 market concentration) fixed +                break; +              case "free_for_all.peter_wayner.sst": // endnotes, bookindex, biblio +                assert(check["last_obj_cite_number"] == +                  "1559","last obj_cite_number expected to be: 1559 rather than " ~ check["last_obj_cite_number"]); // 1560, check obj_cite_number off switches, has endnotes so 2 too many +                // assert(check["last_obj_cite_number"] == "1559","last obj_cite_number expected to be: 1559 rather than " ~ check["last_obj_cite_number"]); +                break; +              case "gpl2.fsf.sst": +                assert(check["last_obj_cite_number"] == +                  "65","last obj_cite_number expected to be: 65 rather than " ~ check["last_obj_cite_number"]); // ok endnotes? check +                // assert(check["last_obj_cite_number"] == "66","last obj_cite_number expected to be: 66 rather than " ~ check["last_obj_cite_number"]); +                break; +              case "gpl3.fsf.sst": +                assert(check["last_obj_cite_number"] == +                  "123","last obj_cite_number expected to be: 123 rather than " ~ check["last_obj_cite_number"]); // ok +                break; +              case "gullivers_travels.jonathan_swift.sst": +                assert(check["last_obj_cite_number"] == +                  "668","last obj_cite_number expected to be: 668 rather than " ~ check["last_obj_cite_number"]); // 674 +                break; +              case "little_brother.cory_doctorow.sst": +                assert(check["last_obj_cite_number"] == +                  "3130","last obj_cite_number expected to be: 3130 rather than " ~ check["last_obj_cite_number"]); // 3204, check obj_cite_number off switches +                break; +              case "the_cathedral_and_the_bazaar.eric_s_raymond.sst": +                assert(check["last_obj_cite_number"] == +                  "258","last obj_cite_number expected to be: 258 rather than " ~ check["last_obj_cite_number"]); // ok +                break; +              case "the_public_domain.james_boyle.sst": +                assert(check["last_obj_cite_number"] == +                  "970","last obj_cite_number expected to be: 970 rather than " ~ check["last_obj_cite_number"]); // 978 +                break; +              case "the_wealth_of_networks.yochai_benkler.sst": // endnotes, bookindex +                assert(check["last_obj_cite_number"] == +                  "829","last obj_cite_number expected to be: 829 rather than " ~ check["last_obj_cite_number"]); // ok +                // assert(check["last_obj_cite_number"] == "832","last obj_cite_number expected to be: 832 rather than " ~ check["last_obj_cite_number"]); +                // has endnotes and bookindex, issue with sisu.rb +                break; +              case "through_the_looking_glass.lewis_carroll.sst": +                assert(check["last_obj_cite_number"] == +                  "949","last obj_cite_number expected to be: 949 rather than " ~ check["last_obj_cite_number"]); // 955 +                break; +              case "two_bits.christopher_kelty.sst": // endnotes, bookindex, biblio +                assert(check["last_obj_cite_number"] == +                  "1190","last obj_cite_number expected to be: 1190 rather than " ~ check["last_obj_cite_number"]); // 1191 +                // assert(check["last_obj_cite_number"] == "1193","last obj_cite_number expected to be: 1193 rather than " ~ check["last_obj_cite_number"]); // 1191 ok? +                // has endnotes and bookindex, issue with sisu.rb +                break; +                // fixed ERROR! range violation! +                // error in bookindex ... (ch3 the movement) +              case "un_contracts_international_sale_of_goods_convention_1980.sst": +                assert(check["last_obj_cite_number"] == +                  "377","last obj_cite_number expected to be: 377 rather than " ~ check["last_obj_cite_number"]); // ok +                break; +              case "viral_spiral.david_bollier.sst": // endnotes, bookindex +                assert(check["last_obj_cite_number"] == +                  "1078","last obj_cite_number expected to be: 1078 rather than " ~ check["last_obj_cite_number"]); // 1100 +                // fixed ERROR! range violation! +                // error in bookindex ... (ch7 ... building the cc machine, an extra semi colon) +                break; +              default: +                writeln(doc_matters.source_filename); +                break; +              } +            } +          } +        } +        debug(checkdoc) { +          void out_segnames(S,T)( +            auto ref const S         contents, +            auto ref T               doc_matters, +          ) { +            foreach (key; doc_matters.keys_seq_seg) { +              if (contents[key].length > 1) { +                foreach (obj; contents[key]) { +                  if (obj.heading_lev_markup == 4) { +                    writeln(obj.ptr_html_segnames, ". (", doc_matters.segnames[obj.ptr_html_segnames], ") -> ",  obj.text); +                  } +                } +              } +            } +          } +        } +        debug(checkdoc) { +          void out_toc(S)( +            auto ref const S         contents, +            string                   key, +          ) { +            if (contents[key].length > 1) { +              string indent_spaces; +              foreach (obj; contents[key]) { +                indent_spaces=markup.indent_by_spaces_provided(obj.indent_hang); +                writefln( +                  "%s%s", +                  indent_spaces, +                  obj.text +                ); +              } +            } +          } +        } +        debug(checkdoc) { +          void out_endnotes(S)( +            auto ref const S         contents, +            string                   key, +          ) { +            if (contents[key].length > 1) { +              foreach (obj; contents[key]) { +                writefln( +                  "[%s]\n%s", +                  obj.is_a, +                  obj.text +                ); +              } +            } +          } +        } +        debug(checkdoc) { +          void out_bookindex(S)( +            auto ref const S         contents, +            string                   key, +          ) { +            if (contents[key].length > 1) { +              foreach (obj; contents[key]) { +                writefln( +                  "[%s][%s]\n%s", +                  obj.obj_cite_number, +                  obj.is_a, +                  obj.text +                ); +              } +            } +          } +        } +      } +    } +  } +} diff --git a/src/sdp/ao_output_debugs.d b/src/sdp/ao_output_debugs.d deleted file mode 100644 index aff30e8..0000000 --- a/src/sdp/ao_output_debugs.d +++ /dev/null @@ -1,708 +0,0 @@ -/++ -  output debugs -+/ -template SiSUdebugs() { -  import -    ao_defaults, -    ao_rgx; -  private import -    std.algorithm, -    std.array, -    std.container, -    std.exception, -    std.getopt, -    std.json, -    std.process, -    std.stdio, -    std.file, -    std.path, -    std.range, -    std.regex, -    std.string, -    std.traits, -    std.typecons, -    std.uni, -    std.utf, -    std.conv : to; -  auto SiSUdebugs(S,T)( -    auto ref const S         contents, -    auto ref T               doc_matters, -  ) { -      mixin SiSUrgxInit; -      mixin InternalMarkup; -      auto rgx = Rgx(); -      auto markup = InlineMarkup(); -      string key; -      debug(parent) { -        writefln( -          "%s:%s", -          __FILE__, -          __LINE__, -        ); -        foreach (key; doc_matters.keys_seq_seg) { -          foreach (obj; contents[key]) { -            if (obj.use != "empty") { -              if (obj.is_a == "heading") { -                writefln( -                  "%s node: %s heading: %s %s", -                  obj.obj_cite_number, -                  obj.node, -                  obj.heading_lev_markup, -                  obj.text, -                ); -              } -            } -          } -        } -      } -      debug(dumpdoc) { -        writefln( -          "%s\n%s:%s", -          "-------------------------------", -          __FILE__, -          __LINE__, -        ); -        foreach (obj; contents) { -          if (obj.use != "empty") { -            writefln( -              "[%s][%s]\n%s", -              obj.obj_cite_number, -              obj.is_a, -              obj.text -            ); -          } -        } -      } -      debug(section_head) { -        key="head"; -        if (contents[key].length > 1) { -          foreach (obj; contents[key]) { -            writefln( -              "[%s][%s]\n%s", -              obj.obj_cite_number, -              obj.is_a, -              obj.text -            ); -          } -        } -      } -      debug(section_toc) { -        key="toc_seg"; -        out_toc(contents, key); -      } -      debug(section_toc_seg) { -        key="toc_seg"; -        out_toc(contents, key); -      } -      debug(section_toc_scroll) { -        key="toc_scroll"; -        out_toc(contents, key); -      } -      debug(segnames) { -        writeln(__LINE__); -        out_segnames(contents, doc_matters); -      } -      debug(section_body) { -        key="body"; -        if (contents[key].length > 1) { -          foreach (obj; contents[key]) { -            writefln( -              "[%s][%s]\n%s", -              obj.obj_cite_number, -              obj.is_a, -              obj.text -            ); -          } -        } -      } -      debug(dom) { -        enum DomTags { none, open, close, close_and_open, open_still, } -        foreach (sect; doc_matters.keys_seq_seg) { -          foreach (obj; contents[sect]) { -            if (obj.is_a == "heading") { -              foreach_reverse (k; 0 .. 7) { -                switch (obj.dom_markedup[k]) { -                case DomTags.close : -                  writeln(markup.indent_by_spaces_provided(k), "</", k, ">"); -                  break; -                case DomTags.close_and_open : -                  writeln(markup.indent_by_spaces_provided(k), "</", k, ">"); -                  writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text); -                  break; -                case DomTags.open : -                  writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text); -                  break; -                default : -                  break; -                } -              } -            } -          } -        } -        writeln("--------------------"); -        foreach (sect; doc_matters.keys_seq_seg) { -          foreach (obj; contents[sect]) { -            if (obj.is_a == "heading") { -              foreach_reverse (k; 0 .. 7) { -                switch (obj.dom_collapsed[k]) { -                case DomTags.close : -                  writeln(markup.indent_by_spaces_provided(k), "</", k, ">"); -                  break; -                case DomTags.close_and_open : -                  writeln(markup.indent_by_spaces_provided(k), "</", k, ">"); -                  writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text); -                  break; -                case DomTags.open : -                  writeln(markup.indent_by_spaces_provided(k), "<", k, ">", obj.text); -                  break; -                default : -                  break; -                } -              } -            } -          } -        } -      } -      debug(section_endnotes) { -        key="endnotes"; -        out_endnotes(contents, key); -      } -      debug(section_endnotes_seg) { -        key="endnotes"; -        out_endnotes(contents, key); -      } -      debug(section_glossary) { -        key="glossary"; -        if (contents[key].length > 1) { -          foreach (obj; contents[key]) { -            writefln( -              "[%s][%s]\n%s", -              obj.obj_cite_number, -              obj.is_a, -              obj.text -            ); -          } -        } -      } -      debug(section_bibliography) { -        key="bibliography"; -        if (contents[key].length > 1) { -          foreach (obj; contents[key]) { -            writefln( -              "[%s][%s]\n%s", -              obj.obj_cite_number, -              obj.is_a, -              obj.text -            ); -          } -        } -      } -      debug(section_bookindex) { -        key="bookindex_seg"; -        out_bookindex(contents, key); -      } -      debug(section_bookindex_seg) { -        key="bookindex_seg"; -        out_bookindex(contents, key); -      } -      debug(section_bookindex_scroll) { -        key="bookindex_scroll"; -        out_bookindex(contents, key); -      } -      debug(blurb_section) { -        key="blurb"; -        if (contents[key].length > 1) { -          foreach (obj; contents[key]) { -            writefln( -              "[%s][%s]\n%s", -              obj.obj_cite_number, -              obj.is_a, -              obj.text -            ); -          } -        } -      } -      debug(objects) { -        writefln( -          "%s\n%s:%s", -          "-------------------------------", -          __FILE__, -          __LINE__, -        ); -        foreach (obj; contents) { -          if (obj.use != "empty") { -            writefln( -              "* [%s][%s] %s", -              obj.obj_cite_number, -              obj.is_a, -              obj.text -            ); -          } -        } -      } -      debug(headermakejson) { -        writefln( -          "%s\n%s\n%s", -          "document header, metadata & make instructions:", -          doc_matters.dochead_meta, -          ptr_head_main, -        ); -        foreach (main_header; ptr_head_main) { -          switch (main_header) { -          case "make": -            foreach (sub_header; ptr_head_sub_make) { -              if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { -                writefln( -                  "%s:%s: %s", -                  main_header, -                  sub_header, -                  doc_matters.dochead_meta[main_header][sub_header] -                ); -              } -            } -            break; -          default: -            break; -          } -        } -      } -      debug(headermetadatajson) { -        writefln( -          "%s\n%s\n%s", -          "document header, metadata & make instructions:", -          doc_matters.dochead_meta, -          ptr_head_main, -        ); -        foreach (main_header; ptr_head_main) { -          switch (main_header) { -          case "creator": -            foreach (sub_header; ptr_head_sub_creator) { -              if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { -                writefln( -                  "%s:%s: %s", -                  main_header, -                  sub_header, -                  doc_matters.dochead_meta[main_header][sub_header] -                ); -              } -            } -            break; -          case "title": -            foreach (sub_header; ptr_head_sub_title) { -              if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { -                writefln( -                  "%s:%s: %s", -                  main_header, -                  sub_header, -                  doc_matters.dochead_meta[main_header][sub_header] -                ); -              } -            } -            break; -          case "rights": -            foreach (sub_header; ptr_head_sub_rights) { -              if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { -                writefln( -                  "%s:%s: %s", -                  main_header, -                  sub_header, -                  doc_matters.dochead_meta[main_header][sub_header] -                ); -              } -            } -            break; -          case "date": -            foreach (sub_header; ptr_head_sub_date) { -              if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { -                writefln( -                  "%s:%s: %s", -                  main_header, -                  sub_header, -                  doc_matters.dochead_meta[main_header][sub_header] -                ); -              } -            } -            break; -          case "original": -            foreach (sub_header; ptr_head_sub_original) { -              if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { -                writefln( -                  "%s:%s: %s", -                  main_header, -                  sub_header, -                  doc_matters.dochead_meta[main_header][sub_header] -                ); -              } -            } -            break; -          case "classify": -            foreach (sub_header; ptr_head_sub_classify) { -              if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { -                writefln( -                  "%s:%s: %s", -                  main_header, -                  sub_header, -                  doc_matters.dochead_meta[main_header][sub_header] -                ); -              } -            } -            break; -          case "identifier": -            foreach (sub_header; ptr_head_sub_identifier) { -              if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { -                writefln( -                  "%s:%s: %s", -                  main_header, -                  sub_header, -                  doc_matters.dochead_meta[main_header][sub_header] -                ); -              } -            } -            break; -          case "notes": -            foreach (sub_header; ptr_head_sub_notes) { -              if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { -                writefln( -                  "%s:%s: %s", -                  main_header, -                  sub_header, -                  doc_matters.dochead_meta[main_header][sub_header] -                ); -              } -            } -            break; -          case "publisher": -            foreach (sub_header; ptr_head_sub_publisher) { -              if (to!string(doc_matters.dochead_meta[main_header][sub_header]).length > 2) { -                writefln( -                  "%s:%s: %s", -                  main_header, -                  sub_header, -                  doc_matters.dochead_meta[main_header][sub_header] -                ); -              } -            } -            break; -          default: -            break; -          } -        } -      } -      debug(anchor) { -        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 %s", -                obj.marked_up_level, -                obj.obj_cite_number, -                obj.anchor_tags, -                // "[", obj["is"], "] ", -                obj.text -              ); -            } -          } -        } -      } -      debug(heading) {                         // heading -        foreach (k; doc_matters.keys_seq_seg) { -          foreach (o; contents[k]) { -            if (o.is_a == "heading") { -              writefln( -                "%s* %s\n                (markup level: %s; collapsed level: %s)", -                replicate("  ", o.heading_lev_markup), -                strip(o.text), -                o.heading_lev_markup, -                o.heading_lev_collapsed, -              ); -            } -          } -        } -      } -      debug(summary) { -        string[string] check = [ -          "last_obj_cite_number" : "NA [debug \"checkdoc\" not run]", -        ]; -      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"]) { -                switch (mfn.captures[2]) { -                // live manual: -                case "live-manual.ssm": -                  assert(check["last_obj_cite_number"] == -                    "1019","last obj_cite_number should be: 1019 (check test, document is frequently updated)"); // ok -                  break; -                // sisu_markup: -                case "sisu_markup.sst": -                  assert(check["last_obj_cite_number"] == -                    "297","last obj_cite_number expected to be: 297 rather than " ~ check["last_obj_cite_number"]); // ok -                  // assert(check["last_obj_cite_number"] == "297","last obj_cite_number expected to be: 297 rather than " ~ check["last_obj_cite_number"]); -                  // notes for first divergance study sisu headings 247 250 -                  // sisu has issue with code that contains heading 1~ which results in no obj_cite_number! ?? -                  // sisu currently has incorrect last body obj_cite_number of 294! -                  // bug in sisu? attend -                  break; -                // sisu-markup-samples: -                case "accelerando.charles_stross.sst": -                  assert(check["last_obj_cite_number"] == -                    "2861","last obj_cite_number expected to be: 2861 rather than " ~ check["last_obj_cite_number"]); // ok -                  break; -                case "alices_adventures_in_wonderland.lewis_carroll.sst": -                  assert(check["last_obj_cite_number"] == -                    "805","last obj_cite_number expected to be: 805 rather than " ~ check["last_obj_cite_number"]); // 808 -                  break; -                case "autonomy_markup0.sst": -                  assert(check["last_obj_cite_number"] == -                    "77","last obj_cite_number expected to be: 77 rather than " ~ check["last_obj_cite_number"]); // ok endnotes -                  // assert(check["last_obj_cite_number"] == "78","last obj_cite_number expected to be: 78 rather than " ~ check["last_obj_cite_number"]); -                  break; -                case "content.cory_doctorow.sst": -                  assert(check["last_obj_cite_number"] == -                    "953","last obj_cite_number expected to be: 953 rather than " ~ check["last_obj_cite_number"]); // 1007 way off, check obj_cite_number off switches -                  // assert(check["last_obj_cite_number"] == "953","last obj_cite_number expected to be: 953 rather than " ~ check["last_obj_cite_number"]); -                  break; -                case "democratizing_innovation.eric_von_hippel.sst": -                  // fixed ERROR! range violation, broken check! endnotes, bookindex, biblio -                  // error in bookindex ... (ch1; ch6; ch8 ) -                  assert(check["last_obj_cite_number"] == -                    "905","last obj_cite_number expected to be: 905 rather than " ~ check["last_obj_cite_number"]); // 911 -                  break; -                case "down_and_out_in_the_magic_kingdom.cory_doctorow.sst": -                  assert(check["last_obj_cite_number"] == -                    "1417","last obj_cite_number expected to be: 1417 rather than " ~ check["last_obj_cite_number"]); // 1455 check obj_cite_number off switches -                  break; -                case "for_the_win.cory_doctorow.sst": -                  assert(check["last_obj_cite_number"] == -                    "3510","last obj_cite_number expected to be: 3510 rather than " ~ check["last_obj_cite_number"]); // 3569 check obj_cite_number off switches -                  break; -                case "free_as_in_freedom_2.richard_stallman_and_the_free_software_revolution.sam_williams.richard_stallman.sst": -                  assert(check["last_obj_cite_number"] == -                    "1082","last obj_cite_number expected to be: 1082 rather than " ~ check["last_obj_cite_number"]); // check 1079 too few -                  break; -                case "free_culture.lawrence_lessig.sst": -                  assert(check["last_obj_cite_number"] == -                    "1330","last obj_cite_number expected to be: 1330 rather than " ~ check["last_obj_cite_number"]); // 1312 -                  // fixed ERROR! range violation, broken check! -                  // error in bookindex ... sections piracy (ch1) & property (ch10 market concentration) fixed -                  break; -                case "free_for_all.peter_wayner.sst": // endnotes, bookindex, biblio -                  assert(check["last_obj_cite_number"] == -                    "1559","last obj_cite_number expected to be: 1559 rather than " ~ check["last_obj_cite_number"]); // 1560, check obj_cite_number off switches, has endnotes so 2 too many -                  // assert(check["last_obj_cite_number"] == "1559","last obj_cite_number expected to be: 1559 rather than " ~ check["last_obj_cite_number"]); -                  break; -                case "gpl2.fsf.sst": -                  assert(check["last_obj_cite_number"] == -                    "65","last obj_cite_number expected to be: 65 rather than " ~ check["last_obj_cite_number"]); // ok endnotes? check -                  // assert(check["last_obj_cite_number"] == "66","last obj_cite_number expected to be: 66 rather than " ~ check["last_obj_cite_number"]); -                  break; -                case "gpl3.fsf.sst": -                  assert(check["last_obj_cite_number"] == -                    "123","last obj_cite_number expected to be: 123 rather than " ~ check["last_obj_cite_number"]); // ok -                  break; -                case "gullivers_travels.jonathan_swift.sst": -                  assert(check["last_obj_cite_number"] == -                    "668","last obj_cite_number expected to be: 668 rather than " ~ check["last_obj_cite_number"]); // 674 -                  break; -                case "little_brother.cory_doctorow.sst": -                  assert(check["last_obj_cite_number"] == -                    "3130","last obj_cite_number expected to be: 3130 rather than " ~ check["last_obj_cite_number"]); // 3204, check obj_cite_number off switches -                  break; -                case "the_cathedral_and_the_bazaar.eric_s_raymond.sst": -                  assert(check["last_obj_cite_number"] == -                    "258","last obj_cite_number expected to be: 258 rather than " ~ check["last_obj_cite_number"]); // ok -                  break; -                case "the_public_domain.james_boyle.sst": -                  assert(check["last_obj_cite_number"] == -                    "970","last obj_cite_number expected to be: 970 rather than " ~ check["last_obj_cite_number"]); // 978 -                  break; -                case "the_wealth_of_networks.yochai_benkler.sst": // endnotes, bookindex -                  assert(check["last_obj_cite_number"] == -                    "829","last obj_cite_number expected to be: 829 rather than " ~ check["last_obj_cite_number"]); // ok -                  // assert(check["last_obj_cite_number"] == "832","last obj_cite_number expected to be: 832 rather than " ~ check["last_obj_cite_number"]); -                  // has endnotes and bookindex, issue with sisu.rb -                  break; -                case "through_the_looking_glass.lewis_carroll.sst": -                  assert(check["last_obj_cite_number"] == -                    "949","last obj_cite_number expected to be: 949 rather than " ~ check["last_obj_cite_number"]); // 955 -                  break; -                case "two_bits.christopher_kelty.sst": // endnotes, bookindex, biblio -                  assert(check["last_obj_cite_number"] == -                    "1190","last obj_cite_number expected to be: 1190 rather than " ~ check["last_obj_cite_number"]); // 1191 -                  // assert(check["last_obj_cite_number"] == "1193","last obj_cite_number expected to be: 1193 rather than " ~ check["last_obj_cite_number"]); // 1191 ok? -                  // has endnotes and bookindex, issue with sisu.rb -                  break; -                  // fixed ERROR! range violation! -                  // error in bookindex ... (ch3 the movement) -                case "un_contracts_international_sale_of_goods_convention_1980.sst": -                  assert(check["last_obj_cite_number"] == -                    "377","last obj_cite_number expected to be: 377 rather than " ~ check["last_obj_cite_number"]); // ok -                  break; -                case "viral_spiral.david_bollier.sst": // endnotes, bookindex -                  assert(check["last_obj_cite_number"] == -                    "1078","last obj_cite_number expected to be: 1078 rather than " ~ check["last_obj_cite_number"]); // 1100 -                  // fixed ERROR! range violation! -                  // error in bookindex ... (ch7 ... building the cc machine, an extra semi colon) -                  break; -                default: -                  writeln(doc_matters.source_filename); -                  break; -                } -              } -            } -          } -        } -        debug(checkdoc) { -          void out_segnames(S,T)( -            auto ref const S         contents, -            auto ref T               doc_matters, -          ) { -            foreach (key; doc_matters.keys_seq_seg) { -              if (contents[key].length > 1) { -                foreach (obj; contents[key]) { -                  if (obj.heading_lev_markup == 4) { -                    writeln(obj.ptr_html_segnames, ". (", doc_matters.segnames[obj.ptr_html_segnames], ") -> ",  obj.text); -                  } -                } -              } -            } -          } -        } -        debug(checkdoc) { -          void out_toc(S)( -            auto ref const S         contents, -            string                   key, -          ) { -            if (contents[key].length > 1) { -              string indent_spaces; -              foreach (obj; contents[key]) { -                indent_spaces=markup.indent_by_spaces_provided(obj.indent_hang); -                writefln( -                  "%s%s", -                  indent_spaces, -                  obj.text -                ); -              } -            } -          } -        } -        debug(checkdoc) { -          void out_endnotes(S)( -            auto ref const S         contents, -            string                   key, -          ) { -            if (contents[key].length > 1) { -              foreach (obj; contents[key]) { -                writefln( -                  "[%s]\n%s", -                  obj.is_a, -                  obj.text -                ); -              } -            } -          } -        } -        debug(checkdoc) { -          void out_bookindex(S)( -            auto ref const S         contents, -            string                   key, -          ) { -            if (contents[key].length > 1) { -              foreach (obj; contents[key]) { -                writefln( -                  "[%s][%s]\n%s", -                  obj.obj_cite_number, -                  obj.is_a, -                  obj.text -                ); -              } -            } -          } -        } -      } -      if ((doc_matters.opt_action_bool["verbose"])) { -        if ((doc_matters.opt_action_bool["verbose"])) { -          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; -                } -              } -            } -          } -        } -        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; -        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), -        ); -      } -    } -  } -} diff --git a/src/sdp/ao_read_source_files.d b/src/sdp/ao_read_source_files.d index 808457d..a6459b2 100644 --- a/src/sdp/ao_read_source_files.d +++ b/src/sdp/ao_read_source_files.d @@ -3,7 +3,7 @@    - open markup files<BR>    - if master file scan for addional files to import/insert  +/ -template SiSUmarkupRaw() { +template SiSUrawMarkupContent() {    private import      ao_rgx;    private import @@ -24,13 +24,13 @@ template SiSUmarkupRaw() {      std.conv : to;    mixin SiSUrgxInit;    auto rgx = Rgx(); -  auto rawsrc = MarkupRaw(); -  auto SiSUmarkupRaw(Fn)(Fn fn_src) { +  auto rawsrc = RawMarkupContent(); +  auto SiSUrawMarkupContent(Fn)(Fn fn_src) {      auto _0_header_1_body_content_2_insert_filelist_tuple =        rawsrc.sourceContentSplitIntoHeaderAndBody(rawsrc.sourceContent(fn_src), fn_src);      return _0_header_1_body_content_2_insert_filelist_tuple;    } -  struct MarkupRaw { +  struct RawMarkupContent {      final sourceContent(in string fn_src) {        auto raw = MarkupRawUnit();        auto source_txt_str = diff --git a/views/version.txt b/views/version.txt index 5c49588..7ab514d 100644 --- a/views/version.txt +++ b/views/version.txt @@ -4,4 +4,4 @@ struct Version {    int minor;    int patch;  } -enum ver = Version(0, 12, 1); +enum ver = Version(0, 12, 2); | 
