Example #1
0
    def visit_literal_block(self, node):
        if node.rawsource != node.astext():
            # most probably a parsed-literal block -- don't highlight
            return BaseTranslator.visit_literal_block(self, node)
        lang = self.highlightlang
        linenos = node.rawsource.count('\n') >= \
            self.highlightlinenothreshold - 1
        highlight_args = node.get('highlight_args', {})
        if 'language' in node:
            # code-block directives
            lang = node['language']
            highlight_args['force'] = True
        if 'linenos' in node:
            linenos = node['linenos']
        if lang is self.highlightlang_base:
            # only pass highlighter options for original language
            opts = self.highlightopts
        else:
            opts = {}

        def warner(msg):
            self.builder.warn(msg, (self.builder.current_docname, node.line))

        highlighted = self.highlighter.highlight_block(node.rawsource,
                                                       lang,
                                                       opts=opts,
                                                       warn=warner,
                                                       linenos=linenos,
                                                       **highlight_args)
        starttag = self.starttag(node,
                                 'div',
                                 suffix='',
                                 CLASS='highlight-%s' % lang)
        self.body.append(starttag + highlighted + '</div>\n')
        raise nodes.SkipNode
Example #2
0
File: html.py Project: evhub/sphinx
    def visit_literal_block(self, node):
        if node.rawsource != node.astext():
            # most probably a parsed-literal block -- don't highlight
            return BaseTranslator.visit_literal_block(self, node)
        lang = self.highlightlang
        linenos = node.rawsource.count('\n') >= \
            self.highlightlinenothreshold - 1
        highlight_args = node.get('highlight_args', {})
        if 'language' in node:
            # code-block directives
            lang = node['language']
            highlight_args['force'] = True
        if 'linenos' in node:
            linenos = node['linenos']
        if lang is self.highlightlang_base:
            # only pass highlighter options for original language
            opts = self.highlightopts
        else:
            opts = {}

        def warner(msg):
            self.builder.warn(msg, (self.builder.current_docname, node.line))
        highlighted = self.highlighter.highlight_block(
            node.rawsource, lang, opts=opts, warn=warner, linenos=linenos,
            **highlight_args)
        starttag = self.starttag(node, 'div', suffix='',
                                 CLASS='highlight-%s' % lang)
        self.body.append(starttag + highlighted + '</div>\n')
        raise nodes.SkipNode
Example #3
0
    def visit_literal_block(self, node):
        if node.rawsource != node.astext():
            # most probably a parsed-literal block -- don't highlight
            return BaseTranslator.visit_literal_block(self, node)
        lang = self.highlightlang
        linenos = node.rawsource.count('\n') >= \
                  self.highlightlinenothreshold - 1
        highlight_args = node.get('highlight_args', {})
        if 'language' in node:
            # code-block directives
            lang = node['language']
            highlight_args['force'] = True
        if 'linenos' in node:
            linenos = node['linenos']

        def warner(msg):
            self.builder.warn(msg, (self.builder.current_docname, node.line))

        highlighted = self.highlighter.highlight_block(node.rawsource,
                                                       lang,
                                                       warn=warner,
                                                       linenos=linenos,
                                                       **highlight_args)
        starttag = self.starttag(node,
                                 'div',
                                 suffix='',
                                 CLASS='highlight-%s' % lang)
        if 'filename' in node:
            starttag += '<div class="code-block-filename"><span>%s</span></div>' % (
                node['filename'], )
        self.body.append(starttag + highlighted + '</div>\n')
        raise nodes.SkipNode
Example #4
0
File: html.py Project: Scalr/sphinx
 def visit_literal_block(self, node):
     if node.rawsource != node.astext():
         # most probably a parsed-literal block -- don't highlight
         return BaseTranslator.visit_literal_block(self, node)
     lang = self.highlightlang
     linenos = node.rawsource.count('\n') >= \
               self.highlightlinenothreshold - 1
     highlight_args = node.get('highlight_args', {})
     if 'language' in node:
         # code-block directives
         lang = node['language']
         highlight_args['force'] = True
     if 'linenos' in node:
         linenos = node['linenos']
     def warner(msg):
         self.builder.warn(msg, (self.builder.current_docname, node.line))
     highlighted = self.highlighter.highlight_block(
         node.rawsource, lang, warn=warner, linenos=linenos,
         **highlight_args)
     starttag = self.starttag(node, 'div', suffix='',
                              CLASS='highlight-%s' % lang)
     if 'filename' in node:
         starttag += '<div class="code-block-filename"><tt>%s</tt></div>' % (
             node['filename'],)
     self.body.append(starttag + highlighted + '</div>\n')
     raise nodes.SkipNode
