def make_WikiNames(): for uid in users.keys(): u = users[uid] if u.disabled: continue if not wikiutil.isStrictWikiname(u.name): newname = capwords(u.name).replace(" ","").replace("-","") if not wikiutil.isStrictWikiname(newname): print " %-20s %-25s - no WikiName, giving up" % (uid, u.name) else: print " %-20s %-25s - no WikiName -> %s" % (uid, u.name, newname) if save: u.name = newname u.save()
def make_WikiNames(self): for uid, u in self.users.items(): if u.disabled: continue if not wikiutil.isStrictWikiname(u.name): newname = u.name.capwords().replace(" ", "").replace("-", "") if not wikiutil.isStrictWikiname(newname): print " %-20s %-30r - no WikiName, giving up" % (uid, u.name) else: print " %-20s %-30r - no WikiName -> %r" % (uid, u.name, newname) if self.options.save: u.name = newname u.save()
def _word_repl(self, word, text=None): """Handle WikiNames.""" if not text: if wikiutil.isStrictWikiname(word): return word else: return '[[%s]]' % word else: # internal use: return '[[%s|%s]]' % (word, text)
def wikiHomeLink(self): """ Return wiki markup usable as a link to the user homepage, it doesn't matter whether it already exists or not. """ wikiname, pagename = wikiutil.getInterwikiHomePage(self._request, self.name) if wikiname == 'Self': if wikiutil.isStrictWikiname(self.name): markup = pagename else: markup = '[[%s]]' % pagename else: markup = '[[%s:%s]]' % (wikiname, pagename) return markup
def signature(self): """ Return user signature using markup Users sign with a link to their homepage, or with text if they don't have one. The text may be parsed as a link if its using CamelCase. Visitors return their host address. """ if not self.name: return self.host() if (self._cfg.allow_extended_names and not wikiutil.isStrictWikiname(self.name)): # TODO: use current markup, not hardcoded wiki markup return u'["%s"]' % self.name return self.name
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_repl(self, word): """Handle InterWiki links.""" wikitag, wikiurl, wikitail, wikitag_bad = wikiutil.resolve_wiki(self.request, word) if wikitag_bad: return word else: wikiname, pagename = word.split(':', 1) pagename = wikiutil.url_unquote(pagename) # maybe someone has used %20 for blanks in pagename camelcase = wikiutil.isStrictWikiname(pagename) if wikiname in ('Self', self.request.cfg.interwikiname): pagename = self._replace(('PAGE', pagename)) if camelcase: return '%s' % pagename # optimize special case else: return '[[%s]]' % pagename # optimize special case else: if ' ' in pagename: # we could get a ' ' by urlunquoting return '[[%s:%s]]' % (wikiname, pagename) else: return '%s:%s' % (wikiname, pagename)
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_repl(self, word): """Handle InterWiki links.""" wikitag, wikiurl, wikitail, wikitag_bad = wikiutil.resolve_wiki( self.request, word) if wikitag_bad: return word else: wikiname, pagename = word.split(':', 1) pagename = wikiutil.url_unquote( pagename) # maybe someone has used %20 for blanks in pagename camelcase = wikiutil.isStrictWikiname(pagename) if wikiname in ('Self', self.request.cfg.interwikiname): pagename = self._replace(('PAGE', pagename)) if camelcase: return '%s' % pagename # optimize special case else: return '[[%s]]' % pagename # optimize special case else: if ' ' in pagename: # we could get a ' ' by urlunquoting return '[[%s:%s]]' % (wikiname, pagename) else: return '%s:%s' % (wikiname, pagename)
def signature(self): """ Return user signature using markup Users sign with a link to their homepage, or with text if they don't have one. The text may be parsed as a link if it's using CamelCase. Visitors return their host address. TODO: The signature use wiki format only, for example, it will not create a link when using rst format. It will also break if we change wiki syntax. """ if not self.name: return self.host() wikiname, pagename = wikiutil.getInterwikiHomePage(self._request, self.name) if wikiname == 'Self': if not wikiutil.isStrictWikiname(self.name): markup = '["%s"]' % pagename else: markup = pagename else: markup = '%s:%s' % (wikiname, pagename.replace(" ","_")) return markup