1.1 --- a/MoinSupport.py Wed Apr 18 01:17:58 2012 +0200
1.2 +++ b/MoinSupport.py Mon Jun 04 20:52:38 2012 +0200
1.3 @@ -534,6 +534,36 @@
1.4
1.5 return {"timestamp" : DateTime(time.gmtime(mtime)[:6] + (None,)), "comment" : comment}
1.6
1.7 +# Page parsing and formatting of embedded content.
1.8 +
1.9 +def getParserClass(request, format):
1.10 +
1.11 + """
1.12 + Return a parser class using the 'request' for the given 'format', returning
1.13 + a plain text parser if no parser can be found for the specified 'format'.
1.14 + """
1.15 +
1.16 + try:
1.17 + return wikiutil.searchAndImportPlugin(request.cfg, "parser", format or "plain")
1.18 + except wikiutil.PluginMissingError:
1.19 + return wikiutil.searchAndImportPlugin(request.cfg, "parser", "plain")
1.20 +
1.21 +def redirectedOutput(request, parser, fmt, **kw):
1.22 +
1.23 + "A fixed version of the request method of the same name."
1.24 +
1.25 + buf = StringIO()
1.26 + request.redirect(buf)
1.27 + try:
1.28 + parser.format(fmt, **kw)
1.29 + if hasattr(fmt, "flush"):
1.30 + buf.write(fmt.flush(True))
1.31 + finally:
1.32 + request.redirect()
1.33 + text = buf.getvalue()
1.34 + buf.close()
1.35 + return text
1.36 +
1.37 # User interface functions.
1.38
1.39 def getParameter(request, name, default=None):