def fCompositeCookedBodyForElement(self,
                                       theElement,
                                       stx_level=None,
                                       setlevel=0,
                                       theTimeProfilingResults=None):

        if (theElement == None):
            return '\n<em>No Element</em><br/>\n\n'

        # From CMFDefault.Document.py see Products.PortalTransforms.Transforms.rest.py

        anEditableBody = self.fCompositeEditableBodyForElement(theElement)
        if not anEditableBody:
            return "\n<em>No EditableBody obtained for %s</em><br/>\n\n" % str(
                self)

        aCookedBody = HTML(anEditableBody,
                           initial_header_level=1,
                           input_encoding='utf-8',
                           output_encoding='utf-8')

        if not anEditableBody:
            return "\n<em>Empty HTML obtained for CookedBody for %s</em>\n\n" % str(
                self)

        aCookedBodyReClassed = aCookedBody.replace('class="docutils"',
                                                   'class="listing"').replace(
                                                       'class="head"',
                                                       'class="nosort"')

        return aCookedBodyReClassed
示例#2
0
文件: rest.py 项目: CGTIC/Plone_SP
    def convert(self, orig, data, **kwargs):
        # do the format
        encoding = kwargs.get('encoding', 'utf-8')
        input_encoding = kwargs.get('input_encoding', encoding)
        output_encoding = kwargs.get('output_encoding', encoding)
        language = kwargs.get('language', 'en')
        warnings = kwargs.get('warnings', None)

        initial_header_level = int(self.config.get('initial_header_level', 2))
        report_level = int(self.config.get('report_level', 2))

        settings = {'documentclass': '',
                    'traceback': 1,
                    }

        html = HTML(orig,
                    input_encoding=input_encoding,
                    output_encoding=output_encoding,
                    language_code=language,
                    initial_header_level=initial_header_level,
                    report_level=report_level,
                    warnings=warnings,
                    settings=settings)

        html = html.replace(' class="document"', '', 1)
        data.setData(html)
        return data
示例#3
0
    def convert(self, orig, data, **kwargs):
        # do the format
        encoding = kwargs.get('encoding', 'utf-8')
        input_encoding = kwargs.get('input_encoding', encoding)
        output_encoding = kwargs.get('output_encoding', encoding)
        language = kwargs.get('language', 'en')
        warnings = kwargs.get('warnings', None)

        initial_header_level = int(self.config.get('initial_header_level', 2))
        report_level = int(self.config.get('report_level', 2))

        settings = {
            'documentclass': '',
            'traceback': 1,
        }

        html = HTML(orig,
                    input_encoding=input_encoding,
                    output_encoding=output_encoding,
                    language_code=language,
                    initial_header_level=initial_header_level,
                    report_level=report_level,
                    warnings=warnings,
                    settings=settings)

        html = html.replace(' class="document"', '', 1)
        data.setData(html)
        return data
    def transform(self, data, options=None):
        if self._validate(data) is None:
            return None

        header_level = self.header_level
        report_level = self.report_level
        language = self.language
        warnings = self.warnings
        if options:
            header_level = options.get('header_level', header_level)
            report_level = options.get('report_level', report_level)
            language = options.get('language', language)
            warnings = options.get('warnings', warnings)

        html = HTML(u''.join(data).encode('utf-8'),
                    input_encoding='utf-8',
                    output_encoding='utf-8',
                    language_code=language,
                    initial_header_level=header_level,
                    report_level=report_level,
                    warnings=warnings,
                    settings=dict(documentclass='', traceback=1))

        html = html.replace(' class="document"', '', 1)
        return TransformResult(StringIter(unicode(html, 'utf-8')))
示例#5
0
    def readMeHtml(self):
        """Renders README.txt (in rst) inside the page"""

        opd = os.path.dirname
        readme_path = os.path.join(os.path.abspath(opd(opd(__file__))), 'README.txt')
        readme_html = HTML(file(readme_path).read(), report_level=100) # No errors/warnings -> faster
        # F*****g header changes the base href, so we need to tweak all href="#..."
        actual_url = self.request.URL
        return readme_html.replace('href="#', 'href="%s#' % actual_url)
示例#6
0
    def readMeHtml(self):
        """Renders README.txt (in rst) inside the page"""

        opd = os.path.dirname
        readme_path = os.path.join(os.path.abspath(opd(opd(__file__))),
                                   'README.txt')
        readme_html = HTML(file(readme_path).read(),
                           report_level=100)  # No errors/warnings -> faster
        # F*****g header changes the base href, so we need to tweak all href="#..."
        actual_url = self.request.URL
        return readme_html.replace('href="#', 'href="%s#' % actual_url)
    def fCookedBodyForElement(self,
                              theTimeProfilingResults=None,
                              theElement=None,
                              stx_level=None,
                              setlevel=0,
                              theAdditionalParams=None):
        """Retrieve an HTML presentation of an element's content as a Textual view.
        
        """

        if (theElement == None):
            return '\n<em>No Element</em><br/>\n\n'

        # From CMFDefault.Document.py see Products.PortalTransforms.Transforms.rest.py

        anEditableBody = self.fEditableBodyForElement(theTimeProfilingResults,
                                                      theElement,
                                                      theTimeProfilingResults)
        if not anEditableBody:
            return "\n<em>No EditableBody obtained for %s</em><br/>\n\n" % str(
                self)

        aCookedBody = HTML(anEditableBody,
                           initial_header_level=1,
                           input_encoding='utf-8',
                           output_encoding='utf-8')

        if not anEditableBody:
            return "\n<em>Empty HTML obtained for CookedBody for %s</em>\n\n" % str(
                self)

        aCookedBodyReClassed = aCookedBody.replace('class="docutils"',
                                                   'class="listing"').replace(
                                                       'class="head"',
                                                       'class="nosort"')

        return aCookedBodyReClassed