U
    [ShI                     @   sL   d Z ddlZddlZG dd dejjZG dd deZG dd deZdS )	z.

Additional support for Pygments formatter.

    Nc                   @   s   e Zd Zdd ZdddZdS )OdtPygmentsFormatterc                 C   s   t jj|  || _|| _d S N)pygments	formatter	Formatter__init__rststyle_functionescape_function)selfr   r	    r   ]/root/rtd-docs/venv/lib/python3.8/site-packages/docutils/writers/odf_odt/pygmentsformatter.pyr      s    zOdtPygmentsFormatter.__init__r   c                 C   s   |  ||S r   )r   )r
   name
parametersr   r   r   rststyle   s    zOdtPygmentsFormatter.rststyleN)r   )__name__
__module____qualname__r   r   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd ZdS )OdtPygmentsProgFormatterc                 C   s  t jj}|D ]n\}}| |}||jkrD| d}d||f }n.||jjkrj| d}d||f }n||jjj	|jjj	j
|jjj|jjj|jjj|jjfkr| d}d||f }n||jkr| d}d||f }n||jkr| d}d||f }nt||jjkr$| d}d||f }nN||jjkrJ| d}d||f }n(||jkrn| d	}d||f }n|}|| qd S )
Ncodeblock-keyword.<text:span text:style-name="%s">%s</text:span>codeblock-stringzcodeblock-numbercodeblock-operatorcodeblock-commentzcodeblock-classnamezcodeblock-functionnamecodeblock-name)r   tokenTokenr	   Keywordr   LiteralStringNumberIntegerLongFloatHexOctOperatorCommentNameClassFunctionwriter
   ZtokensourceoutfileZ
tokenclassttypevalues2s1r   r   r   format   sh    












zOdtPygmentsProgFormatter.formatNr   r   r   r1   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd ZdS )OdtPygmentsLaTeXFormatterc                 C   s  t jj}|D ]\}}| |}||jkrB| d}d||f }n||jj|jjjfkrp| d}d||f }n||j	j
kr| d}d||f }nx||jkr|d dkr| d}d||d d f }n| d}d||f }n*||j	jkr| d	}d||f }n|}|| qd S )
Nr   r   r   r   
r   z/<text:span text:style-name="%s">%s</text:span>
r   )r   r   r   r	   r   r   r   r   Backtickr'   	Attributer&   Builtinr*   r+   r   r   r   r1   L   sJ    








z OdtPygmentsLaTeXFormatter.formatNr2   r   r   r   r   r3   K   s   r3   )__doc__r   Zpygments.formatterr   r   r   r   r3   r   r   r   r   <module>   s
   
1