diff options
Diffstat (limited to 'src/sdp')
| -rw-r--r-- | src/sdp/ao/abstract_doc_source.d | 134 | ||||
| -rw-r--r-- | src/sdp/ao/abstraction.d | 8 | ||||
| -rw-r--r-- | src/sdp/ao/abstraction_summary.d | 2 | ||||
| -rw-r--r-- | src/sdp/ao/doc_debugs.d | 4 | ||||
| -rw-r--r-- | src/sdp/output/epub3.d | 20 | ||||
| -rw-r--r-- | src/sdp/output/html.d | 36 | ||||
| -rw-r--r-- | src/sdp/output/hub.d | 69 | ||||
| -rw-r--r-- | src/sdp/output/source_sisupod.d | 18 | ||||
| -rwxr-xr-x | src/sdp/sdp.d | 94 | 
9 files changed, 192 insertions, 193 deletions
| diff --git a/src/sdp/ao/abstract_doc_source.d b/src/sdp/ao/abstract_doc_source.d index 8b95cc0..f935df3 100644 --- a/src/sdp/ao/abstract_doc_source.d +++ b/src/sdp/ao/abstract_doc_source.d @@ -219,14 +219,14 @@ template SiSUdocAbstraction() {      Src                  markup_sourcefile_content,      Make                 dochead_make_aa,      Meta                 dochead_meta_aa, -    Opt                  opt_action_bool, +    Opt                  opt_action,    ) {      auto rgx = Rgx();      debug(asserts) {        static assert(is(typeof(markup_sourcefile_content) == char[][]));        static assert(is(typeof(dochead_make_aa)           == string[string][string]));        static assert(is(typeof(dochead_meta_aa)           == string[string][string])); -      static assert(is(typeof(opt_action_bool)           == bool[string])); +      static assert(is(typeof(opt_action)                == bool[string]));      }      /+ ↓ abstraction init +/      scope(success) { @@ -386,7 +386,7 @@ template SiSUdocAbstraction() {            type["glossary_section"] = State.off;            type["biblio_section"] = State.on;            type["blurb_section"] = State.off; -          if (opt_action_bool["backmatter"] && opt_action_bool["section_biblio"]) { +          if (opt_action["backmatter"] && opt_action["section_biblio"]) {              _biblio_block_(line, type, bib_entry, biblio_entry_str_json, biblio_arr_json);              debug(bibliobuild) {                writeln("-  ", biblio_entry_str_json); @@ -407,7 +407,7 @@ template SiSUdocAbstraction() {            type["glossary_section"] = State.on;            type["biblio_section"] = State.off;            type["blurb_section"] = State.off; -          if (opt_action_bool["backmatter"] && opt_action_bool["section_glossary"]) { +          if (opt_action["backmatter"] && opt_action["section_glossary"]) {              indent=[                "hang_position" : 0,                "base_position" : 0, @@ -476,7 +476,7 @@ template SiSUdocAbstraction() {            type["glossary_section"] = State.off;            type["biblio_section"] = State.off;            type["blurb_section"] = State.on; -          if (opt_action_bool["backmatter"] && opt_action_bool["section_blurb"]) { +          if (opt_action["backmatter"] && opt_action["section_blurb"]) {              indent=[                "hang_position" : 0,                "base_position" : 0, @@ -516,7 +516,7 @@ template SiSUdocAbstraction() {                comp_obj_heading_.anchor_tags           = ["blurb"];                the_blurb_section                       ~= comp_obj_heading_;              } else if (line.matchFirst(rgx.heading) -            && (opt_action_bool["backmatter"] && opt_action_bool["section_blurb"])) { +            && (opt_action["backmatter"] && opt_action["section_blurb"])) {                comp_obj_heading_                       = comp_obj_heading_.init;                comp_obj_heading_.use                   = "backmatter";                comp_obj_heading_.is_of                 = "para"; @@ -625,7 +625,7 @@ template SiSUdocAbstraction() {              || line.matchFirst(rgx.book_index_open)              || type["book_index"] == State.on )  {                /+ book_index +/ -              _book_index_(line, book_idx_tmp, an_object, type, opt_action_bool); +              _book_index_(line, book_idx_tmp, an_object, type, opt_action);              } else {                /+ not book_index +/                an_object_key="body_nugget"; @@ -915,7 +915,7 @@ template SiSUdocAbstraction() {      } /+ ← closed: loop markup document/text line by line +/      /+ ↓ post loop markup document/text +/      auto en_tuple = -      note_section.endnote_objects(obj_cite_number, opt_action_bool); +      note_section.endnote_objects(obj_cite_number, opt_action);      static assert(!isTypeTuple!(en_tuple));      auto the_endnotes_section = en_tuple[0];      obj_cite_number = en_tuple[1]; @@ -1039,7 +1039,7 @@ template SiSUdocAbstraction() {        bi.bookindex_build_abstraction_section(          bookindex_unordered_hashes,          obj_cite_number, -        opt_action_bool, +        opt_action,        );      destroy(bookindex_unordered_hashes);      static assert(!isTypeTuple!(bi_tuple)); @@ -1288,10 +1288,10 @@ template SiSUdocAbstraction() {          if (obj.heading_lev_markup <= 4) {            segnames_0_4 ~= obj.segment_anchor_tag;          } -        if ((opt_action_bool["html"]) -        || (opt_action_bool["html_scroll"]) -        || (opt_action_bool["html_seg"]) -        || (opt_action_bool["epub"])) { +        if ((opt_action["html"]) +        || (opt_action["html-scroll"]) +        || (opt_action["html-seg"]) +        || (opt_action["epub"])) {            obj.dom_markedup =              dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;            obj.dom_collapsed = @@ -1312,10 +1312,10 @@ template SiSUdocAbstraction() {                assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);              }            } -          if ((opt_action_bool["html"]) -          || (opt_action_bool["html_scroll"]) -          || (opt_action_bool["html_seg"]) -          || (opt_action_bool["epub"])) { +          if ((opt_action["html"]) +          || (opt_action["html-scroll"]) +          || (opt_action["html-seg"]) +          || (opt_action["epub"])) {              obj.dom_markedup =                dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;              obj.dom_collapsed = @@ -1338,10 +1338,10 @@ template SiSUdocAbstraction() {                assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);              }            } -          if ((opt_action_bool["html"]) -          || (opt_action_bool["html_scroll"]) -          || (opt_action_bool["html_seg"]) -          || (opt_action_bool["epub"])) { +          if ((opt_action["html"]) +          || (opt_action["html-scroll"]) +          || (opt_action["html-seg"]) +          || (opt_action["epub"])) {              obj.dom_markedup =                dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;              obj.dom_collapsed = @@ -1369,10 +1369,10 @@ template SiSUdocAbstraction() {                assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);              }            } -          if ((opt_action_bool["html"]) -          || (opt_action_bool["html_scroll"]) -          || (opt_action_bool["html_seg"]) -          || (opt_action_bool["epub"])) { +          if ((opt_action["html"]) +          || (opt_action["html-scroll"]) +          || (opt_action["html-seg"]) +          || (opt_action["epub"])) {              obj.dom_markedup =                dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;              obj.dom_collapsed = @@ -1406,10 +1406,10 @@ template SiSUdocAbstraction() {                assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);              }            } -          if ((opt_action_bool["html"]) -          || (opt_action_bool["html_scroll"]) -          || (opt_action_bool["html_seg"]) -          || (opt_action_bool["epub"])) { +          if ((opt_action["html"]) +          || (opt_action["html-scroll"]) +          || (opt_action["html-seg"]) +          || (opt_action["epub"])) {              obj.dom_markedup =                dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;              obj.dom_collapsed = @@ -1436,10 +1436,10 @@ template SiSUdocAbstraction() {                assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);              }            } -          if ((opt_action_bool["html"]) -          || (opt_action_bool["html_scroll"]) -          || (opt_action_bool["html_seg"]) -          || (opt_action_bool["epub"])) { +          if ((opt_action["html"]) +          || (opt_action["html-scroll"]) +          || (opt_action["html-seg"]) +          || (opt_action["epub"])) {              obj.dom_markedup =                dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;              obj.dom_collapsed = @@ -1466,10 +1466,10 @@ template SiSUdocAbstraction() {                assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);              }            } -          if ((opt_action_bool["html"]) -          || (opt_action_bool["html_scroll"]) -          || (opt_action_bool["html_seg"]) -          || (opt_action_bool["epub"])) { +          if ((opt_action["html"]) +          || (opt_action["html-scroll"]) +          || (opt_action["html-seg"]) +          || (opt_action["epub"])) {              obj.dom_markedup =                dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;              obj.dom_collapsed = @@ -1497,10 +1497,10 @@ template SiSUdocAbstraction() {                assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);              }            } -          if ((opt_action_bool["html"]) -          || (opt_action_bool["html_scroll"]) -          || (opt_action_bool["html_seg"]) -          || (opt_action_bool["epub"])) { +          if ((opt_action["html"]) +          || (opt_action["html-scroll"]) +          || (opt_action["html-seg"]) +          || (opt_action["epub"])) {              obj.dom_markedup =                dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;              obj.dom_collapsed = @@ -1526,10 +1526,10 @@ template SiSUdocAbstraction() {                assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);              }            } -          if ((opt_action_bool["html"]) -          || (opt_action_bool["html_scroll"]) -          || (opt_action_bool["html_seg"]) -          || (opt_action_bool["epub"])) { +          if ((opt_action["html"]) +          || (opt_action["html-scroll"]) +          || (opt_action["html-seg"]) +          || (opt_action["epub"])) {              obj.dom_markedup =                dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;              obj.dom_collapsed = @@ -1556,10 +1556,10 @@ template SiSUdocAbstraction() {                assert(obj.segment_anchor_tag == html_segnames[obj.ptr_html_segnames]);              }            } -          if ((opt_action_bool["html"]) -          || (opt_action_bool["html_scroll"]) -          || (opt_action_bool["html_seg"]) -          || (opt_action_bool["epub"])) { +          if ((opt_action["html"]) +          || (opt_action["html-scroll"]) +          || (opt_action["html-seg"]) +          || (opt_action["epub"])) {              obj.dom_markedup =                dom_set_markup_tags(dom_markedup, obj.heading_lev_markup).dup;              obj.dom_collapsed = @@ -1634,10 +1634,10 @@ template SiSUdocAbstraction() {        document_section_keys_sequenced["seg"]    ~= "blurb";        document_section_keys_sequenced["scroll"] ~= "blurb";      } -    if ((opt_action_bool["html"]) -    || (opt_action_bool["html_scroll"]) -    || (opt_action_bool["html_seg"]) -    || (opt_action_bool["epub"])) { +    if ((opt_action["html"]) +    || (opt_action["html-scroll"]) +    || (opt_action["html-seg"]) +    || (opt_action["epub"])) {        document_section_keys_sequenced["seg"]    ~= "tail";        document_section_keys_sequenced["scroll"] ~= "tail";      } @@ -2812,14 +2812,14 @@ template SiSUdocAbstraction() {      return ref I  book_idx_tmp,      return ref O  an_object,      return ref T  type, -    B             opt_action_bool, +    B             opt_action,    ) {      debug(asserts) {        static assert(is(typeof(line)            == char[]));        static assert(is(typeof(book_idx_tmp)    == string));        static assert(is(typeof(an_object)       == string[string]));        static assert(is(typeof(type)            == int[string])); -      static assert(is(typeof(opt_action_bool) == bool[string])); +      static assert(is(typeof(opt_action)      == bool[string]));      }      auto rgx = Rgx();      if (auto m = line.match(rgx.book_index)) { @@ -2834,7 +2834,7 @@ template SiSUdocAbstraction() {      } else if (auto m = line.match(rgx.book_index_open))  {        /+ match open book_index +/        type["book_index"] = State.on; -      if (opt_action_bool["backmatter"] && opt_action_bool["section_bookindex"]) { +      if (opt_action["backmatter"] && opt_action["section_bookindex"]) {          book_idx_tmp = m.captures[1].to!string;          debug(bookindexmatch) {                       // book index            writefln( @@ -2847,8 +2847,8 @@ template SiSUdocAbstraction() {        /+ book_index flag set +/        if (auto m = line.match(rgx.book_index_close))  {          type["book_index"] = State.off; -        if (opt_action_bool["backmatter"] -        && opt_action_bool["section_bookindex"]) { +        if (opt_action["backmatter"] +        && opt_action["section_bookindex"]) {            an_object["bookindex_nugget"] = book_idx_tmp ~ m.captures[1].to!string;            debug(bookindexmatch) {                     // book index              writefln( @@ -2859,8 +2859,8 @@ template SiSUdocAbstraction() {          }          book_idx_tmp = "";        } else { -        if (opt_action_bool["backmatter"] -        && opt_action_bool["section_bookindex"]) { +        if (opt_action["backmatter"] +        && opt_action["section_bookindex"]) {            book_idx_tmp ~= line;          }        } @@ -4648,12 +4648,12 @@ template SiSUdocAbstraction() {      auto bookindex_build_abstraction_section(BI,N,B)(        BI bookindex_unordered_hashes,        N  obj_cite_number, -      B  opt_action_bool, +      B  opt_action,      ) {        debug(asserts) {          static assert(is(typeof(bookindex_unordered_hashes)                == string[][string][string]));          static assert(is(typeof(obj_cite_number)                           == int)); -        static assert(is(typeof(opt_action_bool)                           == bool[string])); +        static assert(is(typeof(opt_action)                                == bool[string]));        }        mixin SiSUnode;        mixin InternalMarkup; @@ -4670,8 +4670,8 @@ template SiSUdocAbstraction() {        auto node_para_int_ = node_metadata_para_int;        auto node_para_str_ = node_metadata_para_str;        if ((mainkeys.length > 0) -      && (opt_action_bool["backmatter"] -      && opt_action_bool["section_bookindex"])) { +      && (opt_action["backmatter"] +      && opt_action["section_bookindex"])) {          string bi_tmp_seg, bi_tmp_scroll;          string[] bi_tmp_tags;          comp_obj_heading_                       = comp_obj_heading_.init; @@ -4881,7 +4881,7 @@ template SiSUdocAbstraction() {      }      private auto endnote_objects(        int            obj_cite_number, -      bool[string]   opt_action_bool, +      bool[string]   opt_action,      )      in {      } @@ -4895,7 +4895,7 @@ template SiSUdocAbstraction() {        int[string] indent;        ObjGenericComposite comp_obj_heading_;        if ((endnotes_["notes"].length > 0) -      && (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"])) { +      && (opt_action["backmatter"] && opt_action["section_endnotes"])) {          comp_obj_heading_                       = comp_obj_heading_.init;          comp_obj_heading_.use                   = "backmatter";          comp_obj_heading_.is_of                 = "para"; @@ -4944,7 +4944,7 @@ template SiSUdocAbstraction() {          comp_obj_heading_.parent_lev_markup     = 0;          the_endnotes_section                    ~= comp_obj_heading_;        } -      if (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"]) { +      if (opt_action["backmatter"] && opt_action["section_endnotes"]) {          ObjGenericComposite comp_obj_endnote_;          comp_obj_endnote_                       = comp_obj_endnote_.init;          comp_obj_endnote_.use                   = "backmatter"; diff --git a/src/sdp/ao/abstraction.d b/src/sdp/ao/abstraction.d index 483ceb8..c592436 100644 --- a/src/sdp/ao/abstraction.d +++ b/src/sdp/ao/abstraction.d @@ -53,9 +53,9 @@ template SiSUabstraction() {      static assert(_make_and_meta.length==2);      /+ ↓ document abstraction: process document, return abstraction as tuple +/      auto da = SiSUdocAbstraction!()( -      (_header_body_inserts[headBody.body_content]), -      (_make_and_meta[makeMeta.make]), -      (_make_and_meta[makeMeta.meta]), +      _header_body_inserts[headBody.body_content], +      _make_and_meta[makeMeta.make], +      _make_and_meta[makeMeta.meta],        opts      );      static assert(!isTypeTuple!(da)); @@ -113,7 +113,7 @@ template SiSUabstraction() {          auto _k = _images;          return _k;        } -      auto opt_action_bool() { +      auto opt_action() {          bool[string] _k = opts;          return _k;        } diff --git a/src/sdp/ao/abstraction_summary.d b/src/sdp/ao/abstraction_summary.d index 2cc6967..2b909c7 100644 --- a/src/sdp/ao/abstraction_summary.d +++ b/src/sdp/ao/abstraction_summary.d @@ -20,7 +20,7 @@ template SiSUabstractionSummary() {        std.conv : to;      mixin InternalMarkup;      auto markup = InlineMarkup(); -    if (doc_matters.opt_action_bool["verbose"]) { +    if (doc_matters.opt_action["verbose"]) {        string[string] check = [          "last_obj_cite_number" : "NA [debug \"checkdoc\" not run]",        ]; diff --git a/src/sdp/ao/doc_debugs.d b/src/sdp/ao/doc_debugs.d index d42d903..419f5cd 100644 --- a/src/sdp/ao/doc_debugs.d +++ b/src/sdp/ao/doc_debugs.d @@ -458,10 +458,10 @@ template SiSUdebugs() {        ];      }      debug(checkdoc) { -      if ((doc_matters.opt_action_bool["debug"])) { +      if ((doc_matters.opt_action["debug"])) {          debug(checkdoc) {            if (auto mfn=match(doc_matters.source_filename, rgx.src_fn)) { -            if (doc_matters.opt_action_bool["assertions"]) { +            if (doc_matters.opt_action["assertions"]) {                switch (mfn.captures[2]) {                // live manual:                case "live-manual.ssm": diff --git a/src/sdp/output/epub3.d b/src/sdp/output/epub3.d index 00814d4..25f25d5 100644 --- a/src/sdp/output/epub3.d +++ b/src/sdp/output/epub3.d @@ -356,13 +356,13 @@ template outputEPub3() {              doc_epub3_endnotes[segment_filename] ~= t[1];              break;            case 8: .. case 9: -            if ((doc_matters.opt_action_bool["debug"])) { +            if ((doc_matters.opt_action["debug"])) {                writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup);                writeln(__FILE__, ":", __LINE__, ": ", obj.text);              }              break;            default: -            if ((doc_matters.opt_action_bool["debug"])) { +            if ((doc_matters.opt_action["debug"])) {                writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup);              }              break; @@ -380,14 +380,14 @@ template outputEPub3() {                  doc_epub3_endnotes[segment_filename] ~= t[1];                  break;                default: -                if ((doc_matters.opt_action_bool["debug"])) { +                if ((doc_matters.opt_action["debug"])) {                    writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                  }                  break;                }                break;              default: -              if ((doc_matters.opt_action_bool["debug"])) { +              if ((doc_matters.opt_action["debug"])) {                  writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);                }                break; @@ -403,7 +403,7 @@ template outputEPub3() {                  doc_epub3_endnotes[segment_filename] ~= t[1];                  break;                default: -                if ((doc_matters.opt_action_bool["debug"])) { +                if ((doc_matters.opt_action["debug"])) {                    writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                  }                  break; @@ -442,14 +442,14 @@ template outputEPub3() {                  doc_epub3_endnotes[segment_filename] ~= t[1];                  break;                default: -                if ((doc_matters.opt_action_bool["debug"])) { +                if ((doc_matters.opt_action["debug"])) {                    writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                  }                  break;                }                break;              default: -              if ((doc_matters.opt_action_bool["debug"])) { +              if ((doc_matters.opt_action["debug"])) {                  writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);                }                break; @@ -485,14 +485,14 @@ template outputEPub3() {                  doc_epub3_endnotes[segment_filename] ~= t[1];                  break;                default: -                if ((doc_matters.opt_action_bool["debug"])) { +                if ((doc_matters.opt_action["debug"])) {                    writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                  }                  break;                }                break;              default: -              if ((doc_matters.opt_action_bool["debug"])) { +              if ((doc_matters.opt_action["debug"])) {                  writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);                }                break; @@ -501,7 +501,7 @@ template outputEPub3() {            case "comment":              break;            default: -            if ((doc_matters.opt_action_bool["debug"])) { +            if ((doc_matters.opt_action["debug"])) {                writeln(__FILE__, ":", __LINE__, ": ", obj.use);              }              break; diff --git a/src/sdp/output/html.d b/src/sdp/output/html.d index b12be65..8903e51 100644 --- a/src/sdp/output/html.d +++ b/src/sdp/output/html.d @@ -37,14 +37,14 @@ template outputHTML() {                doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);                break;              default: -              if ((doc_matters.opt_action_bool["debug"])) { +              if ((doc_matters.opt_action["debug"])) {                  writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                }                break;              }              break;            default: -            if ((doc_matters.opt_action_bool["debug"])) { +            if ((doc_matters.opt_action["debug"])) {                writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);              }              break; @@ -61,7 +61,7 @@ template outputHTML() {                doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);                break;              default: -              if ((doc_matters.opt_action_bool["debug"])) { +              if ((doc_matters.opt_action["debug"])) {                  writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                }                break; @@ -90,14 +90,14 @@ template outputHTML() {                doc_html ~= xhtml_format.table(obj, _txt);                break;              default: -              if ((doc_matters.opt_action_bool["debug"])) { +              if ((doc_matters.opt_action["debug"])) {                  writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                }                break;              }              break;            default: -            if ((doc_matters.opt_action_bool["debug"])) { +            if ((doc_matters.opt_action["debug"])) {                writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);              }              break; @@ -127,14 +127,14 @@ template outputHTML() {                doc_html ~= xhtml_format.para_scroll(obj, _txt, suffix);                break;              default: -              if ((doc_matters.opt_action_bool["debug"])) { +              if ((doc_matters.opt_action["debug"])) {                  writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                }                break;              }              break;            default: -            if ((doc_matters.opt_action_bool["debug"])) { +            if ((doc_matters.opt_action["debug"])) {                writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);              }              break; @@ -143,7 +143,7 @@ template outputHTML() {          case "comment":            break;          default: -          if ((doc_matters.opt_action_bool["debug"])) { +          if ((doc_matters.opt_action["debug"])) {              writeln(__FILE__, ":", __LINE__, ": ", obj.use);              writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);              writeln(__FILE__, ":", __LINE__, ": ", obj.text); @@ -251,13 +251,13 @@ template outputHTML() {              doc_html_endnotes[segment_filename] ~= t[1];              break;            case 8: .. case 9: -            if ((doc_matters.opt_action_bool["debug"])) { +            if ((doc_matters.opt_action["debug"])) {                writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup);                writeln(__FILE__, ":", __LINE__, ": ", obj.text);              }              break;            default: -            if ((doc_matters.opt_action_bool["debug"])) { +            if ((doc_matters.opt_action["debug"])) {                writeln(__FILE__, ":", __LINE__, ": ", obj.is_a, ": ", obj.heading_lev_markup);              }              break; @@ -274,14 +274,14 @@ template outputHTML() {                  doc_html[segment_filename] ~= to!string(t[0]);                  break;                default: -                if ((doc_matters.opt_action_bool["debug"])) { +                if ((doc_matters.opt_action["debug"])) {                    writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                  }                  break;                }                break;              default: -              if ((doc_matters.opt_action_bool["debug"])) { +              if ((doc_matters.opt_action["debug"])) {                  writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                }                break; @@ -297,7 +297,7 @@ template outputHTML() {                  doc_html_endnotes[segment_filename] ~= t[1];                  break;                default: -                if ((doc_matters.opt_action_bool["debug"])) { +                if ((doc_matters.opt_action["debug"])) {                    writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                  }                  break; @@ -335,14 +335,14 @@ template outputHTML() {                  doc_html_endnotes[segment_filename] ~= "";                  break;                default: -                if ((doc_matters.opt_action_bool["debug"])) { +                if ((doc_matters.opt_action["debug"])) {                    writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                  }                  break;                }                break;              default: -              if ((doc_matters.opt_action_bool["debug"])) { +              if ((doc_matters.opt_action["debug"])) {                  writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);                }                break; @@ -378,14 +378,14 @@ template outputHTML() {                  doc_html_endnotes[segment_filename] ~= t[1];                  break;                default: -                if ((doc_matters.opt_action_bool["debug"])) { +                if ((doc_matters.opt_action["debug"])) {                    writeln(__FILE__, ":", __LINE__, ": ", obj.is_a);                  }                  break;                }                break;              default: -              if ((doc_matters.opt_action_bool["debug"])) { +              if ((doc_matters.opt_action["debug"])) {                  writeln(__FILE__, ":", __LINE__, ": ", obj.is_of);                }                break; @@ -394,7 +394,7 @@ template outputHTML() {            case "comment":              break;            default: -            if ((doc_matters.opt_action_bool["debug"])) { +            if ((doc_matters.opt_action["debug"])) {                writeln(__FILE__, ":", __LINE__, ": ", obj.use);              }              break; diff --git a/src/sdp/output/hub.d b/src/sdp/output/hub.d index 79b8996..fd64851 100644 --- a/src/sdp/output/hub.d +++ b/src/sdp/output/hub.d @@ -14,64 +14,63 @@ template outputHub() {    void outputHub(D,I)(D doc_abstraction, I doc_matters) {      mixin SiSUoutputRgxInit;      auto rgx = Rgx(); -    if ((doc_matters.opt_action_bool["verbose"])) { +    if ((doc_matters.opt_action["verbose"])) {        writeln(doc_matters.keys_seq.seg);      } -    if ((doc_matters.opt_action_bool["source"]) -    || (doc_matters.opt_action_bool["sisupod"])) { -      if ((doc_matters.opt_action_bool["verbose"]) -      && (doc_matters.opt_action_bool["source"])) -        { write("sisu source processing... "); } -      if ((doc_matters.opt_action_bool["verbose"]) -      && (doc_matters.opt_action_bool["sisupod"])) -        { write("sisupod source processing... "); } +    if ((doc_matters.opt_action["source"]) +    || (doc_matters.opt_action["sisupod"])) { +      if ((doc_matters.opt_action["verbose"]) +      && (doc_matters.opt_action["source"])) +        { writeln("sisu source processing... "); } +      if ((doc_matters.opt_action["verbose"]) +      && (doc_matters.opt_action["sisupod"])) +        { writeln("sisupod source processing... "); }        SiSUpod!()(doc_matters); -      if ((doc_matters.opt_action_bool["verbose"]) -      && (doc_matters.opt_action_bool["source"])) +      if ((doc_matters.opt_action["verbose"]) +      && (doc_matters.opt_action["source"]))          { writeln("sisu source done"); } -      if ((doc_matters.opt_action_bool["verbose"]) -      && (doc_matters.opt_action_bool["sisupod"])) +      if ((doc_matters.opt_action["verbose"]) +      && (doc_matters.opt_action["sisupod"]))          { writeln("sisupod done"); }      } -    if (doc_matters.opt_action_bool["text"]) { +    if (doc_matters.opt_action["text"]) {        /+ mixin outputText; +/ -      writeln("text processing"); +      if ((doc_matters.opt_action["verbose"])) { writeln("text processing... "); }      } -    if (doc_matters.opt_action_bool["html"]) { -      if ((doc_matters.opt_action_bool["verbose"])) { write("html scroll processing... "); } +    if (doc_matters.opt_action["html"]) { +      if ((doc_matters.opt_action["verbose"])) { writeln("html scroll processing... "); }        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... "); } +      if ((doc_matters.opt_action["verbose"])) { writeln("html scroll done"); } +      if ((doc_matters.opt_action["verbose"])) { writeln("html seg processing... "); }        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"]) { -      if ((doc_matters.opt_action_bool["verbose"])) { write("html seg processing... "); } +      if ((doc_matters.opt_action["verbose"])) { writeln("html seg done"); } +    } else if (doc_matters.opt_action["html-seg"]) { +      if ((doc_matters.opt_action["verbose"])) { writeln("html seg processing... "); }        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"]) { -      if ((doc_matters.opt_action_bool["verbose"])) { write("html scroll processing... "); } +      if ((doc_matters.opt_action["verbose"])) { writeln("html seg done"); } +    } else if (doc_matters.opt_action["html-scroll"]) { +      if ((doc_matters.opt_action["verbose"])) { writeln("html scroll processing... "); }        outputHTML!().scroll(doc_abstraction, doc_matters); -      if ((doc_matters.opt_action_bool["verbose"])) { writeln("html scroll done"); } +      if ((doc_matters.opt_action["verbose"])) { writeln("html scroll done"); }      } -    if (doc_matters.opt_action_bool["epub"]) { -      if ((doc_matters.opt_action_bool["verbose"])) { write("epub3 processing... "); } +    if (doc_matters.opt_action["epub"]) { +      if ((doc_matters.opt_action["verbose"])) { writeln("epub3 processing... "); }        outputEPub3!()(doc_abstraction, doc_matters);        // epub.css_write; -      if ((doc_matters.opt_action_bool["verbose"])) { writeln("epub3 done"); } +      if ((doc_matters.opt_action["verbose"])) { writeln("epub3 done"); }      } -    if (doc_matters.opt_action_bool["pdf"]) { +    if (doc_matters.opt_action["pdf"]) {        /+ mixin outputPDF; +/        writeln("pdf processing");      } -    if (doc_matters.opt_action_bool["odt"]) { +    if (doc_matters.opt_action["odt"]) {        /+ mixin outputODT; +/        writeln("odt processing");      } -    if (doc_matters.opt_action_bool["sqlite"]) { -      /+ mixin outputSQLite; +/ -      writeln("sqlite processing"); +    if (doc_matters.opt_action["sqlite"]) { +      if ((doc_matters.opt_action["verbose"])) { writeln("sqlite processing... "); }      } -    if (doc_matters.opt_action_bool["postgresql"]) { +    if (doc_matters.opt_action["postgresql"]) {        /+ mixin outputPostgreSQL; +/        writeln("pgsql processing");      } diff --git a/src/sdp/output/source_sisupod.d b/src/sdp/output/source_sisupod.d index 6c326ac..bb8ea80 100644 --- a/src/sdp/output/source_sisupod.d +++ b/src/sdp/output/source_sisupod.d @@ -27,7 +27,7 @@ template SiSUpod() {      assert (doc_matters.source_filename.match(rgx.src_fn));      try {        /+ create directory structure +/ -      if (doc_matters.opt_action_bool["source"]) { +      if (doc_matters.opt_action["source"]) {          if (!exists(pth_sisupod_filesystem.text_root(doc_matters.source_filename))) {            pth_sisupod_filesystem.text_root(doc_matters.source_filename).mkdirRecurse;          } @@ -68,10 +68,10 @@ template SiSUpod() {            auto fn_out =  pth_sisupod.image_root(doc_matters.source_filename).to!string ~ "/" ~ image;            auto fn_out_filesystem =  pth_sisupod_filesystem.image_root(doc_matters.source_filename).to!string ~ "/" ~ image;            if (exists(fn_src)) { -            if (doc_matters.opt_action_bool["source"]) { +            if (doc_matters.opt_action["source"]) {                fn_src.copy(fn_out_filesystem);              } -            if (doc_matters.opt_action_bool["sisupod"]) { +            if (doc_matters.opt_action["sisupod"]) {                auto zip_arc_member_file = new ArchiveMember();                zip_arc_member_file.name = fn_out;                auto zip_data = new OutBuffer(); @@ -88,10 +88,10 @@ template SiSUpod() {          auto fn_out = pth_sisupod.conf_root(doc_matters.source_filename).to!string ~ "/" ~ "sisu_document_make";          auto fn_out_filesystem = pth_sisupod_filesystem.conf_root(doc_matters.source_filename).to!string ~ "/" ~ "sisu_document_make";          if (exists(fn_src)) { -          if (doc_matters.opt_action_bool["source"]) { +          if (doc_matters.opt_action["source"]) {              fn_src.copy(fn_out_filesystem);            } -          if (doc_matters.opt_action_bool["sisupod"]) { +          if (doc_matters.opt_action["sisupod"]) {              auto zip_arc_member_file = new ArchiveMember();              zip_arc_member_file.name = fn_out;              auto zip_data = new OutBuffer(); @@ -107,10 +107,10 @@ template SiSUpod() {          auto fn_out = pth_sisupod.fn_doc(doc_matters.source_filename).to!string;          auto fn_out_filesystem = pth_sisupod_filesystem.fn_doc(doc_matters.source_filename).to!string;          if (exists(fn_src)) { -          if (doc_matters.opt_action_bool["source"]) { +          if (doc_matters.opt_action["source"]) {              fn_src.copy(fn_out_filesystem);            } -          if (doc_matters.opt_action_bool["sisupod"]) { +          if (doc_matters.opt_action["sisupod"]) {              auto zip_arc_member_file = new ArchiveMember();              zip_arc_member_file.name = fn_out;              auto zip_data = new OutBuffer(); @@ -142,10 +142,10 @@ template SiSUpod() {                insert_file,              ).to!string;              if (exists(fn_src)) { -              if (doc_matters.opt_action_bool["source"]) { +              if (doc_matters.opt_action["source"]) {                  fn_src.copy(fn_out_filesystem);                } -              if (doc_matters.opt_action_bool["sisupod"]) { +              if (doc_matters.opt_action["sisupod"]) {                  auto zip_arc_member_file = new ArchiveMember();                  zip_arc_member_file.name = insert_file;                  auto zip_data = new OutBuffer(); diff --git a/src/sdp/sdp.d b/src/sdp/sdp.d index 234bc3f..3816f9b 100755 --- a/src/sdp/sdp.d +++ b/src/sdp/sdp.d @@ -59,7 +59,7 @@ void main(string[] args) {        );      }    } -  bool[string] _opt_action_bool = [ +  bool[string] opts = [      "assertions"         : false,      "concordance"        : false,      "debug"              : false, @@ -67,8 +67,8 @@ void main(string[] args) {      "docbook"            : false,      "epub"               : false,      "html"               : false, -    "html_seg"           : false, -    "html_scroll"        : false, +    "html-seg"           : false, +    "html-scroll"        : false,      "manifest"           : false,      "ocn"                : true,      "odt"                : false, @@ -81,8 +81,8 @@ void main(string[] args) {      "text"               : false,      "verbose"            : false,      "xhtml"              : false, -    "xml_dom"            : false, -    "xml_sax"            : false, +    "xml-dom"            : false, +    "xml-sax"            : false,      "section_toc"        : true,      "section_body"       : true,      "section_endnotes"   : true, @@ -91,50 +91,50 @@ void main(string[] args) {      "section_bookindex"  : true,      "section_blurb"      : true,      "backmatter"         : true, -    "skip_output"        : false, +    "skip-output"        : false,    ];    auto helpInfo = getopt(args,      std.getopt.config.passThrough, -    "assert",             "--assert set optional assertions on",                        &_opt_action_bool["assertions"], -    "concordance",        "--concordance file for document",                            &_opt_action_bool["concordance"], -    "debug",             "--debug only relevant when debug options compiled in",        &_opt_action_bool["debug"], -    "digest",             "--digest hash digest for each object",                       &_opt_action_bool["digest"], -    "docbook",            "--docbook process docbook output",                           &_opt_action_bool["docbook"], -    "epub",               "--epub process epub output",                                 &_opt_action_bool["epub"], -    "html",               "--html process html output",                                 &_opt_action_bool["html"], -    "html_seg",           "--html-seg process html output",                             &_opt_action_bool["html_seg"], -    "html_scroll",        "--html-seg process html output",                             &_opt_action_bool["html_scroll"], -    "manifest",           "--manifest process manifest output",                         &_opt_action_bool["manifest"], -    "ocn",                "--ocn object cite numbers (default)",                        &_opt_action_bool["ocn"], -    "odf",                "--odf process odf:odt output",                               &_opt_action_bool["odt"], -    "odt",                "--odt process odf:odt output",                               &_opt_action_bool["odt"], -    "pdf",                "--pdf process pdf output",                                   &_opt_action_bool["pdf"], -    "pg",                 "--pg process postgresql output",                             &_opt_action_bool["postgresql"], -    "postgresql",         "--postgresql process postgresql output",                     &_opt_action_bool["postgresql"], -    "qrcode",             "--qrcode with document metadata",                            &_opt_action_bool["qrcode"], -    "sisupod",            "--sisupod sisupod source content bundled",                   &_opt_action_bool["sisupod"], -    "source",             "--source markup source text content",                        &_opt_action_bool["source"], -    "sqlite",             "--sqlite process sqlite output",                             &_opt_action_bool["sqlite"], -    "text",               "--text process text output",                                 &_opt_action_bool["text"], -    "txt",                "--txt process text output",                                  &_opt_action_bool["text"], -    "verbose|v",          "--verbose output to terminal",                               &_opt_action_bool["verbose"], -    "xhtml",              "--xhtml process xhtml output",                               &_opt_action_bool["xhtml"], -    "xml-dom",            "--xml-dom process xml dom output",                           &_opt_action_bool["xml_dom"], -    "xml-sax",            "--xml-sax process xml sax output",                           &_opt_action_bool["xml_sax"], -    "section-toc",        "--section-toc process table of contents (default)",          &_opt_action_bool["section_toc"], -    "section-body",       "--section-body process document body (default)",             &_opt_action_bool["section_body"], -    "section-endnotes",   "--section-endnotes process document endnotes (default)",     &_opt_action_bool["section_endnotes"], -    "section-glossary",   "--section-glossary process document glossary (default)",     &_opt_action_bool["section_glossary"], -    "section-biblio",     "--section-biblio process document biblio (default)",         &_opt_action_bool["section_biblio"], -    "section-bookindex",  "--section-bookindex process document bookindex (default)",   &_opt_action_bool["section_bookindex"], -    "section-blurb",      "--section-blurb process document blurb (default)",           &_opt_action_bool["section_blurb"], -    "backmatter",         "--section-backmatter process document backmatter (default)", &_opt_action_bool["backmatter"], -    "skip_output",        "--skip-output",                                              &_opt_action_bool["skip_output"], +    "assert",             "--assert set optional assertions on",                        &opts["assertions"], +    "concordance",        "--concordance file for document",                            &opts["concordance"], +    "debug",              "--debug only relevant when debug options compiled in",       &opts["debug"], +    "digest",             "--digest hash digest for each object",                       &opts["digest"], +    "docbook",            "--docbook process docbook output",                           &opts["docbook"], +    "epub",               "--epub process epub output",                                 &opts["epub"], +    "html",               "--html process html output",                                 &opts["html"], +    "html-seg",           "--html-seg process html output",                             &opts["html-seg"], +    "html-scroll",        "--html-seg process html output",                             &opts["html-scroll"], +    "manifest",           "--manifest process manifest output",                         &opts["manifest"], +    "ocn",                "--ocn object cite numbers (default)",                        &opts["ocn"], +    "odf",                "--odf process odf:odt output",                               &opts["odt"], +    "odt",                "--odt process odf:odt output",                               &opts["odt"], +    "pdf",                "--pdf process pdf output",                                   &opts["pdf"], +    "pg",                 "--pg process postgresql output",                             &opts["postgresql"], +    "postgresql",         "--postgresql process postgresql output",                     &opts["postgresql"], +    "qrcode",             "--qrcode with document metadata",                            &opts["qrcode"], +    "sisupod",            "--sisupod sisupod source content bundled",                   &opts["sisupod"], +    "source",             "--source markup source text content",                        &opts["source"], +    "sqlite",             "--sqlite process sqlite output",                             &opts["sqlite"], +    "text",               "--text process text output",                                 &opts["text"], +    "txt",                "--txt process text output",                                  &opts["text"], +    "verbose|v",          "--verbose output to terminal",                               &opts["verbose"], +    "xhtml",              "--xhtml process xhtml output",                               &opts["xhtml"], +    "xml-dom",            "--xml-dom process xml dom output",                           &opts["xml-dom"], +    "xml-sax",            "--xml-sax process xml sax output",                           &opts["xml-sax"], +    "section-toc",        "--section-toc process table of contents (default)",          &opts["section_toc"], +    "section-body",       "--section-body process document body (default)",             &opts["section_body"], +    "section-endnotes",   "--section-endnotes process document endnotes (default)",     &opts["section_endnotes"], +    "section-glossary",   "--section-glossary process document glossary (default)",     &opts["section_glossary"], +    "section-biblio",     "--section-biblio process document biblio (default)",         &opts["section_biblio"], +    "section-bookindex",  "--section-bookindex process document bookindex (default)",   &opts["section_bookindex"], +    "section-blurb",      "--section-blurb process document blurb (default)",           &opts["section_blurb"], +    "backmatter",         "--section-backmatter process document backmatter (default)", &opts["backmatter"], +    "skip-output",        "--skip-output",                                              &opts["skip-output"],    );    if (helpInfo.helpWanted) {      defaultGetoptPrinter("Some information about the program.", helpInfo.options);    } -  foreach(arg; args) { +  foreach(arg; args[1..$]) {      if (arg.match(rgx.flag_action)) {        flag_action ~= " " ~ arg;   // flags not taken by getopt      } else if (arg.match(rgx.src_pth)) { @@ -177,23 +177,23 @@ void main(string[] args) {          "not a sisu markup filename"        );        auto t = -        SiSUabstraction!()(fn_src, _opt_action_bool, env); +        SiSUabstraction!()(fn_src, opts, env);        static assert(!isTypeTuple!(t));        static assert(t.length==2);        auto doc_abstraction = t[dAM.abstraction];        auto doc_matters = t[dAM.matters];        /+ ↓ debugs +/ -      if (doc_matters.opt_action_bool["verbose"]) { +      if (doc_matters.opt_action["verbose"]) {          SiSUabstractionSummary!()(doc_abstraction, doc_matters);        }        /+ ↓ debugs +/ -      if ((doc_matters.opt_action_bool["debug"]) -      || (doc_matters.opt_action_bool["verbose"]) +      if ((doc_matters.opt_action["debug"]) +      || (doc_matters.opt_action["verbose"])        ) {          SiSUdebugs!()(doc_abstraction, doc_matters);        }        /+ ↓ output hub +/ -      if (!(_opt_action_bool["skip_output"])) { +      if (!(opts["skip-output"])) {          outputHub!()(doc_abstraction, doc_matters);        }        scope(exit) { | 
