1 # -*- coding: iso-8859-1 -*- 2 """ 3 MoinMoin - form (MoinForms) 4 5 @copyright: 2012 by Paul Boddie <paul@boddie.org.uk> 6 @license: GNU GPL (v2 or later), see COPYING.txt for details. 7 """ 8 9 from MoinForms import * 10 from MoinSupport import * 11 12 Dependencies = ["pages"] 13 14 # Parser support. 15 16 class Parser: 17 18 "Manipulate and display forms." 19 20 Dependencies = Dependencies 21 extensions = [] 22 23 # Output content types preferred by this parser. 24 25 output_mimetypes = ["text/html"] 26 27 def __init__(self, raw, request, **kw): 28 29 """ 30 Initialise the parser with the given 'raw' data, 'request' and any 31 keyword arguments that may have been supplied. 32 """ 33 34 self.raw = raw 35 self.request = request 36 self.attrs = parseAttributes(kw.get("format_args", ""), False) 37 38 def format(self, fmt, write=None): 39 40 """ 41 Format an event using the given formatter 'fmt'. If the 'write' 42 parameter is specified, use it to write output; otherwise, write output 43 using the request. 44 """ 45 46 formatForm(self.raw, self.request, fmt, self.attrs, write=write) 47 48 # Extra API methods. 49 50 def formatForOutputType(self, mimetype, write=None): 51 52 """ 53 Format an event for the given 'mimetype'. If the 'write' parameter is 54 specified, use it to write output; otherwise, write output using the 55 request. 56 """ 57 58 formatFormForOutputType(self.raw, self.request, mimetype, self.attrs, write=write) 59 60 # Class methods. 61 62 def getOutputTypes(self): 63 return self.output_mimetypes 64 65 getOutputTypes = classmethod(getOutputTypes) 66 67 # vim: tabstop=4 expandtab shiftwidth=4