diff options
Diffstat (limited to 'org')
| -rw-r--r-- | org/default_regex.org | 4 | ||||
| -rw-r--r-- | org/meta_abstraction.org | 9 | ||||
| -rw-r--r-- | org/sdp.org | 7 | 
3 files changed, 15 insertions, 5 deletions
diff --git a/org/default_regex.org b/org/default_regex.org index 5278bc9..939aa8a 100644 --- a/org/default_regex.org +++ b/org/default_regex.org @@ -147,9 +147,11 @@ static heading_seg_and_above                          = ctRegex!(`^:?([A-D1])[~]  static heading_marker                                 = ctRegex!(`^:?([A-D1-4])[~]`);  static heading_anchor_tag                             = ctRegex!(`^:?[A-D1-4][~]([a-z0-9_.-]+) `,"i");  static heading_identify_anchor_tag                    = ctRegex!(`^:?[A-D1-4][~]\s+(?:(?:(?:chapter|article|section|clause)\s+[0-9.]+)|(?:[0-9]+))`,"i"); -static heading_extract_named_anchor_tag               = ctRegex!(`^:?[A-D1-4][~]\s+(chapter|article|section|clause)\s+((?:[0-9]+.)*[0-9]+)(?:[.:;, ]|$)`,"i"); +static heading_extract_named_anchor_tag               = ctRegex!(`^:?[A-D1-4][~]\s+(chapter|article|section|clause)\s+((?:[0-9]+[.:])*[0-9]+)(?:[.:;, ]|$)`,"i");  static heading_extract_unnamed_anchor_tag             = ctRegex!(`^:?[A-D1-4][~]\s+((?:[0-9]+.)*[0-9]+)(?:[.:;, ]|$)`);  static heading_marker_missing_tag                     = ctRegex!(`^:?([A-D1-4])[~] `); +static heading_anchor_tag_plus_colon                  = ctRegex!(`^:?([A-D1-4][~])([a-z0-9_.:-]+) `,"i"); +static heading_marker_tag_has_colon                   = ctRegex!(`([:])`);  static heading_title                                  = ctRegex!(`^:?[A-D1-4][~][a-z0-9_.-]*[?]?\s+(.+?)$`);  static heading_all                                    = ctRegex!(`^:?([A-D1-4])[~]([a-z0-9_.-]*[?]?)\s+(.+?)$`);  static heading_backmatter                             = ctRegex!(`^:?1[~][!](glossary|bibliography|biblio|blurb)\s+`,"i"); diff --git a/org/meta_abstraction.org b/org/meta_abstraction.org index 05f204d..7eaba8c 100644 --- a/org/meta_abstraction.org +++ b/org/meta_abstraction.org @@ -1166,7 +1166,10 @@ if ((obj_type_status["heading"] == State.on)      cnt3 = 1;      _new_doc = false;    } -  if (an_object["lev_markup_number"].to!int == 4 ) { +  if ( +    an_object["lev_markup_number"].to!int == 4 +    && anchor_tags.length > 0 +  ) {      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]; @@ -6081,6 +6084,10 @@ private:            munge_=(munge_).replaceFirst(              rgx.heading_marker_missing_tag,              "$1~" ~ m.captures[1].toLower ~ "_"  ~ m.captures[2] ~ " "); +          if (auto n = munge_.match(rgx.heading_anchor_tag_plus_colon)) { +            auto tag_remunge_ = n.captures[2].replaceAll(rgx.heading_marker_tag_has_colon, ".."); +            munge_=(munge_).replaceFirst(rgx.heading_anchor_tag_plus_colon, n.captures[1] ~ tag_remunge_ ~ " "); +          }          } else if (auto m = munge_.match(rgx.heading_extract_unnamed_anchor_tag)) {            munge_=(munge_).replaceFirst(              rgx.heading_marker_missing_tag, diff --git a/org/sdp.org b/org/sdp.org index ea8a4bf..5a0160d 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -82,7 +82,7 @@ void main(string[] args) {    <<sdp_mixin>>    <<sdp_args>>    <<sdp_do_selected>> -  if (_manifests.length > 1) { // _manifests[0] initialized dummy element +  if (_manifests.length > 1) {                            // _manifests[0] initialized dummy element      foreach(manifest; parallel(_manifests[1..$])) {        if (!empty(manifest.src.filename)) {          <<sdp_each_file_do_scope>> @@ -626,9 +626,10 @@ scope(success) {  scope(failure) {    debug(checkdoc) {      stderr.writefln( -      "~ document run failure ~ (%s  v%s)\n\t%s", +      "~ document run failure ~ (%s  v%s)\n\t%s\n%s",        __VENDOR__, __VERSION__, -      manifest.src.filename +      manifest.src.filename, +      "------------------------------------------------------------------",      );    }  }  | 
