diff options
| -rw-r--r-- | org/meta_abstraction.org | 74 | ||||
| -rw-r--r-- | org/sdp.org | 3 | ||||
| -rw-r--r-- | src/sdp/meta/metadoc.d | 1 | ||||
| -rw-r--r-- | src/sdp/meta/metadoc_from_src.d | 74 | ||||
| -rw-r--r-- | views/version.txt | 2 | 
5 files changed, 110 insertions, 44 deletions
| diff --git a/org/meta_abstraction.org b/org/meta_abstraction.org index 18bf8d6..05f204d 100644 --- a/org/meta_abstraction.org +++ b/org/meta_abstraction.org @@ -41,6 +41,7 @@ template SiSUdocAbstraction() {      CMM                  conf_make_meta,      Opt                  opt_action,      Mfst                 manifest_matter, +    bool                 _new_doc    ) {      static auto rgx = Rgx();      debug(asserts) { @@ -1156,10 +1157,16 @@ if ((obj_type_status["heading"] == State.on)    an_object["is"] = "heading";    an_object_key="body_nugget";    auto substantive_object_and_anchor_tags_tuple -    = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +    = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, _new_doc);    an_object["substantive"] = substantive_object_and_anchor_tags_tuple[sObj.content];    anchor_tags = substantive_object_and_anchor_tags_tuple[sObj.anchor_tags]; -  if (an_object["lev_markup_number"].to!int == 4) { +  if (_new_doc) { +    cnt1 = 1; +    cnt2 = 1; +    cnt3 = 1; +    _new_doc = false; +  } +  if (an_object["lev_markup_number"].to!int == 4 ) {      segment_anchor_tag_that_object_belongs_to = anchor_tags[0];      segment_anchor_tag_that_object_belongs_to_uri = anchor_tags[0] ~ ".fnSuffix";      anchor_tag_ = anchor_tags[0]; @@ -1264,7 +1271,7 @@ if ((obj_type_status["heading"] == State.on)        an_object["is"],      );    auto substantive_obj_misc_tuple -    = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +    = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);    an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];    anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];    comp_obj_para                                             = comp_obj_para.init; @@ -2673,6 +2680,12 @@ if (the_document_body_section.length > 1) {      the_bookindex_section["scroll"] ~      the_blurb_section    ); +  debug(decendants_tuple) { +    pairs = pairs.sort(); +    foreach (pair; pairs) {  // (pair; pairs.sort()) +      writeln(pair[0], "..", pair[1]); +    } +  }    foreach (ref obj; the_document_head_section) {      if (obj.metainfo.is_a == "heading") {        foreach (pair; pairs) { @@ -3749,7 +3762,7 @@ void _poem_block_(L,O,T,C,N,CMM)(            }            an_object["is"]                           = "verse";            auto substantive_obj_misc_tuple -            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);            an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];            anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];            comp_obj_block                               = comp_obj_block.init; @@ -3806,7 +3819,7 @@ void _poem_block_(L,O,T,C,N,CMM)(            an_object["is"]          );          auto substantive_obj_misc_tuple -          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);          an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];          anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];          comp_obj_block                               = comp_obj_block.init; @@ -3848,7 +3861,7 @@ void _poem_block_(L,O,T,C,N,CMM)(          processing.remove("verse");          an_object["is"]                           = "verse";          auto substantive_obj_misc_tuple -          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);          an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];          anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];          comp_obj_block                               = comp_obj_block.init; @@ -3905,7 +3918,7 @@ void _poem_block_(L,O,T,C,N,CMM)(              an_object["is"]            );          auto substantive_obj_misc_tuple -          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +          = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);          an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];          anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];          comp_obj_block                               = comp_obj_block.init; @@ -4049,7 +4062,7 @@ void _table_closed_make_special_notation_table_(N,CMM)(        );      an_object["is"] = "table";      auto substantive_obj_misc_tuple -      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, "body_nugget", conf_make_meta); +      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, "body_nugget", conf_make_meta, false);      an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content];      comp_obj_block.metainfo.ocn                  = obj_cite_digits.on;      comp_obj_block.metainfo.object_number_off    = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; @@ -4120,7 +4133,7 @@ void _block_flag_line_empty_(B,N,CMM)(          an_object["is"]        );      auto substantive_obj_misc_tuple -      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);      an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];      anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];      comp_obj_block                               = comp_obj_block.init; @@ -4169,7 +4182,7 @@ void _block_flag_line_empty_(B,N,CMM)(          an_object["is"]        );      auto substantive_obj_misc_tuple -      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);      an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];      anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];      comp_obj_block                               = comp_obj_block.init; @@ -4218,7 +4231,7 @@ void _block_flag_line_empty_(B,N,CMM)(          an_object["is"]        );      auto substantive_obj_misc_tuple -      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);      an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content];      comp_obj_block                               = comp_obj_block.init;      comp_obj_block.metainfo.is_of_part           = "body"; @@ -4306,7 +4319,7 @@ void _block_flag_line_empty_(B,N,CMM)(          an_object["is"]        );      auto substantive_obj_misc_tuple -      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);      an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];      anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];      comp_obj_code                                = comp_obj_code.init; @@ -4356,7 +4369,7 @@ void _block_flag_line_empty_(B,N,CMM)(          an_object["is"]        );      auto substantive_obj_misc_tuple -      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +      = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);      an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content];      comp_obj_block                               = comp_obj_block.init;      comp_obj_block.metainfo.ocn                  = obj_cite_digits.on; @@ -5639,6 +5652,8 @@ static struct ObjInlineMarkup {    static auto rgx = Rgx();    static auto munge = ObjInlineMarkupMunge();    string[string] obj_txt; +  static string[] anchor_tags_ = []; +  static string anchor_tag = "";  #+END_SRC  ******* object inline markup and anchor tags              :markup:inline: @@ -5649,6 +5664,7 @@ static struct ObjInlineMarkup {      O   obj_,      K   obj_key_,      CMM conf_make_meta, +    bool _new_doc    )    in {      debug(asserts) { @@ -5661,7 +5677,9 @@ static struct ObjInlineMarkup {      obj_txt["munge"] = (obj_["is"].match(ctRegex!(`verse|code`)))      ? obj_txt["munge"]      : obj_txt["munge"].strip; -    static __gshared string[] anchor_tags_ = []; +    if (_new_doc) { +      anchor_tags_ = []; +    }      auto x = munge.init;      bool[string] obj_notes_and_links;      obj_notes_and_links["notes_reg"]           = false; @@ -5670,9 +5688,11 @@ static struct ObjInlineMarkup {      obj_notes_and_links["image_no_dimensions"] = false;      switch (obj_["is"]) {      case "heading": -      static __gshared string anchor_tag = ""; -      obj_txt["munge"]=_configured_auto_heading_numbering_and_segment_anchor_tags(obj_txt["munge"], obj_, conf_make_meta); -      obj_txt["munge"]=_make_segment_anchor_tags_if_none_provided(obj_txt["munge"], obj_["lev"]); +      if (_new_doc) { +        anchor_tag = ""; +      } +      obj_txt["munge"]=_configured_auto_heading_numbering_and_segment_anchor_tags(obj_txt["munge"], obj_, conf_make_meta, _new_doc); +      obj_txt["munge"]=_make_segment_anchor_tags_if_none_provided(obj_txt["munge"], obj_["lev"], _new_doc);        if (auto m = obj_txt["munge"].match(rgx.heading_anchor_tag)) {          anchor_tag = m.captures[1];          anchor_tags_ ~= anchor_tag; @@ -5930,17 +5950,22 @@ private:  #+name: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags  #+BEGIN_SRC d +  static int[] heading_num = [ 0, 0, 0, 0 ]; +  static string heading_number_auto_composite = "";    static string _configured_auto_heading_numbering_and_segment_anchor_tags(M,O,CMM)(      M   munge_,      O   obj_,      CMM conf_make_meta, +    bool _new_doc    ) {      debug(asserts) {        static assert(is(typeof(munge_)          == string));        static assert(is(typeof(obj_)            == string[string]));      } -    static __gshared int[] heading_num = [ 0, 0, 0, 0 ]; -    static __gshared string heading_number_auto_composite = ""; +    if (_new_doc) { +      heading_num = [ 0, 0, 0, 0 ]; +      heading_number_auto_composite = ""; +    }      if (conf_make_meta.make.auto_num_top_lv) {        if (obj_["lev_markup_number"].to!int == 0) {          heading_num[0] = 0; @@ -6040,7 +6065,12 @@ private:  #+name: meta_emitters_obj_inline_markup_heading_numbering_segment_anchor_tags  #+BEGIN_SRC d -  static string _make_segment_anchor_tags_if_none_provided(M,Lv)(M munge_, Lv lev_) { +  static int heading_num_lev1 = 0; +  static string _make_segment_anchor_tags_if_none_provided(M,Lv)( +    M munge_, +    Lv lev_, +    bool _new_doc +  ) {      debug(asserts) {        static assert(is(typeof(munge_) == string));        static assert(is(typeof(lev_)   == string)); @@ -6057,7 +6087,9 @@ private:              "$1~" ~ "s" ~ m.captures[1] ~ " ");          }        } else if (lev_ == "1") { // (if not successful) manufacture a unique anchor tag for lev=="1" -        static __gshared int heading_num_lev1 = 0; +        if (_new_doc) { +          heading_num_lev1 = 0; +        }          heading_num_lev1 ++;          munge_=(munge_).replaceFirst(            rgx.heading_marker_missing_tag, diff --git a/org/sdp.org b/org/sdp.org index 8796a6b..83e0b4e 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -26,7 +26,7 @@ struct Version {    int minor;    int patch;  } -enum ver = Version(0, 26, 5); +enum ver = Version(0, 26, 6);  #+END_SRC  ** compilation restrictions (supported compilers) @@ -856,6 +856,7 @@ auto da = SiSUdocAbstraction!()(    _make_and_meta_struct,    _opt_action,    _manifest, +  true,  );  static assert(!isTypeTuple!(da));  static assert(da.length==5); diff --git a/src/sdp/meta/metadoc.d b/src/sdp/meta/metadoc.d index ff550b5..5821096 100644 --- a/src/sdp/meta/metadoc.d +++ b/src/sdp/meta/metadoc.d @@ -77,6 +77,7 @@ template SiSUabstraction() {        _make_and_meta_struct,        _opt_action,        _manifest, +      true,      );      static assert(!isTypeTuple!(da));      static assert(da.length==5); diff --git a/src/sdp/meta/metadoc_from_src.d b/src/sdp/meta/metadoc_from_src.d index 8de0711..7c68e16 100644 --- a/src/sdp/meta/metadoc_from_src.d +++ b/src/sdp/meta/metadoc_from_src.d @@ -241,6 +241,7 @@ template SiSUdocAbstraction() {      CMM                  conf_make_meta,      Opt                  opt_action,      Mfst                 manifest_matter, +    bool                 _new_doc    ) {      static auto rgx = Rgx();      debug(asserts) { @@ -833,10 +834,16 @@ template SiSUdocAbstraction() {                an_object["is"] = "heading";                an_object_key="body_nugget";                auto substantive_object_and_anchor_tags_tuple -                = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +                = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, _new_doc);                an_object["substantive"] = substantive_object_and_anchor_tags_tuple[sObj.content];                anchor_tags = substantive_object_and_anchor_tags_tuple[sObj.anchor_tags]; -              if (an_object["lev_markup_number"].to!int == 4) { +              if (_new_doc) { +                cnt1 = 1; +                cnt2 = 1; +                cnt3 = 1; +                _new_doc = false; +              } +              if (an_object["lev_markup_number"].to!int == 4 ) {                  segment_anchor_tag_that_object_belongs_to = anchor_tags[0];                  segment_anchor_tag_that_object_belongs_to_uri = anchor_tags[0] ~ ".fnSuffix";                  anchor_tag_ = anchor_tags[0]; @@ -935,7 +942,7 @@ template SiSUdocAbstraction() {                    an_object["is"],                  );                auto substantive_obj_misc_tuple -                = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +                = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);                an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];                anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];                comp_obj_para                                             = comp_obj_para.init; @@ -2056,6 +2063,12 @@ template SiSUdocAbstraction() {          the_bookindex_section["scroll"] ~          the_blurb_section        ); +      debug(decendants_tuple) { +        pairs = pairs.sort(); +        foreach (pair; pairs) {  // (pair; pairs.sort()) +          writeln(pair[0], "..", pair[1]); +        } +      }        foreach (ref obj; the_document_head_section) {          if (obj.metainfo.is_a == "heading") {            foreach (pair; pairs) { @@ -2754,7 +2767,7 @@ template SiSUdocAbstraction() {              }              an_object["is"]                           = "verse";              auto substantive_obj_misc_tuple -              = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +              = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);              an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];              anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];              comp_obj_block                               = comp_obj_block.init; @@ -2811,7 +2824,7 @@ template SiSUdocAbstraction() {              an_object["is"]            );            auto substantive_obj_misc_tuple -            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);            an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];            anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];            comp_obj_block                               = comp_obj_block.init; @@ -2853,7 +2866,7 @@ template SiSUdocAbstraction() {            processing.remove("verse");            an_object["is"]                           = "verse";            auto substantive_obj_misc_tuple -            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);            an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];            anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];            comp_obj_block                               = comp_obj_block.init; @@ -2910,7 +2923,7 @@ template SiSUdocAbstraction() {                an_object["is"]              );            auto substantive_obj_misc_tuple -            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +            = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);            an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];            anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];            comp_obj_block                               = comp_obj_block.init; @@ -3211,7 +3224,7 @@ template SiSUdocAbstraction() {          );        an_object["is"] = "table";        auto substantive_obj_misc_tuple -        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, "body_nugget", conf_make_meta); +        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, "body_nugget", conf_make_meta, false);        an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content];        comp_obj_block.metainfo.ocn                  = obj_cite_digits.on;        comp_obj_block.metainfo.object_number_off    = (obj_cite_digits.off==0)   ? "" : obj_cite_digits.off.to!string; @@ -3268,7 +3281,7 @@ template SiSUdocAbstraction() {            an_object["is"]          );        auto substantive_obj_misc_tuple -        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);        an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];        anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];        comp_obj_block                               = comp_obj_block.init; @@ -3311,7 +3324,7 @@ template SiSUdocAbstraction() {            an_object["is"]          );        auto substantive_obj_misc_tuple -        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);        an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];        anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];        comp_obj_block                               = comp_obj_block.init; @@ -3354,7 +3367,7 @@ template SiSUdocAbstraction() {            an_object["is"]          );        auto substantive_obj_misc_tuple -        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);        an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content];        comp_obj_block                               = comp_obj_block.init;        comp_obj_block.metainfo.is_of_part           = "body"; @@ -3430,7 +3443,7 @@ template SiSUdocAbstraction() {            an_object["is"]          );        auto substantive_obj_misc_tuple -        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);        an_object["substantive"] = substantive_obj_misc_tuple[sObj.content];        anchor_tags = substantive_obj_misc_tuple[sObj.anchor_tags];        comp_obj_code                                = comp_obj_code.init; @@ -3474,7 +3487,7 @@ template SiSUdocAbstraction() {            an_object["is"]          );        auto substantive_obj_misc_tuple -        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta); +        = obj_im.obj_inline_markup_and_anchor_tags_and_misc(an_object, an_object_key, conf_make_meta, false);        an_object["substantive"]                     = substantive_obj_misc_tuple[sObj.content];        comp_obj_block                               = comp_obj_block.init;        comp_obj_block.metainfo.ocn                  = obj_cite_digits.on; @@ -4536,10 +4549,13 @@ template SiSUdocAbstraction() {      static auto rgx = Rgx();      static auto munge = ObjInlineMarkupMunge();      string[string] obj_txt; +    static string[] anchor_tags_ = []; +    static string anchor_tag = "";      auto obj_inline_markup_and_anchor_tags_and_misc(O,K,CMM)(        O   obj_,        K   obj_key_,        CMM conf_make_meta, +      bool _new_doc      )      in {        debug(asserts) { @@ -4552,7 +4568,9 @@ template SiSUdocAbstraction() {        obj_txt["munge"] = (obj_["is"].match(ctRegex!(`verse|code`)))        ? obj_txt["munge"]        : obj_txt["munge"].strip; -      static __gshared string[] anchor_tags_ = []; +      if (_new_doc) { +        anchor_tags_ = []; +      }        auto x = munge.init;        bool[string] obj_notes_and_links;        obj_notes_and_links["notes_reg"]           = false; @@ -4561,9 +4579,11 @@ template SiSUdocAbstraction() {        obj_notes_and_links["image_no_dimensions"] = false;        switch (obj_["is"]) {        case "heading": -        static __gshared string anchor_tag = ""; -        obj_txt["munge"]=_configured_auto_heading_numbering_and_segment_anchor_tags(obj_txt["munge"], obj_, conf_make_meta); -        obj_txt["munge"]=_make_segment_anchor_tags_if_none_provided(obj_txt["munge"], obj_["lev"]); +        if (_new_doc) { +          anchor_tag = ""; +        } +        obj_txt["munge"]=_configured_auto_heading_numbering_and_segment_anchor_tags(obj_txt["munge"], obj_, conf_make_meta, _new_doc); +        obj_txt["munge"]=_make_segment_anchor_tags_if_none_provided(obj_txt["munge"], obj_["lev"], _new_doc);          if (auto m = obj_txt["munge"].match(rgx.heading_anchor_tag)) {            anchor_tag = m.captures[1];            anchor_tags_ ~= anchor_tag; @@ -4803,17 +4823,22 @@ template SiSUdocAbstraction() {      invariant() {      }    private: +    static int[] heading_num = [ 0, 0, 0, 0 ]; +    static string heading_number_auto_composite = "";      static string _configured_auto_heading_numbering_and_segment_anchor_tags(M,O,CMM)(        M   munge_,        O   obj_,        CMM conf_make_meta, +      bool _new_doc      ) {        debug(asserts) {          static assert(is(typeof(munge_)          == string));          static assert(is(typeof(obj_)            == string[string]));        } -      static __gshared int[] heading_num = [ 0, 0, 0, 0 ]; -      static __gshared string heading_number_auto_composite = ""; +      if (_new_doc) { +        heading_num = [ 0, 0, 0, 0 ]; +        heading_number_auto_composite = ""; +      }        if (conf_make_meta.make.auto_num_top_lv) {          if (obj_["lev_markup_number"].to!int == 0) {            heading_num[0] = 0; @@ -4907,7 +4932,12 @@ template SiSUdocAbstraction() {        }        return munge_;      } -    static string _make_segment_anchor_tags_if_none_provided(M,Lv)(M munge_, Lv lev_) { +    static int heading_num_lev1 = 0; +    static string _make_segment_anchor_tags_if_none_provided(M,Lv)( +      M munge_, +      Lv lev_, +      bool _new_doc +    ) {        debug(asserts) {          static assert(is(typeof(munge_) == string));          static assert(is(typeof(lev_)   == string)); @@ -4924,7 +4954,9 @@ template SiSUdocAbstraction() {                "$1~" ~ "s" ~ m.captures[1] ~ " ");            }          } else if (lev_ == "1") { // (if not successful) manufacture a unique anchor tag for lev=="1" -          static __gshared int heading_num_lev1 = 0; +          if (_new_doc) { +            heading_num_lev1 = 0; +          }            heading_num_lev1 ++;            munge_=(munge_).replaceFirst(              rgx.heading_marker_missing_tag, diff --git a/views/version.txt b/views/version.txt index d4c7c09..f9a8560 100644 --- a/views/version.txt +++ b/views/version.txt @@ -4,7 +4,7 @@ struct Version {    int minor;    int patch;  } -enum ver = Version(0, 26, 5); +enum ver = Version(0, 26, 6);  version (Posix) {    version (DigitalMars) {    } else version (LDC) { | 
