Edgewall Software

Ticket #691: Wiki.patch

File Wiki.patch, 1.9 KB (added by tom.stivers@…, 8 years ago)

patch for trac 0.7.1 implementing relative links

  • Wiki.py

    old new  
    6161              r"""(?P<modulehref>((?P<modulename>bug|ticket|browser|source|repos|report|changeset|wiki|search):(?P<moduleargs>(&#34;(.*?)&#34;|'(.*?)')|([^ ]*[^\., \)]))))""", 
    6262              r"""(?P<wikilink>(^|(?<=[^A-Za-z]))[!]?[A-Z][a-z0-9/.]+(?:[A-Z][a-z0-9/.]*[a-z0-9/])+(?=\Z|\s|,|\.|:))""", 
     63              r"""(?P<relativelink>link:(?P<rlink>([^ ]+)))""", 
     64              r"""(?P<fancyrelativelink>\[link:(?P<frlink>([^ ]+)) (?P<frlinkname>.*?)\])""", 
    6365              r"""(?P<fancylink>\[(?P<fancyurl>([a-z]+:[^ ]+)) (?P<linkname>.*?)\])"""] 
    6466 
     
    183185        return '<a href="%s">%s</a>' % (match, match) 
    184186 
     187    def _relativelink_formatter(self, match, fullmatch): 
     188        return '<a href="%s">%s</a>' % (fullmatch.group('rlink'), fullmatch.group('rlink')) 
     189 
     190    def _fancyrelativelink_formatter(self, match, fullmatch): 
     191        return '<a href="%s">%s</a>' % (fullmatch.group('frlink'), fullmatch.group('frlinkname')) 
     192 
    185193    def _fancylink_formatter(self, match, fullmatch): 
    186194        link = fullmatch.group('fancyurl') 
     
    226234    A simple Wiki formatter 
    227235    """ 
    228     _rules = [r"""(?P<svnimg>(source|repos):([^ ]+)\.(PNG|png|JPG|jpg|JPEG|jpeg|GIF|gif))"""] + \ 
     236    _rules = [r"""(?P<svnimg>(source|repos):([^ ]+)\.(PNG|png|JPG|jpg|JPEG|jpeg|GIF|gif))""", 
     237              r"""(?P<relativeimgurl>link:(?P<rimgurl>([^ ]+)\.(PNG|png|JPG|jpg|JPEG|jpeg|GIF|gif)(\?\S+)?))"""] + \ 
    229238             CommonFormatter._rules + \ 
    230239             [r"""(?P<macro>\[\[(?P<macroname>[a-zA-Z]+)(\((?P<macroargs>[^\)]*)\))?\]\])""", 
     
    324333               (self.env.href.file(match[prefix_len:], format='raw'), 
    325334                match[prefix_len:]) 
     335 
     336    def _relativeimgurl_formatter(self, match, fullmatch): 
     337        return '<img src="%s" alt="%s" />' % (fullmatch.group('rimgurl'), fullmatch.group('rimgurl')) 
    326338 
    327339    def _imgurl_formatter(self, match, fullmatch):