#pragma section-numbers off = Applying Formatters = MoinMoin developers recommend that you use a Formatter to format output from your Macro, Processor, or Parser - see MoinDev/PluginConcept. They made Formatters so that you only have to write output code once. That is, you don't have to write output code for HTML, and then XML, and then plain text. == Macro Example == Formatters are very simple to use: {{{ #!python def execute(macro, args): result = [] result.append(macro.formatter.paragraph(1)) result.append(macro.formatter.text("This text appears inside of a macro.")) result.append(macro.formatter.text("No to escape text like and

.")) result.append(macro.formatter.paragraph(0)) return "".join(result) }}} If you make many macro.formatter calls, you can shorten it: {{{ #!python def execute(macro, args): result = [] fmtr = macro.formatter # saves a bit of time if used often for i in range(10000): result.append(fmtr.paragraph(1)) result.append(fmtr.text("Paragraph %d" % i)) result.append(fmtr.paragraph(0)) return "".join(result) }}} == Keys to Using Formatters == Know where to find your formatter, and know what it can do for you. || output from: || formatter at: || || Macro || {{{macro.formatter}}} parameter || || Processor || {{{formatter}}} parameter || || Parser || {{{self.formatter}}} || To find everything a formatter can do, read the base formatter class: ## MoinSrc:MoinMoin/formatter/base.py [[MoinSrc:MoinMoin/formatter/__init__.py]]