diff options
| author | shadchin <[email protected]> | 2022-02-10 16:44:39 +0300 | 
|---|---|---|
| committer | Daniil Cherednik <[email protected]> | 2022-02-10 16:44:39 +0300 | 
| commit | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch) | |
| tree | 64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/python/Pygments/py3/pygments/formatters/pangomarkup.py | |
| parent | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff) | |
Restoring authorship annotation for <[email protected]>. Commit 2 of 2.
Diffstat (limited to 'contrib/python/Pygments/py3/pygments/formatters/pangomarkup.py')
| -rw-r--r-- | contrib/python/Pygments/py3/pygments/formatters/pangomarkup.py | 166 | 
1 files changed, 83 insertions, 83 deletions
diff --git a/contrib/python/Pygments/py3/pygments/formatters/pangomarkup.py b/contrib/python/Pygments/py3/pygments/formatters/pangomarkup.py index 222cf775ba4..926ccc6d3ba 100644 --- a/contrib/python/Pygments/py3/pygments/formatters/pangomarkup.py +++ b/contrib/python/Pygments/py3/pygments/formatters/pangomarkup.py @@ -1,83 +1,83 @@ -"""  -    pygments.formatters.pangomarkup  -    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  -  -    Formatter for Pango markup output.  -  -    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS.  -    :license: BSD, see LICENSE for details.  -"""  -  -from pygments.formatter import Formatter  -  -  -__all__ = ['PangoMarkupFormatter']  -  -  -_escape_table = {  -    ord('&'): '&',  -    ord('<'): '<',  -}  -  -  -def escape_special_chars(text, table=_escape_table):  -    """Escape & and < for Pango Markup."""  -    return text.translate(table)  -  -  -class PangoMarkupFormatter(Formatter):  -    """  -    Format tokens as Pango Markup code. It can then be rendered to an SVG.  -  -    .. versionadded:: 2.9  -    """  -  -    name = 'Pango Markup'  -    aliases = ['pango', 'pangomarkup']  -    filenames = []  -  -    def __init__(self, **options):  -        Formatter.__init__(self, **options)  -  -        self.styles = {}  -  -        for token, style in self.style:  -            start = ''  -            end = ''  -            if style['color']:  -                start += '<span fgcolor="#%s">' % style['color']  -                end = '</span>' + end  -            if style['bold']:  -                start += '<b>'  -                end = '</b>' + end  -            if style['italic']:  -                start += '<i>'  -                end = '</i>' + end  -            if style['underline']:  -                start += '<u>'  -                end = '</u>' + end  -            self.styles[token] = (start, end)  -  -    def format_unencoded(self, tokensource, outfile):  -        lastval = ''  -        lasttype = None  -  -        outfile.write('<tt>')  -  -        for ttype, value in tokensource:  -            while ttype not in self.styles:  -                ttype = ttype.parent  -            if ttype == lasttype:  -                lastval += escape_special_chars(value)  -            else:  -                if lastval:  -                    stylebegin, styleend = self.styles[lasttype]  -                    outfile.write(stylebegin + lastval + styleend)  -                lastval = escape_special_chars(value)  -                lasttype = ttype  -  -        if lastval:  -            stylebegin, styleend = self.styles[lasttype]  -            outfile.write(stylebegin + lastval + styleend)  -  -        outfile.write('</tt>')  +""" +    pygments.formatters.pangomarkup +    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +    Formatter for Pango markup output. + +    :copyright: Copyright 2006-2021 by the Pygments team, see AUTHORS. +    :license: BSD, see LICENSE for details. +""" + +from pygments.formatter import Formatter + + +__all__ = ['PangoMarkupFormatter'] + + +_escape_table = { +    ord('&'): '&', +    ord('<'): '<', +} + + +def escape_special_chars(text, table=_escape_table): +    """Escape & and < for Pango Markup.""" +    return text.translate(table) + + +class PangoMarkupFormatter(Formatter): +    """ +    Format tokens as Pango Markup code. It can then be rendered to an SVG. + +    .. versionadded:: 2.9 +    """ + +    name = 'Pango Markup' +    aliases = ['pango', 'pangomarkup'] +    filenames = [] + +    def __init__(self, **options): +        Formatter.__init__(self, **options) + +        self.styles = {} + +        for token, style in self.style: +            start = '' +            end = '' +            if style['color']: +                start += '<span fgcolor="#%s">' % style['color'] +                end = '</span>' + end +            if style['bold']: +                start += '<b>' +                end = '</b>' + end +            if style['italic']: +                start += '<i>' +                end = '</i>' + end +            if style['underline']: +                start += '<u>' +                end = '</u>' + end +            self.styles[token] = (start, end) + +    def format_unencoded(self, tokensource, outfile): +        lastval = '' +        lasttype = None + +        outfile.write('<tt>') + +        for ttype, value in tokensource: +            while ttype not in self.styles: +                ttype = ttype.parent +            if ttype == lasttype: +                lastval += escape_special_chars(value) +            else: +                if lastval: +                    stylebegin, styleend = self.styles[lasttype] +                    outfile.write(stylebegin + lastval + styleend) +                lastval = escape_special_chars(value) +                lasttype = ttype + +        if lastval: +            stylebegin, styleend = self.styles[lasttype] +            outfile.write(stylebegin + lastval + styleend) + +        outfile.write('</tt>')  | 
