diff options
| author | Ralph Amissah <ralph@amissah.com> | 2017-01-14 10:08:53 -0500 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2019-04-10 15:14:14 -0400 | 
| commit | 099d54647f0ff4bf7effb7c554e987eeff11fb85 (patch) | |
| tree | c5529ce0c6eabaca66ab6164ff954db64d9eb149 | |
| parent | insert file list: gather & make available a list of insert files (if any) (diff) | |
identify internal links for downstream munging
| -rw-r--r-- | org/ao_abstract_doc_source.org | 43 | ||||
| -rw-r--r-- | org/ao_defaults.org | 11 | ||||
| -rw-r--r-- | org/ao_output_debugs.org | 2 | ||||
| -rw-r--r-- | src/sdp/ao_abstract_doc_source.d | 41 | ||||
| -rw-r--r-- | src/sdp/ao_defaults.d | 1 | ||||
| -rw-r--r-- | src/sdp/ao_rgx.d | 10 | 
6 files changed, 67 insertions, 41 deletions
| diff --git a/org/ao_abstract_doc_source.org b/org/ao_abstract_doc_source.org index 4aa20be..e413570 100644 --- a/org/ao_abstract_doc_source.org +++ b/org/ao_abstract_doc_source.org @@ -197,7 +197,7 @@ enum DocStructMarkupHeading {    h_text_5, // extra level, drop    content_non_header  } // header section A-D; header text 1-4 -enum DocStructCollapsedHeading { lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7 } // not yet used +enum DocStructCollapsedHeading { lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7 }  /+ biblio variables +/  string biblio_tag_name, biblio_tag_entry, st;  string[] biblio_arr_json; @@ -232,7 +232,7 @@ void heading_ancestors(O)(    switch (obj.heading_lev_markup) {    case 0:      lv_ancestors[0] = to!string(obj.text); -    foreach(k; 1..8) {                               // 1 .. 7 ? +    foreach(k; 1..8) {        lv_ancestors[k] = "";      }      goto default; @@ -1430,8 +1430,9 @@ comp_obj_toc.indent_base           = indent["base_position"];  comp_obj_toc.bullet                = false;  if (the_endnotes_section.length > 1) {    toc_txt_ = format( -    "{ %s }../%s.fnSuffix", +    "{ %s }%s../%s.fnSuffix",      "Endnotes", +    mkup.mark_internal_site_lnk,      "endnotes",            // segment_anchor_tag_that_object_belongs_to    );    toc_txt_= munge.url_links(toc_txt_); @@ -1440,8 +1441,9 @@ if (the_endnotes_section.length > 1) {  }  if (the_glossary_section.length > 1) {    toc_txt_ = format( -    "{ %s }../%s.fnSuffixs", +    "{ %s }%s../%s.fnSuffixs",      "Glossary", +    mkup.mark_internal_site_lnk,      "glossary",  // segment_anchor_tag_that_object_belongs_to    );    toc_txt_= munge.url_links(toc_txt_); @@ -1458,8 +1460,9 @@ if (the_glossary_section.length > 1) {  }  if (the_bibliography_section.length > 1){    toc_txt_ = format( -    "{ %s }../%s.fnSuffix", +    "{ %s }%s../%s.fnSuffix",      "Bibliography", +    mkup.mark_internal_site_lnk,      "bibliography",        // segment_anchor_tag_that_object_belongs_to    );    toc_txt_= munge.url_links(toc_txt_); @@ -1477,8 +1480,9 @@ if (the_bibliography_section.length > 1){  }  if (the_bookindex_section["seg"].length > 1) {    toc_txt_ = format( -    "{ %s }../%s.fnSuffix", +    "{ %s }%s../%s.fnSuffix",      "Book Index", +    mkup.mark_internal_site_lnk,      "bookindex",          // segment_anchor_tag_that_object_belongs_to    );    toc_txt_= munge.url_links(toc_txt_); @@ -1497,8 +1501,9 @@ if (the_bookindex_section["scroll"].length > 1) {  }  if (the_blurb_section.length > 1) {    toc_txt_ = format( -    "{ %s }../%s.fnSuffix", +    "{ %s }%s../%s.fnSuffix",      "Blurb", +    mkup.mark_internal_site_lnk,      "blurb",                // segment_anchor_tag_that_object_belongs_to    );    toc_txt_= munge.url_links(toc_txt_); @@ -1618,7 +1623,7 @@ if (the_blurb_section.length > 1) {  }  #+END_SRC -**** loop: all objects structural relationships (sections, segments, objects) +**** [#A] loop: all objects structural relationships (sections, segments, objects)  needed for DOM structure, segnames & subtoc, backmatter pointers @@ -3827,6 +3832,8 @@ struct ObjInlineMarkup {    in { }    body {      ObjGenericComposite comp_obj_toc; +    mixin InternalMarkup; +    auto mkup = InlineMarkup();      char[] heading_toc_ = to!(char[])(obj_["body_nugget"].dup.strip);      heading_toc_ = _clean_heading_toc_(heading_toc_);      auto attrib=""; @@ -3884,7 +3891,7 @@ struct ObjInlineMarkup {          "hang_position" : 0,          "base_position" : 0,        ]; -      toc_txt_ = "{ Table of Contents }../toc.fnSuffix"; +      toc_txt_ = "{ Table of Contents }" ~ mkup.mark_internal_site_lnk ~ "../toc.fnSuffix";        toc_txt_= munge.url_links(toc_txt_);        comp_obj_toc.indent_hang             = indent["hang_position"];        comp_obj_toc.indent_base             = indent["base_position"]; @@ -3908,8 +3915,9 @@ struct ObjInlineMarkup {        break;      case 4:        toc_txt_ = format( -        "{ %s }../%s.fnSuffix", +        "{ %s }%s../%s.fnSuffix",          heading_toc_, +        mkup.mark_internal_site_lnk,          segment_anchor_tag_that_object_belongs_to,        );        lev4_subtoc[segment_anchor_tag_that_object_belongs_to] = []; @@ -3925,8 +3933,9 @@ struct ObjInlineMarkup {        break;      case 5: .. case 7:        toc_txt_ = format( -        "{ %s }../%s.fnSuffix#%s", +        "{ %s }%s../%s.fnSuffix#%s",          heading_toc_, +        mkup.mark_internal_site_lnk,          segment_anchor_tag_that_object_belongs_to,          _anchor_tag,        ); @@ -4638,6 +4647,8 @@ struct BookIndexReportSection {      bool[string]             opt_action_bool,    ) {      mixin SiSUnode; +    mixin InternalMarkup; +    auto mkup = InlineMarkup();      string type_is;      string lev;      int heading_lev_markup, heading_lev_collapsed; @@ -4701,7 +4712,7 @@ struct BookIndexReportSection {            bi_tmp_scroll ~= munge.url_links(" {" ~ ref_ ~ "}#" ~ go ~ ", ");            bi_tmp_seg ~= (segment_anchor_tag_that_object_belongs_to.empty)            ? munge.url_links(" {" ~ ref_ ~ "}#" ~ go ~ ", ") -          : munge.url_links(" {" ~ ref_ ~ "}../" ~ segment_anchor_tag_that_object_belongs_to ~ ".fnSuffix#" ~ go ~ ", "); +          : munge.url_links(" {" ~ ref_ ~ "}" ~ mkup.mark_internal_site_lnk ~ "../" ~ segment_anchor_tag_that_object_belongs_to ~ ".fnSuffix#" ~ go ~ ", ");          }          bi_tmp_scroll ~= " \\\\\n    ";          bi_tmp_seg ~= " \\\\\n    "; @@ -4718,7 +4729,7 @@ struct BookIndexReportSection {              bi_tmp_scroll ~= munge.url_links(" {" ~ ref_ ~ "}#" ~ go ~ ", ");              bi_tmp_seg ~= (segment_anchor_tag_that_object_belongs_to.empty)              ? munge.url_links(" {" ~ ref_ ~ "}#" ~ go ~ ", ") -            : munge.url_links(" {" ~ ref_ ~ "}../" ~ segment_anchor_tag_that_object_belongs_to ~ ".fnSuffix#" ~ go ~ ", "); +            : munge.url_links(" {" ~ ref_ ~ "}" ~ mkup.mark_internal_site_lnk ~ "../" ~ segment_anchor_tag_that_object_belongs_to ~ ".fnSuffix#" ~ go ~ ", ");            }            bi_tmp_scroll ~= " \\\\\n    ";            bi_tmp_seg ~= " \\\\\n    "; @@ -4803,6 +4814,8 @@ struct NotesSection {      );    }    body { +    mixin InternalMarkup; +    auto mkup = InlineMarkup();      auto munge = ObjInlineMarkupMunge();      foreach(        m; @@ -4813,7 +4826,7 @@ struct NotesSection {      ) {        debug(endnotes_build) {          writeln( -          "{^{", m.captures[1], ".}^}../", segment_anchor_tag_that_object_belongs_to, ".fnSuffix#noteref_\n  ", m.captures[1], " ", +          "{^{", m.captures[1], ".}^}" ~ mkup.mark_internal_site_lnk ~ "../", segment_anchor_tag_that_object_belongs_to, ".fnSuffix#noteref_\n  ", m.captures[1], " ",            m.captures[2]); // sometimes need segment name (segmented html & epub)        }        // TODO NEXT you need anchor for segments at this point -> @@ -4824,7 +4837,7 @@ struct NotesSection {            m.captures[1]) ~ " " ~ m.captures[2] ~ "』"          )        : (munge.url_links( -          "{^{" ~ m.captures[1] ~ ".}^}../" ~ +          "{^{" ~ m.captures[1] ~ ".}^}" ~ mkup.mark_internal_site_lnk ~ "../" ~            segment_anchor_tag_that_object_belongs_to ~ ".fnSuffix#noteref_" ~            m.captures[1]) ~ " " ~ m.captures[2] ~ "』"          ); diff --git a/org/ao_defaults.org b/org/ao_defaults.org index 28ed15c..e54d360 100644 --- a/org/ao_defaults.org +++ b/org/ao_defaults.org @@ -709,6 +709,7 @@ template InternalMarkup() {      auto en_b_o = "〖";      auto en_b_c = "〗";   // endnote en_b_o: '~['; en_b_c: ']~';      auto lnk_o = "┥";        auto lnk_c = "┝";      auto url_o = "┤";        auto url_c = "├"; +    auto mark_internal_site_lnk = "¤";      auto nbsp = "░";      auto br_line = "┘";      auto br_nl = "┙"; @@ -954,11 +955,11 @@ static inline_text_and_note_al_                       = ctRegex!(`(.+?(?:【[*+]  #+name: ao_rgx  #+BEGIN_SRC d -static inline_url                                      = ctRegex!(`((?:(?:https?|git):\/\/|\.\.\/|\.\/|#)\S+)`, "mg"); -static inline_link_naked_url                           = ctRegex!(`(^|[ ])((?:(?:https?|git):\/\/|\.\.\/|\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); -static inline_link_markup_regular                      = ctRegex!(`(^|[ ])\{\s*(.+?)\s*\}((?:(?:https?|git):\/\/|\.\.\/|\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); -static inline_link_endnote_url_helper_punctuated       = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|\.\.\/|\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); -static inline_link_endnote_url_helper                  = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|\.\.\/|\.\/|#)\S+)`, "mg"); +static inline_url                                      = ctRegex!(`((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+)`, "mg"); +static inline_link_naked_url                           = ctRegex!(`(^|[ ])((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); +static inline_link_markup_regular                      = ctRegex!(`(^|[ ])\{\s*(.+?)\s*\}((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); +static inline_link_endnote_url_helper_punctuated       = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); +static inline_link_endnote_url_helper                  = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+)`, "mg");  static inline_a_url                                    = ctRegex!(`(┤)(\S+?)(├)`, "mg");  #+END_SRC diff --git a/org/ao_output_debugs.org b/org/ao_output_debugs.org index f0a8cab..43e1142 100644 --- a/org/ao_output_debugs.org +++ b/org/ao_output_debugs.org @@ -320,7 +320,6 @@ debug(dom) {  #+END_SRC  *** endnotes_section (seg & scroll)                                :endnotes: -  **** endnotes  #+name: ao_output_debugs @@ -380,7 +379,6 @@ debug(section_bibliography) {  #+END_SRC  *** bookindex_section (seg & scroll)                              :bookindex: -  **** bookindex  #+name: ao_output_debugs diff --git a/src/sdp/ao_abstract_doc_source.d b/src/sdp/ao_abstract_doc_source.d index ec1536e..e813260 100644 --- a/src/sdp/ao_abstract_doc_source.d +++ b/src/sdp/ao_abstract_doc_source.d @@ -42,7 +42,7 @@ template SiSUdocAbstraction() {        h_text_5, // extra level, drop        content_non_header      } // header section A-D; header text 1-4 -    enum DocStructCollapsedHeading { lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7 } // not yet used +    enum DocStructCollapsedHeading { lv0, lv1, lv2, lv3, lv4, lv5, lv6, lv7 }      /+ biblio variables +/      string biblio_tag_name, biblio_tag_entry, st;      string[] biblio_arr_json; @@ -77,7 +77,7 @@ template SiSUdocAbstraction() {        switch (obj.heading_lev_markup) {        case 0:          lv_ancestors[0] = to!string(obj.text); -        foreach(k; 1..8) {                               // 1 .. 7 ? +        foreach(k; 1..8) {            lv_ancestors[k] = "";          }          goto default; @@ -1030,8 +1030,9 @@ template SiSUdocAbstraction() {        comp_obj_toc.bullet                = false;        if (the_endnotes_section.length > 1) {          toc_txt_ = format( -          "{ %s }../%s.fnSuffix", +          "{ %s }%s../%s.fnSuffix",            "Endnotes", +          mkup.mark_internal_site_lnk,            "endnotes",            // segment_anchor_tag_that_object_belongs_to          );          toc_txt_= munge.url_links(toc_txt_); @@ -1040,8 +1041,9 @@ template SiSUdocAbstraction() {        }        if (the_glossary_section.length > 1) {          toc_txt_ = format( -          "{ %s }../%s.fnSuffixs", +          "{ %s }%s../%s.fnSuffixs",            "Glossary", +          mkup.mark_internal_site_lnk,            "glossary",  // segment_anchor_tag_that_object_belongs_to          );          toc_txt_= munge.url_links(toc_txt_); @@ -1058,8 +1060,9 @@ template SiSUdocAbstraction() {        }        if (the_bibliography_section.length > 1){          toc_txt_ = format( -          "{ %s }../%s.fnSuffix", +          "{ %s }%s../%s.fnSuffix",            "Bibliography", +          mkup.mark_internal_site_lnk,            "bibliography",        // segment_anchor_tag_that_object_belongs_to          );          toc_txt_= munge.url_links(toc_txt_); @@ -1077,8 +1080,9 @@ template SiSUdocAbstraction() {        }        if (the_bookindex_section["seg"].length > 1) {          toc_txt_ = format( -          "{ %s }../%s.fnSuffix", +          "{ %s }%s../%s.fnSuffix",            "Book Index", +          mkup.mark_internal_site_lnk,            "bookindex",          // segment_anchor_tag_that_object_belongs_to          );          toc_txt_= munge.url_links(toc_txt_); @@ -1097,8 +1101,9 @@ template SiSUdocAbstraction() {        }        if (the_blurb_section.length > 1) {          toc_txt_ = format( -          "{ %s }../%s.fnSuffix", +          "{ %s }%s../%s.fnSuffix",            "Blurb", +          mkup.mark_internal_site_lnk,            "blurb",                // segment_anchor_tag_that_object_belongs_to          );          toc_txt_= munge.url_links(toc_txt_); @@ -3135,6 +3140,8 @@ template SiSUdocAbstraction() {        in { }        body {          ObjGenericComposite comp_obj_toc; +        mixin InternalMarkup; +        auto mkup = InlineMarkup();          char[] heading_toc_ = to!(char[])(obj_["body_nugget"].dup.strip);          heading_toc_ = _clean_heading_toc_(heading_toc_);          auto attrib=""; @@ -3192,7 +3199,7 @@ template SiSUdocAbstraction() {              "hang_position" : 0,              "base_position" : 0,            ]; -          toc_txt_ = "{ Table of Contents }../toc.fnSuffix"; +          toc_txt_ = "{ Table of Contents }" ~ mkup.mark_internal_site_lnk ~ "../toc.fnSuffix";            toc_txt_= munge.url_links(toc_txt_);            comp_obj_toc.indent_hang             = indent["hang_position"];            comp_obj_toc.indent_base             = indent["base_position"]; @@ -3216,8 +3223,9 @@ template SiSUdocAbstraction() {            break;          case 4:            toc_txt_ = format( -            "{ %s }../%s.fnSuffix", +            "{ %s }%s../%s.fnSuffix",              heading_toc_, +            mkup.mark_internal_site_lnk,              segment_anchor_tag_that_object_belongs_to,            );            lev4_subtoc[segment_anchor_tag_that_object_belongs_to] = []; @@ -3233,8 +3241,9 @@ template SiSUdocAbstraction() {            break;          case 5: .. case 7:            toc_txt_ = format( -            "{ %s }../%s.fnSuffix#%s", +            "{ %s }%s../%s.fnSuffix#%s",              heading_toc_, +            mkup.mark_internal_site_lnk,              segment_anchor_tag_that_object_belongs_to,              _anchor_tag,            ); @@ -3789,6 +3798,8 @@ template SiSUdocAbstraction() {          bool[string]             opt_action_bool,        ) {          mixin SiSUnode; +        mixin InternalMarkup; +        auto mkup = InlineMarkup();          string type_is;          string lev;          int heading_lev_markup, heading_lev_collapsed; @@ -3852,7 +3863,7 @@ template SiSUdocAbstraction() {                bi_tmp_scroll ~= munge.url_links(" {" ~ ref_ ~ "}#" ~ go ~ ", ");                bi_tmp_seg ~= (segment_anchor_tag_that_object_belongs_to.empty)                ? munge.url_links(" {" ~ ref_ ~ "}#" ~ go ~ ", ") -              : munge.url_links(" {" ~ ref_ ~ "}../" ~ segment_anchor_tag_that_object_belongs_to ~ ".fnSuffix#" ~ go ~ ", "); +              : munge.url_links(" {" ~ ref_ ~ "}" ~ mkup.mark_internal_site_lnk ~ "../" ~ segment_anchor_tag_that_object_belongs_to ~ ".fnSuffix#" ~ go ~ ", ");              }              bi_tmp_scroll ~= " \\\\\n    ";              bi_tmp_seg ~= " \\\\\n    "; @@ -3869,7 +3880,7 @@ template SiSUdocAbstraction() {                  bi_tmp_scroll ~= munge.url_links(" {" ~ ref_ ~ "}#" ~ go ~ ", ");                  bi_tmp_seg ~= (segment_anchor_tag_that_object_belongs_to.empty)                  ? munge.url_links(" {" ~ ref_ ~ "}#" ~ go ~ ", ") -                : munge.url_links(" {" ~ ref_ ~ "}../" ~ segment_anchor_tag_that_object_belongs_to ~ ".fnSuffix#" ~ go ~ ", "); +                : munge.url_links(" {" ~ ref_ ~ "}" ~ mkup.mark_internal_site_lnk ~ "../" ~ segment_anchor_tag_that_object_belongs_to ~ ".fnSuffix#" ~ go ~ ", ");                }                bi_tmp_scroll ~= " \\\\\n    ";                bi_tmp_seg ~= " \\\\\n    "; @@ -3937,6 +3948,8 @@ template SiSUdocAbstraction() {          );        }        body { +        mixin InternalMarkup; +        auto mkup = InlineMarkup();          auto munge = ObjInlineMarkupMunge();          foreach(            m; @@ -3947,7 +3960,7 @@ template SiSUdocAbstraction() {          ) {            debug(endnotes_build) {              writeln( -              "{^{", m.captures[1], ".}^}../", segment_anchor_tag_that_object_belongs_to, ".fnSuffix#noteref_\n  ", m.captures[1], " ", +              "{^{", m.captures[1], ".}^}" ~ mkup.mark_internal_site_lnk ~ "../", segment_anchor_tag_that_object_belongs_to, ".fnSuffix#noteref_\n  ", m.captures[1], " ",                m.captures[2]); // sometimes need segment name (segmented html & epub)            }            // TODO NEXT you need anchor for segments at this point -> @@ -3958,7 +3971,7 @@ template SiSUdocAbstraction() {                m.captures[1]) ~ " " ~ m.captures[2] ~ "』"              )            : (munge.url_links( -              "{^{" ~ m.captures[1] ~ ".}^}../" ~ +              "{^{" ~ m.captures[1] ~ ".}^}" ~ mkup.mark_internal_site_lnk ~ "../" ~                segment_anchor_tag_that_object_belongs_to ~ ".fnSuffix#noteref_" ~                m.captures[1]) ~ " " ~ m.captures[2] ~ "』"              ); diff --git a/src/sdp/ao_defaults.d b/src/sdp/ao_defaults.d index c80933c..1e88e3b 100644 --- a/src/sdp/ao_defaults.d +++ b/src/sdp/ao_defaults.d @@ -619,6 +619,7 @@ template InternalMarkup() {      auto en_b_o = "〖";      auto en_b_c = "〗";   // endnote en_b_o: '~['; en_b_c: ']~';      auto lnk_o = "┥";        auto lnk_c = "┝";      auto url_o = "┤";        auto url_c = "├"; +    auto mark_internal_site_lnk = "¤";      auto nbsp = "░";      auto br_line = "┘";      auto br_nl = "┙"; diff --git a/src/sdp/ao_rgx.d b/src/sdp/ao_rgx.d index 6641d6a..f800a12 100644 --- a/src/sdp/ao_rgx.d +++ b/src/sdp/ao_rgx.d @@ -149,11 +149,11 @@ template RgxInit() {      static inline_al_delimiter_open_plus                  = ctRegex!(`【\+`, "m");      static inline_text_and_note_al                        = ctRegex!(`(?P<text>.+?)【(?:[*+ ]*)(?P<note>.+?)】`, "mg");      static inline_text_and_note_al_                       = ctRegex!(`(.+?(?:【[*+]*\s+.+?】|$))`, "mg"); -    static inline_url                                      = ctRegex!(`((?:(?:https?|git):\/\/|\.\.\/|\.\/|#)\S+)`, "mg"); -    static inline_link_naked_url                           = ctRegex!(`(^|[ ])((?:(?:https?|git):\/\/|\.\.\/|\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); -    static inline_link_markup_regular                      = ctRegex!(`(^|[ ])\{\s*(.+?)\s*\}((?:(?:https?|git):\/\/|\.\.\/|\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); -    static inline_link_endnote_url_helper_punctuated       = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|\.\.\/|\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); -    static inline_link_endnote_url_helper                  = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|\.\.\/|\.\/|#)\S+)`, "mg"); +    static inline_url                                      = ctRegex!(`((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+)`, "mg"); +    static inline_link_naked_url                           = ctRegex!(`(^|[ ])((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); +    static inline_link_markup_regular                      = ctRegex!(`(^|[ ])\{\s*(.+?)\s*\}((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); +    static inline_link_endnote_url_helper_punctuated       = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+?)([.,;:?!]?(?:[ ]|$))`, "mg"); +    static inline_link_endnote_url_helper                  = ctRegex!(`\{~\^\s+(.+?)\}((?:(?:https?|git):\/\/|¤?\.\.\/|¤?\.\/|#)\S+)`, "mg");      static inline_a_url                                    = ctRegex!(`(┤)(\S+?)(├)`, "mg");      /+ inline markup book index +/      static book_index                                     = ctRegex!(`^=\{\s*(.+?)\}$`, "m"); | 
