Show
Ignore:
Timestamp:
06/06/06 23:59:06 (3 years ago)
Author:
athomas
Message:

AutoWikifyPlugin:

  • Use new-style config properties.
  • Added exclude option for excluding a set of pages from auto-wikifiation.
Files:

Legend:

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

    r740 r825  
    33from trac.util import escape, Markup, sorted 
    44from trac.wiki.api import WikiSystem, IWikiSyntaxProvider, IWikiChangeListener 
     5from trac.config import * 
    56try: 
    67    set = set 
     
    1314    are not in CamelCase. """ 
    1415    implements(IWikiSyntaxProvider, IWikiChangeListener) 
     16 
     17    minimum_length = IntOption('autowikify', 'minimum_length', 3, 
     18        """Minimum page length to perform auto-wikification on.""") 
     19    explicitly_wikify = ListOption('autowikify', 'explicitly_wikify', doc= 
     20        """List of Wiki pages to always Wikify, regardless of size.""") 
     21    exclude = ListOption('autowikify', 'exclude', doc= 
     22        """List of Wiki pages to exclude from auto-wikification.""") 
    1523 
    1624    pages = set() 
     
    5159         
    5260    def _update(self): 
    53         minimum_length = int(self.env.config.get('autowikify', 'minimum_length') or 3) 
    5461        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))] 
     62        pages = set([p for p in self.pages if len(p) >= self.minimum_length]) 
     63        pages.update(self.explicitly_wikify) 
     64        pages.difference_update(self.exclude) 
    5765        pattern = r'\b(?P<autowiki>' + '|'.join(pages) + r')\b' 
    5866        self.pages_re = pattern