Example #5
0
    def visit_literal_block(self, node):
        if node.rawsource != node.astext():
            # most probably a parsed-literal block -- don't highlight
            return BaseTranslator.visit_literal_block(self, node)
        lang = self.highlightlang
        linenos = node.rawsource.count('\n') >= \
                  self.highlightlinenothreshold - 1
        if node.has_key('language'):
            # code-block directives
            lang = node['language']
        if node.has_key('linenos'):
            linenos = node['linenos']

        def warner(msg):
            self.builder.warn(msg, (self.builder.current_docname, node.line))

        highlighted = self.highlighter.highlight_block(node.rawsource,
                                                       lang,
                                                       linenos,
                                                       warn=warner)
        starttag = self.starttag(node,
                                 'div',
                                 suffix='',
                                 CLASS='highlight-%s' % lang)
        self.body.append(starttag + highlighted + '</div>\n')
        raise nodes.SkipNode
Example #6
0
    def visit_literal_block(self, node):
        # type: (nodes.Node) -> None
        if node.rawsource != node.astext():
            # most probably a parsed-literal block -- don't highlight
            return BaseTranslator.visit_literal_block(self, node)

        lang = node.get('language', 'default')
        linenos = node.get('linenos', False)
        highlight_args = node.get('highlight_args', {})
        highlight_args['force'] = node.get('force_highlighting', False)
        if lang is self.builder.config.highlight_language:
            # only pass highlighter options for original language
            opts = self.builder.config.highlight_options
        else:
            opts = {}

        highlighted = self.highlighter.highlight_block(
            node.rawsource,
            lang,
            opts=opts,
            linenos=linenos,
            location=(self.builder.current_docname, node.line),
            **highlight_args)
        starttag = self.starttag(node,
                                 'div',
                                 suffix='',
                                 CLASS='highlight-%s notranslate' % lang)
        self.body.append(starttag + highlighted + '</div>\n')
        raise nodes.SkipNode
Example #7
0
    def visit_literal_block(self, node):
        if node.rawsource != node.astext():
            # most probably a parsed-literal block -- don't highlight
            return HTMLTranslator.visit_literal_block(self, node)
        lang = self.highlightlang
        linenos = node.rawsource.count('\n') >= \
            self.highlightlinenothreshold - 1
        highlight_args = node.get('highlight_args', {})
        if 'language' in node:
            # code-block directives
            lang = node['language']
            highlight_args['force'] = True
        if 'linenos' in node:
            linenos = node['linenos']

        def warner(msg):
            print('Warning: %s - %s ' % (msg, node.line))
        highlighted = self.highlighter.highlight_block(
            node.rawsource,
            lang,
            warn=warner,
            linenos=linenos,
            **highlight_args
        )
        starttag = self.starttag(
            node,
            'div',
            suffix='',
            CLASS='highlight-%s' % lang
        )
        self.body.append(starttag + highlighted + '</div>\n')
        raise nodes.SkipNode
Example #8
0
 def visit_literal_block(self, node):
     if node.rawsource != node.astext():
         # most probably a parsed-literal block -- don't highlight
         return BaseTranslator.visit_literal_block(self, node)
     lang = self.highlightlang
     linenos = node.rawsource.count('\n') >= self.highlightlinenothreshold - 1
     if node.has_key('language'):
         # code-block directives
         lang = node['language']
     if node.has_key('linenos'):
         linenos = node['linenos']
     self.body.append(self.highlighter.highlight_block(node.rawsource,
                                                       lang, linenos))
     raise nodes.SkipNode
Example #9
0
 def visit_literal_block(self, node):
     if node.rawsource != node.astext():
         # most probably a parsed-literal block -- don't highlight
         return BaseTranslator.visit_literal_block(self, node)
     lang = self.highlightlang
     linenos = node.rawsource.count('\n') >= self.highlightlinenothreshold - 1
     if node.has_key('language'):
         # code-block directives
         lang = node['language']
     if node.has_key('linenos'):
         linenos = node['linenos']
     self.body.append(self.highlighter.highlight_block(node.rawsource,
                                                       lang, linenos))
     raise nodes.SkipNode
Example #10
0
 def visit_literal_block(self, node):
     if node.rawsource != node.astext():
         # most probably a parsed-literal block -- don't highlight
         return BaseTranslator.visit_literal_block(self, node)
     lang = self.highlightlang
     linenos = node.rawsource.count("\n") >= self.highlightlinenothreshold - 1
     if node.has_key("language"):
         # code-block directives
         lang = node["language"]
     if node.has_key("linenos"):
         linenos = node["linenos"]
     highlighted = self.highlighter.highlight_block(node.rawsource, lang, linenos)
     starttag = self.starttag(node, "div", suffix="", CLASS="highlight-%s" % lang)
     self.body.append(starttag + highlighted + "</div>\n")
     raise nodes.SkipNode
