from trac.core import * from trac.wiki.api import IWikiMacroProvider from trac.wiki.formatter import wiki_to_html from time import clock import re CAMEL = r"!?(?= 0: clear, rem = text.split('{{{', 1) rem = self._extractBlock(rem) text = clear + rem return text def _extractBlock(self, s): cleaned = '' if s.find('{{{') >= 0 and s.find('{{{') < s.find('}}}'): first, second = s.split('{{{', 1) s = self._extractBlock(second) if s.find('}}}') >= 0: inside, outside = s.split('}}}', 1) cleaned = outside else: cleaned = s # no closing braces return cleaned