diff options
| author | Ralph Amissah <ralph.amissah@gmail.com> | 2024-04-10 22:24:34 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph.amissah@gmail.com> | 2024-04-10 23:08:18 -0400 | 
| commit | 90873fabd7451e1dd8c4b39303906e19bdc481f7 (patch) | |
| tree | 2dbb0e41f3e9c761645c8b37dafe979a01d38d32 /src/sisudoc/meta/doc_debugs.d | |
| parent | 0.15.0 (diff) | |
0.16.0 sisudoc (src/sisudoc sisudoc spine)
- src/sisudoc (replaces src/doc_reform)
- sisudoc spine (used more)
Diffstat (limited to 'src/sisudoc/meta/doc_debugs.d')
| -rw-r--r-- | src/sisudoc/meta/doc_debugs.d | 252 | 
1 files changed, 252 insertions, 0 deletions
| diff --git a/src/sisudoc/meta/doc_debugs.d b/src/sisudoc/meta/doc_debugs.d new file mode 100644 index 0000000..ae50256 --- /dev/null +++ b/src/sisudoc/meta/doc_debugs.d @@ -0,0 +1,252 @@ +/+ +- Name: SisuDoc Spine, Doc Reform [a part of] +  - Description: documents, structuring, processing, publishing, search +    - static content generator + +  - Author: Ralph Amissah +    [ralph.amissah@gmail.com] + +  - Copyright: (C) 2015 - 2024 Ralph Amissah, All Rights Reserved. + +  - License: AGPL 3 or later: + +    Spine (SiSU), a framework for document structuring, publishing and +    search + +    Copyright (C) Ralph Amissah + +    This program is free software: you can redistribute it and/or modify it +    under the terms of the GNU AFERO General Public License as published by the +    Free Software Foundation, either version 3 of the License, or (at your +    option) any later version. + +    This program is distributed in the hope that it will be useful, but WITHOUT +    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +    FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +    more details. + +    You should have received a copy of the GNU General Public License along with +    this program. If not, see [https://www.gnu.org/licenses/]. + +    If you have Internet connection, the latest version of the AGPL should be +    available at these locations: +    [https://www.fsf.org/licensing/licenses/agpl.html] +    [https://www.gnu.org/licenses/agpl.html] + +  - Spine (by Doc Reform, related to SiSU) uses standard: +    - docReform markup syntax +      - standard SiSU markup syntax with modified headers and minor modifications +    - docReform object numbering +      - standard SiSU object citation numbering & system + +  - Homepages: +    [https://www.sisudoc.org] +    [https://www.doc-reform.org] + +  - Git +    [https://git.sisudoc.org/] + ++/ +/++ +  output debugs ++/ +module sisudoc.meta.doc_debugs; +template spineDebugs() { +  import +    sisudoc.meta.defaults, +    sisudoc.meta.rgx_files; +  import +    std.algorithm, +    std.array, +    std.container, +    std.exception, +    std.json, +    std.stdio, +    std.file, +    std.path, +    std.range, +    std.regex, +    std.string, +    std.typecons, +    std.utf, +    std.conv : to; +  auto spineDebugs(S,T)( +    const S  contents, +          T  doc_matters, +  ) { +    mixin spineRgxFiles; +    mixin InternalMarkup; +    static auto rgx_files = RgxFiles(); +    auto markup = InlineMarkup(); +    string key; +    debug(parent) { +      writefln( +        "%s:%s", +        __FILE__, +        __LINE__, +      ); +      foreach (key; doc_matters.has.keys_seq.seg) { +        foreach (obj; contents[key]) { +          if (obj.metainfo.is_of_part != "empty") { +            if (obj.metainfo.is_a == "heading") { +              writefln( +                "%s node: %s heading: %s %s", +                obj.object_number, +                obj.node, +                obj.heading_lev_markup, +                obj.text, +              ); +            } +          } +        } +      } +    } +    debug(checkdoc) { +      if ((doc_matters.opt.action.debug_do)) { +        debug(checkdoc) { +          if (auto mfn=match(doc_matters.src.filename, rgx_files.src_fn)) { +            if (doc_matters.opt.action.assertions) { +              switch (mfn.captures[2]) { +              // live manual: +              case "live-manual.ssm": +                assert(check["last_object_number"] == +                  "1019","last object_number should be: 1019 (check test, document is frequently updated)"); // ok +                break; +              // sisu_markup: +              case "sisu_markup.sst": +                assert(check["last_object_number"] == +                  "297","last object_number expected to be: 297 rather than " ~ check["last_object_number"]); // ok +                // assert(check["last_object_number"] == "297","last object_number expected to be: 297 rather than " ~ check["last_object_number"]); +                // notes for first divergance study sisu headings 247 250 +                // sisu has issue with code that contains heading 1~ which results in no object_number! ?? +                // sisu currently has incorrect last body object_number of 294! +                // bug in sisu? attend +                break; +              // sisu-markup-samples: +              case "accelerando.charles_stross.sst": +                assert(check["last_object_number"] == +                  "2861","last object_number expected to be: 2861 rather than " ~ check["last_object_number"]); // ok +                break; +              case "alices_adventures_in_wonderland.lewis_carroll.sst": +                assert(check["last_object_number"] == +                  "805","last object_number expected to be: 805 rather than " ~ check["last_object_number"]); // 808 +                break; +              case "autonomy_markup0.sst": +                assert(check["last_object_number"] == +                  "77","last object_number expected to be: 77 rather than " ~ check["last_object_number"]); // ok endnotes +                // assert(check["last_object_number"] == "78","last object_number expected to be: 78 rather than " ~ check["last_object_number"]); +                break; +              case "content.cory_doctorow.sst": +                assert(check["last_object_number"] == +                  "953","last object_number expected to be: 953 rather than " ~ check["last_object_number"]); // 1007 way off, check object_number off switches +                // assert(check["last_object_number"] == "953","last object_number expected to be: 953 rather than " ~ check["last_object_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_object_number"] == +                  "905","last object_number expected to be: 905 rather than " ~ check["last_object_number"]); // 911 +                break; +              case "down_and_out_in_the_magic_kingdom.cory_doctorow.sst": +                assert(check["last_object_number"] == +                  "1417","last object_number expected to be: 1417 rather than " ~ check["last_object_number"]); // 1455 check object_number off switches +                break; +              case "for_the_win.cory_doctorow.sst": +                assert(check["last_object_number"] == +                  "3510","last object_number expected to be: 3510 rather than " ~ check["last_object_number"]); // 3569 check object_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_object_number"] == +                  "1082","last object_number expected to be: 1082 rather than " ~ check["last_object_number"]); // check 1079 too few +                break; +              case "free_culture.lawrence_lessig.sst": +                assert(check["last_object_number"] == +                  "1330","last object_number expected to be: 1330 rather than " ~ check["last_object_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_object_number"] == +                  "1559","last object_number expected to be: 1559 rather than " ~ check["last_object_number"]); // 1560, check object_number off switches, has endnotes so 2 too many +                // assert(check["last_object_number"] == "1559","last object_number expected to be: 1559 rather than " ~ check["last_object_number"]); +                break; +              case "gpl2.fsf.sst": +                assert(check["last_object_number"] == +                  "65","last object_number expected to be: 65 rather than " ~ check["last_object_number"]); // ok endnotes? check +                // assert(check["last_object_number"] == "66","last object_number expected to be: 66 rather than " ~ check["last_object_number"]); +                break; +              case "gpl3.fsf.sst": +                assert(check["last_object_number"] == +                  "123","last object_number expected to be: 123 rather than " ~ check["last_object_number"]); // ok +                break; +              case "gullivers_travels.jonathan_swift.sst": +                assert(check["last_object_number"] == +                  "668","last object_number expected to be: 668 rather than " ~ check["last_object_number"]); // 674 +                break; +              case "little_brother.cory_doctorow.sst": +                assert(check["last_object_number"] == +                  "3130","last object_number expected to be: 3130 rather than " ~ check["last_object_number"]); // 3204, check object_number off switches +                break; +              case "the_cathedral_and_the_bazaar.eric_s_raymond.sst": +                assert(check["last_object_number"] == +                  "258","last object_number expected to be: 258 rather than " ~ check["last_object_number"]); // ok +                break; +              case "the_public_domain.james_boyle.sst": +                assert(check["last_object_number"] == +                  "970","last object_number expected to be: 970 rather than " ~ check["last_object_number"]); // 978 +                break; +              case "the_wealth_of_networks.yochai_benkler.sst": // endnotes, bookindex +                assert(check["last_object_number"] == +                  "829","last object_number expected to be: 829 rather than " ~ check["last_object_number"]); // ok +                // assert(check["last_object_number"] == "832","last object_number expected to be: 832 rather than " ~ check["last_object_number"]); +                // has endnotes and bookindex, issue with sisu.rb +                break; +              case "through_the_looking_glass.lewis_carroll.sst": +                assert(check["last_object_number"] == +                  "949","last object_number expected to be: 949 rather than " ~ check["last_object_number"]); // 955 +                break; +              case "two_bits.christopher_kelty.sst": // endnotes, bookindex, biblio +                assert(check["last_object_number"] == +                  "1190","last object_number expected to be: 1190 rather than " ~ check["last_object_number"]); // 1191 +                // assert(check["last_object_number"] == "1193","last object_number expected to be: 1193 rather than " ~ check["last_object_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_object_number"] == +                  "377","last object_number expected to be: 377 rather than " ~ check["last_object_number"]); // ok +                break; +              case "viral_spiral.david_bollier.sst": // endnotes, bookindex +                assert(check["last_object_number"] == +                  "1078","last object_number expected to be: 1078 rather than " ~ check["last_object_number"]); // 1100 +                // fixed ERROR! range violation! +                // error in bookindex ... (ch7 ... building the cc machine, an extra semi colon) +                break; +              default: +                writeln(doc_matters.src.filename); +                break; +              } +            } +          } +        } +        debug(checkdoc) { +          void out_segnames(S,T)( +            const S  contents, +                  T  doc_matters, +          ) { +            foreach (key; doc_matters.has.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.has.segnames_lv4[obj.ptr_html_segnames], ") -> ",  obj.text); +                  } +                } +              } +            } +          } +        } +      } +    } +  } +} | 