Example #11
0
 def visit_literal_block(self, node):
     if node.rawsource != node.astext():
         # most probably a parsed-literal block -- don't highlight
         return BaseTranslator.visit_literal_block(self, node)
     lang = self.highlightlang
     linenos = node.rawsource.count('\n') >= \
               self.highlightlinenothreshold - 1
     if node.has_key('language'):
         # code-block directives
         lang = node['language']
     if node.has_key('linenos'):
         linenos = node['linenos']
     highlighted = self.highlighter.highlight_block(node.rawsource,
                                                    lang, linenos)
     starttag = self.starttag(node, 'div', suffix='',
                              CLASS='highlight-%s' % lang)
     self.body.append(starttag + highlighted + '</div>\n')
     raise nodes.SkipNode
Example #12
0
 def visit_literal_block(self, node):
     if node.rawsource != node.astext():
         # most probably a parsed-literal block -- don't highlight
         return BaseTranslator.visit_literal_block(self, node)
     lang = self.highlightlang
     linenos = node.rawsource.count('\n') >= \
               self.highlightlinenothreshold - 1
     if node.has_key('language'):
         # code-block directives
         lang = node['language']
     if node.has_key('linenos'):
         linenos = node['linenos']
     highlight_args = node.get('highlight_args', {})
     def warner(msg):
         self.builder.warn(msg, (self.builder.current_docname, node.line))
     highlighted = self.highlighter.highlight_block(
         node.rawsource, lang, warn=warner, linenos=linenos,
         **highlight_args)
     starttag = self.starttag(node, 'div', suffix='',
                              CLASS='highlight-%s' % lang)
     self.body.append(starttag + highlighted + '</div>\n')
     raise nodes.SkipNode
Example #13
0
    def visit_literal_block(self, node):
        if node.rawsource != node.astext():
            # most probably a parsed-literal block -- don't highlight
            return BaseTranslator.visit_literal_block(self, node)
        lang = self.highlightlang
        linenos = node.rawsource.count("\n") >= self.highlightlinenothreshold - 1
        highlight_args = node.get("highlight_args", {})
        if "language" in node:
            # code-block directives
            lang = node["language"]
            highlight_args["force"] = True
        if "linenos" in node:
            linenos = node["linenos"]

        def warner(msg):
            self.builder.warn(msg, (self.builder.current_docname, node.line))

        highlighted = self.highlighter.highlight_block(
            node.rawsource, lang, warn=warner, linenos=linenos, **highlight_args
        )
        starttag = self.starttag(node, "div", suffix="", CLASS="highlight-%s" % lang)
        self.body.append(starttag + highlighted + "</div>\n")
        raise nodes.SkipNode
Example #14
0
    def visit_literal_block(self, node):
        # type: (nodes.Node) -> None
        if node.rawsource != node.astext():
            # most probably a parsed-literal block -- don't highlight
            return BaseTranslator.visit_literal_block(self, node)

        lang = node.get('language', 'default')
        linenos = node.get('linenos', False)
        highlight_args = node.get('highlight_args', {})
        highlight_args['force'] = node.get('force_highlighting', False)
        if lang is self.builder.config.highlight_language:
            # only pass highlighter options for original language
            opts = self.builder.config.highlight_options
        else:
            opts = {}

        highlighted = self.highlighter.highlight_block(
            node.rawsource, lang, opts=opts, linenos=linenos,
            location=(self.builder.current_docname, node.line), **highlight_args
        )
        starttag = self.starttag(node, 'div', suffix='',
                                 CLASS='highlight-%s notranslate' % lang)
        self.body.append(starttag + highlighted + '</div>\n')
        raise nodes.SkipNode
