Edgewall Software

LudvigStrigeus: IgnoreMissingWikiPatch_r1506.diff

File IgnoreMissingWikiPatch_r1506.diff, 3.3 KB (added by ludde, 7 years ago)
  • Changeset.py

     
    6868            'time': time.asctime(time.localtime(chgset.date)), 
    6969            'author': util.escape(chgset.author or 'anonymous'), 
    7070            'message': wiki_to_html(util.wiki_escape_newline(chgset.message or '--'), 
    71                                     req.hdf, self.env, self.db) 
     71                                    req.hdf, self.env, self.db, ignore_missing_pages=1) 
    7272        } 
    7373 
    7474        oldest_rev = repos.oldest_rev 
  • WikiFormatter.py

     
    136136    env = None 
    137137    absurls = 0 
    138138 
    139     def __init__(self, env, db, absurls=0): 
     139    def __init__(self, env, db, absurls=0, ignore_missing_pages=0): 
    140140        self.env = env 
    141         self.db = db 
     141        self.db = db 
     142        self.ignore_missing_pages = ignore_missing_pages 
    142143        self._href = absurls and env.abs_href or env.href 
    143144        self._local = env.config.get('project', 'url', '') or env.abs_href.base 
    144145 
     
    252253            page = page[:page.find('#')] 
    253254        page = urllib.unquote(page) 
    254255        text = urllib.unquote(text) 
    255         if not self.env._wiki_pages.has_key(page): 
    256             return '<a class="missing wiki" href="%s" rel="nofollow">%s?</a>' \ 
    257                    % (self._href.wiki(page) + anchor, text) 
    258         else: 
     256        if self.env._wiki_pages.has_key(page): 
    259257            return '<a class="wiki" href="%s">%s</a>' \ 
    260258                   % (self._href.wiki(page) + anchor, text) 
     259        elif self.ignore_missing_pages: 
     260            return text 
     261        else: 
     262            return '<a class="missing wiki" href="%s" rel="nofollow">%s?</a>' \ 
     263                   % (self._href.wiki(page) + anchor, text) 
    261264 
    262265    def _make_changeset_link(self, rev, text): 
    263266        cursor = self.db.cursor() 
     
    390393                                         'meta|param|doctype)') 
    391394    _htmlproc_disallow_attribute = re.compile('(?i)<[^>]*\s+(on\w+)=') 
    392395 
    393     def __init__(self, hdf, env, db, absurls=0): 
    394         CommonFormatter.__init__(self, env, db, absurls) 
     396    def __init__(self, hdf, env, db, absurls=0, ignore_missing_pages=0): 
     397        CommonFormatter.__init__(self, env, db, absurls, ignore_missing_pages) 
    395398        self.hdf = hdf 
    396399        self.anchors = [] 
    397400 
     
    636639        self.close_indentation() 
    637640        self.close_list() 
    638641 
    639  
    640 def wiki_to_html(wikitext, hdf, env, db, absurls=0): 
     642def wiki_to_html(wikitext, hdf, env, db, absurls=0, ignore_missing_pages=0): 
    641643    out = StringIO.StringIO() 
    642     Formatter(hdf, env, db, absurls).format(wikitext, out) 
     644    Formatter(hdf, env, db, absurls, ignore_missing_pages).format(wikitext, out) 
    643645    return out.getvalue() 
    644646 
    645  
    646 def wiki_to_oneliner(wikitext, env, db, absurls=0): 
     647def wiki_to_oneliner(wikitext, env, db, absurls=0, ignore_missing_pages=0): 
    647648    out = StringIO.StringIO() 
    648     OneLinerFormatter(env, db, absurls).format(wikitext, out) 
     649    OneLinerFormatter(env, db, absurls, ignore_missing_pages).format(wikitext, out) 
    649650    return out.getvalue()