Ticket #2877: wiki_insert_spaces_r3013.diff
| File wiki_insert_spaces_r3013.diff, 1.5 kB (added by cboos, 3 years ago) |
|---|
-
trac/wiki/api.py
197 197 198 198 def get_wiki_syntax(self): 199 199 ignore_missing = self.config.getbool('wiki', 'ignore_missing_pages') 200 insert_spaces = self.config.getbool('wiki', 'insert_spaces') 200 201 yield (r"!?(?<!/)\b[A-Z][a-z]+(?:[A-Z][a-z]*[a-z/])+" 201 202 "(?:#[A-Za-z0-9]+)?(?=:?\Z|:?\s|[.,;!?\)}\]])", 202 lambda x, y, z: self._format_link(x, 'wiki', y, y, 203 ignore_missing)) 203 lambda x, y, z: self._format_syntax_link(x, 'wiki', y, y, 204 insert_spaces, 205 ignore_missing)) 204 206 205 207 def get_link_resolvers(self): 206 yield ('wiki', self._format_ fancy_link)208 yield ('wiki', self._format_resolver_link) 207 209 208 def _format_fancy_link(self, f, n, p, l): 210 def _format_syntax_link(self, formatter, ns, page, label, 211 insert_spaces, ignore_missing): 212 if insert_spaces: 213 words = re.split(r"([A-Z])", page) 214 label = ' '.join([a+b for a,b in zip(words[1::2], words[::2][1:])]) 215 return self._format_link(formatter, ns, page, label, ignore_missing) 216 217 def _format_resolver_link(self, f, n, p, l): 209 218 return self._format_link(f, n, p, l, False) 210 219 211 220 def _format_link(self, formatter, ns, page, label, ignore_missing):
