Edgewall Software

Ticket #2877: wiki_insert_spaces-0.9.diff

File wiki_insert_spaces-0.9.diff, 1.6 kB (added by cboos, 2 years ago)

Same as the other one, but for Trac 0.9.4

  • trac/wiki/api.py

     
    186186     
    187187    def get_wiki_syntax(self): 
    188188        ignore_missing = self.config.getbool('wiki', 'ignore_missing_pages') 
     189        insert_spaces = self.config.getbool('wiki', 'insert_spaces') 
    189190        yield (r"!?(?<!/)\b[A-Z][a-z]+(?:[A-Z][a-z]*[a-z/])+" 
    190191                "(?:#[A-Za-z0-9]+)?(?=\Z|\s|[.,;:!?\)}\]])", 
    191                lambda x, y, z: self._format_link(x, 'wiki', y, y, 
    192                                                  ignore_missing)) 
     192               lambda x, y, z: self._format_syntax_link(x, 'wiki', y, y, 
     193                                                        insert_spaces, 
     194                                                        ignore_missing)) 
    193195 
    194196    def get_link_resolvers(self): 
    195         yield ('wiki', self._format_fancy_link) 
     197        yield ('wiki', self._format_resolver_link) 
    196198 
    197     def _format_fancy_link(self, f, n, p, l): 
     199    def _format_syntax_link(self, formatter, ns, page, label, 
     200                            insert_spaces, ignore_missing): 
     201        if insert_spaces: 
     202            words = re.split(r"([A-Z])", page) 
     203            label = ' '.join([a+b for a,b in zip(words[1::2], words[::2][1:])]) 
     204        return self._format_link(formatter, ns, page, label, ignore_missing) 
     205 
     206    def _format_resolver_link(self, f, n, p, l): 
    198207        return self._format_link(f, n, p, l, False) 
    199208 
    200209    def _format_link(self, formatter, ns, page, label, ignore_missing):