1.1 --- a/EventAggregatorSupport.py Mon Apr 18 23:43:22 2011 +0200
1.2 +++ b/EventAggregatorSupport.py Tue Apr 26 23:09:37 2011 +0200
1.3 @@ -68,16 +68,6 @@
1.4 timezone_olson_regexp = re.compile(timezone_olson_str, re.UNICODE)
1.5 timezone_offset_regexp = re.compile(timezone_offset_str, re.UNICODE)
1.6
1.7 -verbatim_regexp = re.compile(ur'(?:'
1.8 - ur'<<Verbatim\((?P<verbatim>.*?)\)>>'
1.9 - ur'|'
1.10 - ur'\[\[Verbatim\((?P<verbatim2>.*?)\)\]\]'
1.11 - ur'|'
1.12 - ur'`(?P<monospace>.*?)`'
1.13 - ur'|'
1.14 - ur'{{{(?P<preformatted>.*?)}}}'
1.15 - ur')', re.UNICODE)
1.16 -
1.17 # Utility functions.
1.18
1.19 def getCategoryPattern(request):
1.20 @@ -273,17 +263,29 @@
1.21 tmtuple.tm_sec
1.22 )
1.23
1.24 -def getSimpleWikiText(text):
1.25 +def getSimpleWikiText(text, event_page):
1.26
1.27 """
1.28 - Return the plain text representation of the given 'text' which may employ
1.29 - certain Wiki syntax features, such as those providing verbatim or monospaced
1.30 - text.
1.31 + Return the plain text representation of the given 'text' from the given
1.32 + 'event_page'.
1.33 """
1.34
1.35 - # NOTE: Re-implementing support for verbatim text and linking avoidance.
1.36 -
1.37 - return "".join([s for s in verbatim_regexp.split(text) if s is not None])
1.38 + # Get a parser for the page and a formatter for plain text.
1.39 +
1.40 + page = event_page.page
1.41 + request = page.request
1.42 + parser_cls = getParserClass(request, event_page.getFormat())
1.43 + old_fmt = page.formatter or request.formatter
1.44 +
1.45 + try:
1.46 + fmt = getFormatter(request, "text/plain", page)
1.47 +
1.48 + # Return the formatted text.
1.49 +
1.50 + return formatText(text, request, fmt, parser_cls)
1.51 +
1.52 + finally:
1.53 + restoreFormatter(request, old_fmt, page)
1.54
1.55 def getEncodedWikiText(text):
1.56
1.57 @@ -530,12 +532,12 @@
1.58 # Lists (whose elements may be quoted).
1.59
1.60 elif term in ("topics", "categories"):
1.61 - desc = [getSimpleWikiText(value.strip()) for value in desc.split(",") if value.strip()]
1.62 + desc = [value.strip() for value in desc.split(",") if value.strip()]
1.63
1.64 # Labels which may well be quoted.
1.65
1.66 elif term in ("title", "summary", "description", "location"):
1.67 - desc = getSimpleWikiText(desc.strip())
1.68 + desc = desc.strip()
1.69
1.70 if desc is not None:
1.71
1.72 @@ -2179,4 +2181,12 @@
1.73
1.74 return request.redirectedOutput(parser.format, fmt, inhibit_p=True)
1.75
1.76 +def restoreFormatter(request, fmt, page):
1.77 +
1.78 + """
1.79 + Using 'request', restore formatter 'fmt' on the request and on the given 'page'.
1.80 + """
1.81 +
1.82 + request.formatter = page.formatter = fmt
1.83 +
1.84 # vim: tabstop=4 expandtab shiftwidth=4
2.1 --- a/actions/EventAggregatorSummary.py Mon Apr 18 23:43:22 2011 +0200
2.2 +++ b/actions/EventAggregatorSummary.py Tue Apr 26 23:09:37 2011 +0200
2.3 @@ -339,7 +339,7 @@
2.4 else:
2.5 request.write("DTEND;VALUE=DATE:%04d%02d%02d\r\n" % end.next_day().as_date().as_tuple())
2.6
2.7 - request.write("SUMMARY:%s\r\n" % getQuotedText(event_summary))
2.8 + request.write("SUMMARY:%s\r\n" % getQuotedText(getSimpleWikiText(event_summary, event_page)))
2.9
2.10 # Optional details.
2.11
2.12 @@ -396,7 +396,7 @@
2.13 link = event_page.getPageURL(request)
2.14
2.15 request.write('<item>\r\n')
2.16 - request.write('<title>%s</title>\r\n' % wikiutil.escape(event_summary))
2.17 + request.write('<title>%s</title>\r\n' % wikiutil.escape(getSimpleWikiText(event_summary, event_page)))
2.18 request.write('<link>%s</link>\r\n' % link)
2.19
2.20 # Write a description according to the preferred source of
3.1 --- a/macros/EventAggregator.py Mon Apr 18 23:43:22 2011 +0200
3.2 +++ b/macros/EventAggregator.py Tue Apr 26 23:09:37 2011 +0200
3.3 @@ -584,7 +584,7 @@
3.4 if is_ambiguous:
3.5 output.append(fmt.icon("/!\\"))
3.6
3.7 - output.append(event_page.linkToPage(request, event_summary))
3.8 + output.append(event_page.linkToPage(request, getSimpleWikiText(event_summary, event_page)))
3.9 output.append(fmt.div(on=0))
3.10
3.11 # Add a pop-up element for long summaries.
3.12 @@ -594,7 +594,7 @@
3.13 if is_ambiguous:
3.14 output.append(fmt.icon("/!\\"))
3.15
3.16 - output.append(event_page.linkToPage(request, event_summary))
3.17 + output.append(event_page.linkToPage(request, getSimpleWikiText(event_summary, event_page)))
3.18 output.append(fmt.div(on=0))
3.19
3.20 output.append(fmt.div(on=0))
3.21 @@ -1413,7 +1413,7 @@
3.22 # Link to the page using the summary.
3.23
3.24 output.append(fmt.table_cell(on=1, attrs=attrs))
3.25 - output.append(event_page.linkToPage(request, event_summary))
3.26 + output.append(event_page.linkToPage(request, getSimpleWikiText(event_summary, event_page)))
3.27 output.append(fmt.table_cell(on=0))
3.28
3.29 output.append(fmt.table_row(on=0))
3.30 @@ -1591,7 +1591,7 @@
3.31 # Link to the page using the summary.
3.32
3.33 output.append(fmt.listitem(on=1))
3.34 - output.append(event_page.linkToPage(request, event_summary))
3.35 + output.append(event_page.linkToPage(request, getSimpleWikiText(event_summary, event_page)))
3.36 output.append(fmt.listitem(on=0))
3.37
3.38 output.append(fmt.bullet_list(on=0))
3.39 @@ -1647,7 +1647,7 @@
3.40 # Link to the page using the summary.
3.41
3.42 output.append(fmt.paragraph(on=1))
3.43 - output.append(event_page.linkToPage(request, event_summary))
3.44 + output.append(event_page.linkToPage(request, getSimpleWikiText(event_summary, event_page)))
3.45 output.append(fmt.paragraph(on=0))
3.46
3.47 # Start and end dates.