diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/sdp/ao_abstract_doc_source.d | 398 | 
1 files changed, 229 insertions, 169 deletions
| diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d index 2848eb9..769d93c 100644 --- a/src/sdp/ao_abstract_doc_source.d +++ b/src/sdp/ao_abstract_doc_source.d @@ -522,31 +522,44 @@ template SiSUdocAbstraction() {            writeln(o);          }        } -      the_bibliography_section ~= -        set_abstract_object.contents_heading( -          "Bibliography",   // nugget/object -          "",               // attrib -          0,                // obj_cite_number -          [""],             // anchor tag -          "B",              // lev -          1,                // lev_markup_number -          1,                // lev_collapsed_number -        ); -      the_bibliography_section ~= -        set_abstract_object.contents_heading( -          "Bibliography",   // nugget/object -          "",               // attrib -          0,                // obj_cite_number -          ["bibliography"], // anchor tag -          "1",              // lev -          4,                // lev_markup_number -          2,                // lev_collapsed_number -        );        auto biblio_unsorted_incomplete = biblio_arr_json.dup;        // destroy(biblio_arr_json);        auto biblio = Bibliography();        auto biblio_ordered =          biblio._bibliography_(biblio_unsorted_incomplete, bib_arr_json); +      if (biblio_ordered.length > 0) { +        the_bibliography_section ~= +          set_abstract_object.contents_heading( +            "Bibliography",   // nugget/object +            "",               // attrib +            0,                // obj_cite_number +            [""],             // anchor tag +            "B",              // lev +            1,                // lev_markup_number +            1,                // lev_collapsed_number +          ); +        the_bibliography_section ~= +          set_abstract_object.contents_heading( +            "Bibliography",   // nugget/object +            "",               // attrib +            0,                // obj_cite_number +            ["bibliography"], // anchor tag +            "1",              // lev +            4,                // lev_markup_number +            2,                // lev_collapsed_number +          ); +      } else { +        the_bibliography_section ~= +          set_abstract_object.contents_heading( +            "(skip) there is no Bibliography",   // nugget/object +            "",               // attrib +            0,                // obj_cite_number +            [""],             // anchor tag +            "B",              // lev +            1,                // lev_markup_number +            1,                // lev_collapsed_number +          ); +      }        string out_;        foreach (entry; biblio_ordered) {          out_ = format( @@ -2849,79 +2862,66 @@ template SiSUdocAbstraction() {          auto set_abstract_object = ObjectAbstractSet();          auto mainkeys =            bookindex_unordered_hashes.byKey.array.sort().release; -        string bi_tmp_seg, bi_tmp_scroll;          ObjComposite[][string] bookindex_section; -        attrib=""; -        lev="B"; -        lev_markup_number=1; -        lev_collapsed_number=1; -        bookindex_section["scroll"] ~= -          set_abstract_object.contents_heading( -            "Book Index", -            attrib, -            obj_cite_number, -            [], -            to!string(lev), -            to!int(lev_markup_number), -            to!int(lev_collapsed_number) -          ); -        bookindex_section["seg"] ~= -          set_abstract_object.contents_heading( -            "Book Index", -            attrib, -            obj_cite_number, -            [], -            to!string(lev), -            to!int(lev_markup_number), -            to!int(lev_collapsed_number) -          ); -        ++obj_cite_number; -        ++mkn; -        attrib=""; -        lev="1"; -        lev_markup_number=4; -        lev_collapsed_number=2; -        bookindex_section["scroll"] ~= -          set_abstract_object.contents_heading( -            "Index", -            attrib, -            obj_cite_number, -            ["book_index"], -            to!string(lev), -            to!int(lev_markup_number), -            to!int(lev_collapsed_number) -          ); -        bookindex_section["seg"] ~= -          set_abstract_object.contents_heading( -            "Index", -            attrib, -            obj_cite_number, -            ["book_index"], -            to!string(lev), -            to!int(lev_markup_number), -            to!int(lev_collapsed_number) -          ); -        ++obj_cite_number; -        ++mkn; -        foreach (mainkey; mainkeys) { -          bi_tmp_scroll = "!{" ~ mainkey ~ "}! "; -          bi_tmp_seg = "!{" ~ mainkey ~ "}! "; -          foreach (ref_; bookindex_unordered_hashes[mainkey]["_a"]) { -            auto go = replaceAll(ref_, rgx.book_index_go, "$1"); -            bi_tmp_scroll ~= (" {" ~ ref_ ~ "}#" ~ go ~ ", "); -            bi_tmp_seg ~= (segment_object_belongs_to.empty) -            ? (" {" ~ ref_ ~ "}#" ~ go ~ ", ") -            : (" {" ~ ref_ ~ "}../" ~ segment_object_belongs_to ~ ".fn_suffix#" ~ go ~ ", "); -          } -          bi_tmp_scroll ~= " \\\\\n    "; -          bi_tmp_seg ~= " \\\\\n    "; -          bookindex_unordered_hashes[mainkey].remove("_a"); -          auto subkeys = -            bookindex_unordered_hashes[mainkey].byKey.array.sort().release; -          foreach (subkey; subkeys) { -            bi_tmp_scroll ~= subkey ~ ", "; -            bi_tmp_seg ~= subkey ~ ", "; -            foreach (ref_; bookindex_unordered_hashes[mainkey][subkey]) { +        if (mainkeys.length > 0) { +          string bi_tmp_seg, bi_tmp_scroll; +          attrib=""; +          lev="B"; +          lev_markup_number=1; +          lev_collapsed_number=1; +          bookindex_section["scroll"] ~= +            set_abstract_object.contents_heading( +              "Book Index", +              attrib, +              obj_cite_number, +              [], +              to!string(lev), +              lev_markup_number, +              lev_collapsed_number +            ); +          bookindex_section["seg"] ~= +            set_abstract_object.contents_heading( +              "Book Index", +              attrib, +              obj_cite_number, +              [], +              to!string(lev), +              lev_markup_number, +              lev_collapsed_number +            ); +          ++obj_cite_number; +          ++mkn; +          // 1~ Index +          attrib=""; +          lev="1"; +          lev_markup_number=4; +          lev_collapsed_number=2; +          bookindex_section["scroll"] ~= +            set_abstract_object.contents_heading( +              "Index", +              attrib, +              obj_cite_number, +              ["book_index"], +              to!string(lev), +              lev_markup_number, +              lev_collapsed_number +            ); +          bookindex_section["seg"] ~= +            set_abstract_object.contents_heading( +              "Index", +              attrib, +              obj_cite_number, +              ["book_index"], +              to!string(lev), +              lev_markup_number, +              lev_collapsed_number +            ); +          ++obj_cite_number; +          ++mkn; +          foreach (mainkey; mainkeys) { +            bi_tmp_scroll = "!{" ~ mainkey ~ "}! "; +            bi_tmp_seg = "!{" ~ mainkey ~ "}! "; +            foreach (ref_; bookindex_unordered_hashes[mainkey]["_a"]) {                auto go = replaceAll(ref_, rgx.book_index_go, "$1");                bi_tmp_scroll ~= (" {" ~ ref_ ~ "}#" ~ go ~ ", ");                bi_tmp_seg ~= (segment_object_belongs_to.empty) @@ -2930,36 +2930,73 @@ template SiSUdocAbstraction() {              }              bi_tmp_scroll ~= " \\\\\n    ";              bi_tmp_seg ~= " \\\\\n    "; -            ++skn; +            bookindex_unordered_hashes[mainkey].remove("_a"); +            auto subkeys = +              bookindex_unordered_hashes[mainkey].byKey.array.sort().release; +            foreach (subkey; subkeys) { +              bi_tmp_scroll ~= subkey ~ ", "; +              bi_tmp_seg ~= subkey ~ ", "; +              foreach (ref_; bookindex_unordered_hashes[mainkey][subkey]) { +                auto go = replaceAll(ref_, rgx.book_index_go, "$1"); +                bi_tmp_scroll ~= (" {" ~ ref_ ~ "}#" ~ go ~ ", "); +                bi_tmp_seg ~= (segment_object_belongs_to.empty) +                ? (" {" ~ ref_ ~ "}#" ~ go ~ ", ") +                : (" {" ~ ref_ ~ "}../" ~ segment_object_belongs_to ~ ".fn_suffix#" ~ go ~ ", "); +              } +              bi_tmp_scroll ~= " \\\\\n    "; +              bi_tmp_seg ~= " \\\\\n    "; +              ++skn; +            } +            bi_tmp_scroll = replaceFirst(bi_tmp_scroll, rgx.trailing_linebreak, ""); +            bi_tmp_seg = replaceFirst(bi_tmp_seg, rgx.trailing_linebreak, ""); +            type="para"; +            attrib=""; +            indent=[ +              "hang_position" : "0", +              "base_position" : "1", +            ]; +            bookindex_section["scroll"] ~= +              set_abstract_object.contents_para( +                type, +                bi_tmp_scroll, +                attrib, +                obj_cite_number, +                indent, +                false +              ); +            bookindex_section["seg"] ~= +              set_abstract_object.contents_para( +                type, +                bi_tmp_seg, +                attrib, +                obj_cite_number, +                indent, +                false +              ); +            ++obj_cite_number; +            ++mkn;            } -          bi_tmp_scroll = replaceFirst(bi_tmp_scroll, rgx.trailing_linebreak, ""); -          bi_tmp_seg = replaceFirst(bi_tmp_seg, rgx.trailing_linebreak, ""); -          type="para"; -          attrib=""; -          indent=[ -            "hang_position" : "0", -            "base_position" : "1", -          ]; +        } else {                              // no book index, (figure out what to do here)            bookindex_section["scroll"] ~= -            set_abstract_object.contents_para( -              type, -              bi_tmp_scroll, -              attrib, -              obj_cite_number, -              indent, -              false +            set_abstract_object.contents_heading( +              "(skip) there is no Book Index", +              "",                             // attrib, +              0, +              [""], +              "B", +              1, +              1              );            bookindex_section["seg"] ~= -            set_abstract_object.contents_para( -              type, -              bi_tmp_seg, -              attrib, -              obj_cite_number, -              indent, -              false +            set_abstract_object.contents_heading( +              "(skip) there is no Book Index", +              "",                             // attrib, +              0, +              [""], +              "B", +              1, +              1              ); -          ++obj_cite_number; -          ++mkn;          }          auto t = tuple(bookindex_section, obj_cite_number);          return t; @@ -3037,58 +3074,81 @@ template SiSUdocAbstraction() {          string lev, lev_markup_number, lev_collapsed_number;          string attrib;          string[string] indent; -        attrib=""; -        lev="B"; -        lev_markup_number="1"; -        lev_collapsed_number="1"; -        the_endnotes_section["seg"] ~= -          set_abstract_object.contents_heading( -            "Endnotes", -            attrib, -            obj_cite_number, -            [], -            to!string(lev), -            to!int(lev_markup_number), -            to!int(lev_collapsed_number) -          ); -        the_endnotes_section["scroll"] ~= -          set_abstract_object.contents_heading( -            "Endnotes", -            attrib, -            obj_cite_number, -            [], -            to!string(lev), -            to!int(lev_markup_number), -            to!int(lev_collapsed_number) -          ); -        ++obj_cite_number; -        ++mkn; -        attrib=""; -        lev="1"; -        lev_markup_number="4"; -        lev_collapsed_number="2"; -        the_endnotes_section["seg"] ~= -          set_abstract_object.contents_heading( -            "Endnotes", -            attrib, -            obj_cite_number, -            ["endnotes"], -            to!string(lev), -            to!int(lev_markup_number), -            to!int(lev_collapsed_number) -          ); -        the_endnotes_section["scroll"] ~= -          set_abstract_object.contents_heading( -            "Endnotes", -            attrib, -            obj_cite_number, -            ["endnotes"], -            to!string(lev), -            to!int(lev_markup_number), -            to!int(lev_collapsed_number) -          ); -        ++obj_cite_number; -        ++mkn; +        if (endnotes_["seg"].length > 0) { +          attrib=""; +          lev="B"; +          lev_markup_number="1"; +          lev_collapsed_number="1"; +          the_endnotes_section["seg"] ~= +            set_abstract_object.contents_heading( +              "Endnotes", +              attrib, +              obj_cite_number, +              [], +              to!string(lev), +              to!int(lev_markup_number), +              to!int(lev_collapsed_number) +            ); +          the_endnotes_section["scroll"] ~= +            set_abstract_object.contents_heading( +              "Endnotes", +              attrib, +              obj_cite_number, +              [], +              to!string(lev), +              to!int(lev_markup_number), +              to!int(lev_collapsed_number) +            ); +          ++obj_cite_number; +          ++mkn; +          attrib=""; +          lev="1"; +          lev_markup_number="4"; +          lev_collapsed_number="2"; +          the_endnotes_section["seg"] ~= +            set_abstract_object.contents_heading( +              "Endnotes", +              attrib, +              obj_cite_number, +              ["endnotes"], +              to!string(lev), +              to!int(lev_markup_number), +              to!int(lev_collapsed_number) +            ); +          the_endnotes_section["scroll"] ~= +            set_abstract_object.contents_heading( +              "Endnotes", +              attrib, +              obj_cite_number, +              ["endnotes"], +              to!string(lev), +              to!int(lev_markup_number), +              to!int(lev_collapsed_number) +            ); +          ++obj_cite_number; +          ++mkn; +        } else { +          the_endnotes_section["seg"] ~= +            set_abstract_object.contents_heading( +              "(skip) there are no Endnotes", +              "",                             // attrib, +              0, +              [""], +              "B", +              1, +              1 +            ); +          the_endnotes_section["scroll"] ~= +            set_abstract_object.contents_heading( +              "(skip) there are no Endnotes", +              "",                             // attrib, +              0, +              [""], +              "B", +              1, +              1 +            ); +        }          foreach (endnote; endnotes_["seg"]) {            attrib="";            the_endnotes_section["seg"] ~= | 
