Example #1
0
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()
Example #2
0
    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')
Example #3
0
    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')
Example #4
0
    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))
Example #5
0
    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))
Example #6
0
 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 ''
Example #7
0
 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 ''
Example #8
0
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()