def visit_GetTheCode_html(self, node):
    """
    This code is a copy-paste from :file:`sphinx/writers/html.py`.
    """

    # {
    #   'rawsource': u"...",
    #   'parent': <section "introduction": <title...><paragraph...><paragraph...><literal_block...> ...>,
    #   'source': '/home.../open-source-frontends.rst',
    #   'tagname': 'GetTheCode',
    #   'attributes': {'language': 'python', 'dupnames': [], 'xml:space': 'preserve', 'ids': [], 'backrefs': [],
    #                  'source': u'/home.../SimpleRectifierWithTransformer-jmodelica.py',
    #                  'classes': [], 'names': []},
    #   'line': 42,
    #   'document': <document: <comment...><comment...><section "open source frontends"...>>,
    #   'children': [<#text: 'from pymodelica import compile_fmu\nfrom pyfmi import load_fmu\n\ni ...'>]
    #  }

    self.body.append(self.starttag(node, 'div', CLASS=('getthecode')))
    # self.context.append('</div>\n')

    basename = os.path.basename(node['filename'])
    download_path = posixpath.join(self.builder.dlpath, node['filename'])
    # class="reference download internal"
    self.body.append(
        '<div class="getthecode-header">'
        '<span class="getthecode-filename">%s</span>'
        '<a href="%s"><span>%s</span></a>'
        # '<button id="copy-button" data-clipboard-target="clipboard_pre">Copy to Clipboard</button>'
        # '<pre id="clipboard_pre">' + node.rawsource + </pre>'
        '</div>\n' % (basename, download_path, basename))

    if node.rawsource != node.astext():
        # most probably a parsed-literal block -- don't highlight
        return BaseTranslator.visit_literal_block(self, node)
    lang = self.highlightlang
    highlight_args = node.get('highlight_args', {})
    if node.has_key('language'):
        # code-block directives
        lang = node['language']
        highlight_args['force'] = True
    linenos = node.rawsource.count('\n') >= self.highlightlinenothreshold - 1
    if node.has_key('linenos'):
        linenos = node['linenos']

    def warner(msg):
        self.builder.warn(msg, (self.builder.current_docname, node.line))

    highlighted = self.highlighter.highlight_block(node.rawsource,
                                                   lang,
                                                   warn=warner,
                                                   linenos=linenos,
                                                   **highlight_args)
    starttag = self.starttag(node,
                             'div',
                             suffix='',
                             CLASS='highlight-%s' % lang)
    self.body.append(starttag + highlighted + '</div>\n')
    self.body.append('</div>\n')

    # don't call depart_GetTheCode_html else dump source code
    raise nodes.SkipNode
Example #16
0
 def visit_literal_block(self, node):
     self._in_literal += 1
     HTMLTranslator.visit_literal_block(self, node)
def visit_GetTheCode_html(self, node):

    """
    This code is a copy-paste from :file:`sphinx/writers/html.py`.
    """

    # {
    #   'rawsource': u"...",
    #   'parent': <section "introduction": <title...><paragraph...><paragraph...><literal_block...> ...>,
    #   'source': '/home.../open-source-frontends.rst',
    #   'tagname': 'GetTheCode',
    #   'attributes': {'language': 'python', 'dupnames': [], 'xml:space': 'preserve', 'ids': [], 'backrefs': [],
    #                  'source': u'/home.../SimpleRectifierWithTransformer-jmodelica.py',
    #                  'classes': [], 'names': []},
    #   'line': 42,
    #   'document': <document: <comment...><comment...><section "open source frontends"...>>,
    #   'children': [<#text: 'from pymodelica import compile_fmu\nfrom pyfmi import load_fmu\n\ni ...'>]
    #  }

    self.body.append(self.starttag(node, 'div', CLASS=('getthecode')))
    # self.context.append('</div>\n')

    basename = os.path.basename(node['filename'])
    download_path = posixpath.join(self.builder.dlpath, node['filename'])
    # class="reference download internal"
    self.body.append(
        '<div class="getthecode-header">\n'
        '  <ul>\n'
        '  <li class="getthecode-filename">%s</li>\n'
        '  <li class="getthecode-filename-link"><a href="%s"><span >%s</span></a></li>\n'
        # '<button id="copy-button" data-clipboard-target="clipboard_pre">Copy to Clipboard</button>'
        # '<pre id="clipboard_pre">' + node.rawsource + </pre>'
        '  </ul>\n'
        '</div>\n' %
        (basename, download_path, basename))

    if node.rawsource != node.astext():
        # most probably a parsed-literal block -- don't highlight
        return BaseTranslator.visit_literal_block(self, node)
    lang = self.highlightlang
    highlight_args = node.get('highlight_args', {})
    if node.has_key('language'):
        # code-block directives
        lang = node['language']
        highlight_args['force'] = True
    linenos = node.rawsource.count('\n') >= self.highlightlinenothreshold - 1
    if node.has_key('linenos'):
        linenos = node['linenos']
    def warner(msg):
        self.builder.warn(msg, (self.builder.current_docname, node.line))
    highlighted = self.highlighter.highlight_block(node.rawsource, lang, warn=warner,
                                                   linenos=linenos, **highlight_args)
    _class = 'highlight-%s' % lang
    if node.get('hidden', False):
        _class += ' highlight-hidden'
    starttag = self.starttag(node, 'div', suffix='', CLASS=_class)
    self.body.append(starttag + highlighted + '</div>\n')
    self.body.append('</div>\n')

    # don't call depart_GetTheCode_html else dump source code
    raise nodes.SkipNode
Example #18
0
 def visit_literal_block(self, node):
     HTMLTranslator.visit_literal_block(self, node)
Example #19
0
 def visit_literal_block(self, node):
     HTMLTranslator.visit_literal_block(self, node)