diff options
| author | Ralph Amissah <ralph@amissah.com> | 2016-12-07 17:48:06 -0500 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2019-04-10 15:14:13 -0400 | 
| commit | d5cfec536fa3817e33a6bbe8607b67cc67ad621e (patch) | |
| tree | 4afc9e856c7eb462d0848cb0dfce542d9334ffd7 | |
| parent | 0.9.5 org files reorganized, tangles (code structure) to top of file (diff) | |
0.9.6 node info, and output continueddoc-reform_v0.0.9
| -rw-r--r-- | org/ao_abstract_doc_source.org | 796 | ||||
| -rw-r--r-- | org/ao_defaults.org | 26 | ||||
| -rw-r--r-- | org/output.org | 2757 | ||||
| -rw-r--r-- | src/sdp/ao_abstract_doc_source.d | 751 | ||||
| -rw-r--r-- | src/sdp/ao_defaults.d | 26 | ||||
| -rw-r--r-- | src/sdp/ao_object_setter.d | 46 | ||||
| -rw-r--r-- | src/sdp/output_html.d | 2706 | ||||
| -rw-r--r-- | views/version.txt | 2 | 
8 files changed, 3588 insertions, 3522 deletions
| diff --git a/org/ao_abstract_doc_source.org b/org/ao_abstract_doc_source.org index da435a1..4292328 100644 --- a/org/ao_abstract_doc_source.org +++ b/org/ao_abstract_doc_source.org @@ -229,8 +229,8 @@ auto obj_att = ObjAttributes();  /+ ocn +/  int obj_cite_number, obj_cite_number_;  auto object_citation_number = OCNemitter(); -int obj_cite_number_emit(int obj_cite_number_status_flag) { -  return object_citation_number.obj_cite_number_emitter(obj_cite_number_status_flag); +int ocn_emit(int ocn_status_flag) { +  return object_citation_number.ocn_emitter(ocn_status_flag);  }  /+ book index variables +/  string book_idx_tmp; @@ -243,8 +243,8 @@ string[][string][string] bkidx_hash(    return bookindex_extract_hash.bookindex_nugget_hash(bookindex_section, obj_cite_number);  }  /+ node +/ -string[string] _node_str; -int[string]    _node_int; +string[string] _node_heading_str; +int[string]    _node_heading_int;  auto node_construct = NodeStructureMetadata();  #+END_SRC @@ -271,8 +271,10 @@ scope(exit) {  #+name: abs_init_rest  #+BEGIN_SRC d -auto node_int_ = node_metadata_int; -auto node_str_ = node_metadata_str; +auto node_heading_int_ = node_metadata_heading_int; +auto node_heading_str_ = node_metadata_heading_str; +auto node_para_int_    = node_metadata_para_int; +auto node_para_str_    = node_metadata_para_str;  line_occur = [    "heading"  : 0,    "para"     : 0, @@ -330,20 +332,20 @@ string _anchor_tag;  string toc_txt_;  an_object["glossary_nugget"] = "";  an_object["blurb_nugget"] = ""; -node_str_["is"]                           = "heading"; -node_str_["ocn"]                          = "0"; -node_str_["segment_anchor_tag"]           = "toc"; -node_str_["attrib"]                       = ""; -node_str_["marked_up_lev"]                = "1"; -node_int_["heading_lev_markup"]           = 4; -node_int_["heading_lev_collapsed"]        = 2; -node_int_["parent_ocn"]                   = 1; -node_int_["parent_lev_markup"]            = 0; +node_heading_str_["is"]                           = "heading"; +node_heading_str_["ocn"]                          = "0"; +node_heading_str_["segment_anchor_tag"]           = "toc"; +node_heading_str_["attrib"]                       = ""; +node_heading_str_["marked_up_lev"]                = "1"; +node_heading_int_["heading_lev_markup"]           = 4; +node_heading_int_["heading_lev_collapsed"]        = 2; +node_heading_int_["parent_ocn"]                   = 1; +node_heading_int_["parent_lev_markup"]            = 0;  auto toc_head =    set_abstract_object.contents_heading(      "Table of Contents", // nugget/object -    node_str_, -    node_int_, +    node_heading_str_, +    node_heading_int_,      ["toc"],             // anchor tag    );  the_table_of_contents_section = [ @@ -391,7 +393,7 @@ debug(srclines) {  #+name: abs_in_loop_body_00  #+BEGIN_SRC d  if (!line.empty) { -  _check_obj_cite_number_status_(line, type); +  _check_ocn_status_(line, type);  }  #+END_SRC @@ -466,53 +468,56 @@ if there is a glossary section you need to:      line_occur["para"] = State.off;      an_object_key="glossary_nugget"; //      if (matchFirst(line, rgx.heading_glossary)) { -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = ""; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = "B"; -      node_int_["heading_lev_markup"]       = 1; -      node_int_["heading_lev_collapsed"]    = 1; -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = ""; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = "B"; +      node_heading_int_["heading_lev_markup"]       = 1; +      node_heading_int_["heading_lev_collapsed"]    = 1; +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        the_glossary_section ~=          set_abstract_object.contents_heading(            "Glossary",       // nugget/object -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [""],             // anchor tag          ); -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = "glossary"; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = "1"; -      node_int_["heading_lev_markup"]       = 4; -      node_int_["heading_lev_collapsed"]    = 2; -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = "glossary"; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = "1"; +      node_heading_int_["heading_lev_markup"]       = 4; +      node_heading_int_["heading_lev_collapsed"]    = 2; +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        the_glossary_section ~=          set_abstract_object.contents_heading(            "Glossary",       // nugget/object -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            ["glossary"],     // anchor tag          );      // } else if (matchFirst(line, rgx.heading)) {      //   _heading_matched_(line, line_occur, an_object, an_object_key, lv, collapsed_lev, type, dochead_meta_aa); // levels?      } else {        _para_match_(line, an_object, an_object_key, indent, bullet, type, line_occur); +      node_para_str_["is"]                           = "para"; +      node_para_str_["attrib"]                       = ""; +      node_para_int_["ocn"]                          = 0; +      node_para_int_["indent_hang"]                  = indent["hang_position"]; +      node_para_int_["indent_base"]                  = indent["base_position"]; +      node_para_int_["bullet"]                       = (bullet) ? 1 : 0;        the_glossary_section ~=          set_abstract_object.contents_para( -          "para",                    // an_object["is"],            to!string(line),           // an_object["substantive"], -          "",                        // attrib -          0,                         // obj_cite_number, -          indent, -          bullet +          node_para_str_, +          node_para_int_,          );      } -    type["obj_cite_number_status"] = TriState.off; +    type["ocn_status"] = TriState.off;    }    continue;  #+END_SRC @@ -552,70 +557,73 @@ if there is a blurb section you need to:      line_occur["para"] = State.off;      an_object_key="blurb_nugget";      if (matchFirst(line, rgx.heading_blurb)) { -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = ""; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = "B"; -      node_int_["heading_lev_markup"]       = 1; -      node_int_["heading_lev_collapsed"]    = 1; -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = ""; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = "B"; +      node_heading_int_["heading_lev_markup"]       = 1; +      node_heading_int_["heading_lev_collapsed"]    = 1; +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        the_blurb_section ~=          set_abstract_object.contents_heading(            "Blurb",          // nugget/object -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [""],             // anchor tag          ); -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = "blurb"; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = "1"; -      node_int_["heading_lev_markup"]       = 4; -      node_int_["heading_lev_collapsed"]    = 2; -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = "blurb"; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = "1"; +      node_heading_int_["heading_lev_markup"]       = 4; +      node_heading_int_["heading_lev_collapsed"]    = 2; +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        the_blurb_section ~=          set_abstract_object.contents_heading(            "Blurb",          // nugget/object -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            ["blurb"],        // anchor tag          );      } else if ((matchFirst(line, rgx.heading))      && (opt_action_bool["backmatter"] && opt_action_bool["section_blurb"])) {        _heading_matched_(line, line_occur, an_object, an_object_key, lv, collapsed_lev, type, dochead_meta_aa); // levels? -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = "blurb"; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = to!string(an_object["lev"]); -      node_int_["heading_lev_markup"]       = to!int(an_object["lev_markup_number"]);    // make int, remove need to conv -      node_int_["heading_lev_collapsed"]    = to!int(an_object["lev_collapsed_number"]); // make int, remove need to conv -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = "blurb"; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = to!string(an_object["lev"]); +      node_heading_int_["heading_lev_markup"]       = to!int(an_object["lev_markup_number"]);    // make int, remove need to conv +      node_heading_int_["heading_lev_collapsed"]    = to!int(an_object["lev_collapsed_number"]); // make int, remove need to conv +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        the_blurb_section ~=          set_abstract_object.contents_heading(            to!string(line),           //  an_object["substantive"], -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [""],                      // anchor tag          );      } else {        _para_match_(line, an_object, an_object_key, indent, bullet, type, line_occur); +      node_para_str_["is"]                           = "para"; +      node_para_str_["attrib"]                       = ""; +      node_para_int_["ocn"]                          = obj_cite_number; +      node_para_int_["indent_hang"]                  = indent["hang_position"]; +      node_para_int_["indent_base"]                  = indent["base_position"]; +      node_para_int_["bullet"]                       = (bullet) ? 1 : 0;        the_blurb_section ~=          set_abstract_object.contents_para( -          "para",                    // an_object["is"],            to!string(line),           //  an_object["substantive"], -          "",                        // attrib -          obj_cite_number, -          indent, -          bullet +          node_para_str_, +          node_para_int_,          );      } -    type["obj_cite_number_status"] = TriState.off; +    type["ocn_status"] = TriState.off;    }    continue;  #+END_SRC @@ -842,8 +850,8 @@ _block_flag_line_empty_(    the_document_body_section,    bookindex_unordered_hashes,    obj_cite_number, -  _node_str, -  _node_int, +  _node_heading_str, +  _node_heading_int,    cntr,    type,    obj_cite_number_poem, @@ -874,7 +882,7 @@ assert(  if ((type["heading"] == State.on)  && (line_occur["heading"] > State.off)) {    /+ heading object (current line empty) +/ -  obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]); +  obj_cite_number = ocn_emit(type["ocn_status"]);    an_object["bookindex_nugget"] =      ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";    bookindex_unordered_hashes = @@ -915,10 +923,10 @@ if ((type["heading"] == State.on)        an_object["is"],                              // string        html_segnames_ptr,                            // int      ); -   _node_str = _node_t[0]; -   _node_int = _node_t[1]; +   _node_heading_str = _node_t[0]; +   _node_heading_int = _node_t[1];    an_object["attrib"] = -    obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +    obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);    ++heading_ptr;    debug(segments) {      writeln(an_object["lev_markup_number"]); @@ -927,8 +935,8 @@ if ((type["heading"] == State.on)    the_document_body_section ~=      set_abstract_object.contents_heading(        an_object["substantive"], -      _node_str, -      _node_int, +      _node_heading_str, +      _node_heading_int,        anchor_tags,      );    // track previous heading and make assertions @@ -948,7 +956,7 @@ if ((type["heading"] == State.on)  #+BEGIN_SRC d  } else if ((type["para"] == State.on) && (line_occur["para"] > State.off)) {    /+ paragraph object (current line empty) +/ -  obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]); +  obj_cite_number = ocn_emit(type["ocn_status"]);    an_object["bookindex_nugget"] =      ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";    bookindex_unordered_hashes = @@ -963,22 +971,25 @@ if ((type["heading"] == State.on)        heading_ptr-1,        an_object["is"],      ); -  _node_str = _node_t[0]; -  _node_int = _node_t[1]; +  _node_heading_str = _node_t[0]; +  _node_heading_int = _node_t[1];    auto substantive_object_and_anchor_tags_tuple =      obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa); // ...    an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];    anchor_tags = substantive_object_and_anchor_tags_tuple[1];    an_object["attrib"] = -    obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +    obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int); +  node_para_str_["is"]                           = an_object["is"]; +  node_para_str_["attrib"]                       = an_object["attrib"]; +  node_para_int_["ocn"]                          = obj_cite_number; +  node_para_int_["indent_hang"]                  = indent["hang_position"]; +  node_para_int_["indent_base"]                  = indent["base_position"]; +  node_para_int_["bullet"]                       = (bullet) ? 1 : 0;    the_document_body_section ~=      set_abstract_object.contents_para( -      an_object["is"],        an_object["substantive"], -      an_object["attrib"], -      obj_cite_number, -      indent, -      bullet +      node_para_str_, +      node_para_int_,      );    _common_reset_(line_occur, an_object, type);    indent=[ @@ -1080,20 +1091,20 @@ debug(endnotes) {  #+BEGIN_SRC d  if (an_object["glossary_nugget"].length == 0) {    writeln("no gloss"); -  node_str_["is"]                       = "heading"; -  node_str_["ocn"]                      = "0"; -  node_str_["segment_anchor_tag"]       = ""; -  node_str_["attrib"]                   = ""; -  node_str_["marked_up_lev"]            = "B"; -  node_int_["heading_lev_markup"]       = 1; -  node_int_["heading_lev_collapsed"]    = 1; -  node_int_["parent_ocn"]               = 1; -  node_int_["parent_lev_markup"]        = 0; +  node_heading_str_["is"]                       = "heading"; +  node_heading_str_["ocn"]                      = "0"; +  node_heading_str_["segment_anchor_tag"]       = ""; +  node_heading_str_["attrib"]                   = ""; +  node_heading_str_["marked_up_lev"]            = "B"; +  node_heading_int_["heading_lev_markup"]       = 1; +  node_heading_int_["heading_lev_collapsed"]    = 1; +  node_heading_int_["parent_ocn"]               = 1; +  node_heading_int_["parent_lev_markup"]        = 0;    the_glossary_section ~=      set_abstract_object.contents_heading(        "(skip) there is no Glossary section",   // nugget/object -      node_str_, -      node_int_, +      node_heading_str_, +      node_heading_int_,        [""],             // anchor tag      );  } else { @@ -1120,53 +1131,53 @@ auto biblio_ordered =  #+name: abs_post  #+BEGIN_SRC d  if (biblio_ordered.length > 0) { -  node_str_["is"]                       = "heading"; -  node_str_["ocn"]                      = "0"; -  node_str_["segment_anchor_tag"]       = ""; -  node_str_["attrib"]                   = ""; -  node_str_["marked_up_lev"]            = "B"; -  node_int_["heading_lev_markup"]       = 1; -  node_int_["heading_lev_collapsed"]    = 1; -  node_int_["parent_ocn"]               = 1; -  node_int_["parent_lev_markup"]        = 0; +  node_heading_str_["is"]                       = "heading"; +  node_heading_str_["ocn"]                      = "0"; +  node_heading_str_["segment_anchor_tag"]       = ""; +  node_heading_str_["attrib"]                   = ""; +  node_heading_str_["marked_up_lev"]            = "B"; +  node_heading_int_["heading_lev_markup"]       = 1; +  node_heading_int_["heading_lev_collapsed"]    = 1; +  node_heading_int_["parent_ocn"]               = 1; +  node_heading_int_["parent_lev_markup"]        = 0;    the_bibliography_section ~=      set_abstract_object.contents_heading(        "Bibliography",   // nugget/object -      node_str_, -      node_int_, +      node_heading_str_, +      node_heading_int_,        [""],             // anchor tag      ); -  node_str_["is"]                       = "heading"; -  node_str_["ocn"]                      = "0"; -  node_str_["segment_anchor_tag"]       = "bibliography"; -  node_str_["attrib"]                   = ""; -  node_str_["marked_up_lev"]            = "1"; -  node_int_["heading_lev_markup"]       = 4; -  node_int_["heading_lev_collapsed"]    = 2; -  node_int_["parent_ocn"]               = 1; -  node_int_["parent_lev_markup"]        = 0; +  node_heading_str_["is"]                       = "heading"; +  node_heading_str_["ocn"]                      = "0"; +  node_heading_str_["segment_anchor_tag"]       = "bibliography"; +  node_heading_str_["attrib"]                   = ""; +  node_heading_str_["marked_up_lev"]            = "1"; +  node_heading_int_["heading_lev_markup"]       = 4; +  node_heading_int_["heading_lev_collapsed"]    = 2; +  node_heading_int_["parent_ocn"]               = 1; +  node_heading_int_["parent_lev_markup"]        = 0;    the_bibliography_section ~=      set_abstract_object.contents_heading(        "Bibliography", -      node_str_, -      node_int_, +      node_heading_str_, +      node_heading_int_,        ["bibliography"], // anchor tag      );  } else { -  node_str_["is"]                       = "heading"; -  node_str_["ocn"]                      = "0"; -  node_str_["segment_anchor_tag"]       = ""; -  node_str_["attrib"]                   = ""; -  node_str_["marked_up_lev"]            = "B"; -  node_int_["heading_lev_markup"]       = 1; -  node_int_["heading_lev_collapsed"]    = 1; -  node_int_["parent_ocn"]               = 1; -  node_int_["parent_lev_markup"]        = 0; +  node_heading_str_["is"]                       = "heading"; +  node_heading_str_["ocn"]                      = "0"; +  node_heading_str_["segment_anchor_tag"]       = ""; +  node_heading_str_["attrib"]                   = ""; +  node_heading_str_["marked_up_lev"]            = "B"; +  node_heading_int_["heading_lev_markup"]       = 1; +  node_heading_int_["heading_lev_collapsed"]    = 1; +  node_heading_int_["parent_ocn"]               = 1; +  node_heading_int_["parent_lev_markup"]        = 0;    the_bibliography_section ~=      set_abstract_object.contents_heading(        "(skip) there is no Bibliography",   // nugget/object -      node_str_, -      node_int_, +      node_heading_str_, +      node_heading_int_,        [""],             // anchor tag      );  } @@ -1192,14 +1203,17 @@ foreach (entry; biblio_ordered) {      ((entry["place"].str.empty) ? "" : ", " ~ entry["place"].str),      ((entry["url"].str.empty) ? "" : ", [" ~ entry["url"].str ~ "]"),    ); +  node_para_str_["is"]                           = "bibliography"; +  node_para_str_["attrib"]                       = ""; +  node_para_int_["ocn"]                          = 0; +  node_para_int_["indent_hang"]                  = 0; +  node_para_int_["indent_base"]                  = 1; +  node_para_int_["bullet"]                       = 0;    the_bibliography_section ~=      set_abstract_object.contents_para( -      "bibliography",        out_,                                                // nugget/object -      "",                                                  // attrib -      0,                                                   // obj_cite_number -      ([ "hang_position" : 0, "base_position" : 1, ]),     // indent -      false +      node_para_str_, +      node_para_int_,      );  }  #+END_SRC @@ -1273,20 +1287,20 @@ debug(bookindex) {                         // bookindex  #+BEGIN_SRC d  if (an_object["blurb_nugget"].length == 0) {    writeln("no blurb"); -  node_str_["is"]                       = "heading"; -  node_str_["ocn"]                      = "0"; -  node_str_["segment_anchor_tag"]       = ""; -  node_str_["attrib"]                   = ""; -  node_str_["marked_up_lev"]            = "B"; -  node_int_["heading_lev_markup"]       = 1; -  node_int_["heading_lev_collapsed"]    = 1; -  node_int_["parent_ocn"]               = 1; -  node_int_["parent_lev_markup"]        = 0; +  node_heading_str_["is"]                       = "heading"; +  node_heading_str_["ocn"]                      = "0"; +  node_heading_str_["segment_anchor_tag"]       = ""; +  node_heading_str_["attrib"]                   = ""; +  node_heading_str_["marked_up_lev"]            = "B"; +  node_heading_int_["heading_lev_markup"]       = 1; +  node_heading_int_["heading_lev_collapsed"]    = 1; +  node_heading_int_["parent_ocn"]               = 1; +  node_heading_int_["parent_lev_markup"]        = 0;    the_blurb_section ~=      set_abstract_object.contents_heading(        "(skip) there is no Blurb section",   // nugget/object -      node_str_, -      node_int_, +      node_heading_str_, +      node_heading_int_,        [""],             // anchor tag      );  } else { @@ -1563,44 +1577,44 @@ auto _common_reset_(  #+name: abs_functions_ocn_status  #+BEGIN_SRC d -void _check_obj_cite_number_status_( +void _check_ocn_status_(    char[] line,    ref int[string] type  ) { -  if ((!line.empty) && (type["obj_cite_number_status_multi_obj"] == TriState.off)) { +  if ((!line.empty) && (type["ocn_status_multi_obj"] == TriState.off)) {      /+ not multi-line object, check whether obj_cite_number is on or turned off +/      if (matchFirst(line, rgx.obj_cite_number_block_marks)) {        /+ switch off obj_cite_number +/        if (matchFirst(line, rgx.obj_cite_number_off_block)) { -        type["obj_cite_number_status_multi_obj"] = TriState.on; +        type["ocn_status_multi_obj"] = TriState.on;          debug(ocnoff) {            writeln(line);          }        }        if (matchFirst(line, rgx.obj_cite_number_off_block_dh)) { -        type["obj_cite_number_status_multi_obj"] = TriState.closing; +        type["ocn_status_multi_obj"] = TriState.closing;          debug(ocnoff) {            writeln(line);          }        }      } else { -      if (type["obj_cite_number_status_multi_obj"] == TriState.off) { +      if (type["ocn_status_multi_obj"] == TriState.off) {          if (matchFirst(line, rgx.obj_cite_number_off)) { -          type["obj_cite_number_status"] = TriState.on; +          type["ocn_status"] = TriState.on;          } else if (matchFirst(line, rgx.obj_cite_number_off_dh)) { -          type["obj_cite_number_status"] = TriState.closing; +          type["ocn_status"] = TriState.closing;          } else { -          type["obj_cite_number_status"] = TriState.off; +          type["ocn_status"] = TriState.off;          }        } else { -        type["obj_cite_number_status"] = -          type["obj_cite_number_status_multi_obj"]; +        type["ocn_status"] = +          type["ocn_status_multi_obj"];        }      } -  } else if ((!line.empty) && (type["obj_cite_number_status_multi_obj"] > TriState.off)) { +  } else if ((!line.empty) && (type["ocn_status_multi_obj"] > TriState.off)) {      if (matchFirst(line, rgx.obj_cite_number_off_block_close)) { -      type["obj_cite_number_status_multi_obj"] = TriState.off; -      type["obj_cite_number_status"] = TriState.off; +      type["ocn_status_multi_obj"] = TriState.off; +      type["ocn_status"] = TriState.off;        debug(ocnoff) {          writeln(line);        } @@ -2077,7 +2091,7 @@ void _poem_block_(          an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];          anchor_tags = substantive_object_and_anchor_tags_tuple[1];          an_object["attrib"] = -          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);          the_document_body_section ~=            set_abstract_object.contents_block(              an_object["is"], @@ -2098,7 +2112,7 @@ void _poem_block_(        processing["verse"] ~= line ~= "\n";        if (type["verse_new"] == State.on) {          obj_cite_number = -          obj_cite_number_emit(type["obj_cite_number_status"]); +          ocn_emit(type["ocn_status"]);          type["verse_new"] = State.off;        } else if (matchFirst(line, rgx.newline_eol_delimiter_only)) {          verse_line = TriState.off; @@ -2124,14 +2138,14 @@ void _poem_block_(            heading_ptr-1,            an_object["is"]          ); -        _node_str = _node_t[0]; -        _node_int = _node_t[1]; +        _node_heading_str = _node_t[0]; +        _node_heading_int = _node_t[1];          auto substantive_object_and_anchor_tags_tuple =            obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);          an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];          anchor_tags = substantive_object_and_anchor_tags_tuple[1];          an_object["attrib"] = -          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);          the_document_body_section ~=            set_abstract_object.contents_block(              an_object["is"], @@ -2168,7 +2182,7 @@ void _poem_block_(          an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];          anchor_tags = substantive_object_and_anchor_tags_tuple[1];          an_object["attrib"] = -          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);          the_document_body_section ~=            set_abstract_object.contents_block(              an_object["is"], @@ -2188,7 +2202,7 @@ void _poem_block_(        processing["verse"] ~= line ~= "\n";        if (type["verse_new"] == State.on) {          obj_cite_number = -          obj_cite_number_emit(type["obj_cite_number_status"]); +          ocn_emit(type["ocn_status"]);          type["verse_new"] = State.off;        } else if (matchFirst(line, rgx.newline_eol_delimiter_only)) {          type["verse_new"] = State.on; @@ -2215,14 +2229,14 @@ void _poem_block_(              heading_ptr-1,              an_object["is"]            ); -        _node_str = _node_t[0]; -        _node_int = _node_t[1]; +        _node_heading_str = _node_t[0]; +        _node_heading_int = _node_t[1];          auto substantive_object_and_anchor_tags_tuple =            obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);          an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];          anchor_tags = substantive_object_and_anchor_tags_tuple[1];          an_object["attrib"] = -          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);          the_document_body_section ~=            set_abstract_object.contents_block(              an_object["is"], @@ -2413,8 +2427,8 @@ void _block_flag_line_empty_(    ref ObjComposite[] the_document_body_section,    ref string[][string][string] bookindex_unordered_hashes,    ref int obj_cite_number, -  ref string[string] _node_str, -  ref int[string] _node_int, +  ref string[string] _node_heading_str, +  ref int[string] _node_heading_int,    ref int cntr,    ref int[string] type,    string[string] obj_cite_number_poem, @@ -2432,7 +2446,7 @@ void _block_flag_line_empty_(    assertions_flag_types_block_status_none_or_closed(type);    if (type["code"] == TriState.closing) {      obj_cite_number = -      obj_cite_number_emit(type["obj_cite_number_status"]); +      ocn_emit(type["ocn_status"]);      an_object["bookindex_nugget"] =        ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";      bookindex_unordered_hashes = @@ -2447,14 +2461,14 @@ void _block_flag_line_empty_(          heading_ptr-1,          an_object["is"]        ); -    _node_str = _node_t[0]; -    _node_int = _node_t[1]; +    _node_heading_str = _node_t[0]; +    _node_heading_int = _node_t[1];      auto substantive_object_and_anchor_tags_tuple =        obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);      an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];      anchor_tags = substantive_object_and_anchor_tags_tuple[1];      an_object["attrib"] = -      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);      the_document_body_section ~=        set_abstract_object.contents_block_code(          an_object["is"], @@ -2482,15 +2496,15 @@ void _block_flag_line_empty_(          heading_ptr-1,          an_object["is"]        ); -    _node_str = _node_t[0]; -    _node_int = _node_t[1]; +    _node_heading_str = _node_t[0]; +    _node_heading_int = _node_t[1];      the_document_body_section ~=        set_abstract_object.contents_block_obj_cite_number_string(          "poem",          "",          (obj_cite_number_poem["start"], obj_cite_number_poem["end"]), -        _node_str, -        _node_int, +        _node_heading_str, +        _node_heading_int,        ); // bookindex      object_reset(an_object);      processing.remove("verse"); @@ -2498,7 +2512,7 @@ void _block_flag_line_empty_(      type["poem"] = TriState.off;    } else if (type["table"] == TriState.closing) {      obj_cite_number = -      obj_cite_number_emit(type["obj_cite_number_status"]); +      ocn_emit(type["ocn_status"]);      an_object["bookindex_nugget"] =        ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";      bookindex_unordered_hashes = @@ -2513,14 +2527,14 @@ void _block_flag_line_empty_(          heading_ptr-1,          an_object["is"]        ); -    _node_str = _node_t[0]; -    _node_int = _node_t[1]; +    _node_heading_str = _node_t[0]; +    _node_heading_int = _node_t[1];      auto substantive_object_and_anchor_tags_tuple =        obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);      an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];      anchor_tags = substantive_object_and_anchor_tags_tuple[1];      an_object["attrib"] = -      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);      the_document_body_section ~=        set_abstract_object.contents_block(          an_object["is"], @@ -2535,7 +2549,7 @@ void _block_flag_line_empty_(      type["table"] = TriState.off;    } else if (type["group"] == TriState.closing) {      obj_cite_number = -      obj_cite_number_emit(type["obj_cite_number_status"]); +      ocn_emit(type["ocn_status"]);      an_object["bookindex_nugget"] =        ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";      bookindex_unordered_hashes = @@ -2550,14 +2564,14 @@ void _block_flag_line_empty_(          heading_ptr-1,          an_object["is"]        ); -    _node_str = _node_t[0]; -    _node_int = _node_t[1]; +    _node_heading_str = _node_t[0]; +    _node_heading_int = _node_t[1];      auto substantive_object_and_anchor_tags_tuple =        obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);      an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];      anchor_tags = substantive_object_and_anchor_tags_tuple[1];      an_object["attrib"] = -      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);      the_document_body_section ~=        set_abstract_object.contents_block(          an_object["is"], @@ -2571,7 +2585,7 @@ void _block_flag_line_empty_(      type["blocks"] = TriState.off;      type["group"] = TriState.off;    } else if (type["block"] == TriState.closing) { -    obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]); +    obj_cite_number = ocn_emit(type["ocn_status"]);      an_object["bookindex_nugget"] =        ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";      bookindex_unordered_hashes = @@ -2586,14 +2600,14 @@ void _block_flag_line_empty_(          heading_ptr-1,          an_object["is"]         ); -    _node_str = _node_t[0]; -    _node_int = _node_t[1]; +    _node_heading_str = _node_t[0]; +    _node_heading_int = _node_t[1];      auto substantive_object_and_anchor_tags_tuple =        obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);      an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];      anchor_tags = substantive_object_and_anchor_tags_tuple[1];      an_object["attrib"] = -      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);      the_document_body_section ~=        set_abstract_object.contents_block(          an_object["is"], @@ -2608,7 +2622,7 @@ void _block_flag_line_empty_(      type["block"] = TriState.off;    } else if (type["quote"] == TriState.closing) {      obj_cite_number = -      obj_cite_number_emit(type["obj_cite_number_status"]); +      ocn_emit(type["ocn_status"]);      an_object["bookindex_nugget"] =        ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";      bookindex_unordered_hashes = @@ -2623,14 +2637,14 @@ void _block_flag_line_empty_(          heading_ptr-1,          an_object["is"]        ); -    _node_str = _node_t[0]; -    _node_int = _node_t[1]; +    _node_heading_str = _node_t[0]; +    _node_heading_int = _node_t[1];      auto substantive_object_and_anchor_tags_tuple =        obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);      an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];      anchor_tags = substantive_object_and_anchor_tags_tuple[1];      an_object["attrib"] = -      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +      obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);      the_document_body_section ~=        set_abstract_object.contents_block(          an_object["is"], @@ -3068,10 +3082,10 @@ auto _para_match_(  #+BEGIN_SRC d  struct OCNemitter {    int obj_cite_number, obj_cite_number_; -  int obj_cite_number_emitter(int obj_cite_number_status_flag) -  in { assert(obj_cite_number_status_flag <= 2); } +  int ocn_emitter(int ocn_status_flag) +  in { assert(ocn_status_flag <= 2); }    body { -    obj_cite_number=(obj_cite_number_status_flag == 0) +    obj_cite_number=(ocn_status_flag == 0)      ? ++obj_cite_number_      : 0;      assert(obj_cite_number >= 0); @@ -3794,16 +3808,16 @@ struct ObjAttributes {    string obj_attributes(      string obj_is_,      string obj_raw, -    string[string] _node_str, -    int[string] _node_int +    string[string] _node_heading_str, +    int[string] _node_heading_int    )    in { }    body {      scope(exit) {        destroy(obj_is_);        destroy(obj_raw); -      destroy(_node_str); -      destroy(_node_int); +      destroy(_node_heading_str); +      destroy(_node_heading_int);      }      _obj_attrib.remove("json");      _obj_attrib["json"] ="{"; @@ -3843,7 +3857,7 @@ struct ObjAttributes {        break;      }      _obj_attrib["json"] ~=" }"; -    _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node_str, _node_int); // check +    _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node_heading_str, _node_heading_int); // check      debug(structattrib) {        if (oa_j["is"].str() == "heading") {          writeln(_obj_attrib["json"]); @@ -4052,24 +4066,24 @@ struct ObjAttributes {    string _set_additional_values_parse_as_json(      string _obj_attrib,      string obj_is_, -    string[string] _node_str, -    int[string] _node_int +    string[string] _node_heading_str, +    int[string] _node_heading_int    ) {                                                  //      JSONValue oa_j = parseJSON(_obj_attrib);      assert(        (oa_j.type == JSON_TYPE.OBJECT)      );      if (obj_is_ == "heading") { -      oa_j.object["obj_cite_number"] = _node_str["ocn"]; -      oa_j.object["lev_markup_number"] = _node_int["heading_lev_markup"]; -      oa_j.object["lev_collapsed_number"] = _node_int["heading_lev_collapsed"]; +      oa_j.object["obj_cite_number"] = _node_heading_str["ocn"]; +      oa_j.object["lev_markup_number"] = _node_heading_int["heading_lev_markup"]; +      oa_j.object["lev_collapsed_number"] = _node_heading_int["heading_lev_collapsed"];        oa_j.object["heading_ptr"] = -        _node_int["ptr_heading"]; +        _node_heading_int["ptr_heading"];        oa_j.object["doc_object_ptr"] = -        _node_int["ptr_doc_object"]; +        _node_heading_int["ptr_doc_object"];      } -    oa_j.object["parent_obj_cite_number"] = _node_int["parent_ocn"]; -    oa_j.object["parent_lev_markup_number"] = _node_int["parent_lev_markup"]; +    oa_j.object["parent_obj_cite_number"] = _node_heading_int["parent_ocn"];         // +    oa_j.object["parent_lev_markup_number"] = _node_heading_int["parent_lev_markup"];         //      _obj_attrib = oa_j.toString();      return _obj_attrib;    } @@ -4248,7 +4262,7 @@ struct BookIndexReportSection {      bool[string]             opt_action_bool,    ) {      mixin SiSUnode; -    string type; +    string type_is;      string lev;      int lev_int_markup, lev_int_collapsed;      string attrib; @@ -4257,59 +4271,60 @@ struct BookIndexReportSection {      auto mainkeys =        bookindex_unordered_hashes.byKey.array.sort().release;      ObjComposite[][string] bookindex_section; -    auto node_int_ = node_metadata_int; -    auto node_str_ = node_metadata_str; +    auto node_heading_int_ = node_metadata_heading_int; +    auto node_heading_str_ = node_metadata_heading_str; +    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"])) {        string bi_tmp_seg, bi_tmp_scroll; -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = ""; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = "B"; -      node_int_["heading_lev_markup"]       = 1; -      node_int_["heading_lev_collapsed"]    = 1; -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = ""; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = "B"; +      node_heading_int_["heading_lev_markup"]       = 1; +      node_heading_int_["heading_lev_collapsed"]    = 1; +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        bookindex_section["scroll"] ~=          set_abstract_object.contents_heading(            "Book Index", -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [],          );        bookindex_section["seg"] ~=          set_abstract_object.contents_heading(            "Book Index", -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [],          );        ++obj_cite_number;        ++mkn; -      // 1~ Index -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = "bookindex"; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = "1"; -      node_int_["heading_lev_markup"]       = 4; -      node_int_["heading_lev_collapsed"]    = 2; -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = "bookindex"; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = "1"; +      node_heading_int_["heading_lev_markup"]       = 4; +      node_heading_int_["heading_lev_collapsed"]    = 2; +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        bookindex_section["scroll"] ~=          set_abstract_object.contents_heading(            "Index", -          node_str_, -          node_int_, -          ["book_index"], +          node_heading_str_, +          node_heading_int_, +          ["bookindex"],          );        bookindex_section["seg"] ~=          set_abstract_object.contents_heading(            "Index", -          node_str_, -          node_int_, -          ["book_index"], +          node_heading_str_, +          node_heading_int_, +          ["bookindex"],          );        ++obj_cite_number;        ++mkn; @@ -4344,55 +4359,50 @@ struct BookIndexReportSection {          }          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, -        ]; +        indent=[ "hang_position" : 0, "base_position" : 1, ]; +        node_para_str_["is"]                           = "para"; +        node_para_str_["attrib"]                       = ""; +        node_para_int_["ocn"]                          = obj_cite_number; +        node_para_int_["indent_hang"]                  = 0; +        node_para_int_["indent_base"]                  = 1; +        node_para_int_["bullet"]                       = 0;          bookindex_section["scroll"] ~=            set_abstract_object.contents_para( -            type,              bi_tmp_scroll, -            attrib, -            obj_cite_number, -            indent, -            false +            node_para_str_, +            node_para_int_,            );          bookindex_section["seg"] ~=            set_abstract_object.contents_para( -            type,              bi_tmp_seg, -            attrib, -            obj_cite_number, -            indent, -            false +            node_para_str_, +            node_para_int_,            );          ++obj_cite_number;          ++mkn;        }      } else {                              // no book index, (figure out what to do here) -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = ""; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = "B"; -      node_int_["heading_lev_markup"]       = 1; -      node_int_["heading_lev_collapsed"]    = 1; -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = ""; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = "B"; +      node_heading_int_["heading_lev_markup"]       = 1; +      node_heading_int_["heading_lev_collapsed"]    = 1; +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        bookindex_section["scroll"] ~=          set_abstract_object.contents_heading(            "(skip) there is no Book Index", -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [""],          );        bookindex_section["seg"] ~=          set_abstract_object.contents_heading(            "(skip) there is no Book Index", -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [""],          );      } @@ -4514,86 +4524,86 @@ struct NotesSection {      auto set_abstract_object = ObjectAbstractSet();      ObjComposite[][string] the_endnotes_section;      auto endnotes_ = gathered_notes(); -    string type; +    string type_is;      string lev, lev_markup_number, lev_collapsed_number;      string attrib;      int[string] indent; -    auto node_int_ = node_metadata_int; -    auto node_str_ = node_metadata_str; +    auto node_heading_int_ = node_metadata_heading_int; +    auto node_heading_str_ = node_metadata_heading_str;      if ((endnotes_["seg"].length > 0)      && (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"])) { -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = ""; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = "B"; -      node_int_["heading_lev_markup"]       = 1; -      node_int_["heading_lev_collapsed"]    = 1; -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = ""; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = "B"; +      node_heading_int_["heading_lev_markup"]       = 1; +      node_heading_int_["heading_lev_collapsed"]    = 1; +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        the_endnotes_section["seg"] ~=          set_abstract_object.contents_heading(            "Endnotes", -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [],          );        the_endnotes_section["scroll"] ~=          set_abstract_object.contents_heading(            "Endnotes", -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [],          );        ++obj_cite_number;        ++mkn; -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = "endnotes"; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = "1"; -      node_int_["heading_lev_markup"]       = 4; -      node_int_["heading_lev_collapsed"]    = 2; -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = "endnotes"; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = "1"; +      node_heading_int_["heading_lev_markup"]       = 4; +      node_heading_int_["heading_lev_collapsed"]    = 2; +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        the_endnotes_section["seg"] ~=          set_abstract_object.contents_heading(            "Endnotes", -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            ["endnotes"],          );        the_endnotes_section["scroll"] ~=          set_abstract_object.contents_heading(            "Endnotes", -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            ["endnotes"],          );        ++obj_cite_number;        ++mkn;      } else { -      node_str_["is"]                       = "heading"; -      node_str_["ocn"]                      = "0"; -      node_str_["segment_anchor_tag"]       = ""; -      node_str_["attrib"]                   = ""; -      node_str_["marked_up_lev"]            = "B"; -      node_int_["heading_lev_markup"]       = 1; -      node_int_["heading_lev_collapsed"]    = 1; -      node_int_["parent_ocn"]               = 1; -      node_int_["parent_lev_markup"]        = 0; +      node_heading_str_["is"]                       = "heading"; +      node_heading_str_["ocn"]                      = "0"; +      node_heading_str_["segment_anchor_tag"]       = ""; +      node_heading_str_["attrib"]                   = ""; +      node_heading_str_["marked_up_lev"]            = "B"; +      node_heading_int_["heading_lev_markup"]       = 1; +      node_heading_int_["heading_lev_collapsed"]    = 1; +      node_heading_int_["parent_ocn"]               = 1; +      node_heading_int_["parent_lev_markup"]        = 0;        the_endnotes_section["seg"] ~=          set_abstract_object.contents_heading(            "(skip) there are no Endnotes", -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [""],          );        the_endnotes_section["scroll"] ~=          set_abstract_object.contents_heading(            "(skip) there are no Endnotes", -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            [""],          );      } @@ -4783,14 +4793,14 @@ struct NodeStructureMetadata {        p_["lev_markup_number"] = DocStructMarkupHeading.h_text_1;        p_["obj_cite_number"] = lv4;      } -    string[string] _node_str = [ +    string[string] _node_heading_str = [        "is"                            : is_,        "ocn"                           : to!string(obj_cite_number_),        "marked_up_lev"                 : "",        "segment_anchor_tag"            : to!string(segment_anchor_tag),        "attrib"                        : "",      ]; -    int[string] _node_int = [ +    int[string] _node_heading_int = [        "ocn"                           : obj_cite_number_,        "ptr_doc_object"                : 0,        "ptr_html_segnames"             : 0, @@ -4807,12 +4817,12 @@ struct NodeStructureMetadata {          writeln("- ", to!string(_node));        }      } -    assert(_node_int["parent_lev_markup"] >= 4);         // -    assert(_node_int["parent_lev_markup"] <= 7);         // -    assert(_node_int["parent_ocn"] >= 0);      // hmm, perhaps         // +    assert(_node_heading_int["parent_lev_markup"] >= 4);         // +    assert(_node_heading_int["parent_lev_markup"] <= 7);         // +    assert(_node_heading_int["parent_ocn"] >= 0);      // hmm, perhaps         //      auto t = tuple( -      _node_str, -      _node_int, +      _node_heading_str, +      _node_heading_int,      );      return t;    } @@ -4932,14 +4942,14 @@ struct NodeStructureMetadata {      default:        break;      } -    string[string] _node_str = [ +    string[string] _node_heading_str = [        "is"                            : is_,        "ocn"                           : to!string(obj_cite_number_),        "marked_up_lev"                 : lev,        "segment_anchor_tag"            : to!string(segment_anchor_tag),        "attrib"                        : "",      ]; -    int[string] _node_int = [ +    int[string] _node_heading_int = [        "ocn"                           : obj_cite_number_,        "ptr_doc_object"                : cntr_,        "ptr_html_segnames"             : ((lev_markup_number == "4") ? html_segnames_ptr : 0), @@ -4959,42 +4969,42 @@ struct NodeStructureMetadata {          writeln("* ", to!string(_node));        }      } -    assert(_node_int["parent_lev_markup"] <= 7); -    assert(_node_int["parent_ocn"] >= 0); +    assert(_node_heading_int["parent_lev_markup"] <= 7); +    assert(_node_heading_int["parent_ocn"] >= 0);      if (match(lev_markup_number, rgx.levels_numbered_headings)) { -      assert(_node_int["heading_lev_markup"] <= 7);         // issues -      assert(to!int(_node_str["ocn"]) >= 0); -      if (_node_int["parent_lev_markup"] > 0) { -        assert(_node_int["parent_lev_markup"] < _node_int["heading_lev_markup"]); -        if (to!int(_node_str["ocn"]) != 0) { -          assert(_node_int["parent_ocn"] < to!int(_node_str["ocn"])); +      assert(_node_heading_int["heading_lev_markup"] <= 7);         // issues +      assert(to!int(_node_heading_str["ocn"]) >= 0); +      if (_node_heading_int["parent_lev_markup"] > 0) { +        assert(_node_heading_int["parent_lev_markup"] < _node_heading_int["heading_lev_markup"]); +        if (to!int(_node_heading_str["ocn"]) != 0) { +          assert(_node_heading_int["parent_ocn"] < to!int(_node_heading_str["ocn"]));          }        } -      if (_node_int["heading_lev_markup"] == 0) { -        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A); -      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_B) { -        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A); -      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_C) { -        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_B); -      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_D) { -        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_C); -      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_1) { -        assert(_node_int["parent_lev_markup"] <= DocStructMarkupHeading.h_sect_D); -      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_2) { -        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_1); -      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_3) { -        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_2); -      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_4) { -        assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_3); -      } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_5) { -        // // writeln(to!int(_node_int["parent_lev_markup"])); -        // // assert(to!int(_node_int["parent_lev_markup"]) >= 4); -        // // assert(to!int(_node_int["parent_lev_markup"]) <= 7); +      if (_node_heading_int["heading_lev_markup"] == 0) { +        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A); +      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_B) { +        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A); +      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_C) { +        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_B); +      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_D) { +        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_C); +      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_1) { +        assert(_node_heading_int["parent_lev_markup"] <= DocStructMarkupHeading.h_sect_D); +      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_2) { +        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_1); +      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_3) { +        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_2); +      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_4) { +        assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_3); +      } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_5) { +        // // writeln(to!int(_node_heading_int["parent_lev_markup"])); +        // // assert(to!int(_node_heading_int["parent_lev_markup"]) >= 4); +        // // assert(to!int(_node_heading_int["parent_lev_markup"]) <= 7);        }      }      auto t = tuple( -      _node_str, -      _node_int, +      _node_heading_str, +      _node_heading_int,      );      return t;    } @@ -5341,20 +5351,20 @@ auto contents_comment(in string object) {  #+BEGIN_SRC d  auto contents_heading(    in string         object, -  in string[string] _node_str, -  in int[string]    _node_int, +  in string[string] _node_heading_str, +  in int[string]    _node_heading_int,    in string[]       tags,  ) {    ObjComposite object_set;    object_set.use                                 = "content";    object_set.of                                  = "para";    object_set.is_a                                = "heading"; -  object_set.object                              = object; -  object_set.obj_cite_number                     = _node_str["ocn"]; +  object_set.object                              = object.strip; +  object_set.obj_cite_number                     = _node_heading_str["ocn"];    object_set.anchor_tags                         ~= tags; -  object_set.heading_attrib.lev                  = _node_str["marked_up_lev"]; -  object_set.heading_attrib.lev_int_markup       = _node_int["heading_lev_markup"]; -  object_set.heading_attrib.lev_int_collapsed    = _node_int["heading_lev_collapsed"]; +  object_set.heading_attrib.lev                  = _node_heading_str["marked_up_lev"]; +  object_set.heading_attrib.lev_int_markup       = _node_heading_int["heading_lev_markup"]; +  object_set.heading_attrib.lev_int_collapsed    = _node_heading_int["heading_lev_collapsed"];    return object_set;  }  #+END_SRC @@ -5364,22 +5374,20 @@ auto contents_heading(  #+name: ao_object_setter_para  #+BEGIN_SRC d  auto contents_para( -  in string is_a, -  in string object, -  in string attrib, -  in int obj_cite_number, -  in int[string] indent, -  in bool bullet, +  in string         object, +  in string[string] _node_para_str, +  in int[string]    _node_para_int,  ) {    ObjComposite object_set;    object_set.use                      = "content";    object_set.of                       = "para";    object_set.is_a                     = "para";    object_set.object                   = object.strip; -  object_set.obj_cite_number          = (obj_cite_number==0) ? "" : to!string(obj_cite_number); -  object_set.para_attrib.indent_start = to!int(indent["hang_position"]); -  object_set.para_attrib.indent_rest  = to!int(indent["base_position"]); -  object_set.para_attrib.bullet       = false; // bullet; +  object_set.obj_cite_number          = (_node_para_int["ocn"]==0) ? "" : to!string(_node_para_int["ocn"]); +  object_set.anchor_tags              = []; +  object_set.para_attrib.indent_start = _node_para_int["indent_hang"]; +  object_set.para_attrib.indent_rest  = _node_para_int["indent_base"]; +  object_set.para_attrib.bullet       = (_node_para_int["bullet"] == 1) ? true : false;    return object_set;  }  #+END_SRC @@ -5439,7 +5447,7 @@ auto contents_endnote(  #+name: ao_object_setter_block  #+BEGIN_SRC d  auto contents_block( -  in string type, +  in string type_is,    in string object,    in string attrib,    in int obj_cite_number, @@ -5447,9 +5455,10 @@ auto contents_block(    ObjComposite object_set;    object_set.use                 = "content";    object_set.of                  = "block"; -  object_set.is_a                = type; +  object_set.is_a                = type_is;    object_set.object              = object;    object_set.obj_cite_number     = (obj_cite_number==0) ? "" : to!string(obj_cite_number); +  object_set.anchor_tags         = [];    return object_set;  }  #+END_SRC @@ -5459,7 +5468,7 @@ auto contents_block(  #+name: ao_object_setter_block_code  #+BEGIN_SRC d  auto contents_block_code( -  in string type, +  in string type_is,    in string object,    in string attrib_language_syntax,    in int obj_cite_number, @@ -5467,10 +5476,11 @@ auto contents_block_code(    ObjComposite object_set;    object_set.use                 = "content";    object_set.of                  = "block"; -  object_set.is_a                = type; +  object_set.is_a                = type_is;    object_set.block_attrib.syntax = attrib_language_syntax;    object_set.object              = object;    object_set.obj_cite_number     = (obj_cite_number==0) ? "" : to!string(obj_cite_number); +  object_set.anchor_tags         = [];    return object_set;  }  #+END_SRC @@ -5480,7 +5490,7 @@ auto contents_block_code(  #+name: ao_object_setter_block_obj_cite_number_string  #+BEGIN_SRC d  auto contents_block_obj_cite_number_string( -  in string         type, +  in string         type_is,    in string         object,    in string         obj_cite_number,    in string[string] _node_str, @@ -5489,7 +5499,7 @@ auto contents_block_obj_cite_number_string(    ObjComposite object_set;    object_set.use                               = "content";    object_set.of                                = "block"; -  object_set.is_a                              = type; +  object_set.is_a                              = type_is;    object_set.object                            = object;    object_set.obj_cite_number                   = obj_cite_number;    return object_set; diff --git a/org/ao_defaults.org b/org/ao_defaults.org index d991dec..26f8ae8 100644 --- a/org/ao_defaults.org +++ b/org/ao_defaults.org @@ -404,8 +404,8 @@ template SiSUrgxInitFlags() {        "tic_group"            : 0,        "tic_block"            : 0,        "tic_quote"            : 0, -      "obj_cite_number_status"           : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings -      "obj_cite_number_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings +      "ocn_status"           : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings +      "ocn_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings        "book_index"           : 0,      ];      return flags_type_init; @@ -416,7 +416,7 @@ template SiSUrgxInitFlags() {  #+name: ao_defaults_templates  #+BEGIN_SRC d  template SiSUnode() { -  string[string] node_metadata_str() { +  string[string] node_metadata_heading_str() {      auto _node = [          "is"                            : "",          "ocn"                           : "", @@ -426,7 +426,7 @@ template SiSUnode() {      ];      return _node;    } -  int[string] node_metadata_int() { +  int[string] node_metadata_heading_int() {      auto _node = [          "ocn"                           : 0, // decide whether to use or keep?          "ptr_doc_object"                : 0, @@ -439,6 +439,24 @@ template SiSUnode() {      ];      return _node;    } +  string[string] node_metadata_para_str() { +    auto _node = [ +        "is"                            : "", +        "ocn"                           : "", +        "attrib"                        : "", +        // "segment_anchor_tag"            : "", +    ]; +    return _node; +  } +  int[string] node_metadata_para_int() { +    auto _node = [ +        "ocn"                           : 0, +        "indent_base"                   : 0, +        "indent_hang"                   : 0, +        "bullet"                        : 0, // bool (0|1) +    ]; +    return _node; +  }  }  #+END_SRC diff --git a/org/output.org b/org/output.org index 924540c..0bad148 100644 --- a/org/output.org +++ b/org/output.org @@ -91,31 +91,46 @@ template SiSUoutputHTML() {  ** text                                                                :text:  ** html [#A]                                                           :html:  *** html text objects -**** html functions -***** html +**** misc -***** heading +#+name: output_html +#+BEGIN_SRC d +string _html_anchor_tags(const(string[]) anchor_tags) { +  string tags=""; +  if (anchor_tags.length > 0) { +    foreach (tag; anchor_tags) { +      if (!(tag.empty)) { +        tags ~= "<a name=\"" ~ tag ~ "\"></a>"; +      } +    } +  } +  return tags; +} +#+END_SRC + +**** heading  #+name: output_html  #+BEGIN_SRC d  auto html_heading(O)(    auto ref const O         obj,  ) { +  auto tags = _html_anchor_tags(obj.anchor_tags);    string o;    o = format(q"¶<br><hr /><br>    <div class="substance">      <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> -    <h%s class="%s" id="%s"><a name="%s"></a> +    <h%s class="%s" id="%s"><a name="%s"></a>%s        %s      </h%s> -  </div> -  ¶", +  </div>¶",    obj.obj_cite_number,    obj.obj_cite_number,    obj.heading_attrib.lev_int_markup,    obj.is_a,    obj.obj_cite_number,    obj.obj_cite_number, +  tags,    obj.object,    obj.heading_attrib.lev_int_markup    ); @@ -123,43 +138,44 @@ auto html_heading(O)(  }  #+END_SRC -***** para +**** para  #+name: output_html  #+BEGIN_SRC d  auto html_para(O)(    auto ref const O         obj,  ) { +  auto tags = _html_anchor_tags(obj.anchor_tags);    string o;    if (obj.obj_cite_number.empty) { -    o = format(q"¶<div class="substance"> -    <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> -    <p class="%s" attrib="h%si%s"> -      %s -    </p> -  </div> -  ¶", +    o = format(q"¶  <div class="substance"> +  <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> +  <p class="%s" attrib="h%si%s">%s +    %s +  </p> +</div>¶",        obj.obj_cite_number,        obj.obj_cite_number,        obj.is_a,        obj.para_attrib.indent_start,        obj.para_attrib.indent_rest, +      tags,        obj.object      );    } else { -    o = format(q"¶<div class="substance"> -    <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> -    <p class="%s" attrib="h%si%s" id="%s"> -      %s -    </p> -  </div> -  ¶", +    o = format(q"¶  <div class="substance"> +  <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> +  <p class="%s" attrib="h%si%s" id="%s">%s +    %s +  </p> +</div>¶",        obj.obj_cite_number,        obj.obj_cite_number,        obj.is_a,        obj.para_attrib.indent_start,        obj.para_attrib.indent_rest,        obj.obj_cite_number, +      tags,        obj.object      );    } @@ -167,56 +183,7 @@ auto html_para(O)(  }  #+END_SRC -***** html endnote - -#+name: output_html -#+BEGIN_SRC d -auto html_endnote(O)( -  auto ref const O         obj, -) { -  string o; -  o = format(q"¶<div class="substance"> -    <label class="tag"><a name="%s" a href="%s" class="lnkocn"></a></label> -    <p class="%s" attrib="h%si%s"> -      %s -    </p> -  </div> -  ¶", -    obj.anchor_tags[0], -    obj.anchor_tags[0], -    obj.is_a, -    obj.para_attrib.indent_start, -    obj.para_attrib.indent_rest, -    obj.object -  ); -  return o; -} -#+END_SRC - -***** html toc - -#+name: output_html -#+BEGIN_SRC d -auto html_toc(O)( -  auto ref const O         obj, -) { -  string o; -  o = format(q"¶<div class="substance"> -    <p class="%s" attrib="h%si%s"> -      %s -    </p> -  </div> -  ¶", -  obj.is_a, -  obj.para_attrib.indent_start, -  obj.para_attrib.indent_rest, -  obj.object -  ); -  return o; -} -#+END_SRC - -***** html nugget +**** nugget  #+name: output_html  #+BEGIN_SRC d @@ -224,13 +191,12 @@ auto html_nugget(O)(    auto ref const O         obj,  ) {    string o; -  o = format(q"¶<div class="substance"> -    <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> -    <p class="%s" id="%s"> -      %s -    </p> -  </div> -  ¶", +  o = format(q"¶  <div class="substance"> +  <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> +  <p class="%s" id="%s"> +    %s +  </p> +</div>¶",    obj.obj_cite_number,    obj.obj_cite_number,    obj.is_a, @@ -241,14 +207,13 @@ auto html_nugget(O)(  }  #+END_SRC -**** html scroll head & tail +**** scroll head  #+name: output_html  #+BEGIN_SRC d  auto scroll_head_html() {    string o; -  o = format(q"¶ -<!DOCTYPE html> +  o = format(q"¶<!DOCTYPE html>  <html>  <head>    <meta charset="utf-8"> @@ -274,24 +239,70 @@ auto scroll_head_html() {    <link href="../../../_sisu/css/html.css" rel="stylesheet">  </head>  <body lang="en"> -<a name="top" id="top"></a> -¶"); +<a name="top" id="top"></a>¶"); +  return o; +} +#+END_SRC + +**** scroll toc + +#+name: output_html +#+BEGIN_SRC d +auto html_toc(O)( +  auto ref const O         obj, +) { +  string o; +  o = format(q"¶  <div class="substance"> +  <p class="%s" attrib="h%si%s"> +    %s +  </p> +</div>¶", +  obj.is_a, +  obj.para_attrib.indent_start, +  obj.para_attrib.indent_rest, +  obj.object +  ); +  return o; +} +#+END_SRC + +**** scroll endnote + +#+name: output_html +#+BEGIN_SRC d +auto html_endnote(O)( +  auto ref const O         obj, +) { +  string o; +  o = format(q"¶    <p class="%s" attrib="h%si%s"> +  %s +</p>¶", +    obj.is_a, +    obj.para_attrib.indent_start, +    obj.para_attrib.indent_rest, +    obj.object +  );    return o;  } +#+END_SRC + +**** scroll tail + +#+name: output_html +#+BEGIN_SRC d  auto scroll_tail_html() {    string o; -  o = format(q"¶ -<a name="bottom" id="bottom"></a> -<a name="end" id="end"></a> +  o = format(q"¶  <a name="bottom" id="bottom"></a> +  <a name="end" id="end"></a>  </div>  </body> -</html> -¶"); +</html>¶");    return o;  }  #+END_SRC -**** html scroll +*** html hub, sort objects [#A] +**** scroll  #+name: output_html  #+BEGIN_SRC d @@ -365,1296 +376,1296 @@ void scroll(C)(  }  #+END_SRC -*** css                                                                 :css: +**** seg +*** css                                                               :css:  #+name: output_html_css  #+BEGIN_SRC d  auto html_css() {    string css;    css="/* SiSU css default stylesheet */ -      body { -        color: black; -        background: #ffffff; -        background-color: #ffffff; -      } -      a:link { -        color: #003399; -        text-decoration: none; -      } -      a:visited { -        color: #003399; -        text-decoration: none; -      } -      a:hover { -        color: #000000; -        background-color: #f9f9aa; -      } -      a.lnkocn:link { -        color: #777777; -        text-decoration: none; -      } -      a:hover img { -        background-color: #ffffff; -      } -      a:active { -        color: #003399; -        text-decoration: underline; -      } -      div { -        margin-left: 0; -        margin-right: 0; -      } -      div.p { -        margin-left: 5%; -        margin-right: 1%; -      } - -      #top_band { -        position: absolute; -        top: 0; -        bottom: 80px; -        width: 100%; -      } -      #top_band_search { -        position: absolute; -        top: 0px; -        right: 0px; -        margin-left: 75%; -        width: 20%; -      } -      #column_left { -        position: absolute; -        top: 80px; -        left: 0; -        margin-left: 1%; -        width: 20%; -      } -      #column_center { -        position: absolute; -        top: 80px; -        margin-left: 20%; -        width: 55%; -      } -      #column_right { -        position: absolute; -        top: 80px; -        right: 0px; -        margin-left: 75%; -        width: 25%; -      } -      #pane_major { -        position: absolute; -        top: 0px; -        left: 0; -        margin-left: 0; -        width: 80%; -      } -      #pane_minor { -        position: absolute; -        top: 0px; -        right: 0px; -        margin-left: 75%; -        width: 20%; -        background-color: #aaaaaa; -      } -      .norm, .bold, .verse, .group, .block, .alt { -        line-height: 133%; -        margin-left: 0em; -        margin-right: 2em; -        margin-top: 12px; -        margin-bottom: 0px; -        padding-left: 0em; -        text-indent: 0em; -      } -      p, h0, h1, h2, h3, h4, h5, h6, h7 { -        display: block; -        font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman; -        font-size: 100%; -        font-weight: normal; -        line-height: 133%; -        text-align: justify; -        margin-left: 0em; -        margin-right: 2em; -        text-indent: 0mm; -        margin-top: 0.8em; -        margin-bottom: 0.8em; -      } -      /* indent */ -      p.norm { } -      p.i1 {padding-left: 1em;} -      p.i2 {padding-left: 2em;} -      p.i3 {padding-left: 3em;} -      p.i4 {padding-left: 4em;} -      p.i5 {padding-left: 5em;} -      p.i6 {padding-left: 6em;} -      p.i7 {padding-left: 7em;} -      p.i8 {padding-left: 8em;} -      p.i9 {padding-left: 9em;} -      /* hanging indent */ -      p.h0i0 { -        padding-left: 0em; -        text-indent:  0em; -      } -      p.h0i1 { -        padding-left: 1em; -        text-indent: -1em; -      } -      p.h0i2 { -        padding-left: 2em; -        text-indent: -2em; -      } -      p.h0i3 { -        padding-left: 3em; -        text-indent: -3em; -      } -      p.h0i4 { -        padding-left: 4em; -        text-indent: -4em; -      } -      p.h0i5 { -        padding-left: 5em; -        text-indent: -5em; -      } -      p.h0i6 { -        padding-left: 6em; -        text-indent: -6em; -      } -      p.h0i7 { -        padding-left: 7em; -        text-indent: -7em; -      } -      p.h0i8 { -        padding-left: 8em; -        text-indent: -8em; -      } -      p.h0i9 { -        padding-left: 9em; -        text-indent: -9em; -      } -      p.h1i0 { -        padding-left: 0em; -        text-indent:  1em; -      } -      p.h1i1 { -        padding-left: 1em; -        text-indent:  0em; -      } -      p.h1i2 { -        padding-left: 2em; -        text-indent: -1em; -      } -      p.h1i3 { -        padding-left: 3em; -        text-indent: -2em; -      } -      p.h1i4 { -        padding-left: 4em; -        text-indent: -3em; -      } -      p.h1i5 { -        padding-left: 5em; -        text-indent: -4em; -      } -      p.h1i6 { -        padding-left: 6em; -        text-indent: -5em; -      } -      p.h1i7 { -        padding-left: 7em; -        text-indent: -6em; -      } -      p.h1i8 { -        padding-left: 8em; -        text-indent: -7em; -      } -      p.h1i9 { -        padding-left: 9em; -        text-indent: -8em; -      } -      p.h2i0 { -        padding-left: 0em; -        text-indent:  2em; -      } -      p.h2i1 { -        padding-left: 1em; -        text-indent:  1em; -      } -      p.h2i2 { -        padding-left: 2em; -        text-indent:  0em; -      } -      p.h2i3 { -        padding-left: 3em; -        text-indent: -1em; -      } -      p.h2i4 { -        padding-left: 4em; -        text-indent: -2em; -      } -      p.h2i5 { -        padding-left: 5em; -        text-indent: -3em; -      } -      p.h2i6 { -        padding-left: 6em; -        text-indent: -4em; -      } -      p.h2i7 { -        padding-left: 7em; -        text-indent: -5em; -      } -      p.h2i8 { -        padding-left: 8em; -        text-indent: -6em; -      } -      p.h2i9 { -        padding-left: 9em; -        text-indent: -7em; -      } -      p.h3i0 { -        padding-left: 0em; -        text-indent:  3em; -      } -      p.h3i1 { -        padding-left: 1em; -        text-indent:  2em; -      } -      p.h3i2 { -        padding-left: 2em; -        text-indent:  1em; -      } -      p.h3i3 { -        padding-left: 3em; -        text-indent:  0em; -      } -      p.h3i4 { -        padding-left: 4em; -        text-indent: -1em; -      } -      p.h3i5 { -        padding-left: 5em; -        text-indent: -2em; -      } -      p.h3i6 { -        padding-left: 6em; -        text-indent: -3em; -      } -      p.h3i7 { -        padding-left: 7em; -        text-indent: -4em; -      } -      p.h3i8 { -        padding-left: 8em; -        text-indent: -5em; -      } -      p.h3i9 { -        padding-left: 9em; -        text-indent: -6em; -      } -      p.h4i0 { -        padding-left: 0em; -        text-indent:  4em; -      } -      p.h4i1 { -        padding-left: 1em; -        text-indent:  3em; -      } -      p.h4i2 { -        padding-left: 2em; -        text-indent:  2em; -      } -      p.h4i3 { -        padding-left: 3em; -        text-indent:  1em; -      } -      p.h4i4 { -        padding-left: 4em; -        text-indent:  0em; -      } -      p.h4i5 { -        padding-left: 5em; -        text-indent: -1em; -      } -      p.h4i6 { -        padding-left: 6em; -        text-indent: -2em; -      } -      p.h4i7 { -        padding-left: 7em; -        text-indent: -3em; -      } -      p.h4i8 { -        padding-left: 8em; -        text-indent: -4em; -      } -      p.h4i9 { -        padding-left: 9em; -        text-indent: -5em; -      } -      p.h5i0 { -        padding-left: 0em; -        text-indent:  5em; -      } -      p.h5i1 { -        padding-left: 1em; -        text-indent:  4em; -      } -      p.h5i2 { -        padding-left: 2em; -        text-indent:  3em; -      } -      p.h5i3 { -        padding-left: 3em; -        text-indent:  2em; -      } -      p.h5i4 { -        padding-left: 4em; -        text-indent:  1em; -      } -      p.h5i5 { -        padding-left: 5em; -        text-indent:  0em; -      } -      p.h5i6 { -        padding-left: 6em; -        text-indent: -1em; -      } -      p.h5i7 { -        padding-left: 7em; -        text-indent: -2em; -      } -      p.h5i8 { -        padding-left: 8em; -        text-indent: -3em; -      } -      p.h5i9 { -        padding-left: 9em; -        text-indent: -4em; -      } -      p.h6i0 { -        padding-left: 0em; -        text-indent:  6em; -      } -      p.h6i1 { -        padding-left: 1em; -        text-indent:  5em; -      } -      p.h6i2 { -        padding-left: 2em; -        text-indent:  4em; -      } -      p.h6i3 { -        padding-left: 3em; -        text-indent:  3em; -      } -      p.h6i4 { -        padding-left: 4em; -        text-indent:  2em; -      } -      p.h6i5 { -        padding-left: 5em; -        text-indent:  1em; -      } -      p.h6i6 { -        padding-left: 6em; -        text-indent:  0em; -      } -      p.h6i7 { -        padding-left: 7em; -        text-indent: -1em; -      } -      p.h6i8 { -        padding-left: 8em; -        text-indent: -2em; -      } -      p.h6i9 { -        padding-left: 9em; -        text-indent: -3em; -      } -      p.h7i0 { -        padding-left: 0em; -        text-indent:  7em; -      } -      p.h7i1 { -        padding-left: 1em; -        text-indent:  6em; -      } -      p.h7i2 { -        padding-left: 2em; -        text-indent:  5em; -      } -      p.h7i3 { -        padding-left: 3em; -        text-indent:  4em; -      } -      p.h7i4 { -        padding-left: 4em; -        text-indent:  3em; -      } -      p.h7i5 { -        padding-left: 5em; -        text-indent:  2em; -      } -      p.h7i6 { -        padding-left: 6em; -        text-indent:  1em; -      } -      p.h7i7 { -        padding-left: 7em; -        text-indent:  0em; -      } -      p.h7i8 { -        padding-left: 8em; -        text-indent: -1em; -      } -      p.h7i9 { -        padding-left: 9em; -        text-indent: -2em; -      } -      p.h8i0 { -        padding-left: 0em; -        text-indent:  8em; -      } -      p.h8i1 { -        padding-left: 1em; -        text-indent:  7em; -      } -      p.h8i2 { -        padding-left: 2em; -        text-indent:  6em; -      } -      p.h8i3 { -        padding-left: 3em; -        text-indent:  5em; -      } -      p.h8i4 { -        padding-left: 4em; -        text-indent:  4em; -      } -      p.h8i5 { -        padding-left: 5em; -        text-indent:  3em; -      } -      p.h8i6 { -        padding-left: 6em; -        text-indent:  2em; -      } -      p.h8i7 { -        padding-left: 7em; -        text-indent:  1em; -      } -      p.h8i8 { -        padding-left: 8em; -        text-indent:  0em; -      } -      p.h8i9 { -        padding-left: 9em; -        text-indent: -1em; -      } -      p.h9i0 { -        padding-left: 0em; -        text-indent:  9em; -      } -      p.h9i1 { -        padding-left: 1em; -        text-indent:  8em; -      } -      p.h9i2 { -        padding-left: 2em; -        text-indent:  7em; -      } -      p.h9i3 { -        padding-left: 3em; -        text-indent:  6em; -      } -      p.h9i4 { -        padding-left: 4em; -        text-indent:  5em; -      } -      p.h9i5 { -        padding-left: 5em; -        text-indent:  4em; -      } -      p.h9i6 { -        padding-left: 6em; -        text-indent:  3em; -      } -      p.h9i7 { -        padding-left: 7em; -        text-indent:  2em; -      } -      p.h9i8 { -        padding-left: 8em; -        text-indent:  1em; -      } -      p.h9i9 { -        padding-left: 9em; -        text-indent:  0em; -      } -      p.it0 { -        margin-left: 0em; -        margin-top: 6px; -        margin-bottom: 0px; -        line-height: 100%; -      } -      p.it1 { -        margin-left: 1em; -        margin-top: 0px; -        margin-bottom: 0px; -        line-height: 100%; -      } -      p.it2 { -        margin-left: 2em; -        margin-top: 0px; -        margin-bottom: 0px; -        line-height: 100%; -      } -      p.it3 { -        margin-left: 3em; -        margin-top: 0px; -        margin-bottom: 0px; -        line-height: 100%; -      } -      p.it4 { -        margin-left: 4em; -        margin-top: 0px; -        margin-bottom: 0px; -        line-height: 100%; -      } -      p.it5 { -        margin-left: 5em; -        margin-top: 0px; -        margin-bottom: 0px; -        line-height: 100%; -      } -      p.it6 { -        margin-left: 6em; -        margin-top: 0px; -        margin-bottom: 0px; -        line-height: 100%; -      } -      p.it7 { -        margin-left: 7em; -        margin-top: 0px; -        margin-bottom: 0px; -        line-height: 100%; -      } -      p.it8 { -        margin-left: 8em; -        margin-top: 0px; -        margin-bottom: 0px; -        line-height: 100%; -      } -      p.it9 { -        margin-left: 9em; -        margin-bottom: 0px; -        margin-top: 0px; -        line-height: 100%; -      } -      p.block { } -      p.group { } -      p.alt { } -      p.verse { -        margin-bottom: 6px; -      } -      p.code { -        font-family: inconsolata, andale mono, courier new, courier, monospace; -        font-size: 90%; -        text-align: left; -        background-color: #eeeeee; -      } -      p.caption { -        text-align: left; -        font-size: 80%; -        display: inline; -      } -      p.endnote { -        font-size: 96%; -        line-height: 120%; -        text-align: left; -        margin-right: 15mm; -      } -      p.endnote_indent { -        font-size: 96%; -        line-height: 120%; -        text-align: left; -        margin-left: 2em; -        margin-right: 15mm; -      } -      p.center { -        text-align: center; -      } -      p.bold { -        font-weight: bold; -      } -      p.bold_left { -        font-weight: bold; -        text-align: left; -      } -      p.centerbold { -        text-align: center; -        font-weight: bold; -      } -      p.em { -        font-weight: bold; -        font-style: normal; -        background: #fff3b6; -      } -      p.small { -        font-size: 80%; -        margin-top: 0px; -        margin-bottom: 0px; -        margin-right: 6px; -        text-align: left; -      } -      .tiny, .tiny_left, .tiny_right, .tiny_center { -        font-size: 10px; -        margin-top: 0px; -        margin-bottom: 0px; -        color: #777777; -        margin-right: 6px; -        text-align: left; -      } -      p.tiny { } -      p.tiny_left { -        margin-left: 0px; -        margin-right: 0px; -        text-align: left; -      } -      p.tiny_right { -        margin-right: 1em; -        text-align: right; -      } -      p.tiny_center { -        margin-left: 0px; -        margin-right: 0px; -        text-align: center; -      } -      p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent { -        font-size: 80%; -        margin-top: 0px; -        margin-bottom: 0px; -        margin-left: 2mm; -        margin-right: 4px; -        text-align: left; -      } -      p.pane { } -      p.pane_title { -        font-weight: bold; -        margin-bottom: 0px; -      } -      p.pane_blurb { -        font-size: 10px; -        margin-bottom: 0px; -      } -      p.pane_link { -        font-size: 10px; -        margin-bottom: 0px; -        margin-left: 4mm; -      } -      p.pane_indent { -        font-size: 10px; -        margin-bottom: 0px; -        margin-left: 4mm; -      } -      p.concordance_word { -        line-height: 150%; -        font-weight: bold; -        display: inline; -        margin-top: 4px; -        margin-bottom: 1px; -      } -      p.concordance_count { -        font-size: 80%; -        color: #777777; -        display: inline; -        margin-left: 0em; -      } -      p.concordance_object { -        font-size: 80%; -        line-height: 120%; -        text-align: left; -        margin-left: 3em; -        margin-top: 1px; -        margin-bottom: 3px; -      } -      p.book_index_lev1 { -        line-height: 100%; -        margin-top: 4px; -        margin-bottom: 1px; -      } -      p.book_index_lev2 { -        line-height: 100%; -        text-align: left; -        margin-left: 3em; -        margin-top: 1px; -        margin-bottom: 3px; -      } -      p.quickref { -        font-size: 10px; -        font-style: italic; -        margin-top: 0px; -        margin-bottom: 0px; -        color: #777777; -        margin-right: 5px; -        text-align: left; -      } -      p.bigref { -        font-size: 11px; -        font-weight: bold; -        margin-top: 0px; -        margin-bottom: 0px; -        color: #777777; -        margin-right: 5px; -        text-align: center; -      } -      p.letter { -        font-weight: bold; -        font-size: 80%; -        margin-left: 0em; -        margin-top: 2px; -        margin-bottom: 2px; -        margin-right: 6px; -        text-align: left; -        color: white; -        background: #880000; -      } -      tt { -        font-family: inconsolata, andale mono, courier new, courier, monospace; -        background-color: #eeeeee; -      } -      label.ocn { -        width: 2%; -        float: right; -        top: 0; -        font-size: 10px; -        margin-top: 0px; -        margin-bottom: 5px; -        color: #777777; -        margin-right: 5px; -        text-align: right; -        background-color: #ffffff; -      } -      table { } -      tr { } -      th,td { -        vertical-align: top; -        text-align: left; -      } -      th { -        font-weight: bold; -      } -      p.left,th.left,td.left { -        text-align: left; -      } -      p.small_left,th.small_left,td.small_left { -        text-align: left; -        font-size: 80%; -      } -      p.right,th.right,td.right { -        text-align: right; -      } -      #horizontal_links { -        background: #eeeeee; -        margin-left: 5%; -        margin-right: 5%; -      } -      #horizontal { -        margin: 0; -        padding: 0 0 0 10px; -        border-top: 1px solid #000077; -        border-bottom: 1px solid #000077; -      } -      #horizontal li { -        margin: 0 0 0 0; -        padding: 0 16px 0 0; -        display: inline; -        list-style-type: none; -        text-align: left; -        background: none; -      } -      #horizontal a { -        line-height: 12px; -        margin: 0 0 0 0; -        text-decoration: none; -        color: #000077; -      } -      #horizontal a.active, #horizontal a:hover { -        border-bottom: 2px solid #777777; -        padding-bottom: 2px; -        color: #000077; -      } -      #horizontal a:hover { -        color: #000077; -      } -      #document_versions { -        position: absolute; -        top: 10mm; -        right: 2%; -        width: 12%; -        float: right; -      } -      #vertical_links { -        position: absolute; -        top: 10mm; -        right: 0px; -        width: 20%; -        background: #dddddd; -        float: right; -      } -      #vertical { -        padding: 0 12px 0px 0px; -        margin-left: 2%; -        margin-right: 2%; -      } -      #vertical li { -        display: block; -        list-style-type: none; -      } -      #vertical a { -        line-height: 12px; -        text-decoration: none; -        color: #000077; -      } -      #vertical a.active, #vertical a:hover { -        border-bottom: 2px solid #777777; -        padding-bottom: 2px; -        color: #000077; -      } -      ul, li { -        list-style-type: none; -        list-style: none; -        padding-left: 20px; -        display: block; -        font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman; -        font-weight: normal; -        line-height: 150%; -        text-align: left; -        text-indent: 0mm; -        margin-left: 1em; -        margin-right: 2em; -        margin-top: 3px; -        margin-bottom: 3px; -      } -      li { -        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; -      } -      ul { -      } -      li.bullet { margin-left: 1em; } -      li.i1 { margin-left: 2em; } -      li.i2 { margin-left: 3em; } -      li.i3 { margin-left: 4em; } -      li.i4 { margin-left: 5em; } -      li.i5 { margin-left: 6em; } -      li.i6 { margin-left: 7em; } -      li.i7 { margin-left: 8em; } -      li.i8 { margin-left: 9em; } -      li.i9 { margin-left: 10em; } -      li.doc, li.ref, li.refcenter { -        margin-top: 0px; -        margin-bottom: 0px; -        margin-right: 0px; -        font-size: 8px; -        font-style: normal; -        text-align: left; -      } -      li.doc { -        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; -        padding-left: 16px; -        margin-left: 10px; -        margin-right: 0px; -      } -      li.ref { -        background: none; -        padding-left: 0; -        margin-left: 0; -        color: #777777; -      } -      li.refcenter { -        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; -        padding-left: 20px; -        margin-left: 10%; -        font-size: 9px; -        color: #777777; -        text-align: center; -      } -      li.refbold { -        list-style-type: none; -        padding-left: 16px; -        margin-left: 0; -        margin-right: 10mm; -        font-weight: bold; -      } -      h0, h1, h2, h3, h4, h5, h6, h7 { -        font-weight: bold; -        line-height: 120%; -        text-align: left; -        margin-top: 20px; -        margin-bottom: 10px; -      } -      h4.norm, h5.norm, h6.norm, h7.norm { -        margin-top: 10px; -        margin-bottom: 0px; -      } -      h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center { -        text-align: center; -      } -      h0 { font-size: 125%; } -      h1 { font-size: 120%; } -      h2 { font-size: 115%; } -      h3 { font-size: 110%; } -      h4 { font-size: 105%; } -      h5 { font-size: 100%; } -      h6 { font-size: 100%; } -      h7 { font-size: 100%; } -      h1.i {margin-left: 2em;} -      h2.i {margin-left: 3em;} -      h3.i {margin-left: 4em;} -      h4.i {margin-left: 5em;} -      h5.i {margin-left: 6em;} -      h6.i {margin-left: 7em;} -      h7.i {margin-left: 8em;} -      h8.i {margin-left: 9em;} -      h9.i {margin-left: 10em;} -      h1.top_band { -        display: inline; -        text-align: left; -        margin-top: 0; -        margin-left: 4mm; -        text-indent: 0mm; -        font-weight: bold; -        font-size: 120%; -      } -      h2.top_band_tiny { -        font-size: 10px; -        font-weight: normal; -        margin-top: 0px; -        margin-left: 4mm; -        text-indent: 0mm; -        margin-bottom: 0px; -        color: #777777; -        margin-left: 140px; -        margin-right: 0px; -        text-align: left; -      } -      p.top_band { -        display: inline; -        text-align: left; -        margin-top: 0; -        margin-left: 140px; -        text-indent: 0mm; -        font-weight: bold; -        font-size: 120%; -      } -      p.top_band_tiny { -        font-size: 10px; -        margin-top: 0px; -        margin-bottom: 0px; -        color: #777777; -        margin-left: 140px; -        margin-right: 0px; -        text-align: left; -      } -      p.top_band_image { -        float: left; -        display: inline; -        text-align: left; -        margin-top: 0; -        margin-left: 1mm; -        text-indent: 0mm; -        margin-right: 1mm; -      } -      .banner, .subbanner { -        font-weight: bold; -        text-align: center; -        margin-left: 10mm; -        margin-right: 15mm; -        margin-top: 20px; -        margin-bottom: 10px; -      } -      h0.banner { -        font-size: 125%; -      } -      h1.banner { -        font-size: 120%; -      } -      h1.subbanner { -        font-size: 115%; -      } -      h2.banner { -        font-size: 110%; -      } -      h3.banner { -        color: #990000; -        font-size: 105%; -      } -      h4.banner { -        color: #ff0000; -        font-size: 100%; -      } -      h5.banner { -      } -      h6.banner { -      } -      h7.banner { -      } -      .toc { -        font-weight: normal; -        margin-top: 6px; -        margin-bottom: 6px; -      } -      h0.toc { -        margin-left: 1em; -        font-size: 120%; -        line-height: 150%; -      } -      h1.toc { -        margin-left: 1em; -        font-size: 115%; -        line-height: 150%; -      } -      h2.toc { -        margin-left: 2em; -        font-size: 110%; -        line-height: 140%; -      } -      h3.toc { -        margin-left: 3em; -        font-size: 105%; -        line-height: 120%; -      } -      h4.toc { -        margin-left: 4em; -        font-size: 100%; -        line-height: 120%; -      } -      h5.toc { -        margin-left: 5em; -        font-size: 95%; -        line-height: 110%; -      } -      h6.toc { -        margin-left: 6em; -        font-size: 90%; -        line-height: 110%; -      } -      h7.toc { -        margin-left: 7em; -        font-size: 85%; -        line-height: 100%; -      } -      .microtoc { -        margin-top: 2px; -        margin-bottom: 2px; -      } -      h0.microtoc { -        margin-left: 0mm; -        font-size: 120%; -      } -      h1.microtoc { -        margin-left: 0mm; -        font-size: 115%; -      } -      h2.microtoc { -        margin-left: 5mm; -        font-size: 110%; -      } -      h3.microtoc { -        margin-left: 10mm; -        font-size: 105%; -      } -      h4.microtoc { -        margin-left: 15mm; -        font-weight: normal; -        font-size: 100%; -      } -      h5.microtoc { -        margin-left: 20mm; -        font-weight: normal; -        font-size: 95%; -      } -      h6.microtoc { -        margin-left: 25mm; -        font-weight: normal; -        font-size: 90%; -      } -      h7.microtoc { -        margin-left: 30mm; -        font-weight: normal; -        font-size: 85%; -      } -      .subtoc { -        margin-right: 34%; -        font-weight: normal; -      } -      h5.subtoc { -        margin-left: 2em; -        font-size: 80%; -        margin-top: 2px; -        margin-bottom: 2px; -      } -      h6.subtoc { -        margin-left: 3em; -        font-size: 75%; -        margin-top: 0px; -        margin-bottom: 0px; -      } -      h7.subtoc { -        margin-left: 4em; -        font-size: 70%; -        margin-top: 0px; -        margin-bottom: 0px; -      } -      div.substance { -        width: 100%; -        background-color: #ffffff; -      } -      div.ocn { -        width: 5%; -        float: right; -        top: 0; -        background-color: #ffffff; -      } -      div.endnote { -        width: 95%; -        background-color: #fffffff; -      } -      div.toc { -        position: absolute; -        float: left; -        margin: 0; -        padding: 0; -        padding-top: 0.5em; -        border: 0; -        width: 13em; -        background-color: #eeeeee; -        margin-right:1em; -      } -      div.summary { -        margin: 0; -        padding: 0; -        border-left: 13em solid #eeeeee; -        padding-left: 1em; -        background-color: #eeeeee; -      } -      div.content, div.main_column { -        margin: 0; -        padding: 0; -        border-left: 13em solid #ffffff; -        padding-left: 1em; -        padding-right: 1em; -      } -      div.content0, div.main_column0 { -        margin: 0; -        padding: 0; -        border-left: 0% solid #ffffff; -        padding-left: 5%; -      } -      div.scroll { -        margin: 0; -        padding: 0; -        padding-left: 1em; -        padding-right: 1em; -      } -      div.content:after { -        content:' '; -        clear:both; -        display:block; -        height:0; -        overflow:hidden -      } -      div.footer { -        clear:left; -        padding: 0.5em; -        font-size: 80%; -        margin: 0; -      } -      div.toc ul { -        list-style: none; -        padding: 0; -        margin: 0; -      } -      div.toc li ul a, li ul span.currentlink -      { -        font-weight: normal; -        font-size: 90%; -        padding-left: 2em; -        background-color: #eeeeee; -      } -      div.toc a, span.currentlink{ -        display:block; -        text-decoration: none; -        padding-left: 0.5em; -        color: #0000aa; -      } -      hr { -        width: 90%; -      } -      span.currentlink { -        text-decoration: none; -        background-color: #aaaaf9; -      } -      div.toc a:visited { -        color: #0000aa; -      } -      div.toc a:hover { -        color: #000000; -        background-color: #f9f9aa; -      } -      .minitoc { -        font-weight: normal; -        margin-top: 2px; -        margin-bottom: 2px; -      } -      h1.minitoc, h2.minitoc, h3.minitoc { -        margin-left: 0em; -        font-weight: bold; -        text-align: left; -        font-size: 90%; -        margin-top: 4px; -        margin-bottom: 4px; -      } -      h4.minitoc { -        margin-left: 0em; -        font-size: 90%; -      } -      h5.minitoc { -        margin-left: 1em; -        font-size: 85%; -      } -      h6.minitoc { -        margin-left: 2em; -        font-size: 85%; -      } -      h7.minitoc { -        margin-left: 3em; -        font-size: 80%; -      } -      h0.minitoc { -        margin-left: 0em; -        font-size: 90%; -      } -      h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c { -        text-align: center -      } -      h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red { -        text-align: center; -        color: #ff0000; -        margin-left: 5mm; -        text-indent: 5mm; -        margin-top: 30px; -        margin-bottom: 20px; -        margin-right: 15mm; -      } -      h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby { -        text-align: center; -        color: #990000; -        margin-left: 5mm; -        text-indent: 5mm; -        margin-top: 30px; -        margin-bottom: 20px; -        margin-right: 15mm; +  body { +    color: black; +    background: #ffffff; +    background-color: #ffffff; +  } +  a:link { +    color: #003399; +    text-decoration: none; +  } +  a:visited { +    color: #003399; +    text-decoration: none; +  } +  a:hover { +    color: #000000; +    background-color: #f9f9aa; +  } +  a.lnkocn:link { +    color: #777777; +    text-decoration: none; +  } +  a:hover img { +    background-color: #ffffff; +  } +  a:active { +    color: #003399; +    text-decoration: underline; +  } +  div { +    margin-left: 0; +    margin-right: 0; +  } +  div.p { +    margin-left: 5%; +    margin-right: 1%; +  } +  #top_band { +    position: absolute; +    top: 0; +    bottom: 80px; +    width: 100%; +  } +  #top_band_search { +    position: absolute; +    top: 0px; +    right: 0px; +    margin-left: 75%; +    width: 20%; +  } +  #column_left { +    position: absolute; +    top: 80px; +    left: 0; +    margin-left: 1%; +    width: 20%; +  } +  #column_center { +    position: absolute; +    top: 80px; +    margin-left: 20%; +    width: 55%; +  } +  #column_right { +    position: absolute; +    top: 80px; +    right: 0px; +    margin-left: 75%; +    width: 25%; +  } +  #pane_major { +    position: absolute; +    top: 0px; +    left: 0; +    margin-left: 0; +    width: 80%; +  } +  #pane_minor { +    position: absolute; +    top: 0px; +    right: 0px; +    margin-left: 75%; +    width: 20%; +    background-color: #aaaaaa; +  } +  .norm, .bold, .verse, .group, .block, .alt { +    line-height: 133%; +    margin-left: 0em; +    margin-right: 2em; +    margin-top: 12px; +    margin-bottom: 0px; +    padding-left: 0em; +    text-indent: 0em; +  } +  p, h0, h1, h2, h3, h4, h5, h6, h7 { +    display: block; +    font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman; +    font-size: 100%; +    font-weight: normal; +    line-height: 133%; +    text-align: justify; +    margin-left: 0em; +    margin-right: 2em; +    text-indent: 0mm; +    margin-top: 0.8em; +    margin-bottom: 0.8em; +  } +  /* indent */ +  p.norm { } +  p.i1 {padding-left: 1em;} +  p.i2 {padding-left: 2em;} +  p.i3 {padding-left: 3em;} +  p.i4 {padding-left: 4em;} +  p.i5 {padding-left: 5em;} +  p.i6 {padding-left: 6em;} +  p.i7 {padding-left: 7em;} +  p.i8 {padding-left: 8em;} +  p.i9 {padding-left: 9em;} +  /* hanging indent */ +  p.h0i0 { +    padding-left: 0em; +    text-indent:  0em; +  } +  p.h0i1 { +    padding-left: 1em; +    text-indent: -1em; +  } +  p.h0i2 { +    padding-left: 2em; +    text-indent: -2em; +  } +  p.h0i3 { +    padding-left: 3em; +    text-indent: -3em; +  } +  p.h0i4 { +    padding-left: 4em; +    text-indent: -4em; +  } +  p.h0i5 { +    padding-left: 5em; +    text-indent: -5em; +  } +  p.h0i6 { +    padding-left: 6em; +    text-indent: -6em; +  } +  p.h0i7 { +    padding-left: 7em; +    text-indent: -7em; +  } +  p.h0i8 { +    padding-left: 8em; +    text-indent: -8em; +  } +  p.h0i9 { +    padding-left: 9em; +    text-indent: -9em; +  } +  p.h1i0 { +    padding-left: 0em; +    text-indent:  1em; +  } +  p.h1i1 { +    padding-left: 1em; +    text-indent:  0em; +  } +  p.h1i2 { +    padding-left: 2em; +    text-indent: -1em; +  } +  p.h1i3 { +    padding-left: 3em; +    text-indent: -2em; +  } +  p.h1i4 { +    padding-left: 4em; +    text-indent: -3em; +  } +  p.h1i5 { +    padding-left: 5em; +    text-indent: -4em; +  } +  p.h1i6 { +    padding-left: 6em; +    text-indent: -5em; +  } +  p.h1i7 { +    padding-left: 7em; +    text-indent: -6em; +  } +  p.h1i8 { +    padding-left: 8em; +    text-indent: -7em; +  } +  p.h1i9 { +    padding-left: 9em; +    text-indent: -8em; +  } +  p.h2i0 { +    padding-left: 0em; +    text-indent:  2em; +  } +  p.h2i1 { +    padding-left: 1em; +    text-indent:  1em; +  } +  p.h2i2 { +    padding-left: 2em; +    text-indent:  0em; +  } +  p.h2i3 { +    padding-left: 3em; +    text-indent: -1em; +  } +  p.h2i4 { +    padding-left: 4em; +    text-indent: -2em; +  } +  p.h2i5 { +    padding-left: 5em; +    text-indent: -3em; +  } +  p.h2i6 { +    padding-left: 6em; +    text-indent: -4em; +  } +  p.h2i7 { +    padding-left: 7em; +    text-indent: -5em; +  } +  p.h2i8 { +    padding-left: 8em; +    text-indent: -6em; +  } +  p.h2i9 { +    padding-left: 9em; +    text-indent: -7em; +  } +  p.h3i0 { +    padding-left: 0em; +    text-indent:  3em; +  } +  p.h3i1 { +    padding-left: 1em; +    text-indent:  2em; +  } +  p.h3i2 { +    padding-left: 2em; +    text-indent:  1em; +  } +  p.h3i3 { +    padding-left: 3em; +    text-indent:  0em; +  } +  p.h3i4 { +    padding-left: 4em; +    text-indent: -1em; +  } +  p.h3i5 { +    padding-left: 5em; +    text-indent: -2em; +  } +  p.h3i6 { +    padding-left: 6em; +    text-indent: -3em; +  } +  p.h3i7 { +    padding-left: 7em; +    text-indent: -4em; +  } +  p.h3i8 { +    padding-left: 8em; +    text-indent: -5em; +  } +  p.h3i9 { +    padding-left: 9em; +    text-indent: -6em; +  } +  p.h4i0 { +    padding-left: 0em; +    text-indent:  4em; +  } +  p.h4i1 { +    padding-left: 1em; +    text-indent:  3em; +  } +  p.h4i2 { +    padding-left: 2em; +    text-indent:  2em; +  } +  p.h4i3 { +    padding-left: 3em; +    text-indent:  1em; +  } +  p.h4i4 { +    padding-left: 4em; +    text-indent:  0em; +  } +  p.h4i5 { +    padding-left: 5em; +    text-indent: -1em; +  } +  p.h4i6 { +    padding-left: 6em; +    text-indent: -2em; +  } +  p.h4i7 { +    padding-left: 7em; +    text-indent: -3em; +  } +  p.h4i8 { +    padding-left: 8em; +    text-indent: -4em; +  } +  p.h4i9 { +    padding-left: 9em; +    text-indent: -5em; +  } +  p.h5i0 { +    padding-left: 0em; +    text-indent:  5em; +  } +  p.h5i1 { +    padding-left: 1em; +    text-indent:  4em; +  } +  p.h5i2 { +    padding-left: 2em; +    text-indent:  3em; +  } +  p.h5i3 { +    padding-left: 3em; +    text-indent:  2em; +  } +  p.h5i4 { +    padding-left: 4em; +    text-indent:  1em; +  } +  p.h5i5 { +    padding-left: 5em; +    text-indent:  0em; +  } +  p.h5i6 { +    padding-left: 6em; +    text-indent: -1em; +  } +  p.h5i7 { +    padding-left: 7em; +    text-indent: -2em; +  } +  p.h5i8 { +    padding-left: 8em; +    text-indent: -3em; +  } +  p.h5i9 { +    padding-left: 9em; +    text-indent: -4em; +  } +  p.h6i0 { +    padding-left: 0em; +    text-indent:  6em; +  } +  p.h6i1 { +    padding-left: 1em; +    text-indent:  5em; +  } +  p.h6i2 { +    padding-left: 2em; +    text-indent:  4em; +  } +  p.h6i3 { +    padding-left: 3em; +    text-indent:  3em; +  } +  p.h6i4 { +    padding-left: 4em; +    text-indent:  2em; +  } +  p.h6i5 { +    padding-left: 5em; +    text-indent:  1em; +  } +  p.h6i6 { +    padding-left: 6em; +    text-indent:  0em; +  } +  p.h6i7 { +    padding-left: 7em; +    text-indent: -1em; +  } +  p.h6i8 { +    padding-left: 8em; +    text-indent: -2em; +  } +  p.h6i9 { +    padding-left: 9em; +    text-indent: -3em; +  } +  p.h7i0 { +    padding-left: 0em; +    text-indent:  7em; +  } +  p.h7i1 { +    padding-left: 1em; +    text-indent:  6em; +  } +  p.h7i2 { +    padding-left: 2em; +    text-indent:  5em; +  } +  p.h7i3 { +    padding-left: 3em; +    text-indent:  4em; +  } +  p.h7i4 { +    padding-left: 4em; +    text-indent:  3em; +  } +  p.h7i5 { +    padding-left: 5em; +    text-indent:  2em; +  } +  p.h7i6 { +    padding-left: 6em; +    text-indent:  1em; +  } +  p.h7i7 { +    padding-left: 7em; +    text-indent:  0em; +  } +  p.h7i8 { +    padding-left: 8em; +    text-indent: -1em; +  } +  p.h7i9 { +    padding-left: 9em; +    text-indent: -2em; +  } +  p.h8i0 { +    padding-left: 0em; +    text-indent:  8em; +  } +  p.h8i1 { +    padding-left: 1em; +    text-indent:  7em; +  } +  p.h8i2 { +    padding-left: 2em; +    text-indent:  6em; +  } +  p.h8i3 { +    padding-left: 3em; +    text-indent:  5em; +  } +  p.h8i4 { +    padding-left: 4em; +    text-indent:  4em; +  } +  p.h8i5 { +    padding-left: 5em; +    text-indent:  3em; +  } +  p.h8i6 { +    padding-left: 6em; +    text-indent:  2em; +  } +  p.h8i7 { +    padding-left: 7em; +    text-indent:  1em; +  } +  p.h8i8 { +    padding-left: 8em; +    text-indent:  0em; +  } +  p.h8i9 { +    padding-left: 9em; +    text-indent: -1em; +  } +  p.h9i0 { +    padding-left: 0em; +    text-indent:  9em; +  } +  p.h9i1 { +    padding-left: 1em; +    text-indent:  8em; +  } +  p.h9i2 { +    padding-left: 2em; +    text-indent:  7em; +  } +  p.h9i3 { +    padding-left: 3em; +    text-indent:  6em; +  } +  p.h9i4 { +    padding-left: 4em; +    text-indent:  5em; +  } +  p.h9i5 { +    padding-left: 5em; +    text-indent:  4em; +  } +  p.h9i6 { +    padding-left: 6em; +    text-indent:  3em; +  } +  p.h9i7 { +    padding-left: 7em; +    text-indent:  2em; +  } +  p.h9i8 { +    padding-left: 8em; +    text-indent:  1em; +  } +  p.h9i9 { +    padding-left: 9em; +    text-indent:  0em; +  } +  p.it0 { +    margin-left: 0em; +    margin-top: 6px; +    margin-bottom: 0px; +    line-height: 100%; +  } +  p.it1 { +    margin-left: 1em; +    margin-top: 0px; +    margin-bottom: 0px; +    line-height: 100%; +  } +  p.it2 { +    margin-left: 2em; +    margin-top: 0px; +    margin-bottom: 0px; +    line-height: 100%; +  } +  p.it3 { +    margin-left: 3em; +    margin-top: 0px; +    margin-bottom: 0px; +    line-height: 100%; +  } +  p.it4 { +    margin-left: 4em; +    margin-top: 0px; +    margin-bottom: 0px; +    line-height: 100%; +  } +  p.it5 { +    margin-left: 5em; +    margin-top: 0px; +    margin-bottom: 0px; +    line-height: 100%; +  } +  p.it6 { +    margin-left: 6em; +    margin-top: 0px; +    margin-bottom: 0px; +    line-height: 100%; +  } +  p.it7 { +    margin-left: 7em; +    margin-top: 0px; +    margin-bottom: 0px; +    line-height: 100%; +  } +  p.it8 { +    margin-left: 8em; +    margin-top: 0px; +    margin-bottom: 0px; +    line-height: 100%; +  } +  p.it9 { +    margin-left: 9em; +    margin-bottom: 0px; +    margin-top: 0px; +    line-height: 100%; +  } +  p.block { } +  p.group { } +  p.alt { } +  p.verse { +    margin-bottom: 6px; +  } +  p.code { +    font-family: inconsolata, andale mono, courier new, courier, monospace; +    font-size: 90%; +    text-align: left; +    background-color: #eeeeee; +  } +  p.caption { +    text-align: left; +    font-size: 80%; +    display: inline; +  } +  p.endnote { +    font-size: 96%; +    line-height: 120%; +    text-align: left; +    margin-right: 15mm; +  } +  p.endnote_indent { +    font-size: 96%; +    line-height: 120%; +    text-align: left; +    margin-left: 2em; +    margin-right: 15mm; +  } +  p.center { +    text-align: center; +  } +  p.bold { +    font-weight: bold; +  } +  p.bold_left { +    font-weight: bold; +    text-align: left; +  } +  p.centerbold { +    text-align: center; +    font-weight: bold; +  } +  p.em { +    font-weight: bold; +    font-style: normal; +    background: #fff3b6; +  } +  p.small { +    font-size: 80%; +    margin-top: 0px; +    margin-bottom: 0px; +    margin-right: 6px; +    text-align: left; +  } +  .tiny, .tiny_left, .tiny_right, .tiny_center { +    font-size: 10px; +    margin-top: 0px; +    margin-bottom: 0px; +    color: #777777; +    margin-right: 6px; +    text-align: left; +  } +  p.tiny { } +  p.tiny_left { +    margin-left: 0px; +    margin-right: 0px; +    text-align: left; +  } +  p.tiny_right { +    margin-right: 1em; +    text-align: right; +  } +  p.tiny_center { +    margin-left: 0px; +    margin-right: 0px; +    text-align: center; +  } +  p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent { +    font-size: 80%; +    margin-top: 0px; +    margin-bottom: 0px; +    margin-left: 2mm; +    margin-right: 4px; +    text-align: left; +  } +  p.pane { } +  p.pane_title { +    font-weight: bold; +    margin-bottom: 0px; +  } +  p.pane_blurb { +    font-size: 10px; +    margin-bottom: 0px; +  } +  p.pane_link { +    font-size: 10px; +    margin-bottom: 0px; +    margin-left: 4mm; +  } +  p.pane_indent { +    font-size: 10px; +    margin-bottom: 0px; +    margin-left: 4mm; +  } +  p.concordance_word { +    line-height: 150%; +    font-weight: bold; +    display: inline; +    margin-top: 4px; +    margin-bottom: 1px; +  } +  p.concordance_count { +    font-size: 80%; +    color: #777777; +    display: inline; +    margin-left: 0em; +  } +  p.concordance_object { +    font-size: 80%; +    line-height: 120%; +    text-align: left; +    margin-left: 3em; +    margin-top: 1px; +    margin-bottom: 3px; +  } +  p.book_index_lev1 { +    line-height: 100%; +    margin-top: 4px; +    margin-bottom: 1px; +  } +  p.book_index_lev2 { +    line-height: 100%; +    text-align: left; +    margin-left: 3em; +    margin-top: 1px; +    margin-bottom: 3px; +  } +  p.quickref { +    font-size: 10px; +    font-style: italic; +    margin-top: 0px; +    margin-bottom: 0px; +    color: #777777; +    margin-right: 5px; +    text-align: left; +  } +  p.bigref { +    font-size: 11px; +    font-weight: bold; +    margin-top: 0px; +    margin-bottom: 0px; +    color: #777777; +    margin-right: 5px; +    text-align: center; +  } +  p.letter { +    font-weight: bold; +    font-size: 80%; +    margin-left: 0em; +    margin-top: 2px; +    margin-bottom: 2px; +    margin-right: 6px; +    text-align: left; +    color: white; +    background: #880000; +  } +  tt { +    font-family: inconsolata, andale mono, courier new, courier, monospace; +    background-color: #eeeeee; +  } +  label.ocn { +    width: 2%; +    float: right; +    top: 0; +    font-size: 10px; +    margin-top: 0px; +    margin-bottom: 5px; +    color: #777777; +    margin-right: 5px; +    text-align: right; +    background-color: #ffffff; +  } +  table { } +  tr { } +  th,td { +    vertical-align: top; +    text-align: left; +  } +  th { +    font-weight: bold; +  } +  p.left,th.left,td.left { +    text-align: left; +  } +  p.small_left,th.small_left,td.small_left { +    text-align: left; +    font-size: 80%; +  } +  p.right,th.right,td.right { +    text-align: right; +  } +  #horizontal_links { +    background: #eeeeee; +    margin-left: 5%; +    margin-right: 5%; +  } +  #horizontal { +    margin: 0; +    padding: 0 0 0 10px; +    border-top: 1px solid #000077; +    border-bottom: 1px solid #000077; +  } +  #horizontal li { +    margin: 0 0 0 0; +    padding: 0 16px 0 0; +    display: inline; +    list-style-type: none; +    text-align: left; +    background: none; +  } +  #horizontal a { +    line-height: 12px; +    margin: 0 0 0 0; +    text-decoration: none; +    color: #000077; +  } +  #horizontal a.active, #horizontal a:hover { +    border-bottom: 2px solid #777777; +    padding-bottom: 2px; +    color: #000077; +  } +  #horizontal a:hover { +    color: #000077; +  } +  #document_versions { +    position: absolute; +    top: 10mm; +    right: 2%; +    width: 12%; +    float: right; +  } +  #vertical_links { +    position: absolute; +    top: 10mm; +    right: 0px; +    width: 20%; +    background: #dddddd; +    float: right; +  } +  #vertical { +    padding: 0 12px 0px 0px; +    margin-left: 2%; +    margin-right: 2%; +  } +  #vertical li { +    display: block; +    list-style-type: none; +  } +  #vertical a { +    line-height: 12px; +    text-decoration: none; +    color: #000077; +  } +  #vertical a.active, #vertical a:hover { +    border-bottom: 2px solid #777777; +    padding-bottom: 2px; +    color: #000077; +  } +  ul, li { +    list-style-type: none; +    list-style: none; +    padding-left: 20px; +    display: block; +    font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman; +    font-weight: normal; +    line-height: 150%; +    text-align: left; +    text-indent: 0mm; +    margin-left: 1em; +    margin-right: 2em; +    margin-top: 3px; +    margin-bottom: 3px; +  } +  li { +    background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; +  } +  ul { +  } +  li.bullet { margin-left: 1em; } +  li.i1 { margin-left: 2em; } +  li.i2 { margin-left: 3em; } +  li.i3 { margin-left: 4em; } +  li.i4 { margin-left: 5em; } +  li.i5 { margin-left: 6em; } +  li.i6 { margin-left: 7em; } +  li.i7 { margin-left: 8em; } +  li.i8 { margin-left: 9em; } +  li.i9 { margin-left: 10em; } +  li.doc, li.ref, li.refcenter { +    margin-top: 0px; +    margin-bottom: 0px; +    margin-right: 0px; +    font-size: 8px; +    font-style: normal; +    text-align: left; +  } +  li.doc { +    background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; +    padding-left: 16px; +    margin-left: 10px; +    margin-right: 0px; +  } +  li.ref { +    background: none; +    padding-left: 0; +    margin-left: 0; +    color: #777777; +  } +  li.refcenter { +    background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; +    padding-left: 20px; +    margin-left: 10%; +    font-size: 9px; +    color: #777777; +    text-align: center; +  } +  li.refbold { +    list-style-type: none; +    padding-left: 16px; +    margin-left: 0; +    margin-right: 10mm; +    font-weight: bold; +  } +  h0, h1, h2, h3, h4, h5, h6, h7 { +    font-weight: bold; +    line-height: 120%; +    text-align: left; +    margin-top: 20px; +    margin-bottom: 10px; +  } +  h4.norm, h5.norm, h6.norm, h7.norm { +    margin-top: 10px; +    margin-bottom: 0px; +  } +  h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center { +    text-align: center; +  } +  h0 { font-size: 125%; } +  h1 { font-size: 120%; } +  h2 { font-size: 115%; } +  h3 { font-size: 110%; } +  h4 { font-size: 105%; } +  h5 { font-size: 100%; } +  h6 { font-size: 100%; } +  h7 { font-size: 100%; } +  h1.i {margin-left: 2em;} +  h2.i {margin-left: 3em;} +  h3.i {margin-left: 4em;} +  h4.i {margin-left: 5em;} +  h5.i {margin-left: 6em;} +  h6.i {margin-left: 7em;} +  h7.i {margin-left: 8em;} +  h8.i {margin-left: 9em;} +  h9.i {margin-left: 10em;} +  h1.top_band { +    display: inline; +    text-align: left; +    margin-top: 0; +    margin-left: 4mm; +    text-indent: 0mm; +    font-weight: bold; +    font-size: 120%; +  } +  h2.top_band_tiny { +    font-size: 10px; +    font-weight: normal; +    margin-top: 0px; +    margin-left: 4mm; +    text-indent: 0mm; +    margin-bottom: 0px; +    color: #777777; +    margin-left: 140px; +    margin-right: 0px; +    text-align: left; +  } +  p.top_band { +    display: inline; +    text-align: left; +    margin-top: 0; +    margin-left: 140px; +    text-indent: 0mm; +    font-weight: bold; +    font-size: 120%; +  } +  p.top_band_tiny { +    font-size: 10px; +    margin-top: 0px; +    margin-bottom: 0px; +    color: #777777; +    margin-left: 140px; +    margin-right: 0px; +    text-align: left; +  } +  p.top_band_image { +    float: left; +    display: inline; +    text-align: left; +    margin-top: 0; +    margin-left: 1mm; +    text-indent: 0mm; +    margin-right: 1mm; +  } +  .banner, .subbanner { +    font-weight: bold; +    text-align: center; +    margin-left: 10mm; +    margin-right: 15mm; +    margin-top: 20px; +    margin-bottom: 10px; +  } +  h0.banner { +    font-size: 125%; +  } +  h1.banner { +    font-size: 120%; +  } +  h1.subbanner { +    font-size: 115%; +  } +  h2.banner { +    font-size: 110%; +  } +  h3.banner { +    color: #990000; +    font-size: 105%; +  } +  h4.banner { +    color: #ff0000; +    font-size: 100%; +  } +  h5.banner { +  } +  h6.banner { +  } +  h7.banner { +  } +  .toc { +    font-weight: normal; +    margin-top: 6px; +    margin-bottom: 6px; +  } +  h0.toc { +    margin-left: 1em; +    font-size: 120%; +    line-height: 150%; +  } +  h1.toc { +    margin-left: 1em; +    font-size: 115%; +    line-height: 150%; +  } +  h2.toc { +    margin-left: 2em; +    font-size: 110%; +    line-height: 140%; +  } +  h3.toc { +    margin-left: 3em; +    font-size: 105%; +    line-height: 120%; +  } +  h4.toc { +    margin-left: 4em; +    font-size: 100%; +    line-height: 120%; +  } +  h5.toc { +    margin-left: 5em; +    font-size: 95%; +    line-height: 110%; +  } +  h6.toc { +    margin-left: 6em; +    font-size: 90%; +    line-height: 110%; +  } +  h7.toc { +    margin-left: 7em; +    font-size: 85%; +    line-height: 100%; +  } +  .microtoc { +    margin-top: 2px; +    margin-bottom: 2px; +  } +  h0.microtoc { +    margin-left: 0mm; +    font-size: 120%; +  } +  h1.microtoc { +    margin-left: 0mm; +    font-size: 115%; +  } +  h2.microtoc { +    margin-left: 5mm; +    font-size: 110%; +  } +  h3.microtoc { +    margin-left: 10mm; +    font-size: 105%; +  } +  h4.microtoc { +    margin-left: 15mm; +    font-weight: normal; +    font-size: 100%; +  } +  h5.microtoc { +    margin-left: 20mm; +    font-weight: normal; +    font-size: 95%; +  } +  h6.microtoc { +    margin-left: 25mm; +    font-weight: normal; +    font-size: 90%; +  } +  h7.microtoc { +    margin-left: 30mm; +    font-weight: normal; +    font-size: 85%; +  } +  .subtoc { +    margin-right: 34%; +    font-weight: normal; +  } +  h5.subtoc { +    margin-left: 2em; +    font-size: 80%; +    margin-top: 2px; +    margin-bottom: 2px; +  } +  h6.subtoc { +    margin-left: 3em; +    font-size: 75%; +    margin-top: 0px; +    margin-bottom: 0px; +  } +  h7.subtoc { +    margin-left: 4em; +    font-size: 70%; +    margin-top: 0px; +    margin-bottom: 0px; +  } +  div.substance { +    width: 100%; +    background-color: #ffffff; +  } +  div.ocn { +    width: 5%; +    float: right; +    top: 0; +    background-color: #ffffff; +  } +  div.endnote { +    width: 95%; +    background-color: #fffffff; +  } +  div.toc { +    position: absolute; +    float: left; +    margin: 0; +    padding: 0; +    padding-top: 0.5em; +    border: 0; +    width: 13em; +    background-color: #eeeeee; +    margin-right:1em; +  } +  div.summary { +    margin: 0; +    padding: 0; +    border-left: 13em solid #eeeeee; +    padding-left: 1em; +    background-color: #eeeeee; +  } +  div.content, div.main_column { +    margin: 0; +    padding: 0; +    border-left: 13em solid #ffffff; +    padding-left: 1em; +    padding-right: 1em; +  } +  div.content0, div.main_column0 { +    margin: 0; +    padding: 0; +    border-left: 0% solid #ffffff; +    padding-left: 5%; +  } +  div.scroll { +    margin: 0; +    padding: 0; +    padding-left: 1em; +    padding-right: 1em; +  } +  div.content:after { +    content:' '; +    clear:both; +    display:block; +    height:0; +    overflow:hidden +  } +  div.footer { +    clear:left; +    padding: 0.5em; +    font-size: 80%; +    margin: 0; +  } +  div.toc ul { +    list-style: none; +    padding: 0; +    margin: 0; +  } +  div.toc li ul a, li ul span.currentlink +  { +    font-weight: normal; +    font-size: 90%; +    padding-left: 2em; +    background-color: #eeeeee; +  } +  div.toc a, span.currentlink{ +    display:block; +    text-decoration: none; +    padding-left: 0.5em; +    color: #0000aa; +  } +  hr { +    width: 90%; +  } +  span.currentlink { +    text-decoration: none; +    background-color: #aaaaf9; +  } +  div.toc a:visited { +    color: #0000aa; +  } +  div.toc a:hover { +    color: #000000; +    background-color: #f9f9aa; +  } +  .minitoc { +    font-weight: normal; +    margin-top: 2px; +    margin-bottom: 2px; +  } +  h1.minitoc, h2.minitoc, h3.minitoc { +    margin-left: 0em; +    font-weight: bold; +    text-align: left; +    font-size: 90%; +    margin-top: 4px; +    margin-bottom: 4px; +  } +  h4.minitoc { +    margin-left: 0em; +    font-size: 90%; +  } +  h5.minitoc { +    margin-left: 1em; +    font-size: 85%; +  } +  h6.minitoc { +    margin-left: 2em; +    font-size: 85%; +  } +  h7.minitoc { +    margin-left: 3em; +    font-size: 80%; +  } +  h0.minitoc { +    margin-left: 0em; +    font-size: 90%; +  } +  h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c { +    text-align: center +  } +  h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red { +    text-align: center; +    color: #ff0000; +    margin-left: 5mm; +    text-indent: 5mm; +    margin-top: 30px; +    margin-bottom: 20px; +    margin-right: 15mm; +  } +  h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby { +    text-align: center; +    color: #990000; +    margin-left: 5mm; +    text-indent: 5mm; +    margin-top: 30px; +    margin-bottom: 20px; +    margin-right: 15mm;    }";    return css;  } diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d index 944a720..b89c1e1 100644 --- a/src/sdp/ao_abstract_doc_source.d +++ b/src/sdp/ao_abstract_doc_source.d @@ -63,8 +63,8 @@ template SiSUdocAbstraction() {      /+ ocn +/      int obj_cite_number, obj_cite_number_;      auto object_citation_number = OCNemitter(); -    int obj_cite_number_emit(int obj_cite_number_status_flag) { -      return object_citation_number.obj_cite_number_emitter(obj_cite_number_status_flag); +    int ocn_emit(int ocn_status_flag) { +      return object_citation_number.ocn_emitter(ocn_status_flag);      }      /+ book index variables +/      string book_idx_tmp; @@ -77,8 +77,8 @@ template SiSUdocAbstraction() {        return bookindex_extract_hash.bookindex_nugget_hash(bookindex_section, obj_cite_number);      }      /+ node +/ -    string[string] _node_str; -    int[string]    _node_int; +    string[string] _node_heading_str; +    int[string]    _node_heading_int;      auto node_construct = NodeStructureMetadata();      /+ ↓ abstract marked up document +/      auto abstract_doc_source( @@ -101,8 +101,10 @@ template SiSUdocAbstraction() {          destroy(processing);          destroy(biblio_arr_json);        } -      auto node_int_ = node_metadata_int; -      auto node_str_ = node_metadata_str; +      auto node_heading_int_ = node_metadata_heading_int; +      auto node_heading_str_ = node_metadata_heading_str; +      auto node_para_int_    = node_metadata_para_int; +      auto node_para_str_    = node_metadata_para_str;        line_occur = [          "heading"  : 0,          "para"     : 0, @@ -160,20 +162,20 @@ template SiSUdocAbstraction() {        string toc_txt_;        an_object["glossary_nugget"] = "";        an_object["blurb_nugget"] = ""; -      node_str_["is"]                           = "heading"; -      node_str_["ocn"]                          = "0"; -      node_str_["segment_anchor_tag"]           = "toc"; -      node_str_["attrib"]                       = ""; -      node_str_["marked_up_lev"]                = "1"; -      node_int_["heading_lev_markup"]           = 4; -      node_int_["heading_lev_collapsed"]        = 2; -      node_int_["parent_ocn"]                   = 1; -      node_int_["parent_lev_markup"]            = 0; +      node_heading_str_["is"]                           = "heading"; +      node_heading_str_["ocn"]                          = "0"; +      node_heading_str_["segment_anchor_tag"]           = "toc"; +      node_heading_str_["attrib"]                       = ""; +      node_heading_str_["marked_up_lev"]                = "1"; +      node_heading_int_["heading_lev_markup"]           = 4; +      node_heading_int_["heading_lev_collapsed"]        = 2; +      node_heading_int_["parent_ocn"]                   = 1; +      node_heading_int_["parent_lev_markup"]            = 0;        auto toc_head =          set_abstract_object.contents_heading(            "Table of Contents", // nugget/object -          node_str_, -          node_int_, +          node_heading_str_, +          node_heading_int_,            ["toc"],             // anchor tag          );        the_table_of_contents_section = [ @@ -213,7 +215,7 @@ template SiSUdocAbstraction() {            }          }          if (!line.empty) { -          _check_obj_cite_number_status_(line, type); +          _check_ocn_status_(line, type);          }          if (type["code"] == TriState.on) {            /+ block object: code +/ @@ -263,53 +265,56 @@ template SiSUdocAbstraction() {                line_occur["para"] = State.off;                an_object_key="glossary_nugget"; //                if (matchFirst(line, rgx.heading_glossary)) { -                node_str_["is"]                       = "heading"; -                node_str_["ocn"]                      = "0"; -                node_str_["segment_anchor_tag"]       = ""; -                node_str_["attrib"]                   = ""; -                node_str_["marked_up_lev"]            = "B"; -                node_int_["heading_lev_markup"]       = 1; -                node_int_["heading_lev_collapsed"]    = 1; -                node_int_["parent_ocn"]               = 1; -                node_int_["parent_lev_markup"]        = 0; +                node_heading_str_["is"]                       = "heading"; +                node_heading_str_["ocn"]                      = "0"; +                node_heading_str_["segment_anchor_tag"]       = ""; +                node_heading_str_["attrib"]                   = ""; +                node_heading_str_["marked_up_lev"]            = "B"; +                node_heading_int_["heading_lev_markup"]       = 1; +                node_heading_int_["heading_lev_collapsed"]    = 1; +                node_heading_int_["parent_ocn"]               = 1; +                node_heading_int_["parent_lev_markup"]        = 0;                  the_glossary_section ~=                    set_abstract_object.contents_heading(                      "Glossary",       // nugget/object -                    node_str_, -                    node_int_, +                    node_heading_str_, +                    node_heading_int_,                      [""],             // anchor tag                    ); -                node_str_["is"]                       = "heading"; -                node_str_["ocn"]                      = "0"; -                node_str_["segment_anchor_tag"]       = "glossary"; -                node_str_["attrib"]                   = ""; -                node_str_["marked_up_lev"]            = "1"; -                node_int_["heading_lev_markup"]       = 4; -                node_int_["heading_lev_collapsed"]    = 2; -                node_int_["parent_ocn"]               = 1; -                node_int_["parent_lev_markup"]        = 0; +                node_heading_str_["is"]                       = "heading"; +                node_heading_str_["ocn"]                      = "0"; +                node_heading_str_["segment_anchor_tag"]       = "glossary"; +                node_heading_str_["attrib"]                   = ""; +                node_heading_str_["marked_up_lev"]            = "1"; +                node_heading_int_["heading_lev_markup"]       = 4; +                node_heading_int_["heading_lev_collapsed"]    = 2; +                node_heading_int_["parent_ocn"]               = 1; +                node_heading_int_["parent_lev_markup"]        = 0;                  the_glossary_section ~=                    set_abstract_object.contents_heading(                      "Glossary",       // nugget/object -                    node_str_, -                    node_int_, +                    node_heading_str_, +                    node_heading_int_,                      ["glossary"],     // anchor tag                    );                // } else if (matchFirst(line, rgx.heading)) {                //   _heading_matched_(line, line_occur, an_object, an_object_key, lv, collapsed_lev, type, dochead_meta_aa); // levels?                } else {                  _para_match_(line, an_object, an_object_key, indent, bullet, type, line_occur); +                node_para_str_["is"]                           = "para"; +                node_para_str_["attrib"]                       = ""; +                node_para_int_["ocn"]                          = 0; +                node_para_int_["indent_hang"]                  = indent["hang_position"]; +                node_para_int_["indent_base"]                  = indent["base_position"]; +                node_para_int_["bullet"]                       = (bullet) ? 1 : 0;                  the_glossary_section ~=                    set_abstract_object.contents_para( -                    "para",                    // an_object["is"],                      to!string(line),           // an_object["substantive"], -                    "",                        // attrib -                    0,                         // obj_cite_number, -                    indent, -                    bullet +                    node_para_str_, +                    node_para_int_,                    );                } -              type["obj_cite_number_status"] = TriState.off; +              type["ocn_status"] = TriState.off;              }              continue;            } else if ((matchFirst(line, rgx.heading_blurb) @@ -336,70 +341,73 @@ template SiSUdocAbstraction() {                line_occur["para"] = State.off;                an_object_key="blurb_nugget";                if (matchFirst(line, rgx.heading_blurb)) { -                node_str_["is"]                       = "heading"; -                node_str_["ocn"]                      = "0"; -                node_str_["segment_anchor_tag"]       = ""; -                node_str_["attrib"]                   = ""; -                node_str_["marked_up_lev"]            = "B"; -                node_int_["heading_lev_markup"]       = 1; -                node_int_["heading_lev_collapsed"]    = 1; -                node_int_["parent_ocn"]               = 1; -                node_int_["parent_lev_markup"]        = 0; +                node_heading_str_["is"]                       = "heading"; +                node_heading_str_["ocn"]                      = "0"; +                node_heading_str_["segment_anchor_tag"]       = ""; +                node_heading_str_["attrib"]                   = ""; +                node_heading_str_["marked_up_lev"]            = "B"; +                node_heading_int_["heading_lev_markup"]       = 1; +                node_heading_int_["heading_lev_collapsed"]    = 1; +                node_heading_int_["parent_ocn"]               = 1; +                node_heading_int_["parent_lev_markup"]        = 0;                  the_blurb_section ~=                    set_abstract_object.contents_heading(                      "Blurb",          // nugget/object -                    node_str_, -                    node_int_, +                    node_heading_str_, +                    node_heading_int_,                      [""],             // anchor tag                    ); -                node_str_["is"]                       = "heading"; -                node_str_["ocn"]                      = "0"; -                node_str_["segment_anchor_tag"]       = "blurb"; -                node_str_["attrib"]                   = ""; -                node_str_["marked_up_lev"]            = "1"; -                node_int_["heading_lev_markup"]       = 4; -                node_int_["heading_lev_collapsed"]    = 2; -                node_int_["parent_ocn"]               = 1; -                node_int_["parent_lev_markup"]        = 0; +                node_heading_str_["is"]                       = "heading"; +                node_heading_str_["ocn"]                      = "0"; +                node_heading_str_["segment_anchor_tag"]       = "blurb"; +                node_heading_str_["attrib"]                   = ""; +                node_heading_str_["marked_up_lev"]            = "1"; +                node_heading_int_["heading_lev_markup"]       = 4; +                node_heading_int_["heading_lev_collapsed"]    = 2; +                node_heading_int_["parent_ocn"]               = 1; +                node_heading_int_["parent_lev_markup"]        = 0;                  the_blurb_section ~=                    set_abstract_object.contents_heading(                      "Blurb",          // nugget/object -                    node_str_, -                    node_int_, +                    node_heading_str_, +                    node_heading_int_,                      ["blurb"],        // anchor tag                    );                } else if ((matchFirst(line, rgx.heading))                && (opt_action_bool["backmatter"] && opt_action_bool["section_blurb"])) {                  _heading_matched_(line, line_occur, an_object, an_object_key, lv, collapsed_lev, type, dochead_meta_aa); // levels? -                node_str_["is"]                       = "heading"; -                node_str_["ocn"]                      = "0"; -                node_str_["segment_anchor_tag"]       = "blurb"; -                node_str_["attrib"]                   = ""; -                node_str_["marked_up_lev"]            = to!string(an_object["lev"]); -                node_int_["heading_lev_markup"]       = to!int(an_object["lev_markup_number"]);    // make int, remove need to conv -                node_int_["heading_lev_collapsed"]    = to!int(an_object["lev_collapsed_number"]); // make int, remove need to conv -                node_int_["parent_ocn"]               = 1; -                node_int_["parent_lev_markup"]        = 0; +                node_heading_str_["is"]                       = "heading"; +                node_heading_str_["ocn"]                      = "0"; +                node_heading_str_["segment_anchor_tag"]       = "blurb"; +                node_heading_str_["attrib"]                   = ""; +                node_heading_str_["marked_up_lev"]            = to!string(an_object["lev"]); +                node_heading_int_["heading_lev_markup"]       = to!int(an_object["lev_markup_number"]);    // make int, remove need to conv +                node_heading_int_["heading_lev_collapsed"]    = to!int(an_object["lev_collapsed_number"]); // make int, remove need to conv +                node_heading_int_["parent_ocn"]               = 1; +                node_heading_int_["parent_lev_markup"]        = 0;                  the_blurb_section ~=                    set_abstract_object.contents_heading(                      to!string(line),           //  an_object["substantive"], -                    node_str_, -                    node_int_, +                    node_heading_str_, +                    node_heading_int_,                      [""],                      // anchor tag                    );                } else {                  _para_match_(line, an_object, an_object_key, indent, bullet, type, line_occur); +                node_para_str_["is"]                           = "para"; +                node_para_str_["attrib"]                       = ""; +                node_para_int_["ocn"]                          = obj_cite_number; +                node_para_int_["indent_hang"]                  = indent["hang_position"]; +                node_para_int_["indent_base"]                  = indent["base_position"]; +                node_para_int_["bullet"]                       = (bullet) ? 1 : 0;                  the_blurb_section ~=                    set_abstract_object.contents_para( -                    "para",                    // an_object["is"],                      to!string(line),           //  an_object["substantive"], -                    "",                        // attrib -                    obj_cite_number, -                    indent, -                    bullet +                    node_para_str_, +                    node_para_int_,                    );                } -              type["obj_cite_number_status"] = TriState.off; +              type["ocn_status"] = TriState.off;              }              continue;            } else if (type["poem"] == TriState.on) { @@ -540,15 +548,14 @@ template SiSUdocAbstraction() {                  the_document_body_section,                  bookindex_unordered_hashes,                  obj_cite_number, -                _node_str, -                _node_int, +                _node_heading_str, +                _node_heading_int,                  cntr,                  type,                  obj_cite_number_poem,                  dochead_make_aa                ); // watch              } else { -              /+ line empty +/                /+ line.empty, post contents, empty variables: +/                assert(                  line.empty, @@ -561,7 +568,7 @@ template SiSUdocAbstraction() {                if ((type["heading"] == State.on)                && (line_occur["heading"] > State.off)) {                  /+ heading object (current line empty) +/ -                obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]); +                obj_cite_number = ocn_emit(type["ocn_status"]);                  an_object["bookindex_nugget"] =                    ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";                  bookindex_unordered_hashes = @@ -602,10 +609,10 @@ template SiSUdocAbstraction() {                      an_object["is"],                              // string                      html_segnames_ptr,                            // int                    ); -                 _node_str = _node_t[0]; -                 _node_int = _node_t[1]; +                 _node_heading_str = _node_t[0]; +                 _node_heading_int = _node_t[1];                  an_object["attrib"] = -                  obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +                  obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);                  ++heading_ptr;                  debug(segments) {                    writeln(an_object["lev_markup_number"]); @@ -614,8 +621,8 @@ template SiSUdocAbstraction() {                  the_document_body_section ~=                    set_abstract_object.contents_heading(                      an_object["substantive"], -                    _node_str, -                    _node_int, +                    _node_heading_str, +                    _node_heading_int,                      anchor_tags,                    );                  // track previous heading and make assertions @@ -629,7 +636,7 @@ template SiSUdocAbstraction() {                  ++cntr;                } else if ((type["para"] == State.on) && (line_occur["para"] > State.off)) {                  /+ paragraph object (current line empty) +/ -                obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]); +                obj_cite_number = ocn_emit(type["ocn_status"]);                  an_object["bookindex_nugget"] =                    ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";                  bookindex_unordered_hashes = @@ -644,22 +651,25 @@ template SiSUdocAbstraction() {                      heading_ptr-1,                      an_object["is"],                    ); -                _node_str = _node_t[0]; -                _node_int = _node_t[1]; +                _node_heading_str = _node_t[0]; +                _node_heading_int = _node_t[1];                  auto substantive_object_and_anchor_tags_tuple =                    obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa); // ...                  an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];                  anchor_tags = substantive_object_and_anchor_tags_tuple[1];                  an_object["attrib"] = -                  obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +                  obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int); +                node_para_str_["is"]                           = an_object["is"]; +                node_para_str_["attrib"]                       = an_object["attrib"]; +                node_para_int_["ocn"]                          = obj_cite_number; +                node_para_int_["indent_hang"]                  = indent["hang_position"]; +                node_para_int_["indent_base"]                  = indent["base_position"]; +                node_para_int_["bullet"]                       = (bullet) ? 1 : 0;                  the_document_body_section ~=                    set_abstract_object.contents_para( -                    an_object["is"],                      an_object["substantive"], -                    an_object["attrib"], -                    obj_cite_number, -                    indent, -                    bullet +                    node_para_str_, +                    node_para_int_,                    );                  _common_reset_(line_occur, an_object, type);                  indent=[ @@ -738,20 +748,20 @@ template SiSUdocAbstraction() {        }        if (an_object["glossary_nugget"].length == 0) {          writeln("no gloss"); -        node_str_["is"]                       = "heading"; -        node_str_["ocn"]                      = "0"; -        node_str_["segment_anchor_tag"]       = ""; -        node_str_["attrib"]                   = ""; -        node_str_["marked_up_lev"]            = "B"; -        node_int_["heading_lev_markup"]       = 1; -        node_int_["heading_lev_collapsed"]    = 1; -        node_int_["parent_ocn"]               = 1; -        node_int_["parent_lev_markup"]        = 0; +        node_heading_str_["is"]                       = "heading"; +        node_heading_str_["ocn"]                      = "0"; +        node_heading_str_["segment_anchor_tag"]       = ""; +        node_heading_str_["attrib"]                   = ""; +        node_heading_str_["marked_up_lev"]            = "B"; +        node_heading_int_["heading_lev_markup"]       = 1; +        node_heading_int_["heading_lev_collapsed"]    = 1; +        node_heading_int_["parent_ocn"]               = 1; +        node_heading_int_["parent_lev_markup"]        = 0;          the_glossary_section ~=            set_abstract_object.contents_heading(              "(skip) there is no Glossary section",   // nugget/object -            node_str_, -            node_int_, +            node_heading_str_, +            node_heading_int_,              [""],             // anchor tag            );        } else { @@ -768,53 +778,53 @@ template SiSUdocAbstraction() {        auto biblio_ordered =          biblio._bibliography_(biblio_unsorted_incomplete, bib_arr_json);        if (biblio_ordered.length > 0) { -        node_str_["is"]                       = "heading"; -        node_str_["ocn"]                      = "0"; -        node_str_["segment_anchor_tag"]       = ""; -        node_str_["attrib"]                   = ""; -        node_str_["marked_up_lev"]            = "B"; -        node_int_["heading_lev_markup"]       = 1; -        node_int_["heading_lev_collapsed"]    = 1; -        node_int_["parent_ocn"]               = 1; -        node_int_["parent_lev_markup"]        = 0; +        node_heading_str_["is"]                       = "heading"; +        node_heading_str_["ocn"]                      = "0"; +        node_heading_str_["segment_anchor_tag"]       = ""; +        node_heading_str_["attrib"]                   = ""; +        node_heading_str_["marked_up_lev"]            = "B"; +        node_heading_int_["heading_lev_markup"]       = 1; +        node_heading_int_["heading_lev_collapsed"]    = 1; +        node_heading_int_["parent_ocn"]               = 1; +        node_heading_int_["parent_lev_markup"]        = 0;          the_bibliography_section ~=            set_abstract_object.contents_heading(              "Bibliography",   // nugget/object -            node_str_, -            node_int_, +            node_heading_str_, +            node_heading_int_,              [""],             // anchor tag            ); -        node_str_["is"]                       = "heading"; -        node_str_["ocn"]                      = "0"; -        node_str_["segment_anchor_tag"]       = "bibliography"; -        node_str_["attrib"]                   = ""; -        node_str_["marked_up_lev"]            = "1"; -        node_int_["heading_lev_markup"]       = 4; -        node_int_["heading_lev_collapsed"]    = 2; -        node_int_["parent_ocn"]               = 1; -        node_int_["parent_lev_markup"]        = 0; +        node_heading_str_["is"]                       = "heading"; +        node_heading_str_["ocn"]                      = "0"; +        node_heading_str_["segment_anchor_tag"]       = "bibliography"; +        node_heading_str_["attrib"]                   = ""; +        node_heading_str_["marked_up_lev"]            = "1"; +        node_heading_int_["heading_lev_markup"]       = 4; +        node_heading_int_["heading_lev_collapsed"]    = 2; +        node_heading_int_["parent_ocn"]               = 1; +        node_heading_int_["parent_lev_markup"]        = 0;          the_bibliography_section ~=            set_abstract_object.contents_heading(              "Bibliography", -            node_str_, -            node_int_, +            node_heading_str_, +            node_heading_int_,              ["bibliography"], // anchor tag            );        } else { -        node_str_["is"]                       = "heading"; -        node_str_["ocn"]                      = "0"; -        node_str_["segment_anchor_tag"]       = ""; -        node_str_["attrib"]                   = ""; -        node_str_["marked_up_lev"]            = "B"; -        node_int_["heading_lev_markup"]       = 1; -        node_int_["heading_lev_collapsed"]    = 1; -        node_int_["parent_ocn"]               = 1; -        node_int_["parent_lev_markup"]        = 0; +        node_heading_str_["is"]                       = "heading"; +        node_heading_str_["ocn"]                      = "0"; +        node_heading_str_["segment_anchor_tag"]       = ""; +        node_heading_str_["attrib"]                   = ""; +        node_heading_str_["marked_up_lev"]            = "B"; +        node_heading_int_["heading_lev_markup"]       = 1; +        node_heading_int_["heading_lev_collapsed"]    = 1; +        node_heading_int_["parent_ocn"]               = 1; +        node_heading_int_["parent_lev_markup"]        = 0;          the_bibliography_section ~=            set_abstract_object.contents_heading(              "(skip) there is no Bibliography",   // nugget/object -            node_str_, -            node_int_, +            node_heading_str_, +            node_heading_int_,              [""],             // anchor tag            );        } @@ -834,14 +844,17 @@ template SiSUdocAbstraction() {            ((entry["place"].str.empty) ? "" : ", " ~ entry["place"].str),            ((entry["url"].str.empty) ? "" : ", [" ~ entry["url"].str ~ "]"),          ); +        node_para_str_["is"]                           = "bibliography"; +        node_para_str_["attrib"]                       = ""; +        node_para_int_["ocn"]                          = 0; +        node_para_int_["indent_hang"]                  = 0; +        node_para_int_["indent_base"]                  = 1; +        node_para_int_["bullet"]                       = 0;          the_bibliography_section ~=            set_abstract_object.contents_para( -            "bibliography",              out_,                                                // nugget/object -            "",                                                  // attrib -            0,                                                   // obj_cite_number -            ([ "hang_position" : 0, "base_position" : 1, ]),     // indent -            false +            node_para_str_, +            node_para_int_,            );        }        debug(bibliosection) { @@ -867,20 +880,20 @@ template SiSUdocAbstraction() {        }        if (an_object["blurb_nugget"].length == 0) {          writeln("no blurb"); -        node_str_["is"]                       = "heading"; -        node_str_["ocn"]                      = "0"; -        node_str_["segment_anchor_tag"]       = ""; -        node_str_["attrib"]                   = ""; -        node_str_["marked_up_lev"]            = "B"; -        node_int_["heading_lev_markup"]       = 1; -        node_int_["heading_lev_collapsed"]    = 1; -        node_int_["parent_ocn"]               = 1; -        node_int_["parent_lev_markup"]        = 0; +        node_heading_str_["is"]                       = "heading"; +        node_heading_str_["ocn"]                      = "0"; +        node_heading_str_["segment_anchor_tag"]       = ""; +        node_heading_str_["attrib"]                   = ""; +        node_heading_str_["marked_up_lev"]            = "B"; +        node_heading_int_["heading_lev_markup"]       = 1; +        node_heading_int_["heading_lev_collapsed"]    = 1; +        node_heading_int_["parent_ocn"]               = 1; +        node_heading_int_["parent_lev_markup"]        = 0;          the_blurb_section ~=            set_abstract_object.contents_heading(              "(skip) there is no Blurb section",   // nugget/object -            node_str_, -            node_int_, +            node_heading_str_, +            node_heading_int_,              [""],             // anchor tag            );        } else { @@ -1111,44 +1124,44 @@ template SiSUdocAbstraction() {        type["para"] = State.off;        object_reset(an_object);      } -    void _check_obj_cite_number_status_( +    void _check_ocn_status_(        char[] line,        ref int[string] type      ) { -      if ((!line.empty) && (type["obj_cite_number_status_multi_obj"] == TriState.off)) { +      if ((!line.empty) && (type["ocn_status_multi_obj"] == TriState.off)) {          /+ not multi-line object, check whether obj_cite_number is on or turned off +/          if (matchFirst(line, rgx.obj_cite_number_block_marks)) {            /+ switch off obj_cite_number +/            if (matchFirst(line, rgx.obj_cite_number_off_block)) { -            type["obj_cite_number_status_multi_obj"] = TriState.on; +            type["ocn_status_multi_obj"] = TriState.on;              debug(ocnoff) {                writeln(line);              }            }            if (matchFirst(line, rgx.obj_cite_number_off_block_dh)) { -            type["obj_cite_number_status_multi_obj"] = TriState.closing; +            type["ocn_status_multi_obj"] = TriState.closing;              debug(ocnoff) {                writeln(line);              }            }          } else { -          if (type["obj_cite_number_status_multi_obj"] == TriState.off) { +          if (type["ocn_status_multi_obj"] == TriState.off) {              if (matchFirst(line, rgx.obj_cite_number_off)) { -              type["obj_cite_number_status"] = TriState.on; +              type["ocn_status"] = TriState.on;              } else if (matchFirst(line, rgx.obj_cite_number_off_dh)) { -              type["obj_cite_number_status"] = TriState.closing; +              type["ocn_status"] = TriState.closing;              } else { -              type["obj_cite_number_status"] = TriState.off; +              type["ocn_status"] = TriState.off;              }            } else { -            type["obj_cite_number_status"] = -              type["obj_cite_number_status_multi_obj"]; +            type["ocn_status"] = +              type["ocn_status_multi_obj"];            }          } -      } else if ((!line.empty) && (type["obj_cite_number_status_multi_obj"] > TriState.off)) { +      } else if ((!line.empty) && (type["ocn_status_multi_obj"] > TriState.off)) {          if (matchFirst(line, rgx.obj_cite_number_off_block_close)) { -          type["obj_cite_number_status_multi_obj"] = TriState.off; -          type["obj_cite_number_status"] = TriState.off; +          type["ocn_status_multi_obj"] = TriState.off; +          type["ocn_status"] = TriState.off;            debug(ocnoff) {              writeln(line);            } @@ -1513,7 +1526,7 @@ template SiSUdocAbstraction() {              an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];              anchor_tags = substantive_object_and_anchor_tags_tuple[1];              an_object["attrib"] = -              obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +              obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);              the_document_body_section ~=                set_abstract_object.contents_block(                  an_object["is"], @@ -1534,7 +1547,7 @@ template SiSUdocAbstraction() {            processing["verse"] ~= line ~= "\n";            if (type["verse_new"] == State.on) {              obj_cite_number = -              obj_cite_number_emit(type["obj_cite_number_status"]); +              ocn_emit(type["ocn_status"]);              type["verse_new"] = State.off;            } else if (matchFirst(line, rgx.newline_eol_delimiter_only)) {              verse_line = TriState.off; @@ -1560,14 +1573,14 @@ template SiSUdocAbstraction() {                heading_ptr-1,                an_object["is"]              ); -            _node_str = _node_t[0]; -            _node_int = _node_t[1]; +            _node_heading_str = _node_t[0]; +            _node_heading_int = _node_t[1];              auto substantive_object_and_anchor_tags_tuple =                obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);              an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];              anchor_tags = substantive_object_and_anchor_tags_tuple[1];              an_object["attrib"] = -              obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +              obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);              the_document_body_section ~=                set_abstract_object.contents_block(                  an_object["is"], @@ -1604,7 +1617,7 @@ template SiSUdocAbstraction() {              an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];              anchor_tags = substantive_object_and_anchor_tags_tuple[1];              an_object["attrib"] = -              obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +              obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);              the_document_body_section ~=                set_abstract_object.contents_block(                  an_object["is"], @@ -1624,7 +1637,7 @@ template SiSUdocAbstraction() {            processing["verse"] ~= line ~= "\n";            if (type["verse_new"] == State.on) {              obj_cite_number = -              obj_cite_number_emit(type["obj_cite_number_status"]); +              ocn_emit(type["ocn_status"]);              type["verse_new"] = State.off;            } else if (matchFirst(line, rgx.newline_eol_delimiter_only)) {              type["verse_new"] = State.on; @@ -1651,14 +1664,14 @@ template SiSUdocAbstraction() {                  heading_ptr-1,                  an_object["is"]                ); -            _node_str = _node_t[0]; -            _node_int = _node_t[1]; +            _node_heading_str = _node_t[0]; +            _node_heading_int = _node_t[1];              auto substantive_object_and_anchor_tags_tuple =                obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);              an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];              anchor_tags = substantive_object_and_anchor_tags_tuple[1];              an_object["attrib"] = -              obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +              obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);              the_document_body_section ~=                set_abstract_object.contents_block(                  an_object["is"], @@ -1819,8 +1832,8 @@ template SiSUdocAbstraction() {        ref ObjComposite[] the_document_body_section,        ref string[][string][string] bookindex_unordered_hashes,        ref int obj_cite_number, -      ref string[string] _node_str, -      ref int[string] _node_int, +      ref string[string] _node_heading_str, +      ref int[string] _node_heading_int,        ref int cntr,        ref int[string] type,        string[string] obj_cite_number_poem, @@ -1838,7 +1851,7 @@ template SiSUdocAbstraction() {        assertions_flag_types_block_status_none_or_closed(type);        if (type["code"] == TriState.closing) {          obj_cite_number = -          obj_cite_number_emit(type["obj_cite_number_status"]); +          ocn_emit(type["ocn_status"]);          an_object["bookindex_nugget"] =            ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";          bookindex_unordered_hashes = @@ -1853,14 +1866,14 @@ template SiSUdocAbstraction() {              heading_ptr-1,              an_object["is"]            ); -        _node_str = _node_t[0]; -        _node_int = _node_t[1]; +        _node_heading_str = _node_t[0]; +        _node_heading_int = _node_t[1];          auto substantive_object_and_anchor_tags_tuple =            obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);          an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];          anchor_tags = substantive_object_and_anchor_tags_tuple[1];          an_object["attrib"] = -          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);          the_document_body_section ~=            set_abstract_object.contents_block_code(              an_object["is"], @@ -1888,15 +1901,15 @@ template SiSUdocAbstraction() {              heading_ptr-1,              an_object["is"]            ); -        _node_str = _node_t[0]; -        _node_int = _node_t[1]; +        _node_heading_str = _node_t[0]; +        _node_heading_int = _node_t[1];          the_document_body_section ~=            set_abstract_object.contents_block_obj_cite_number_string(              "poem",              "",              (obj_cite_number_poem["start"], obj_cite_number_poem["end"]), -            _node_str, -            _node_int, +            _node_heading_str, +            _node_heading_int,            ); // bookindex          object_reset(an_object);          processing.remove("verse"); @@ -1904,7 +1917,7 @@ template SiSUdocAbstraction() {          type["poem"] = TriState.off;        } else if (type["table"] == TriState.closing) {          obj_cite_number = -          obj_cite_number_emit(type["obj_cite_number_status"]); +          ocn_emit(type["ocn_status"]);          an_object["bookindex_nugget"] =            ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";          bookindex_unordered_hashes = @@ -1919,14 +1932,14 @@ template SiSUdocAbstraction() {              heading_ptr-1,              an_object["is"]            ); -        _node_str = _node_t[0]; -        _node_int = _node_t[1]; +        _node_heading_str = _node_t[0]; +        _node_heading_int = _node_t[1];          auto substantive_object_and_anchor_tags_tuple =            obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);          an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];          anchor_tags = substantive_object_and_anchor_tags_tuple[1];          an_object["attrib"] = -          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);          the_document_body_section ~=            set_abstract_object.contents_block(              an_object["is"], @@ -1941,7 +1954,7 @@ template SiSUdocAbstraction() {          type["table"] = TriState.off;        } else if (type["group"] == TriState.closing) {          obj_cite_number = -          obj_cite_number_emit(type["obj_cite_number_status"]); +          ocn_emit(type["ocn_status"]);          an_object["bookindex_nugget"] =            ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";          bookindex_unordered_hashes = @@ -1956,14 +1969,14 @@ template SiSUdocAbstraction() {              heading_ptr-1,              an_object["is"]            ); -        _node_str = _node_t[0]; -        _node_int = _node_t[1]; +        _node_heading_str = _node_t[0]; +        _node_heading_int = _node_t[1];          auto substantive_object_and_anchor_tags_tuple =            obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);          an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];          anchor_tags = substantive_object_and_anchor_tags_tuple[1];          an_object["attrib"] = -          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);          the_document_body_section ~=            set_abstract_object.contents_block(              an_object["is"], @@ -1977,7 +1990,7 @@ template SiSUdocAbstraction() {          type["blocks"] = TriState.off;          type["group"] = TriState.off;        } else if (type["block"] == TriState.closing) { -        obj_cite_number = obj_cite_number_emit(type["obj_cite_number_status"]); +        obj_cite_number = ocn_emit(type["ocn_status"]);          an_object["bookindex_nugget"] =            ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";          bookindex_unordered_hashes = @@ -1992,14 +2005,14 @@ template SiSUdocAbstraction() {              heading_ptr-1,              an_object["is"]             ); -        _node_str = _node_t[0]; -        _node_int = _node_t[1]; +        _node_heading_str = _node_t[0]; +        _node_heading_int = _node_t[1];          auto substantive_object_and_anchor_tags_tuple =            obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);          an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];          anchor_tags = substantive_object_and_anchor_tags_tuple[1];          an_object["attrib"] = -          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);          the_document_body_section ~=            set_abstract_object.contents_block(              an_object["is"], @@ -2014,7 +2027,7 @@ template SiSUdocAbstraction() {          type["block"] = TriState.off;        } else if (type["quote"] == TriState.closing) {          obj_cite_number = -          obj_cite_number_emit(type["obj_cite_number_status"]); +          ocn_emit(type["ocn_status"]);          an_object["bookindex_nugget"] =            ("bookindex_nugget" in an_object) ? an_object["bookindex_nugget"] : "";          bookindex_unordered_hashes = @@ -2029,14 +2042,14 @@ template SiSUdocAbstraction() {              heading_ptr-1,              an_object["is"]            ); -        _node_str = _node_t[0]; -        _node_int = _node_t[1]; +        _node_heading_str = _node_t[0]; +        _node_heading_int = _node_t[1];          auto substantive_object_and_anchor_tags_tuple =            obj_im.obj_inline_markup_and_anchor_tags(an_object, an_object_key, dochead_make_aa);          an_object["substantive"] = substantive_object_and_anchor_tags_tuple[0];          anchor_tags = substantive_object_and_anchor_tags_tuple[1];          an_object["attrib"] = -          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_str, _node_int); +          obj_att.obj_attributes(an_object["is"], an_object[an_object_key], _node_heading_str, _node_heading_int);          the_document_body_section ~=            set_abstract_object.contents_block(              an_object["is"], @@ -2437,10 +2450,10 @@ template SiSUdocAbstraction() {      /+ ↓ abstraction function emitters +/      struct OCNemitter {        int obj_cite_number, obj_cite_number_; -      int obj_cite_number_emitter(int obj_cite_number_status_flag) -      in { assert(obj_cite_number_status_flag <= 2); } +      int ocn_emitter(int ocn_status_flag) +      in { assert(ocn_status_flag <= 2); }        body { -        obj_cite_number=(obj_cite_number_status_flag == 0) +        obj_cite_number=(ocn_status_flag == 0)          ? ++obj_cite_number_          : 0;          assert(obj_cite_number >= 0); @@ -3092,16 +3105,16 @@ template SiSUdocAbstraction() {        string obj_attributes(          string obj_is_,          string obj_raw, -        string[string] _node_str, -        int[string] _node_int +        string[string] _node_heading_str, +        int[string] _node_heading_int        )        in { }        body {          scope(exit) {            destroy(obj_is_);            destroy(obj_raw); -          destroy(_node_str); -          destroy(_node_int); +          destroy(_node_heading_str); +          destroy(_node_heading_int);          }          _obj_attrib.remove("json");          _obj_attrib["json"] ="{"; @@ -3141,7 +3154,7 @@ template SiSUdocAbstraction() {            break;          }          _obj_attrib["json"] ~=" }"; -        _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node_str, _node_int); // check +        _obj_attrib["json"]=_set_additional_values_parse_as_json(_obj_attrib["json"], obj_is_, _node_heading_str, _node_heading_int); // check          debug(structattrib) {            if (oa_j["is"].str() == "heading") {              writeln(_obj_attrib["json"]); @@ -3277,24 +3290,24 @@ template SiSUdocAbstraction() {        string _set_additional_values_parse_as_json(          string _obj_attrib,          string obj_is_, -        string[string] _node_str, -        int[string] _node_int +        string[string] _node_heading_str, +        int[string] _node_heading_int        ) {                                                  //          JSONValue oa_j = parseJSON(_obj_attrib);          assert(            (oa_j.type == JSON_TYPE.OBJECT)          );          if (obj_is_ == "heading") { -          oa_j.object["obj_cite_number"] = _node_str["ocn"]; -          oa_j.object["lev_markup_number"] = _node_int["heading_lev_markup"]; -          oa_j.object["lev_collapsed_number"] = _node_int["heading_lev_collapsed"]; +          oa_j.object["obj_cite_number"] = _node_heading_str["ocn"]; +          oa_j.object["lev_markup_number"] = _node_heading_int["heading_lev_markup"]; +          oa_j.object["lev_collapsed_number"] = _node_heading_int["heading_lev_collapsed"];            oa_j.object["heading_ptr"] = -            _node_int["ptr_heading"]; +            _node_heading_int["ptr_heading"];            oa_j.object["doc_object_ptr"] = -            _node_int["ptr_doc_object"]; +            _node_heading_int["ptr_doc_object"];          } -        oa_j.object["parent_obj_cite_number"] = _node_int["parent_ocn"]; -        oa_j.object["parent_lev_markup_number"] = _node_int["parent_lev_markup"]; +        oa_j.object["parent_obj_cite_number"] = _node_heading_int["parent_ocn"];         // +        oa_j.object["parent_lev_markup_number"] = _node_heading_int["parent_lev_markup"];         //          _obj_attrib = oa_j.toString();          return _obj_attrib;        } @@ -3436,7 +3449,7 @@ template SiSUdocAbstraction() {          bool[string]             opt_action_bool,        ) {          mixin SiSUnode; -        string type; +        string type_is;          string lev;          int lev_int_markup, lev_int_collapsed;          string attrib; @@ -3445,59 +3458,60 @@ template SiSUdocAbstraction() {          auto mainkeys =            bookindex_unordered_hashes.byKey.array.sort().release;          ObjComposite[][string] bookindex_section; -        auto node_int_ = node_metadata_int; -        auto node_str_ = node_metadata_str; +        auto node_heading_int_ = node_metadata_heading_int; +        auto node_heading_str_ = node_metadata_heading_str; +        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"])) {            string bi_tmp_seg, bi_tmp_scroll; -          node_str_["is"]                       = "heading"; -          node_str_["ocn"]                      = "0"; -          node_str_["segment_anchor_tag"]       = ""; -          node_str_["attrib"]                   = ""; -          node_str_["marked_up_lev"]            = "B"; -          node_int_["heading_lev_markup"]       = 1; -          node_int_["heading_lev_collapsed"]    = 1; -          node_int_["parent_ocn"]               = 1; -          node_int_["parent_lev_markup"]        = 0; +          node_heading_str_["is"]                       = "heading"; +          node_heading_str_["ocn"]                      = "0"; +          node_heading_str_["segment_anchor_tag"]       = ""; +          node_heading_str_["attrib"]                   = ""; +          node_heading_str_["marked_up_lev"]            = "B"; +          node_heading_int_["heading_lev_markup"]       = 1; +          node_heading_int_["heading_lev_collapsed"]    = 1; +          node_heading_int_["parent_ocn"]               = 1; +          node_heading_int_["parent_lev_markup"]        = 0;            bookindex_section["scroll"] ~=              set_abstract_object.contents_heading(                "Book Index", -              node_str_, -              node_int_, +              node_heading_str_, +              node_heading_int_,                [],              );            bookindex_section["seg"] ~=              set_abstract_object.contents_heading(                "Book Index", -              node_str_, -              node_int_, +              node_heading_str_, +              node_heading_int_,                [],              );            ++obj_cite_number;            ++mkn; -          // 1~ Index -          node_str_["is"]                       = "heading"; -          node_str_["ocn"]                      = "0"; -          node_str_["segment_anchor_tag"]       = "bookindex"; -          node_str_["attrib"]                   = ""; -          node_str_["marked_up_lev"]            = "1"; -          node_int_["heading_lev_markup"]       = 4; -          node_int_["heading_lev_collapsed"]    = 2; -          node_int_["parent_ocn"]               = 1; -          node_int_["parent_lev_markup"]        = 0; +          node_heading_str_["is"]                       = "heading"; +          node_heading_str_["ocn"]                      = "0"; +          node_heading_str_["segment_anchor_tag"]       = "bookindex"; +          node_heading_str_["attrib"]                   = ""; +          node_heading_str_["marked_up_lev"]            = "1"; +          node_heading_int_["heading_lev_markup"]       = 4; +          node_heading_int_["heading_lev_collapsed"]    = 2; +          node_heading_int_["parent_ocn"]               = 1; +          node_heading_int_["parent_lev_markup"]        = 0;            bookindex_section["scroll"] ~=              set_abstract_object.contents_heading(                "Index", -              node_str_, -              node_int_, -              ["book_index"], +              node_heading_str_, +              node_heading_int_, +              ["bookindex"],              );            bookindex_section["seg"] ~=              set_abstract_object.contents_heading(                "Index", -              node_str_, -              node_int_, -              ["book_index"], +              node_heading_str_, +              node_heading_int_, +              ["bookindex"],              );            ++obj_cite_number;            ++mkn; @@ -3532,55 +3546,50 @@ template SiSUdocAbstraction() {              }              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, -            ]; +            indent=[ "hang_position" : 0, "base_position" : 1, ]; +            node_para_str_["is"]                           = "para"; +            node_para_str_["attrib"]                       = ""; +            node_para_int_["ocn"]                          = obj_cite_number; +            node_para_int_["indent_hang"]                  = 0; +            node_para_int_["indent_base"]                  = 1; +            node_para_int_["bullet"]                       = 0;              bookindex_section["scroll"] ~=                set_abstract_object.contents_para( -                type,                  bi_tmp_scroll, -                attrib, -                obj_cite_number, -                indent, -                false +                node_para_str_, +                node_para_int_,                );              bookindex_section["seg"] ~=                set_abstract_object.contents_para( -                type,                  bi_tmp_seg, -                attrib, -                obj_cite_number, -                indent, -                false +                node_para_str_, +                node_para_int_,                );              ++obj_cite_number;              ++mkn;            }          } else {                              // no book index, (figure out what to do here) -          node_str_["is"]                       = "heading"; -          node_str_["ocn"]                      = "0"; -          node_str_["segment_anchor_tag"]       = ""; -          node_str_["attrib"]                   = ""; -          node_str_["marked_up_lev"]            = "B"; -          node_int_["heading_lev_markup"]       = 1; -          node_int_["heading_lev_collapsed"]    = 1; -          node_int_["parent_ocn"]               = 1; -          node_int_["parent_lev_markup"]        = 0; +          node_heading_str_["is"]                       = "heading"; +          node_heading_str_["ocn"]                      = "0"; +          node_heading_str_["segment_anchor_tag"]       = ""; +          node_heading_str_["attrib"]                   = ""; +          node_heading_str_["marked_up_lev"]            = "B"; +          node_heading_int_["heading_lev_markup"]       = 1; +          node_heading_int_["heading_lev_collapsed"]    = 1; +          node_heading_int_["parent_ocn"]               = 1; +          node_heading_int_["parent_lev_markup"]        = 0;            bookindex_section["scroll"] ~=              set_abstract_object.contents_heading(                "(skip) there is no Book Index", -              node_str_, -              node_int_, +              node_heading_str_, +              node_heading_int_,                [""],              );            bookindex_section["seg"] ~=              set_abstract_object.contents_heading(                "(skip) there is no Book Index", -              node_str_, -              node_int_, +              node_heading_str_, +              node_heading_int_,                [""],              );          } @@ -3673,86 +3682,86 @@ template SiSUdocAbstraction() {          auto set_abstract_object = ObjectAbstractSet();          ObjComposite[][string] the_endnotes_section;          auto endnotes_ = gathered_notes(); -        string type; +        string type_is;          string lev, lev_markup_number, lev_collapsed_number;          string attrib;          int[string] indent; -        auto node_int_ = node_metadata_int; -        auto node_str_ = node_metadata_str; +        auto node_heading_int_ = node_metadata_heading_int; +        auto node_heading_str_ = node_metadata_heading_str;          if ((endnotes_["seg"].length > 0)          && (opt_action_bool["backmatter"] && opt_action_bool["section_endnotes"])) { -          node_str_["is"]                       = "heading"; -          node_str_["ocn"]                      = "0"; -          node_str_["segment_anchor_tag"]       = ""; -          node_str_["attrib"]                   = ""; -          node_str_["marked_up_lev"]            = "B"; -          node_int_["heading_lev_markup"]       = 1; -          node_int_["heading_lev_collapsed"]    = 1; -          node_int_["parent_ocn"]               = 1; -          node_int_["parent_lev_markup"]        = 0; +          node_heading_str_["is"]                       = "heading"; +          node_heading_str_["ocn"]                      = "0"; +          node_heading_str_["segment_anchor_tag"]       = ""; +          node_heading_str_["attrib"]                   = ""; +          node_heading_str_["marked_up_lev"]            = "B"; +          node_heading_int_["heading_lev_markup"]       = 1; +          node_heading_int_["heading_lev_collapsed"]    = 1; +          node_heading_int_["parent_ocn"]               = 1; +          node_heading_int_["parent_lev_markup"]        = 0;            the_endnotes_section["seg"] ~=              set_abstract_object.contents_heading(                "Endnotes", -              node_str_, -              node_int_, +              node_heading_str_, +              node_heading_int_,                [],              );            the_endnotes_section["scroll"] ~=              set_abstract_object.contents_heading(                "Endnotes", -              node_str_, -              node_int_, +              node_heading_str_, +              node_heading_int_,                [],              );            ++obj_cite_number;            ++mkn; -          node_str_["is"]                       = "heading"; -          node_str_["ocn"]                      = "0"; -          node_str_["segment_anchor_tag"]       = "endnotes"; -          node_str_["attrib"]                   = ""; -          node_str_["marked_up_lev"]            = "1"; -          node_int_["heading_lev_markup"]       = 4; -          node_int_["heading_lev_collapsed"]    = 2; -          node_int_["parent_ocn"]               = 1; -          node_int_["parent_lev_markup"]        = 0; +          node_heading_str_["is"]                       = "heading"; +          node_heading_str_["ocn"]                      = "0"; +          node_heading_str_["segment_anchor_tag"]       = "endnotes"; +          node_heading_str_["attrib"]                   = ""; +          node_heading_str_["marked_up_lev"]            = "1"; +          node_heading_int_["heading_lev_markup"]       = 4; +          node_heading_int_["heading_lev_collapsed"]    = 2; +          node_heading_int_["parent_ocn"]               = 1; +          node_heading_int_["parent_lev_markup"]        = 0;            the_endnotes_section["seg"] ~=              set_abstract_object.contents_heading(                "Endnotes", -              node_str_, -              node_int_, +              node_heading_str_, +              node_heading_int_,                ["endnotes"],              );            the_endnotes_section["scroll"] ~=              set_abstract_object.contents_heading(                "Endnotes", -              node_str_, -              node_int_, +              node_heading_str_, +              node_heading_int_,                ["endnotes"],              );            ++obj_cite_number;            ++mkn;          } else { -          node_str_["is"]                       = "heading"; -          node_str_["ocn"]                      = "0"; -          node_str_["segment_anchor_tag"]       = ""; -          node_str_["attrib"]                   = ""; -          node_str_["marked_up_lev"]            = "B"; -          node_int_["heading_lev_markup"]       = 1; -          node_int_["heading_lev_collapsed"]    = 1; -          node_int_["parent_ocn"]               = 1; -          node_int_["parent_lev_markup"]        = 0; +          node_heading_str_["is"]                       = "heading"; +          node_heading_str_["ocn"]                      = "0"; +          node_heading_str_["segment_anchor_tag"]       = ""; +          node_heading_str_["attrib"]                   = ""; +          node_heading_str_["marked_up_lev"]            = "B"; +          node_heading_int_["heading_lev_markup"]       = 1; +          node_heading_int_["heading_lev_collapsed"]    = 1; +          node_heading_int_["parent_ocn"]               = 1; +          node_heading_int_["parent_lev_markup"]        = 0;            the_endnotes_section["seg"] ~=              set_abstract_object.contents_heading(                "(skip) there are no Endnotes", -              node_str_, -              node_int_, +              node_heading_str_, +              node_heading_int_,                [""],              );            the_endnotes_section["scroll"] ~=              set_abstract_object.contents_heading(                "(skip) there are no Endnotes", -              node_str_, -              node_int_, +              node_heading_str_, +              node_heading_int_,                [""],              );          } @@ -3888,14 +3897,14 @@ template SiSUdocAbstraction() {            p_["lev_markup_number"] = DocStructMarkupHeading.h_text_1;            p_["obj_cite_number"] = lv4;          } -        string[string] _node_str = [ +        string[string] _node_heading_str = [            "is"                            : is_,            "ocn"                           : to!string(obj_cite_number_),            "marked_up_lev"                 : "",            "segment_anchor_tag"            : to!string(segment_anchor_tag),            "attrib"                        : "",          ]; -        int[string] _node_int = [ +        int[string] _node_heading_int = [            "ocn"                           : obj_cite_number_,            "ptr_doc_object"                : 0,            "ptr_html_segnames"             : 0, @@ -3912,12 +3921,12 @@ template SiSUdocAbstraction() {              writeln("- ", to!string(_node));            }          } -        assert(_node_int["parent_lev_markup"] >= 4);         // -        assert(_node_int["parent_lev_markup"] <= 7);         // -        assert(_node_int["parent_ocn"] >= 0);      // hmm, perhaps         // +        assert(_node_heading_int["parent_lev_markup"] >= 4);         // +        assert(_node_heading_int["parent_lev_markup"] <= 7);         // +        assert(_node_heading_int["parent_ocn"] >= 0);      // hmm, perhaps         //          auto t = tuple( -          _node_str, -          _node_int, +          _node_heading_str, +          _node_heading_int,          );          return t;        } @@ -4031,14 +4040,14 @@ template SiSUdocAbstraction() {          default:            break;          } -        string[string] _node_str = [ +        string[string] _node_heading_str = [            "is"                            : is_,            "ocn"                           : to!string(obj_cite_number_),            "marked_up_lev"                 : lev,            "segment_anchor_tag"            : to!string(segment_anchor_tag),            "attrib"                        : "",          ]; -        int[string] _node_int = [ +        int[string] _node_heading_int = [            "ocn"                           : obj_cite_number_,            "ptr_doc_object"                : cntr_,            "ptr_html_segnames"             : ((lev_markup_number == "4") ? html_segnames_ptr : 0), @@ -4058,42 +4067,42 @@ template SiSUdocAbstraction() {              writeln("* ", to!string(_node));            }          } -        assert(_node_int["parent_lev_markup"] <= 7); -        assert(_node_int["parent_ocn"] >= 0); +        assert(_node_heading_int["parent_lev_markup"] <= 7); +        assert(_node_heading_int["parent_ocn"] >= 0);          if (match(lev_markup_number, rgx.levels_numbered_headings)) { -          assert(_node_int["heading_lev_markup"] <= 7);         // issues -          assert(to!int(_node_str["ocn"]) >= 0); -          if (_node_int["parent_lev_markup"] > 0) { -            assert(_node_int["parent_lev_markup"] < _node_int["heading_lev_markup"]); -            if (to!int(_node_str["ocn"]) != 0) { -              assert(_node_int["parent_ocn"] < to!int(_node_str["ocn"])); +          assert(_node_heading_int["heading_lev_markup"] <= 7);         // issues +          assert(to!int(_node_heading_str["ocn"]) >= 0); +          if (_node_heading_int["parent_lev_markup"] > 0) { +            assert(_node_heading_int["parent_lev_markup"] < _node_heading_int["heading_lev_markup"]); +            if (to!int(_node_heading_str["ocn"]) != 0) { +              assert(_node_heading_int["parent_ocn"] < to!int(_node_heading_str["ocn"]));              }            } -          if (_node_int["heading_lev_markup"] == 0) { -            assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A); -          } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_B) { -            assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A); -          } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_C) { -            assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_B); -          } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_D) { -            assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_C); -          } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_1) { -            assert(_node_int["parent_lev_markup"] <= DocStructMarkupHeading.h_sect_D); -          } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_2) { -            assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_1); -          } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_3) { -            assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_2); -          } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_4) { -            assert(_node_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_3); -          } else if  (_node_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_5) { -            // // writeln(to!int(_node_int["parent_lev_markup"])); -            // // assert(to!int(_node_int["parent_lev_markup"]) >= 4); -            // // assert(to!int(_node_int["parent_lev_markup"]) <= 7); +          if (_node_heading_int["heading_lev_markup"] == 0) { +            assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A); +          } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_B) { +            assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_A); +          } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_C) { +            assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_B); +          } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_sect_D) { +            assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_sect_C); +          } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_1) { +            assert(_node_heading_int["parent_lev_markup"] <= DocStructMarkupHeading.h_sect_D); +          } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_2) { +            assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_1); +          } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_3) { +            assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_2); +          } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_4) { +            assert(_node_heading_int["parent_lev_markup"] == DocStructMarkupHeading.h_text_3); +          } else if  (_node_heading_int["heading_lev_markup"] == DocStructMarkupHeading.h_text_5) { +            // // writeln(to!int(_node_heading_int["parent_lev_markup"])); +            // // assert(to!int(_node_heading_int["parent_lev_markup"]) >= 4); +            // // assert(to!int(_node_heading_int["parent_lev_markup"]) <= 7);            }          }          auto t = tuple( -          _node_str, -          _node_int, +          _node_heading_str, +          _node_heading_int,          );          return t;        } diff --git a/src/sdp/ao_defaults.d b/src/sdp/ao_defaults.d index 4883540..1dd9300 100644 --- a/src/sdp/ao_defaults.d +++ b/src/sdp/ao_defaults.d @@ -343,15 +343,15 @@ template SiSUrgxInitFlags() {        "tic_group"            : 0,        "tic_block"            : 0,        "tic_quote"            : 0, -      "obj_cite_number_status"           : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings -      "obj_cite_number_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings +      "ocn_status"           : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings +      "ocn_status_multi_obj" : 0, // 0 obj_cite_number; 1 no obj_cite_number; 2 no obj_cite_number & dummy headings        "book_index"           : 0,      ];      return flags_type_init;    }  }  template SiSUnode() { -  string[string] node_metadata_str() { +  string[string] node_metadata_heading_str() {      auto _node = [          "is"                            : "",          "ocn"                           : "", @@ -361,7 +361,7 @@ template SiSUnode() {      ];      return _node;    } -  int[string] node_metadata_int() { +  int[string] node_metadata_heading_int() {      auto _node = [          "ocn"                           : 0, // decide whether to use or keep?          "ptr_doc_object"                : 0, @@ -374,6 +374,24 @@ template SiSUnode() {      ];      return _node;    } +  string[string] node_metadata_para_str() { +    auto _node = [ +        "is"                            : "", +        "ocn"                           : "", +        "attrib"                        : "", +        // "segment_anchor_tag"            : "", +    ]; +    return _node; +  } +  int[string] node_metadata_para_int() { +    auto _node = [ +        "ocn"                           : 0, +        "indent_base"                   : 0, +        "indent_hang"                   : 0, +        "bullet"                        : 0, // bool (0|1) +    ]; +    return _node; +  }  }  template SiSUbiblio() {    // required: deemed_author (author || editor); year; fulltitle; diff --git a/src/sdp/ao_object_setter.d b/src/sdp/ao_object_setter.d index 8ec51fd..9806285 100644 --- a/src/sdp/ao_object_setter.d +++ b/src/sdp/ao_object_setter.d @@ -72,39 +72,37 @@ template ObjectSetter() {      }      auto contents_heading(        in string         object, -      in string[string] _node_str, -      in int[string]    _node_int, +      in string[string] _node_heading_str, +      in int[string]    _node_heading_int,        in string[]       tags,      ) {        ObjComposite object_set;        object_set.use                                 = "content";        object_set.of                                  = "para";        object_set.is_a                                = "heading"; -      object_set.object                              = object; -      object_set.obj_cite_number                     = _node_str["ocn"]; +      object_set.object                              = object.strip; +      object_set.obj_cite_number                     = _node_heading_str["ocn"];        object_set.anchor_tags                         ~= tags; -      object_set.heading_attrib.lev                  = _node_str["marked_up_lev"]; -      object_set.heading_attrib.lev_int_markup       = _node_int["heading_lev_markup"]; -      object_set.heading_attrib.lev_int_collapsed    = _node_int["heading_lev_collapsed"]; +      object_set.heading_attrib.lev                  = _node_heading_str["marked_up_lev"]; +      object_set.heading_attrib.lev_int_markup       = _node_heading_int["heading_lev_markup"]; +      object_set.heading_attrib.lev_int_collapsed    = _node_heading_int["heading_lev_collapsed"];        return object_set;      }      auto contents_para( -      in string is_a, -      in string object, -      in string attrib, -      in int obj_cite_number, -      in int[string] indent, -      in bool bullet, +      in string         object, +      in string[string] _node_para_str, +      in int[string]    _node_para_int,      ) {        ObjComposite object_set;        object_set.use                      = "content";        object_set.of                       = "para";        object_set.is_a                     = "para";        object_set.object                   = object.strip; -      object_set.obj_cite_number          = (obj_cite_number==0) ? "" : to!string(obj_cite_number); -      object_set.para_attrib.indent_start = to!int(indent["hang_position"]); -      object_set.para_attrib.indent_rest  = to!int(indent["base_position"]); -      object_set.para_attrib.bullet       = false; // bullet; +      object_set.obj_cite_number          = (_node_para_int["ocn"]==0) ? "" : to!string(_node_para_int["ocn"]); +      object_set.anchor_tags              = []; +      object_set.para_attrib.indent_start = _node_para_int["indent_hang"]; +      object_set.para_attrib.indent_rest  = _node_para_int["indent_base"]; +      object_set.para_attrib.bullet       = (_node_para_int["bullet"] == 1) ? true : false;        return object_set;      }      auto contents_toc( @@ -146,7 +144,7 @@ template ObjectSetter() {        return object_set;      }      auto contents_block( -      in string type, +      in string type_is,        in string object,        in string attrib,        in int obj_cite_number, @@ -154,13 +152,14 @@ template ObjectSetter() {        ObjComposite object_set;        object_set.use                 = "content";        object_set.of                  = "block"; -      object_set.is_a                = type; +      object_set.is_a                = type_is;        object_set.object              = object;        object_set.obj_cite_number     = (obj_cite_number==0) ? "" : to!string(obj_cite_number); +      object_set.anchor_tags         = [];        return object_set;      }      auto contents_block_code( -      in string type, +      in string type_is,        in string object,        in string attrib_language_syntax,        in int obj_cite_number, @@ -168,14 +167,15 @@ template ObjectSetter() {        ObjComposite object_set;        object_set.use                 = "content";        object_set.of                  = "block"; -      object_set.is_a                = type; +      object_set.is_a                = type_is;        object_set.block_attrib.syntax = attrib_language_syntax;        object_set.object              = object;        object_set.obj_cite_number     = (obj_cite_number==0) ? "" : to!string(obj_cite_number); +      object_set.anchor_tags         = [];        return object_set;      }      auto contents_block_obj_cite_number_string( -      in string         type, +      in string         type_is,        in string         object,        in string         obj_cite_number,        in string[string] _node_str, @@ -184,7 +184,7 @@ template ObjectSetter() {        ObjComposite object_set;        object_set.use                               = "content";        object_set.of                                = "block"; -      object_set.is_a                              = type; +      object_set.is_a                              = type_is;        object_set.object                            = object;        object_set.obj_cite_number                   = obj_cite_number;        return object_set; diff --git a/src/sdp/output_html.d b/src/sdp/output_html.d index 3767d5a..4c92d58 100644 --- a/src/sdp/output_html.d +++ b/src/sdp/output_html.d @@ -1,23 +1,35 @@  template SiSUoutputHTML() {    struct SDPoutputHTML { +    string _html_anchor_tags(const(string[]) anchor_tags) { +      string tags=""; +      if (anchor_tags.length > 0) { +        foreach (tag; anchor_tags) { +          if (!(tag.empty)) { +            tags ~= "<a name=\"" ~ tag ~ "\"></a>"; +          } +        } +      } +      return tags; +    }      auto html_heading(O)(        auto ref const O         obj,      ) { +      auto tags = _html_anchor_tags(obj.anchor_tags);        string o;        o = format(q"¶<br><hr /><br>        <div class="substance">          <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> -        <h%s class="%s" id="%s"><a name="%s"></a> +        <h%s class="%s" id="%s"><a name="%s"></a>%s            %s          </h%s> -      </div> -      ¶", +      </div>¶",        obj.obj_cite_number,        obj.obj_cite_number,        obj.heading_attrib.lev_int_markup,        obj.is_a,        obj.obj_cite_number,        obj.obj_cite_number, +      tags,        obj.object,        obj.heading_attrib.lev_int_markup        ); @@ -26,89 +38,52 @@ template SiSUoutputHTML() {      auto html_para(O)(        auto ref const O         obj,      ) { +      auto tags = _html_anchor_tags(obj.anchor_tags);        string o;        if (obj.obj_cite_number.empty) { -        o = format(q"¶<div class="substance"> -        <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> -        <p class="%s" attrib="h%si%s"> -          %s -        </p> -      </div> -      ¶", +        o = format(q"¶  <div class="substance"> +      <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> +      <p class="%s" attrib="h%si%s">%s +        %s +      </p> +    </div>¶",            obj.obj_cite_number,            obj.obj_cite_number,            obj.is_a,            obj.para_attrib.indent_start,            obj.para_attrib.indent_rest, +          tags,            obj.object          );        } else { -        o = format(q"¶<div class="substance"> -        <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> -        <p class="%s" attrib="h%si%s" id="%s"> -          %s -        </p> -      </div> -      ¶", +        o = format(q"¶  <div class="substance"> +      <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> +      <p class="%s" attrib="h%si%s" id="%s">%s +        %s +      </p> +    </div>¶",            obj.obj_cite_number,            obj.obj_cite_number,            obj.is_a,            obj.para_attrib.indent_start,            obj.para_attrib.indent_rest,            obj.obj_cite_number, +          tags,            obj.object          );        }        return o;      } -    auto html_endnote(O)( -      auto ref const O         obj, -    ) { -      string o; -      o = format(q"¶<div class="substance"> -        <label class="tag"><a name="%s" a href="%s" class="lnkocn"></a></label> -        <p class="%s" attrib="h%si%s"> -          %s -        </p> -      </div> -      ¶", -        obj.anchor_tags[0], -        obj.anchor_tags[0], -        obj.is_a, -        obj.para_attrib.indent_start, -        obj.para_attrib.indent_rest, -        obj.object -      ); -      return o; -    } -    auto html_toc(O)( -      auto ref const O         obj, -    ) { -      string o; -      o = format(q"¶<div class="substance"> -        <p class="%s" attrib="h%si%s"> -          %s -        </p> -      </div> -      ¶", -      obj.is_a, -      obj.para_attrib.indent_start, -      obj.para_attrib.indent_rest, -      obj.object -      ); -      return o; -    }      auto html_nugget(O)(        auto ref const O         obj,      ) {        string o; -      o = format(q"¶<div class="substance"> -        <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> -        <p class="%s" id="%s"> -          %s -        </p> -      </div> -      ¶", +      o = format(q"¶  <div class="substance"> +      <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> +      <p class="%s" id="%s"> +        %s +      </p> +    </div>¶",        obj.obj_cite_number,        obj.obj_cite_number,        obj.is_a, @@ -119,8 +94,7 @@ template SiSUoutputHTML() {      }      auto scroll_head_html() {        string o; -      o = format(q"¶ -    <!DOCTYPE html> +      o = format(q"¶<!DOCTYPE html>      <html>      <head>        <meta charset="utf-8"> @@ -146,19 +120,46 @@ template SiSUoutputHTML() {        <link href="../../../_sisu/css/html.css" rel="stylesheet">      </head>      <body lang="en"> -    <a name="top" id="top"></a> -    ¶"); +    <a name="top" id="top"></a>¶"); +      return o; +    } +    auto html_toc(O)( +      auto ref const O         obj, +    ) { +      string o; +      o = format(q"¶  <div class="substance"> +      <p class="%s" attrib="h%si%s"> +        %s +      </p> +    </div>¶", +      obj.is_a, +      obj.para_attrib.indent_start, +      obj.para_attrib.indent_rest, +      obj.object +      ); +      return o; +    } +    auto html_endnote(O)( +      auto ref const O         obj, +    ) { +      string o; +      o = format(q"¶    <p class="%s" attrib="h%si%s"> +      %s +    </p>¶", +        obj.is_a, +        obj.para_attrib.indent_start, +        obj.para_attrib.indent_rest, +        obj.object +      );        return o;      }      auto scroll_tail_html() {        string o; -      o = format(q"¶ -    <a name="bottom" id="bottom"></a> -    <a name="end" id="end"></a> +      o = format(q"¶  <a name="bottom" id="bottom"></a> +      <a name="end" id="end"></a>      </div>      </body> -    </html> -    ¶"); +    </html>¶");        return o;      }      void scroll(C)( @@ -232,1289 +233,1288 @@ template SiSUoutputHTML() {      auto html_css() {        string css;        css="/* SiSU css default stylesheet */ -          body { -            color: black; -            background: #ffffff; -            background-color: #ffffff; -          } -          a:link { -            color: #003399; -            text-decoration: none; -          } -          a:visited { -            color: #003399; -            text-decoration: none; -          } -          a:hover { -            color: #000000; -            background-color: #f9f9aa; -          } -          a.lnkocn:link { -            color: #777777; -            text-decoration: none; -          } -          a:hover img { -            background-color: #ffffff; -          } -          a:active { -            color: #003399; -            text-decoration: underline; -          } -          div { -            margin-left: 0; -            margin-right: 0; -          } -          div.p { -            margin-left: 5%; -            margin-right: 1%; -          } -     -          #top_band { -            position: absolute; -            top: 0; -            bottom: 80px; -            width: 100%; -          } -          #top_band_search { -            position: absolute; -            top: 0px; -            right: 0px; -            margin-left: 75%; -            width: 20%; -          } -          #column_left { -            position: absolute; -            top: 80px; -            left: 0; -            margin-left: 1%; -            width: 20%; -          } -          #column_center { -            position: absolute; -            top: 80px; -            margin-left: 20%; -            width: 55%; -          } -          #column_right { -            position: absolute; -            top: 80px; -            right: 0px; -            margin-left: 75%; -            width: 25%; -          } -          #pane_major { -            position: absolute; -            top: 0px; -            left: 0; -            margin-left: 0; -            width: 80%; -          } -          #pane_minor { -            position: absolute; -            top: 0px; -            right: 0px; -            margin-left: 75%; -            width: 20%; -            background-color: #aaaaaa; -          } -          .norm, .bold, .verse, .group, .block, .alt { -            line-height: 133%; -            margin-left: 0em; -            margin-right: 2em; -            margin-top: 12px; -            margin-bottom: 0px; -            padding-left: 0em; -            text-indent: 0em; -          } -          p, h0, h1, h2, h3, h4, h5, h6, h7 { -            display: block; -            font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman; -            font-size: 100%; -            font-weight: normal; -            line-height: 133%; -            text-align: justify; -            margin-left: 0em; -            margin-right: 2em; -            text-indent: 0mm; -            margin-top: 0.8em; -            margin-bottom: 0.8em; -          } -          /* indent */ -          p.norm { } -          p.i1 {padding-left: 1em;} -          p.i2 {padding-left: 2em;} -          p.i3 {padding-left: 3em;} -          p.i4 {padding-left: 4em;} -          p.i5 {padding-left: 5em;} -          p.i6 {padding-left: 6em;} -          p.i7 {padding-left: 7em;} -          p.i8 {padding-left: 8em;} -          p.i9 {padding-left: 9em;} -          /* hanging indent */ -          p.h0i0 { -            padding-left: 0em; -            text-indent:  0em; -          } -          p.h0i1 { -            padding-left: 1em; -            text-indent: -1em; -          } -          p.h0i2 { -            padding-left: 2em; -            text-indent: -2em; -          } -          p.h0i3 { -            padding-left: 3em; -            text-indent: -3em; -          } -          p.h0i4 { -            padding-left: 4em; -            text-indent: -4em; -          } -          p.h0i5 { -            padding-left: 5em; -            text-indent: -5em; -          } -          p.h0i6 { -            padding-left: 6em; -            text-indent: -6em; -          } -          p.h0i7 { -            padding-left: 7em; -            text-indent: -7em; -          } -          p.h0i8 { -            padding-left: 8em; -            text-indent: -8em; -          } -          p.h0i9 { -            padding-left: 9em; -            text-indent: -9em; -          } -          p.h1i0 { -            padding-left: 0em; -            text-indent:  1em; -          } -          p.h1i1 { -            padding-left: 1em; -            text-indent:  0em; -          } -          p.h1i2 { -            padding-left: 2em; -            text-indent: -1em; -          } -          p.h1i3 { -            padding-left: 3em; -            text-indent: -2em; -          } -          p.h1i4 { -            padding-left: 4em; -            text-indent: -3em; -          } -          p.h1i5 { -            padding-left: 5em; -            text-indent: -4em; -          } -          p.h1i6 { -            padding-left: 6em; -            text-indent: -5em; -          } -          p.h1i7 { -            padding-left: 7em; -            text-indent: -6em; -          } -          p.h1i8 { -            padding-left: 8em; -            text-indent: -7em; -          } -          p.h1i9 { -            padding-left: 9em; -            text-indent: -8em; -          } -          p.h2i0 { -            padding-left: 0em; -            text-indent:  2em; -          } -          p.h2i1 { -            padding-left: 1em; -            text-indent:  1em; -          } -          p.h2i2 { -            padding-left: 2em; -            text-indent:  0em; -          } -          p.h2i3 { -            padding-left: 3em; -            text-indent: -1em; -          } -          p.h2i4 { -            padding-left: 4em; -            text-indent: -2em; -          } -          p.h2i5 { -            padding-left: 5em; -            text-indent: -3em; -          } -          p.h2i6 { -            padding-left: 6em; -            text-indent: -4em; -          } -          p.h2i7 { -            padding-left: 7em; -            text-indent: -5em; -          } -          p.h2i8 { -            padding-left: 8em; -            text-indent: -6em; -          } -          p.h2i9 { -            padding-left: 9em; -            text-indent: -7em; -          } -          p.h3i0 { -            padding-left: 0em; -            text-indent:  3em; -          } -          p.h3i1 { -            padding-left: 1em; -            text-indent:  2em; -          } -          p.h3i2 { -            padding-left: 2em; -            text-indent:  1em; -          } -          p.h3i3 { -            padding-left: 3em; -            text-indent:  0em; -          } -          p.h3i4 { -            padding-left: 4em; -            text-indent: -1em; -          } -          p.h3i5 { -            padding-left: 5em; -            text-indent: -2em; -          } -          p.h3i6 { -            padding-left: 6em; -            text-indent: -3em; -          } -          p.h3i7 { -            padding-left: 7em; -            text-indent: -4em; -          } -          p.h3i8 { -            padding-left: 8em; -            text-indent: -5em; -          } -          p.h3i9 { -            padding-left: 9em; -            text-indent: -6em; -          } -          p.h4i0 { -            padding-left: 0em; -            text-indent:  4em; -          } -          p.h4i1 { -            padding-left: 1em; -            text-indent:  3em; -          } -          p.h4i2 { -            padding-left: 2em; -            text-indent:  2em; -          } -          p.h4i3 { -            padding-left: 3em; -            text-indent:  1em; -          } -          p.h4i4 { -            padding-left: 4em; -            text-indent:  0em; -          } -          p.h4i5 { -            padding-left: 5em; -            text-indent: -1em; -          } -          p.h4i6 { -            padding-left: 6em; -            text-indent: -2em; -          } -          p.h4i7 { -            padding-left: 7em; -            text-indent: -3em; -          } -          p.h4i8 { -            padding-left: 8em; -            text-indent: -4em; -          } -          p.h4i9 { -            padding-left: 9em; -            text-indent: -5em; -          } -          p.h5i0 { -            padding-left: 0em; -            text-indent:  5em; -          } -          p.h5i1 { -            padding-left: 1em; -            text-indent:  4em; -          } -          p.h5i2 { -            padding-left: 2em; -            text-indent:  3em; -          } -          p.h5i3 { -            padding-left: 3em; -            text-indent:  2em; -          } -          p.h5i4 { -            padding-left: 4em; -            text-indent:  1em; -          } -          p.h5i5 { -            padding-left: 5em; -            text-indent:  0em; -          } -          p.h5i6 { -            padding-left: 6em; -            text-indent: -1em; -          } -          p.h5i7 { -            padding-left: 7em; -            text-indent: -2em; -          } -          p.h5i8 { -            padding-left: 8em; -            text-indent: -3em; -          } -          p.h5i9 { -            padding-left: 9em; -            text-indent: -4em; -          } -          p.h6i0 { -            padding-left: 0em; -            text-indent:  6em; -          } -          p.h6i1 { -            padding-left: 1em; -            text-indent:  5em; -          } -          p.h6i2 { -            padding-left: 2em; -            text-indent:  4em; -          } -          p.h6i3 { -            padding-left: 3em; -            text-indent:  3em; -          } -          p.h6i4 { -            padding-left: 4em; -            text-indent:  2em; -          } -          p.h6i5 { -            padding-left: 5em; -            text-indent:  1em; -          } -          p.h6i6 { -            padding-left: 6em; -            text-indent:  0em; -          } -          p.h6i7 { -            padding-left: 7em; -            text-indent: -1em; -          } -          p.h6i8 { -            padding-left: 8em; -            text-indent: -2em; -          } -          p.h6i9 { -            padding-left: 9em; -            text-indent: -3em; -          } -          p.h7i0 { -            padding-left: 0em; -            text-indent:  7em; -          } -          p.h7i1 { -            padding-left: 1em; -            text-indent:  6em; -          } -          p.h7i2 { -            padding-left: 2em; -            text-indent:  5em; -          } -          p.h7i3 { -            padding-left: 3em; -            text-indent:  4em; -          } -          p.h7i4 { -            padding-left: 4em; -            text-indent:  3em; -          } -          p.h7i5 { -            padding-left: 5em; -            text-indent:  2em; -          } -          p.h7i6 { -            padding-left: 6em; -            text-indent:  1em; -          } -          p.h7i7 { -            padding-left: 7em; -            text-indent:  0em; -          } -          p.h7i8 { -            padding-left: 8em; -            text-indent: -1em; -          } -          p.h7i9 { -            padding-left: 9em; -            text-indent: -2em; -          } -          p.h8i0 { -            padding-left: 0em; -            text-indent:  8em; -          } -          p.h8i1 { -            padding-left: 1em; -            text-indent:  7em; -          } -          p.h8i2 { -            padding-left: 2em; -            text-indent:  6em; -          } -          p.h8i3 { -            padding-left: 3em; -            text-indent:  5em; -          } -          p.h8i4 { -            padding-left: 4em; -            text-indent:  4em; -          } -          p.h8i5 { -            padding-left: 5em; -            text-indent:  3em; -          } -          p.h8i6 { -            padding-left: 6em; -            text-indent:  2em; -          } -          p.h8i7 { -            padding-left: 7em; -            text-indent:  1em; -          } -          p.h8i8 { -            padding-left: 8em; -            text-indent:  0em; -          } -          p.h8i9 { -            padding-left: 9em; -            text-indent: -1em; -          } -          p.h9i0 { -            padding-left: 0em; -            text-indent:  9em; -          } -          p.h9i1 { -            padding-left: 1em; -            text-indent:  8em; -          } -          p.h9i2 { -            padding-left: 2em; -            text-indent:  7em; -          } -          p.h9i3 { -            padding-left: 3em; -            text-indent:  6em; -          } -          p.h9i4 { -            padding-left: 4em; -            text-indent:  5em; -          } -          p.h9i5 { -            padding-left: 5em; -            text-indent:  4em; -          } -          p.h9i6 { -            padding-left: 6em; -            text-indent:  3em; -          } -          p.h9i7 { -            padding-left: 7em; -            text-indent:  2em; -          } -          p.h9i8 { -            padding-left: 8em; -            text-indent:  1em; -          } -          p.h9i9 { -            padding-left: 9em; -            text-indent:  0em; -          } -          p.it0 { -            margin-left: 0em; -            margin-top: 6px; -            margin-bottom: 0px; -            line-height: 100%; -          } -          p.it1 { -            margin-left: 1em; -            margin-top: 0px; -            margin-bottom: 0px; -            line-height: 100%; -          } -          p.it2 { -            margin-left: 2em; -            margin-top: 0px; -            margin-bottom: 0px; -            line-height: 100%; -          } -          p.it3 { -            margin-left: 3em; -            margin-top: 0px; -            margin-bottom: 0px; -            line-height: 100%; -          } -          p.it4 { -            margin-left: 4em; -            margin-top: 0px; -            margin-bottom: 0px; -            line-height: 100%; -          } -          p.it5 { -            margin-left: 5em; -            margin-top: 0px; -            margin-bottom: 0px; -            line-height: 100%; -          } -          p.it6 { -            margin-left: 6em; -            margin-top: 0px; -            margin-bottom: 0px; -            line-height: 100%; -          } -          p.it7 { -            margin-left: 7em; -            margin-top: 0px; -            margin-bottom: 0px; -            line-height: 100%; -          } -          p.it8 { -            margin-left: 8em; -            margin-top: 0px; -            margin-bottom: 0px; -            line-height: 100%; -          } -          p.it9 { -            margin-left: 9em; -            margin-bottom: 0px; -            margin-top: 0px; -            line-height: 100%; -          } -          p.block { } -          p.group { } -          p.alt { } -          p.verse { -            margin-bottom: 6px; -          } -          p.code { -            font-family: inconsolata, andale mono, courier new, courier, monospace; -            font-size: 90%; -            text-align: left; -            background-color: #eeeeee; -          } -          p.caption { -            text-align: left; -            font-size: 80%; -            display: inline; -          } -          p.endnote { -            font-size: 96%; -            line-height: 120%; -            text-align: left; -            margin-right: 15mm; -          } -          p.endnote_indent { -            font-size: 96%; -            line-height: 120%; -            text-align: left; -            margin-left: 2em; -            margin-right: 15mm; -          } -          p.center { -            text-align: center; -          } -          p.bold { -            font-weight: bold; -          } -          p.bold_left { -            font-weight: bold; -            text-align: left; -          } -          p.centerbold { -            text-align: center; -            font-weight: bold; -          } -          p.em { -            font-weight: bold; -            font-style: normal; -            background: #fff3b6; -          } -          p.small { -            font-size: 80%; -            margin-top: 0px; -            margin-bottom: 0px; -            margin-right: 6px; -            text-align: left; -          } -          .tiny, .tiny_left, .tiny_right, .tiny_center { -            font-size: 10px; -            margin-top: 0px; -            margin-bottom: 0px; -            color: #777777; -            margin-right: 6px; -            text-align: left; -          } -          p.tiny { } -          p.tiny_left { -            margin-left: 0px; -            margin-right: 0px; -            text-align: left; -          } -          p.tiny_right { -            margin-right: 1em; -            text-align: right; -          } -          p.tiny_center { -            margin-left: 0px; -            margin-right: 0px; -            text-align: center; -          } -          p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent { -            font-size: 80%; -            margin-top: 0px; -            margin-bottom: 0px; -            margin-left: 2mm; -            margin-right: 4px; -            text-align: left; -          } -          p.pane { } -          p.pane_title { -            font-weight: bold; -            margin-bottom: 0px; -          } -          p.pane_blurb { -            font-size: 10px; -            margin-bottom: 0px; -          } -          p.pane_link { -            font-size: 10px; -            margin-bottom: 0px; -            margin-left: 4mm; -          } -          p.pane_indent { -            font-size: 10px; -            margin-bottom: 0px; -            margin-left: 4mm; -          } -          p.concordance_word { -            line-height: 150%; -            font-weight: bold; -            display: inline; -            margin-top: 4px; -            margin-bottom: 1px; -          } -          p.concordance_count { -            font-size: 80%; -            color: #777777; -            display: inline; -            margin-left: 0em; -          } -          p.concordance_object { -            font-size: 80%; -            line-height: 120%; -            text-align: left; -            margin-left: 3em; -            margin-top: 1px; -            margin-bottom: 3px; -          } -          p.book_index_lev1 { -            line-height: 100%; -            margin-top: 4px; -            margin-bottom: 1px; -          } -          p.book_index_lev2 { -            line-height: 100%; -            text-align: left; -            margin-left: 3em; -            margin-top: 1px; -            margin-bottom: 3px; -          } -          p.quickref { -            font-size: 10px; -            font-style: italic; -            margin-top: 0px; -            margin-bottom: 0px; -            color: #777777; -            margin-right: 5px; -            text-align: left; -          } -          p.bigref { -            font-size: 11px; -            font-weight: bold; -            margin-top: 0px; -            margin-bottom: 0px; -            color: #777777; -            margin-right: 5px; -            text-align: center; -          } -          p.letter { -            font-weight: bold; -            font-size: 80%; -            margin-left: 0em; -            margin-top: 2px; -            margin-bottom: 2px; -            margin-right: 6px; -            text-align: left; -            color: white; -            background: #880000; -          } -          tt { -            font-family: inconsolata, andale mono, courier new, courier, monospace; -            background-color: #eeeeee; -          } -          label.ocn { -            width: 2%; -            float: right; -            top: 0; -            font-size: 10px; -            margin-top: 0px; -            margin-bottom: 5px; -            color: #777777; -            margin-right: 5px; -            text-align: right; -            background-color: #ffffff; -          } -          table { } -          tr { } -          th,td { -            vertical-align: top; -            text-align: left; -          } -          th { -            font-weight: bold; -          } -          p.left,th.left,td.left { -            text-align: left; -          } -          p.small_left,th.small_left,td.small_left { -            text-align: left; -            font-size: 80%; -          } -          p.right,th.right,td.right { -            text-align: right; -          } -          #horizontal_links { -            background: #eeeeee; -            margin-left: 5%; -            margin-right: 5%; -          } -          #horizontal { -            margin: 0; -            padding: 0 0 0 10px; -            border-top: 1px solid #000077; -            border-bottom: 1px solid #000077; -          } -          #horizontal li { -            margin: 0 0 0 0; -            padding: 0 16px 0 0; -            display: inline; -            list-style-type: none; -            text-align: left; -            background: none; -          } -          #horizontal a { -            line-height: 12px; -            margin: 0 0 0 0; -            text-decoration: none; -            color: #000077; -          } -          #horizontal a.active, #horizontal a:hover { -            border-bottom: 2px solid #777777; -            padding-bottom: 2px; -            color: #000077; -          } -          #horizontal a:hover { -            color: #000077; -          } -          #document_versions { -            position: absolute; -            top: 10mm; -            right: 2%; -            width: 12%; -            float: right; -          } -          #vertical_links { -            position: absolute; -            top: 10mm; -            right: 0px; -            width: 20%; -            background: #dddddd; -            float: right; -          } -          #vertical { -            padding: 0 12px 0px 0px; -            margin-left: 2%; -            margin-right: 2%; -          } -          #vertical li { -            display: block; -            list-style-type: none; -          } -          #vertical a { -            line-height: 12px; -            text-decoration: none; -            color: #000077; -          } -          #vertical a.active, #vertical a:hover { -            border-bottom: 2px solid #777777; -            padding-bottom: 2px; -            color: #000077; -          } -          ul, li { -            list-style-type: none; -            list-style: none; -            padding-left: 20px; -            display: block; -            font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman; -            font-weight: normal; -            line-height: 150%; -            text-align: left; -            text-indent: 0mm; -            margin-left: 1em; -            margin-right: 2em; -            margin-top: 3px; -            margin-bottom: 3px; -          } -          li { -            background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; -          } -          ul { -          } -          li.bullet { margin-left: 1em; } -          li.i1 { margin-left: 2em; } -          li.i2 { margin-left: 3em; } -          li.i3 { margin-left: 4em; } -          li.i4 { margin-left: 5em; } -          li.i5 { margin-left: 6em; } -          li.i6 { margin-left: 7em; } -          li.i7 { margin-left: 8em; } -          li.i8 { margin-left: 9em; } -          li.i9 { margin-left: 10em; } -          li.doc, li.ref, li.refcenter { -            margin-top: 0px; -            margin-bottom: 0px; -            margin-right: 0px; -            font-size: 8px; -            font-style: normal; -            text-align: left; -          } -          li.doc { -            background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; -            padding-left: 16px; -            margin-left: 10px; -            margin-right: 0px; -          } -          li.ref { -            background: none; -            padding-left: 0; -            margin-left: 0; -            color: #777777; -          } -          li.refcenter { -            background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; -            padding-left: 20px; -            margin-left: 10%; -            font-size: 9px; -            color: #777777; -            text-align: center; -          } -          li.refbold { -            list-style-type: none; -            padding-left: 16px; -            margin-left: 0; -            margin-right: 10mm; -            font-weight: bold; -          } -          h0, h1, h2, h3, h4, h5, h6, h7 { -            font-weight: bold; -            line-height: 120%; -            text-align: left; -            margin-top: 20px; -            margin-bottom: 10px; -          } -          h4.norm, h5.norm, h6.norm, h7.norm { -            margin-top: 10px; -            margin-bottom: 0px; -          } -          h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center { -            text-align: center; -          } -          h0 { font-size: 125%; } -          h1 { font-size: 120%; } -          h2 { font-size: 115%; } -          h3 { font-size: 110%; } -          h4 { font-size: 105%; } -          h5 { font-size: 100%; } -          h6 { font-size: 100%; } -          h7 { font-size: 100%; } -          h1.i {margin-left: 2em;} -          h2.i {margin-left: 3em;} -          h3.i {margin-left: 4em;} -          h4.i {margin-left: 5em;} -          h5.i {margin-left: 6em;} -          h6.i {margin-left: 7em;} -          h7.i {margin-left: 8em;} -          h8.i {margin-left: 9em;} -          h9.i {margin-left: 10em;} -          h1.top_band { -            display: inline; -            text-align: left; -            margin-top: 0; -            margin-left: 4mm; -            text-indent: 0mm; -            font-weight: bold; -            font-size: 120%; -          } -          h2.top_band_tiny { -            font-size: 10px; -            font-weight: normal; -            margin-top: 0px; -            margin-left: 4mm; -            text-indent: 0mm; -            margin-bottom: 0px; -            color: #777777; -            margin-left: 140px; -            margin-right: 0px; -            text-align: left; -          } -          p.top_band { -            display: inline; -            text-align: left; -            margin-top: 0; -            margin-left: 140px; -            text-indent: 0mm; -            font-weight: bold; -            font-size: 120%; -          } -          p.top_band_tiny { -            font-size: 10px; -            margin-top: 0px; -            margin-bottom: 0px; -            color: #777777; -            margin-left: 140px; -            margin-right: 0px; -            text-align: left; -          } -          p.top_band_image { -            float: left; -            display: inline; -            text-align: left; -            margin-top: 0; -            margin-left: 1mm; -            text-indent: 0mm; -            margin-right: 1mm; -          } -          .banner, .subbanner { -            font-weight: bold; -            text-align: center; -            margin-left: 10mm; -            margin-right: 15mm; -            margin-top: 20px; -            margin-bottom: 10px; -          } -          h0.banner { -            font-size: 125%; -          } -          h1.banner { -            font-size: 120%; -          } -          h1.subbanner { -            font-size: 115%; -          } -          h2.banner { -            font-size: 110%; -          } -          h3.banner { -            color: #990000; -            font-size: 105%; -          } -          h4.banner { -            color: #ff0000; -            font-size: 100%; -          } -          h5.banner { -          } -          h6.banner { -          } -          h7.banner { -          } -          .toc { -            font-weight: normal; -            margin-top: 6px; -            margin-bottom: 6px; -          } -          h0.toc { -            margin-left: 1em; -            font-size: 120%; -            line-height: 150%; -          } -          h1.toc { -            margin-left: 1em; -            font-size: 115%; -            line-height: 150%; -          } -          h2.toc { -            margin-left: 2em; -            font-size: 110%; -            line-height: 140%; -          } -          h3.toc { -            margin-left: 3em; -            font-size: 105%; -            line-height: 120%; -          } -          h4.toc { -            margin-left: 4em; -            font-size: 100%; -            line-height: 120%; -          } -          h5.toc { -            margin-left: 5em; -            font-size: 95%; -            line-height: 110%; -          } -          h6.toc { -            margin-left: 6em; -            font-size: 90%; -            line-height: 110%; -          } -          h7.toc { -            margin-left: 7em; -            font-size: 85%; -            line-height: 100%; -          } -          .microtoc { -            margin-top: 2px; -            margin-bottom: 2px; -          } -          h0.microtoc { -            margin-left: 0mm; -            font-size: 120%; -          } -          h1.microtoc { -            margin-left: 0mm; -            font-size: 115%; -          } -          h2.microtoc { -            margin-left: 5mm; -            font-size: 110%; -          } -          h3.microtoc { -            margin-left: 10mm; -            font-size: 105%; -          } -          h4.microtoc { -            margin-left: 15mm; -            font-weight: normal; -            font-size: 100%; -          } -          h5.microtoc { -            margin-left: 20mm; -            font-weight: normal; -            font-size: 95%; -          } -          h6.microtoc { -            margin-left: 25mm; -            font-weight: normal; -            font-size: 90%; -          } -          h7.microtoc { -            margin-left: 30mm; -            font-weight: normal; -            font-size: 85%; -          } -          .subtoc { -            margin-right: 34%; -            font-weight: normal; -          } -          h5.subtoc { -            margin-left: 2em; -            font-size: 80%; -            margin-top: 2px; -            margin-bottom: 2px; -          } -          h6.subtoc { -            margin-left: 3em; -            font-size: 75%; -            margin-top: 0px; -            margin-bottom: 0px; -          } -          h7.subtoc { -            margin-left: 4em; -            font-size: 70%; -            margin-top: 0px; -            margin-bottom: 0px; -          } -          div.substance { -            width: 100%; -            background-color: #ffffff; -          } -          div.ocn { -            width: 5%; -            float: right; -            top: 0; -            background-color: #ffffff; -          } -          div.endnote { -            width: 95%; -            background-color: #fffffff; -          } -          div.toc { -            position: absolute; -            float: left; -            margin: 0; -            padding: 0; -            padding-top: 0.5em; -            border: 0; -            width: 13em; -            background-color: #eeeeee; -            margin-right:1em; -          } -          div.summary { -            margin: 0; -            padding: 0; -            border-left: 13em solid #eeeeee; -            padding-left: 1em; -            background-color: #eeeeee; -          } -          div.content, div.main_column { -            margin: 0; -            padding: 0; -            border-left: 13em solid #ffffff; -            padding-left: 1em; -            padding-right: 1em; -          } -          div.content0, div.main_column0 { -            margin: 0; -            padding: 0; -            border-left: 0% solid #ffffff; -            padding-left: 5%; -          } -          div.scroll { -            margin: 0; -            padding: 0; -            padding-left: 1em; -            padding-right: 1em; -          } -          div.content:after { -            content:' '; -            clear:both; -            display:block; -            height:0; -            overflow:hidden -          } -          div.footer { -            clear:left; -            padding: 0.5em; -            font-size: 80%; -            margin: 0; -          } -          div.toc ul { -            list-style: none; -            padding: 0; -            margin: 0; -          } -          div.toc li ul a, li ul span.currentlink -          { -            font-weight: normal; -            font-size: 90%; -            padding-left: 2em; -            background-color: #eeeeee; -          } -          div.toc a, span.currentlink{ -            display:block; -            text-decoration: none; -            padding-left: 0.5em; -            color: #0000aa; -          } -          hr { -            width: 90%; -          } -          span.currentlink { -            text-decoration: none; -            background-color: #aaaaf9; -          } -          div.toc a:visited { -            color: #0000aa; -          } -          div.toc a:hover { -            color: #000000; -            background-color: #f9f9aa; -          } -          .minitoc { -            font-weight: normal; -            margin-top: 2px; -            margin-bottom: 2px; -          } -          h1.minitoc, h2.minitoc, h3.minitoc { -            margin-left: 0em; -            font-weight: bold; -            text-align: left; -            font-size: 90%; -            margin-top: 4px; -            margin-bottom: 4px; -          } -          h4.minitoc { -            margin-left: 0em; -            font-size: 90%; -          } -          h5.minitoc { -            margin-left: 1em; -            font-size: 85%; -          } -          h6.minitoc { -            margin-left: 2em; -            font-size: 85%; -          } -          h7.minitoc { -            margin-left: 3em; -            font-size: 80%; -          } -          h0.minitoc { -            margin-left: 0em; -            font-size: 90%; -          } -          h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c { -            text-align: center -          } -          h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red { -            text-align: center; -            color: #ff0000; -            margin-left: 5mm; -            text-indent: 5mm; -            margin-top: 30px; -            margin-bottom: 20px; -            margin-right: 15mm; -          } -          h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby { -            text-align: center; -            color: #990000; -            margin-left: 5mm; -            text-indent: 5mm; -            margin-top: 30px; -            margin-bottom: 20px; -            margin-right: 15mm; +      body { +        color: black; +        background: #ffffff; +        background-color: #ffffff; +      } +      a:link { +        color: #003399; +        text-decoration: none; +      } +      a:visited { +        color: #003399; +        text-decoration: none; +      } +      a:hover { +        color: #000000; +        background-color: #f9f9aa; +      } +      a.lnkocn:link { +        color: #777777; +        text-decoration: none; +      } +      a:hover img { +        background-color: #ffffff; +      } +      a:active { +        color: #003399; +        text-decoration: underline; +      } +      div { +        margin-left: 0; +        margin-right: 0; +      } +      div.p { +        margin-left: 5%; +        margin-right: 1%; +      } +      #top_band { +        position: absolute; +        top: 0; +        bottom: 80px; +        width: 100%; +      } +      #top_band_search { +        position: absolute; +        top: 0px; +        right: 0px; +        margin-left: 75%; +        width: 20%; +      } +      #column_left { +        position: absolute; +        top: 80px; +        left: 0; +        margin-left: 1%; +        width: 20%; +      } +      #column_center { +        position: absolute; +        top: 80px; +        margin-left: 20%; +        width: 55%; +      } +      #column_right { +        position: absolute; +        top: 80px; +        right: 0px; +        margin-left: 75%; +        width: 25%; +      } +      #pane_major { +        position: absolute; +        top: 0px; +        left: 0; +        margin-left: 0; +        width: 80%; +      } +      #pane_minor { +        position: absolute; +        top: 0px; +        right: 0px; +        margin-left: 75%; +        width: 20%; +        background-color: #aaaaaa; +      } +      .norm, .bold, .verse, .group, .block, .alt { +        line-height: 133%; +        margin-left: 0em; +        margin-right: 2em; +        margin-top: 12px; +        margin-bottom: 0px; +        padding-left: 0em; +        text-indent: 0em; +      } +      p, h0, h1, h2, h3, h4, h5, h6, h7 { +        display: block; +        font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman; +        font-size: 100%; +        font-weight: normal; +        line-height: 133%; +        text-align: justify; +        margin-left: 0em; +        margin-right: 2em; +        text-indent: 0mm; +        margin-top: 0.8em; +        margin-bottom: 0.8em; +      } +      /* indent */ +      p.norm { } +      p.i1 {padding-left: 1em;} +      p.i2 {padding-left: 2em;} +      p.i3 {padding-left: 3em;} +      p.i4 {padding-left: 4em;} +      p.i5 {padding-left: 5em;} +      p.i6 {padding-left: 6em;} +      p.i7 {padding-left: 7em;} +      p.i8 {padding-left: 8em;} +      p.i9 {padding-left: 9em;} +      /* hanging indent */ +      p.h0i0 { +        padding-left: 0em; +        text-indent:  0em; +      } +      p.h0i1 { +        padding-left: 1em; +        text-indent: -1em; +      } +      p.h0i2 { +        padding-left: 2em; +        text-indent: -2em; +      } +      p.h0i3 { +        padding-left: 3em; +        text-indent: -3em; +      } +      p.h0i4 { +        padding-left: 4em; +        text-indent: -4em; +      } +      p.h0i5 { +        padding-left: 5em; +        text-indent: -5em; +      } +      p.h0i6 { +        padding-left: 6em; +        text-indent: -6em; +      } +      p.h0i7 { +        padding-left: 7em; +        text-indent: -7em; +      } +      p.h0i8 { +        padding-left: 8em; +        text-indent: -8em; +      } +      p.h0i9 { +        padding-left: 9em; +        text-indent: -9em; +      } +      p.h1i0 { +        padding-left: 0em; +        text-indent:  1em; +      } +      p.h1i1 { +        padding-left: 1em; +        text-indent:  0em; +      } +      p.h1i2 { +        padding-left: 2em; +        text-indent: -1em; +      } +      p.h1i3 { +        padding-left: 3em; +        text-indent: -2em; +      } +      p.h1i4 { +        padding-left: 4em; +        text-indent: -3em; +      } +      p.h1i5 { +        padding-left: 5em; +        text-indent: -4em; +      } +      p.h1i6 { +        padding-left: 6em; +        text-indent: -5em; +      } +      p.h1i7 { +        padding-left: 7em; +        text-indent: -6em; +      } +      p.h1i8 { +        padding-left: 8em; +        text-indent: -7em; +      } +      p.h1i9 { +        padding-left: 9em; +        text-indent: -8em; +      } +      p.h2i0 { +        padding-left: 0em; +        text-indent:  2em; +      } +      p.h2i1 { +        padding-left: 1em; +        text-indent:  1em; +      } +      p.h2i2 { +        padding-left: 2em; +        text-indent:  0em; +      } +      p.h2i3 { +        padding-left: 3em; +        text-indent: -1em; +      } +      p.h2i4 { +        padding-left: 4em; +        text-indent: -2em; +      } +      p.h2i5 { +        padding-left: 5em; +        text-indent: -3em; +      } +      p.h2i6 { +        padding-left: 6em; +        text-indent: -4em; +      } +      p.h2i7 { +        padding-left: 7em; +        text-indent: -5em; +      } +      p.h2i8 { +        padding-left: 8em; +        text-indent: -6em; +      } +      p.h2i9 { +        padding-left: 9em; +        text-indent: -7em; +      } +      p.h3i0 { +        padding-left: 0em; +        text-indent:  3em; +      } +      p.h3i1 { +        padding-left: 1em; +        text-indent:  2em; +      } +      p.h3i2 { +        padding-left: 2em; +        text-indent:  1em; +      } +      p.h3i3 { +        padding-left: 3em; +        text-indent:  0em; +      } +      p.h3i4 { +        padding-left: 4em; +        text-indent: -1em; +      } +      p.h3i5 { +        padding-left: 5em; +        text-indent: -2em; +      } +      p.h3i6 { +        padding-left: 6em; +        text-indent: -3em; +      } +      p.h3i7 { +        padding-left: 7em; +        text-indent: -4em; +      } +      p.h3i8 { +        padding-left: 8em; +        text-indent: -5em; +      } +      p.h3i9 { +        padding-left: 9em; +        text-indent: -6em; +      } +      p.h4i0 { +        padding-left: 0em; +        text-indent:  4em; +      } +      p.h4i1 { +        padding-left: 1em; +        text-indent:  3em; +      } +      p.h4i2 { +        padding-left: 2em; +        text-indent:  2em; +      } +      p.h4i3 { +        padding-left: 3em; +        text-indent:  1em; +      } +      p.h4i4 { +        padding-left: 4em; +        text-indent:  0em; +      } +      p.h4i5 { +        padding-left: 5em; +        text-indent: -1em; +      } +      p.h4i6 { +        padding-left: 6em; +        text-indent: -2em; +      } +      p.h4i7 { +        padding-left: 7em; +        text-indent: -3em; +      } +      p.h4i8 { +        padding-left: 8em; +        text-indent: -4em; +      } +      p.h4i9 { +        padding-left: 9em; +        text-indent: -5em; +      } +      p.h5i0 { +        padding-left: 0em; +        text-indent:  5em; +      } +      p.h5i1 { +        padding-left: 1em; +        text-indent:  4em; +      } +      p.h5i2 { +        padding-left: 2em; +        text-indent:  3em; +      } +      p.h5i3 { +        padding-left: 3em; +        text-indent:  2em; +      } +      p.h5i4 { +        padding-left: 4em; +        text-indent:  1em; +      } +      p.h5i5 { +        padding-left: 5em; +        text-indent:  0em; +      } +      p.h5i6 { +        padding-left: 6em; +        text-indent: -1em; +      } +      p.h5i7 { +        padding-left: 7em; +        text-indent: -2em; +      } +      p.h5i8 { +        padding-left: 8em; +        text-indent: -3em; +      } +      p.h5i9 { +        padding-left: 9em; +        text-indent: -4em; +      } +      p.h6i0 { +        padding-left: 0em; +        text-indent:  6em; +      } +      p.h6i1 { +        padding-left: 1em; +        text-indent:  5em; +      } +      p.h6i2 { +        padding-left: 2em; +        text-indent:  4em; +      } +      p.h6i3 { +        padding-left: 3em; +        text-indent:  3em; +      } +      p.h6i4 { +        padding-left: 4em; +        text-indent:  2em; +      } +      p.h6i5 { +        padding-left: 5em; +        text-indent:  1em; +      } +      p.h6i6 { +        padding-left: 6em; +        text-indent:  0em; +      } +      p.h6i7 { +        padding-left: 7em; +        text-indent: -1em; +      } +      p.h6i8 { +        padding-left: 8em; +        text-indent: -2em; +      } +      p.h6i9 { +        padding-left: 9em; +        text-indent: -3em; +      } +      p.h7i0 { +        padding-left: 0em; +        text-indent:  7em; +      } +      p.h7i1 { +        padding-left: 1em; +        text-indent:  6em; +      } +      p.h7i2 { +        padding-left: 2em; +        text-indent:  5em; +      } +      p.h7i3 { +        padding-left: 3em; +        text-indent:  4em; +      } +      p.h7i4 { +        padding-left: 4em; +        text-indent:  3em; +      } +      p.h7i5 { +        padding-left: 5em; +        text-indent:  2em; +      } +      p.h7i6 { +        padding-left: 6em; +        text-indent:  1em; +      } +      p.h7i7 { +        padding-left: 7em; +        text-indent:  0em; +      } +      p.h7i8 { +        padding-left: 8em; +        text-indent: -1em; +      } +      p.h7i9 { +        padding-left: 9em; +        text-indent: -2em; +      } +      p.h8i0 { +        padding-left: 0em; +        text-indent:  8em; +      } +      p.h8i1 { +        padding-left: 1em; +        text-indent:  7em; +      } +      p.h8i2 { +        padding-left: 2em; +        text-indent:  6em; +      } +      p.h8i3 { +        padding-left: 3em; +        text-indent:  5em; +      } +      p.h8i4 { +        padding-left: 4em; +        text-indent:  4em; +      } +      p.h8i5 { +        padding-left: 5em; +        text-indent:  3em; +      } +      p.h8i6 { +        padding-left: 6em; +        text-indent:  2em; +      } +      p.h8i7 { +        padding-left: 7em; +        text-indent:  1em; +      } +      p.h8i8 { +        padding-left: 8em; +        text-indent:  0em; +      } +      p.h8i9 { +        padding-left: 9em; +        text-indent: -1em; +      } +      p.h9i0 { +        padding-left: 0em; +        text-indent:  9em; +      } +      p.h9i1 { +        padding-left: 1em; +        text-indent:  8em; +      } +      p.h9i2 { +        padding-left: 2em; +        text-indent:  7em; +      } +      p.h9i3 { +        padding-left: 3em; +        text-indent:  6em; +      } +      p.h9i4 { +        padding-left: 4em; +        text-indent:  5em; +      } +      p.h9i5 { +        padding-left: 5em; +        text-indent:  4em; +      } +      p.h9i6 { +        padding-left: 6em; +        text-indent:  3em; +      } +      p.h9i7 { +        padding-left: 7em; +        text-indent:  2em; +      } +      p.h9i8 { +        padding-left: 8em; +        text-indent:  1em; +      } +      p.h9i9 { +        padding-left: 9em; +        text-indent:  0em; +      } +      p.it0 { +        margin-left: 0em; +        margin-top: 6px; +        margin-bottom: 0px; +        line-height: 100%; +      } +      p.it1 { +        margin-left: 1em; +        margin-top: 0px; +        margin-bottom: 0px; +        line-height: 100%; +      } +      p.it2 { +        margin-left: 2em; +        margin-top: 0px; +        margin-bottom: 0px; +        line-height: 100%; +      } +      p.it3 { +        margin-left: 3em; +        margin-top: 0px; +        margin-bottom: 0px; +        line-height: 100%; +      } +      p.it4 { +        margin-left: 4em; +        margin-top: 0px; +        margin-bottom: 0px; +        line-height: 100%; +      } +      p.it5 { +        margin-left: 5em; +        margin-top: 0px; +        margin-bottom: 0px; +        line-height: 100%; +      } +      p.it6 { +        margin-left: 6em; +        margin-top: 0px; +        margin-bottom: 0px; +        line-height: 100%; +      } +      p.it7 { +        margin-left: 7em; +        margin-top: 0px; +        margin-bottom: 0px; +        line-height: 100%; +      } +      p.it8 { +        margin-left: 8em; +        margin-top: 0px; +        margin-bottom: 0px; +        line-height: 100%; +      } +      p.it9 { +        margin-left: 9em; +        margin-bottom: 0px; +        margin-top: 0px; +        line-height: 100%; +      } +      p.block { } +      p.group { } +      p.alt { } +      p.verse { +        margin-bottom: 6px; +      } +      p.code { +        font-family: inconsolata, andale mono, courier new, courier, monospace; +        font-size: 90%; +        text-align: left; +        background-color: #eeeeee; +      } +      p.caption { +        text-align: left; +        font-size: 80%; +        display: inline; +      } +      p.endnote { +        font-size: 96%; +        line-height: 120%; +        text-align: left; +        margin-right: 15mm; +      } +      p.endnote_indent { +        font-size: 96%; +        line-height: 120%; +        text-align: left; +        margin-left: 2em; +        margin-right: 15mm; +      } +      p.center { +        text-align: center; +      } +      p.bold { +        font-weight: bold; +      } +      p.bold_left { +        font-weight: bold; +        text-align: left; +      } +      p.centerbold { +        text-align: center; +        font-weight: bold; +      } +      p.em { +        font-weight: bold; +        font-style: normal; +        background: #fff3b6; +      } +      p.small { +        font-size: 80%; +        margin-top: 0px; +        margin-bottom: 0px; +        margin-right: 6px; +        text-align: left; +      } +      .tiny, .tiny_left, .tiny_right, .tiny_center { +        font-size: 10px; +        margin-top: 0px; +        margin-bottom: 0px; +        color: #777777; +        margin-right: 6px; +        text-align: left; +      } +      p.tiny { } +      p.tiny_left { +        margin-left: 0px; +        margin-right: 0px; +        text-align: left; +      } +      p.tiny_right { +        margin-right: 1em; +        text-align: right; +      } +      p.tiny_center { +        margin-left: 0px; +        margin-right: 0px; +        text-align: center; +      } +      p.pane, p.pane_title, p.pane_blurb, p.pane_link, p.pane_indent { +        font-size: 80%; +        margin-top: 0px; +        margin-bottom: 0px; +        margin-left: 2mm; +        margin-right: 4px; +        text-align: left; +      } +      p.pane { } +      p.pane_title { +        font-weight: bold; +        margin-bottom: 0px; +      } +      p.pane_blurb { +        font-size: 10px; +        margin-bottom: 0px; +      } +      p.pane_link { +        font-size: 10px; +        margin-bottom: 0px; +        margin-left: 4mm; +      } +      p.pane_indent { +        font-size: 10px; +        margin-bottom: 0px; +        margin-left: 4mm; +      } +      p.concordance_word { +        line-height: 150%; +        font-weight: bold; +        display: inline; +        margin-top: 4px; +        margin-bottom: 1px; +      } +      p.concordance_count { +        font-size: 80%; +        color: #777777; +        display: inline; +        margin-left: 0em; +      } +      p.concordance_object { +        font-size: 80%; +        line-height: 120%; +        text-align: left; +        margin-left: 3em; +        margin-top: 1px; +        margin-bottom: 3px; +      } +      p.book_index_lev1 { +        line-height: 100%; +        margin-top: 4px; +        margin-bottom: 1px; +      } +      p.book_index_lev2 { +        line-height: 100%; +        text-align: left; +        margin-left: 3em; +        margin-top: 1px; +        margin-bottom: 3px; +      } +      p.quickref { +        font-size: 10px; +        font-style: italic; +        margin-top: 0px; +        margin-bottom: 0px; +        color: #777777; +        margin-right: 5px; +        text-align: left; +      } +      p.bigref { +        font-size: 11px; +        font-weight: bold; +        margin-top: 0px; +        margin-bottom: 0px; +        color: #777777; +        margin-right: 5px; +        text-align: center; +      } +      p.letter { +        font-weight: bold; +        font-size: 80%; +        margin-left: 0em; +        margin-top: 2px; +        margin-bottom: 2px; +        margin-right: 6px; +        text-align: left; +        color: white; +        background: #880000; +      } +      tt { +        font-family: inconsolata, andale mono, courier new, courier, monospace; +        background-color: #eeeeee; +      } +      label.ocn { +        width: 2%; +        float: right; +        top: 0; +        font-size: 10px; +        margin-top: 0px; +        margin-bottom: 5px; +        color: #777777; +        margin-right: 5px; +        text-align: right; +        background-color: #ffffff; +      } +      table { } +      tr { } +      th,td { +        vertical-align: top; +        text-align: left; +      } +      th { +        font-weight: bold; +      } +      p.left,th.left,td.left { +        text-align: left; +      } +      p.small_left,th.small_left,td.small_left { +        text-align: left; +        font-size: 80%; +      } +      p.right,th.right,td.right { +        text-align: right; +      } +      #horizontal_links { +        background: #eeeeee; +        margin-left: 5%; +        margin-right: 5%; +      } +      #horizontal { +        margin: 0; +        padding: 0 0 0 10px; +        border-top: 1px solid #000077; +        border-bottom: 1px solid #000077; +      } +      #horizontal li { +        margin: 0 0 0 0; +        padding: 0 16px 0 0; +        display: inline; +        list-style-type: none; +        text-align: left; +        background: none; +      } +      #horizontal a { +        line-height: 12px; +        margin: 0 0 0 0; +        text-decoration: none; +        color: #000077; +      } +      #horizontal a.active, #horizontal a:hover { +        border-bottom: 2px solid #777777; +        padding-bottom: 2px; +        color: #000077; +      } +      #horizontal a:hover { +        color: #000077; +      } +      #document_versions { +        position: absolute; +        top: 10mm; +        right: 2%; +        width: 12%; +        float: right; +      } +      #vertical_links { +        position: absolute; +        top: 10mm; +        right: 0px; +        width: 20%; +        background: #dddddd; +        float: right; +      } +      #vertical { +        padding: 0 12px 0px 0px; +        margin-left: 2%; +        margin-right: 2%; +      } +      #vertical li { +        display: block; +        list-style-type: none; +      } +      #vertical a { +        line-height: 12px; +        text-decoration: none; +        color: #000077; +      } +      #vertical a.active, #vertical a:hover { +        border-bottom: 2px solid #777777; +        padding-bottom: 2px; +        color: #000077; +      } +      ul, li { +        list-style-type: none; +        list-style: none; +        padding-left: 20px; +        display: block; +        font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman; +        font-weight: normal; +        line-height: 150%; +        text-align: left; +        text-indent: 0mm; +        margin-left: 1em; +        margin-right: 2em; +        margin-top: 3px; +        margin-bottom: 3px; +      } +      li { +        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; +      } +      ul { +      } +      li.bullet { margin-left: 1em; } +      li.i1 { margin-left: 2em; } +      li.i2 { margin-left: 3em; } +      li.i3 { margin-left: 4em; } +      li.i4 { margin-left: 5em; } +      li.i5 { margin-left: 6em; } +      li.i6 { margin-left: 7em; } +      li.i7 { margin-left: 8em; } +      li.i8 { margin-left: 9em; } +      li.i9 { margin-left: 10em; } +      li.doc, li.ref, li.refcenter { +        margin-top: 0px; +        margin-bottom: 0px; +        margin-right: 0px; +        font-size: 8px; +        font-style: normal; +        text-align: left; +      } +      li.doc { +        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; +        padding-left: 16px; +        margin-left: 10px; +        margin-right: 0px; +      } +      li.ref { +        background: none; +        padding-left: 0; +        margin-left: 0; +        color: #777777; +      } +      li.refcenter { +        background: url(../image_sys/bullet_09.png) no-repeat 0px 6px; +        padding-left: 20px; +        margin-left: 10%; +        font-size: 9px; +        color: #777777; +        text-align: center; +      } +      li.refbold { +        list-style-type: none; +        padding-left: 16px; +        margin-left: 0; +        margin-right: 10mm; +        font-weight: bold; +      } +      h0, h1, h2, h3, h4, h5, h6, h7 { +        font-weight: bold; +        line-height: 120%; +        text-align: left; +        margin-top: 20px; +        margin-bottom: 10px; +      } +      h4.norm, h5.norm, h6.norm, h7.norm { +        margin-top: 10px; +        margin-bottom: 0px; +      } +      h0.center, h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center { +        text-align: center; +      } +      h0 { font-size: 125%; } +      h1 { font-size: 120%; } +      h2 { font-size: 115%; } +      h3 { font-size: 110%; } +      h4 { font-size: 105%; } +      h5 { font-size: 100%; } +      h6 { font-size: 100%; } +      h7 { font-size: 100%; } +      h1.i {margin-left: 2em;} +      h2.i {margin-left: 3em;} +      h3.i {margin-left: 4em;} +      h4.i {margin-left: 5em;} +      h5.i {margin-left: 6em;} +      h6.i {margin-left: 7em;} +      h7.i {margin-left: 8em;} +      h8.i {margin-left: 9em;} +      h9.i {margin-left: 10em;} +      h1.top_band { +        display: inline; +        text-align: left; +        margin-top: 0; +        margin-left: 4mm; +        text-indent: 0mm; +        font-weight: bold; +        font-size: 120%; +      } +      h2.top_band_tiny { +        font-size: 10px; +        font-weight: normal; +        margin-top: 0px; +        margin-left: 4mm; +        text-indent: 0mm; +        margin-bottom: 0px; +        color: #777777; +        margin-left: 140px; +        margin-right: 0px; +        text-align: left; +      } +      p.top_band { +        display: inline; +        text-align: left; +        margin-top: 0; +        margin-left: 140px; +        text-indent: 0mm; +        font-weight: bold; +        font-size: 120%; +      } +      p.top_band_tiny { +        font-size: 10px; +        margin-top: 0px; +        margin-bottom: 0px; +        color: #777777; +        margin-left: 140px; +        margin-right: 0px; +        text-align: left; +      } +      p.top_band_image { +        float: left; +        display: inline; +        text-align: left; +        margin-top: 0; +        margin-left: 1mm; +        text-indent: 0mm; +        margin-right: 1mm; +      } +      .banner, .subbanner { +        font-weight: bold; +        text-align: center; +        margin-left: 10mm; +        margin-right: 15mm; +        margin-top: 20px; +        margin-bottom: 10px; +      } +      h0.banner { +        font-size: 125%; +      } +      h1.banner { +        font-size: 120%; +      } +      h1.subbanner { +        font-size: 115%; +      } +      h2.banner { +        font-size: 110%; +      } +      h3.banner { +        color: #990000; +        font-size: 105%; +      } +      h4.banner { +        color: #ff0000; +        font-size: 100%; +      } +      h5.banner { +      } +      h6.banner { +      } +      h7.banner { +      } +      .toc { +        font-weight: normal; +        margin-top: 6px; +        margin-bottom: 6px; +      } +      h0.toc { +        margin-left: 1em; +        font-size: 120%; +        line-height: 150%; +      } +      h1.toc { +        margin-left: 1em; +        font-size: 115%; +        line-height: 150%; +      } +      h2.toc { +        margin-left: 2em; +        font-size: 110%; +        line-height: 140%; +      } +      h3.toc { +        margin-left: 3em; +        font-size: 105%; +        line-height: 120%; +      } +      h4.toc { +        margin-left: 4em; +        font-size: 100%; +        line-height: 120%; +      } +      h5.toc { +        margin-left: 5em; +        font-size: 95%; +        line-height: 110%; +      } +      h6.toc { +        margin-left: 6em; +        font-size: 90%; +        line-height: 110%; +      } +      h7.toc { +        margin-left: 7em; +        font-size: 85%; +        line-height: 100%; +      } +      .microtoc { +        margin-top: 2px; +        margin-bottom: 2px; +      } +      h0.microtoc { +        margin-left: 0mm; +        font-size: 120%; +      } +      h1.microtoc { +        margin-left: 0mm; +        font-size: 115%; +      } +      h2.microtoc { +        margin-left: 5mm; +        font-size: 110%; +      } +      h3.microtoc { +        margin-left: 10mm; +        font-size: 105%; +      } +      h4.microtoc { +        margin-left: 15mm; +        font-weight: normal; +        font-size: 100%; +      } +      h5.microtoc { +        margin-left: 20mm; +        font-weight: normal; +        font-size: 95%; +      } +      h6.microtoc { +        margin-left: 25mm; +        font-weight: normal; +        font-size: 90%; +      } +      h7.microtoc { +        margin-left: 30mm; +        font-weight: normal; +        font-size: 85%; +      } +      .subtoc { +        margin-right: 34%; +        font-weight: normal; +      } +      h5.subtoc { +        margin-left: 2em; +        font-size: 80%; +        margin-top: 2px; +        margin-bottom: 2px; +      } +      h6.subtoc { +        margin-left: 3em; +        font-size: 75%; +        margin-top: 0px; +        margin-bottom: 0px; +      } +      h7.subtoc { +        margin-left: 4em; +        font-size: 70%; +        margin-top: 0px; +        margin-bottom: 0px; +      } +      div.substance { +        width: 100%; +        background-color: #ffffff; +      } +      div.ocn { +        width: 5%; +        float: right; +        top: 0; +        background-color: #ffffff; +      } +      div.endnote { +        width: 95%; +        background-color: #fffffff; +      } +      div.toc { +        position: absolute; +        float: left; +        margin: 0; +        padding: 0; +        padding-top: 0.5em; +        border: 0; +        width: 13em; +        background-color: #eeeeee; +        margin-right:1em; +      } +      div.summary { +        margin: 0; +        padding: 0; +        border-left: 13em solid #eeeeee; +        padding-left: 1em; +        background-color: #eeeeee; +      } +      div.content, div.main_column { +        margin: 0; +        padding: 0; +        border-left: 13em solid #ffffff; +        padding-left: 1em; +        padding-right: 1em; +      } +      div.content0, div.main_column0 { +        margin: 0; +        padding: 0; +        border-left: 0% solid #ffffff; +        padding-left: 5%; +      } +      div.scroll { +        margin: 0; +        padding: 0; +        padding-left: 1em; +        padding-right: 1em; +      } +      div.content:after { +        content:' '; +        clear:both; +        display:block; +        height:0; +        overflow:hidden +      } +      div.footer { +        clear:left; +        padding: 0.5em; +        font-size: 80%; +        margin: 0; +      } +      div.toc ul { +        list-style: none; +        padding: 0; +        margin: 0; +      } +      div.toc li ul a, li ul span.currentlink +      { +        font-weight: normal; +        font-size: 90%; +        padding-left: 2em; +        background-color: #eeeeee; +      } +      div.toc a, span.currentlink{ +        display:block; +        text-decoration: none; +        padding-left: 0.5em; +        color: #0000aa; +      } +      hr { +        width: 90%; +      } +      span.currentlink { +        text-decoration: none; +        background-color: #aaaaf9; +      } +      div.toc a:visited { +        color: #0000aa; +      } +      div.toc a:hover { +        color: #000000; +        background-color: #f9f9aa; +      } +      .minitoc { +        font-weight: normal; +        margin-top: 2px; +        margin-bottom: 2px; +      } +      h1.minitoc, h2.minitoc, h3.minitoc { +        margin-left: 0em; +        font-weight: bold; +        text-align: left; +        font-size: 90%; +        margin-top: 4px; +        margin-bottom: 4px; +      } +      h4.minitoc { +        margin-left: 0em; +        font-size: 90%; +      } +      h5.minitoc { +        margin-left: 1em; +        font-size: 85%; +      } +      h6.minitoc { +        margin-left: 2em; +        font-size: 85%; +      } +      h7.minitoc { +        margin-left: 3em; +        font-size: 80%; +      } +      h0.minitoc { +        margin-left: 0em; +        font-size: 90%; +      } +      h0.c, h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c { +        text-align: center +      } +      h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red { +        text-align: center; +        color: #ff0000; +        margin-left: 5mm; +        text-indent: 5mm; +        margin-top: 30px; +        margin-bottom: 20px; +        margin-right: 15mm; +      } +      h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby { +        text-align: center; +        color: #990000; +        margin-left: 5mm; +        text-indent: 5mm; +        margin-top: 30px; +        margin-bottom: 20px; +        margin-right: 15mm;        }";        return css;      } diff --git a/views/version.txt b/views/version.txt index 9472cf9..99bc1a2 100644 --- a/views/version.txt +++ b/views/version.txt @@ -4,4 +4,4 @@ struct Version {    int minor;    int patch;  } -enum ver = Version(0, 9, 5); +enum ver = Version(0, 9, 6); | 
