diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/doc_reform/meta/rgx.d | 3 | ||||
| -rw-r--r-- | src/doc_reform/output/rgx.d | 3 | ||||
| -rw-r--r-- | src/doc_reform/output/xmls.d | 18 | 
3 files changed, 20 insertions, 4 deletions
| diff --git a/src/doc_reform/meta/rgx.d b/src/doc_reform/meta/rgx.d index a9b1739..00221de 100644 --- a/src/doc_reform/meta/rgx.d +++ b/src/doc_reform/meta/rgx.d @@ -253,7 +253,8 @@ static template DocReformRgxInit() {      /+ inline markup footnotes endnotes +/      static inline_image                                   = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>\S+?\.(?:jpg|gif|png)),w(?P<width>\d+)h(?P<height>\d+))\s*(?P<post>.*?┝┤.+?├)`, "mg");      static inline_image_without_dimensions                = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>\S+?\.(?:jpg|gif|png)),w(?P<width>0)h(?P<height>0))\s*(?P<post>.*?┝┤.+?├)`, "mg"); -    static inline_link                                    = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>.+?)├`, "mg"); +    static inline_link                                    = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>\S+?)├`, "mg"); +    static inline_link_hash                               = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>#(?P<segname>\S+?))├`, "mg");      static inline_link_clean                              = ctRegex!(`┤(?:.+?)├|[┥┝]`, "mg");      static inline_a_url                                   = ctRegex!(`(┤)(\S+?)(├)`, "mg");      static url                                            = ctRegex!(`https?://`, "mg"); diff --git a/src/doc_reform/output/rgx.d b/src/doc_reform/output/rgx.d index 74ef48c..f352732 100644 --- a/src/doc_reform/output/rgx.d +++ b/src/doc_reform/output/rgx.d @@ -63,7 +63,8 @@ static template DocReformOutputRgxInit() {      /+ inline markup footnotes endnotes +/      static inline_image                                   = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>\S+?\.(?:jpg|gif|png)),w(?P<width>\d+)h(?P<height>\d+))\s*(?P<post>.*?┝┤.+?├)`, "mg");      static inline_image_without_dimensions                = ctRegex!(`(?P<pre>┥)☼(?P<imginf>(?P<img>\S+?\.(?:jpg|gif|png)),w(?P<width>0)h(?P<height>0))\s*(?P<post>.*?┝┤.+?├)`, "mg"); -    static inline_link                                    = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>.+?)├`, "mg"); +    static inline_link                                    = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>\S+?)├`, "mg"); +    static inline_link_hash                               = ctRegex!(`┥(?P<text>.+?)┝┤(?P<link>#(?P<segname>\S+?))├`, "mg");      static inline_link_clean                              = ctRegex!(`┤(?:.+?)├|[┥┝]`, "mg");      static inline_a_url                                   = ctRegex!(`(┤)(\S+?)(├)`, "mg");      static url                                            = ctRegex!(`https?://`, "mg"); diff --git a/src/doc_reform/output/xmls.d b/src/doc_reform/output/xmls.d index e68a22d..7a1a812 100644 --- a/src/doc_reform/output/xmls.d +++ b/src/doc_reform/output/xmls.d @@ -349,6 +349,18 @@ template outputXHTMLs() {              rgx.inline_seg_link,              "$1");          } +        if (_xml_type == "seg" || _xml_type == "epub") { +          if (auto m = _txt.match(rgx.inline_link_hash)) { +            foreach (segname; doc_matters.xml.segnames) { +              if (auto n = segname.match(m.captures[3])) { +                _txt = _txt.replaceFirst( +                  rgx.inline_link_hash, +                  "┥$1┝┤$3" ~ _suffix ~ "├"); +                break; +              } +            } +          } +        }          _txt = (_txt)            .replaceAll(              rgx.inline_link_fn_suffix, @@ -591,7 +603,7 @@ template outputXHTMLs() {        if (obj.metainfo.object_number.empty) {          o = format(q"¶%s        <div class="substance"> -        <h%s class="%s">%s +        <h%s class="%s">%s<a name="%s"></a>            %s          </h%s>        </div>¶", @@ -599,6 +611,7 @@ template outputXHTMLs() {            obj.metainfo.heading_lev_markup,            obj.metainfo.is_a,            tags, +          obj.tags.segment_anchor_tag,            _txt,            obj.metainfo.heading_lev_markup,          ); @@ -606,7 +619,7 @@ template outputXHTMLs() {          o = format(q"¶%s        <div class="substance">          <label class="ocn"><a href="#%s" class="lnkocn">%s</a></label> -        <h%s class="%s" id="%s"><a name="%s"></a>%s +        <h%s class="%s" id="%s"><a name="%s"></a>%s<a name="%s"></a>            %s          </h%s>        </div>¶", @@ -618,6 +631,7 @@ template outputXHTMLs() {          obj.metainfo.object_number,          obj.metainfo.object_number,          tags, +        obj.tags.segment_anchor_tag,          _txt,          obj.metainfo.heading_lev_markup,          ); | 
