Changeset 740

Show
Ignore:
Timestamp:
05/03/06 03:21:53 (3 years ago)
Author:
athomas
Message:

AutoWikifyPlugin:

  • Added autowikify.minimum_length for overriding the default minimum page name length of 3 characters.
  • Added autowikify.explicitly_wikify, which can be used to explicitly wikify a set of comma-separated page names.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • autowikifyplugin/trunk/tracautowikify/autowikify.py

    r736 r740  
    11import re 
    22from trac.core import * 
    3 from trac.util import escape, Markup 
     3from trac.util import escape, Markup, sorted 
    44from trac.wiki.api import WikiSystem, IWikiSyntaxProvider, IWikiChangeListener 
    55try: 
     
    5151         
    5252    def _update(self): 
    53         pattern = r'\b(?P<autowiki>' + '|'.join([p for p in self.pages if len(p) >= 3]) + r')\b' 
     53        minimum_length = int(self.env.config.get('autowikify', 'minimum_length') or 3) 
     54        explicitly_wikified = set([p.strip() for p in (self.env.config.get('autowikify', 'explicitly_wikify') or '').split(',') if p.strip()]) 
     55        pages = [p for p in self.pages if len(p) >= minimum_length] 
     56        pages = [p for p in sorted(explicitly_wikified.union(pages), key=lambda p: -len(p))] 
     57        pattern = r'\b(?P<autowiki>' + '|'.join(pages) + r')\b' 
    5458        self.pages_re = pattern 
    5559        WikiSystem(self.env)._compiled_rules = None