Edgewall Software

Ticket #691: WikiFormatter.patch

File WikiFormatter.patch, 2.0 KB (added by tom.stivers@…, 4 years ago)

patch for trac trunk implementing relative links

  • WikiFormatter.py

    old new  
    4646              r"""(?P<modulehref>!?((?P<modulename>bug|ticket|browser|source|repos|report|changeset|wiki|search):(?P<moduleargs>(&#34;(.*?)&#34;|'(.*?)')|([^ ]*[^\., \)]))))""", 
    4747              r"""(?P<wikilink>!?(^|(?<=[^A-Za-z]))[A-Z][a-z0-9/.]+(?:[A-Z][a-z0-9/.]*[a-z0-9/])+(?=\Z|\s|,|\.|:|\)))""", 
     48              r"""(?P<relativelink>link:(?P<rlink>([^ ]+)))""", 
     49              r"""(?P<fancyrelativelink>\[link:(?P<frlink>([^ ]+)) (?P<frlinkname>.*?)\])""", 
    4850              r"""(?P<fancylink>!?\[(?P<fancyurl>([a-z]+:[^ ]+)) (?P<linkname>.*?)\])"""] 
    4951 
     
    171173        return '<a href="%s">%s</a>' % (match, match) 
    172174 
     175    def _relativelink_formatter(self, match, fullmatch): 
     176        return '<a href="%s">%s</a>' % (fullmatch.group('rlink'), fullmatch.group('rlink')) 
     177 
     178    def _fancyrelativelink_formatter(self, match, fullmatch): 
     179        return '<a href="%s">%s</a>' % (fullmatch.group('frlink'), fullmatch.group('frlinkname')) 
     180 
    173181    def _fancylink_formatter(self, match, fullmatch): 
    174182        link = fullmatch.group('fancyurl') 
     
    214222    A simple Wiki formatter 
    215223    """ 
    216     _rules = [r"""(?P<svnimg>(source|repos):([^ ]+)\.(PNG|png|JPG|jpg|JPEG|jpeg|GIF|gif))"""] + \ 
     224    _rules = [r"""(?P<svnimg>(source|repos):([^ ]+)\.(PNG|png|JPG|jpg|JPEG|jpeg|GIF|gif))""", 
     225              r"""(?P<relativeimgurl>link:(?P<rimgurl>([^ ]+)\.(PNG|png|JPG|jpg|JPEG|jpeg|GIF|gif)(\?\S+)?))"""] + \ 
    217226             CommonFormatter._rules + \ 
    218227             [r"""(?P<macro>!?\[\[(?P<macroname>[a-zA-Z]+)(\((?P<macroargs>[^\)]*)\))?\]\])""", 
     
    323332               (self._href.file(match[prefix_len:], format='raw'), 
    324333                match[prefix_len:]) 
     334 
     335    def _relativeimgurl_formatter(self, match, fullmatch): 
     336        return '<img src="%s" alt="%s" />' % (fullmatch.group('rimgurl'), fullmatch.group('rimgurl')) 
    325337 
    326338    def _imgurl_formatter(self, match, fullmatch):