From: Tavis R. <ta...@ca...> - 2001-04-07 20:23:13
|
> r"[^%]*%\[([^\]]+)\]" > (Tavis-- this is copied from TemplateFiller.py, but it > looks like the last "]" before the "+" doesn't belong > there, no?) Actually the entire thing, could be simplified to: r"[^%]*%\[(.+)\]" > We will ship with alternate regexes to handle > %(key)s > [key] > {key} How would we escape [] and {}. I'm not very good with regexs... Maybe we could search the template for the as yet unused startDelimEscaped and endDelimEscape strings, replace them with placeholders like <startDelimEscaped>, and <endDelimEscaped>, do the delimeter substitution, then swap the placeholders back to their original values. I think escaping the startDelim should handle almost everything, so we could ignore the placeholder swap for None value like this. _templateSettings = { 'customDelims': { 'custom1': { 'startDelim': r'%[', 'startDelimEscaped': r'%\[', 'endDelim': r']', 'endDelimEscaped': None, 'placeholderRE': ... r"[^%]*%\[(.+)\]" }, 'custom2': { 'startDelim': r'{', 'startDelimEscaped': r'\{', 'endDelim': r'}', 'endDelimEscaped': None, 'placeholderRE': ... r"[^{]*{(.+)}" } }, I left out the re.compile bit to avoid line-wrapping in the email version of this. > For the escaped forms, I suggest either doubling the > first character or prepending a backslash. The settings above should handle both. > > So like PSP, there would likely be a custom servlet > > factory. > Tavis, can you handle this part? Working display logic blocks is my first priority, but I'll get around to this eventually. |