관리-도구
편집 파일: svg.cpython-311.pyc
� �܋f� � �^ � d Z ddlmZ ddlmZ ddlmZmZ dgZd� Z i Z G d� de� � ZdS ) z� pygments.formatters.svg ~~~~~~~~~~~~~~~~~~~~~~~ Formatter for SVG output. :copyright: Copyright 2006-2023 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. � )� Formatter)�Comment)�get_bool_opt�get_int_opt�SvgFormatterc �� � | � dd� � � dd� � � dd� � � dd� � � d d � � S )z<Escape &, <, > as well as single and double quotes for HTML.�&z&�<z<�>z>�"z"�'z')�replace)�texts �t/builddir/build/BUILD/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/svg.py�escape_htmlr sT � ��<�<��W�%�%����V�$�$����V�$�$����X�&�&����W�%�%� &� c �4 � e Zd ZdZdZdgZdgZd� Zd� Zd� Z dS ) r a& Format tokens as an SVG graphics file. This formatter is still experimental. Each line of code is a ``<text>`` element with explicit ``x`` and ``y`` coordinates containing ``<tspan>`` elements with the individual token styles. By default, this formatter outputs a full SVG document including doctype declaration and the ``<svg>`` root element. .. versionadded:: 0.9 Additional options accepted: `nowrap` Don't wrap the SVG ``<text>`` elements in ``<svg><g>`` elements and don't add a XML declaration and a doctype. If true, the `fontfamily` and `fontsize` options are ignored. Defaults to ``False``. `fontfamily` The value to give the wrapping ``<g>`` element's ``font-family`` attribute, defaults to ``"monospace"``. `fontsize` The value to give the wrapping ``<g>`` element's ``font-size`` attribute, defaults to ``"14px"``. `linenos` If ``True``, add line numbers (default: ``False``). `linenostart` The line number for the first line (default: ``1``). `linenostep` If set to a number n > 1, only every nth line number is printed. `linenowidth` Maximum width devoted to line numbers (default: ``3*ystep``, sufficient for up to 4-digit line numbers. Increase width for longer code blocks). `xoffset` Starting offset in X direction, defaults to ``0``. `yoffset` Starting offset in Y direction, defaults to the font size if it is given in pixels, or ``20`` else. (This is necessary since text coordinates refer to the text baseline, not the top edge.) `ystep` Offset to add to the Y coordinate for each subsequent line. This should roughly be the text size plus 5. It defaults to that value if the text size is given in pixels, or ``25`` else. `spacehack` Convert spaces in the source to `` ``, which are non-breaking spaces. SVG provides the ``xml:space`` attribute to control how whitespace inside tags is handled, in theory, the ``preserve`` value could be used to keep all whitespace as-is. However, many current SVG viewers don't obey that rule, so this option is provided as a workaround and defaults to ``True``. �SVG�svgz*.svgc � � t j | fi |�� t |dd� � | _ |� dd� � | _ |� dd� � | _ t |dd� � | _ | j � � � }|� d � � r|d d � � � � } t |� � }n # d}Y nxY wt |d|� � | _ t |d |dz � � | _ t |dd� � | _ t |dd� � | _ t |dd� � | _ t |dd� � | _ t |dd| j z � � | _ i | _ d S )N�nowrapF� fontfamily� monospace�fontsize�14px�xoffsetr �px���� �yoffset�ystep� � spacehackT�linenos�linenostart� � linenostep�linenowidth� )r �__init__r r �getr r r r �strip�endswith�intr r! r# r$ r% r'