def interwiki(self, target_and_text, **kw): # TODO: maybe support [wiki:Page http://wherever/image.png] ? scheme, rest = target_and_text.split(':', 1) wikiname, pagename, text = wikiutil.split_wiki(rest) if not pagename: pagename = self.formatter.page.page_name if not text: text = pagename #self.request.log("interwiki: split_wiki -> %s.%s.%s" % (wikiname,pagename,text)) if wikiname.lower( ) == 'self': # [wiki:Self:LocalPage text] or [:LocalPage:text] return self._word_repl(pagename, text) # check for image URL, and possibly return IMG tag if not kw.get('pretty_url', 0) and wikiutil.isPicture(pagename): dummy, wikiurl, dummy, wikitag_bad = wikiutil.resolve_wiki( self.request, rest) href = wikiutil.join_wiki(wikiurl, pagename) #self.request.log("interwiki: join_wiki -> %s.%s.%s" % (wikiurl,pagename,href)) return self.formatter.image(src=href) return (self.formatter.interwikilink(1, wikiname, pagename) + self.formatter.text(text) + self.formatter.interwikilink(0, wikiname, pagename))
def attachment(self, target_and_text, **kw): """ This gets called on attachment URLs """ _ = self._ scheme, fname, text = wikiutil160a.split_wiki(target_and_text) pagename, fname = AttachFile.absoluteName(fname, self.pagename) from_this_page = pagename == self.pagename fname = self._replace(('FILE', pagename, fname)) #fname = wikiutil.url_unquote(fname) #fname = self._replace(('FILE', pagename, fname)) pagename = self._replace(('PAGE', pagename)) if from_this_page: name = fname else: name = "%s/%s" % (pagename, fname) fn_txt = name if text: fn_txt += '|' + text if scheme == 'drawing': return "{{drawing:%s}}" % fn_txt # check for image, and possibly return IMG tag (images are always inlined) if not kw.get('pretty_url', 0) and wikiutil.isPicture(fname): return "{{attachment:%s}}" % fn_txt # inline the attachment if scheme == 'inline': return '{{attachment:%s}}' % fn_txt return '[[attachment:%s]]' % fn_txt
def interwiki(self, target_and_text, **kw): scheme, rest = target_and_text.split(':', 1) wikiname, pagename, text = wikiutil160a.split_wiki(rest) #if (pagename.startswith(wikiutil.CHILD_PREFIX) or # fancy link to subpage [wiki:/SubPage text] # Page(self.request, pagename).exists()): # fancy link to local page [wiki:LocalPage text] # # XXX OtherWiki:FooPage markup -> checks for local FooPage -sense??? # pagename = wikiutil.url_unquote(pagename) # pagename = self._replace_target(pagename) # return '[[%s%s]]' % (pagename, text) if wikiname in ('Self', self.request.cfg.interwikiname, ''): # [wiki:Self:LocalPage text] or [:LocalPage:text] orig_pagename = pagename pagename = wikiutil.url_unquote(pagename) pagename = self._replace_target(pagename) camelcase = wikiutil.isStrictWikiname(pagename) if camelcase and (not text or text == orig_pagename): return pagename # optimize special case else: if text: text = '|' + text return '[[%s%s]]' % (pagename, text) wikitag, wikiurl, wikitail, wikitag_bad = wikiutil.resolve_wiki( self.request, wikiname + ':') if wikitag_bad: # likely we got some /InterWiki as wikitail, we don't want that! pagename = wikiutil.url_unquote(pagename) pagename = self._replace_target(pagename) wikitail = pagename else: # good wikitail = wikiutil.url_unquote(pagename) # link to self? if wikiutil.isPicture(wikitail): return '{{%s:%s%s}}' % (wikitag, wikitail, text) else: if ' ' not in wikitail and not text: return '%s:%s' % (wikitag, wikitail) else: if text: text = '|' + text return '[[%s:%s%s]]' % (wikitag, wikitail, text)
def attachment(self, target_and_text, **kw): """ This gets called on attachment URLs """ _ = self._ #self.request.log("attachment: target_and_text %s" % target_and_text) scheme, fname, text = wikiutil.split_wiki(target_and_text) if not text: text = fname if scheme == 'drawing': return self.formatter.attachment_drawing(fname, text) # check for image, and possibly return IMG tag (images are always inlined) if not kw.get('pretty_url', 0) and wikiutil.isPicture(fname): return self.formatter.attachment_image(fname) # inline the attachment if scheme == 'inline': return self.formatter.attachment_inlined(fname, text) return self.formatter.attachment_link(fname, text)
def attachment(self, target_and_text, **kw): """ This gets called on attachment URLs """ _ = self._ scheme, fname, text = wikiutil160a.split_wiki(target_and_text) fn_txt = fname if text: fn_txt += '|' + text if scheme == 'drawing': return "{{drawing:%s}}" % fn_txt # check for image, and possibly return IMG tag (images are always inlined) if not kw.get('pretty_url', 0) and wikiutil.isPicture(fname): return "{{attachment:%s}}" % fn_txt # inline the attachment if scheme == 'inline': return '{{attachment:%s}}' % fn_txt return '[[attachment:%s]]' % fn_txt
def interwiki(self, target_and_text, **kw): scheme, rest = target_and_text.split(':', 1) wikiname, pagename, text = wikiutil160a.split_wiki(rest) #if (pagename.startswith(wikiutil.CHILD_PREFIX) or # fancy link to subpage [wiki:/SubPage text] # Page(self.request, pagename).exists()): # fancy link to local page [wiki:LocalPage text] # # XXX OtherWiki:FooPage markup -> checks for local FooPage -sense??? # pagename = wikiutil.url_unquote(pagename) # pagename = self._replace_target(pagename) # return '[[%s%s]]' % (pagename, text) if wikiname in ('Self', self.request.cfg.interwikiname, ''): # [wiki:Self:LocalPage text] or [:LocalPage:text] orig_pagename = pagename pagename = wikiutil.url_unquote(pagename) pagename = self._replace_target(pagename) camelcase = wikiutil.isStrictWikiname(pagename) if camelcase and (not text or text == orig_pagename): return pagename # optimize special case else: if text: text = '|' + text return '[[%s%s]]' % (pagename, text) wikitag, wikiurl, wikitail, wikitag_bad = wikiutil.resolve_wiki(self.request, wikiname+':') if wikitag_bad: # likely we got some /InterWiki as wikitail, we don't want that! pagename = wikiutil.url_unquote(pagename) pagename = self._replace_target(pagename) wikitail = pagename else: # good wikitail = wikiutil.url_unquote(pagename) # link to self? if wikiutil.isPicture(wikitail): return '{{%s:%s%s}}' % (wikitag, wikitail, text) else: if ' ' not in wikitail and not text: return '%s:%s' % (wikitag, wikitail) else: if text: text = '|' + text return '[[%s:%s%s]]' % (wikitag, wikitail, text)
def interwiki(self, target_and_text, **kw): # TODO: maybe support [wiki:Page http://wherever/image.png] ? scheme, rest = target_and_text.split(':', 1) wikiname, pagename, text = wikiutil.split_wiki(rest) if not pagename: pagename = self.formatter.page.page_name if not text: text = pagename #self.request.log("interwiki: split_wiki -> %s.%s.%s" % (wikiname,pagename,text)) if wikiname.lower() == 'self': # [wiki:Self:LocalPage text] or [:LocalPage:text] return self._word_repl(pagename, text) # check for image URL, and possibly return IMG tag if not kw.get('pretty_url', 0) and wikiutil.isPicture(pagename): dummy, wikiurl, dummy, wikitag_bad = wikiutil.resolve_wiki(self.request, rest) href = wikiutil.join_wiki(wikiurl, pagename) #self.request.log("interwiki: join_wiki -> %s.%s.%s" % (wikiurl,pagename,href)) return self.formatter.image(src=href) return (self.formatter.interwikilink(1, wikiname, pagename) + self.formatter.text(text) + self.formatter.interwikilink(0, wikiname, pagename))