Ticket #4144: relative-links-fix.diff
| File relative-links-fix.diff, 3.0 KB (added by Tim Hatch <trac@…>, 5 years ago) |
|---|
-
trac/wiki/formatter.py
230 230 _processor_re = re.compile('#\!([\w+-][\w+-/]*)') 231 231 _anchor_re = re.compile('[^\w:.-]+', re.UNICODE) 232 232 233 def __init__(self, env, req=None, absurls=False, db=None ):233 def __init__(self, env, req=None, absurls=False, db=None, itemurl=None): 234 234 self.env = env 235 235 self.req = req 236 236 self._db = db 237 self._itemurl = itemurl 237 238 self._absurls = absurls 238 239 self._anchors = {} 239 240 self._open_tags = [] … … 428 429 def _make_relative_link(self, url, text): 429 430 if url.startswith('//'): # only the protocol will be kept 430 431 return html.A(text, class_="ext-link", href=url) 432 elif self._itemurl and url and url[0] in "#.": # hash ref 433 return html.A(text, href=self._itemurl+url) 431 434 else: 432 435 return html.A(text, href=url) 433 436 … … 861 864 """ 862 865 flavor = 'oneliner' 863 866 864 def __init__(self, env, absurls=False, db=None, req=None ):865 Formatter.__init__(self, env, req, absurls, db )867 def __init__(self, env, absurls=False, db=None, req=None, itemurl=None): 868 Formatter.__init__(self, env, req, absurls, db, itemurl) 866 869 867 870 # Override a few formatters to disable some wiki syntax in "oneliner"-mode 868 871 def _list_formatter(self, match, fullmatch): return match … … 998 1001 # -- wiki_to_* helper functions 999 1002 1000 1003 def wiki_to_html(wikitext, env, req, db=None, 1001 absurls=False, escape_newlines=False ):1004 absurls=False, escape_newlines=False, itemurl=None): 1002 1005 if not wikitext: 1003 1006 return Markup() 1004 1007 out = StringIO() 1005 Formatter(env, req, absurls, db ).format(wikitext, out, escape_newlines)1008 Formatter(env, req, absurls, db, itemurl=itemurl).format(wikitext, out, escape_newlines) 1006 1009 return Markup(out.getvalue()) 1007 1010 1008 1011 def wiki_to_oneliner(wikitext, env, db=None, shorten=False, absurls=False, 1009 req=None ):1012 req=None, itemurl=None): 1010 1013 if not wikitext: 1011 1014 return Markup() 1012 1015 out = StringIO() 1013 OneLinerFormatter(env, absurls, db, req=req).format(wikitext, out, shorten)1016 OneLinerFormatter(env, absurls, db, itemurl=itemurl, req=req).format(wikitext, out, shorten) 1014 1017 return Markup(out.getvalue()) 1015 1018 1016 1019 def wiki_to_outline(wikitext, env, db=None, -
templates/timeline.html
42 42 </a></dt> 43 43 <dd class="${event.kind}" py:with="wikify = event.use_oneliner and wiki_to_oneliner or wiki_to_html"> 44 44 ${event.markup} 45 <py:if test="event.message">${wikify(event.message )}</py:if>45 <py:if test="event.message">${wikify(event.message, itemurl=event.href)}</py:if> 46 46 </dd> 47 47 </py:for> 48 48 </dl>
