def _format(src_text, request): """Parse the text (in wiki source format) and make HTML, after diverting sys.stdout to a string""" Parser = wikiutil.searchAndImportPlugin(request.cfg, "parser", request.page.pi['format']) return wikiutil.renderText(request, Parser, src_text).strip()
def create_parser(self, line_anchors = False): #{{{Here we create a moinmoin paser object '''Creating parser object''' Parser = MoinMoinWikiutil.searchAndImportPlugin(self.request.cfg, 'parser', self.request.getPragma('format', self.default_parser.lower())) self.parser = Parser(self.page.get_body(), self.request, line_anchors = line_anchors) self.logger.debug('New moinmoin parser created')
def create_formatter(self): #{{{Here we create a moinmoin formatter object '''Creating formatter object''' Formatter = MoinMoinWikiutil.searchAndImportPlugin(self.request.cfg, 'formatter', self.request.getPragma('output-format', self.output_format).lower()) self.formatter = Formatter(self.request) self.formatter.setPage(self.page) self.request.formatter = self.page.formatter = self.formatter self.logger.debug('New moinmoin formatter created')
def parser(self, parser_name, lines): """ parser_name MUST be valid! prints out the result instead of returning it! """ try: Dependencies = wikiutil.searchAndImportPlugin(self.request.cfg, "parser", parser_name, "Dependencies") except (wikiutil.PluginMissingError, wikiutil.PluginAttributeError): Dependencies = self.defaultDependencies if self.__is_static(Dependencies): return self.formatter.parser(parser_name, lines) else: return self.__insert_code('%s%s.parser(%r, %r)' % (self.__adjust_formatter_state(), self.__formatter, parser_name, lines))
def parser(self, parser_name, lines): """ parser_name MUST be valid! writes out the result instead of returning it! """ # attention: this is copied into text_python! parser = wikiutil.searchAndImportPlugin(self.request.cfg, "parser", parser_name) args = None if lines: args = self._get_bang_args(lines[0]) logging.debug("formatter.parser: parser args %r" % args) if args is not None: lines = lines[1:] if lines and not lines[0]: lines = lines[1:] if lines and not lines[-1].strip(): lines = lines[:-1] p = parser('\n'.join(lines), self.request, format_args=args) p.format(self) del p return ''
def load_json_text_from_page(request, parser, page_name, parser_name): formatterClass = wikiutil.searchAndImportPlugin( request.cfg, 'formatter', 'extracting_formatter') extracting_formatter = formatterClass(parser_name, request) # Request rev (number) is only available for the requested page. rev = request.rev or 0 if request.page.page_name == page_name else 0 page = Page(request, page_name, formatter=extracting_formatter, rev=rev) # this is so we get a correctly updated data if we just preview in the editor - # the new content is not stored on disk yet, but available as macro.parser.raw: if parser: format = '#format %s\n' % page.pi['format'] page.set_raw_body(format + parser.raw, modified=1) if not page.isStandardPage(includeDeleted=False): return None extracting_formatter.setPage(page) # Discarding the return value request.redirectedOutput( Page.send_page_content, page, request, page.data, 'wiki') return extracting_formatter.get_extracted()