diff options
Diffstat (limited to 'src/sdp/ao_abstract_doc_source.d')
-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"] ~= |