o
    ç&•aŒ  ã                   @   s¨   d dl mZ d dl mZmZmZ d dlZddgZdZe dej	¡Z
zeeƒZW n	 ey0   Y nw dd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zddd„Zdd„ Zdd„ ZdS )é    )ÚProcessingInstruction)ÚCommentÚElementTreeÚQNameNÚto_html_stringÚto_xhtml_string)ÚareaÚbaseÚbasefontÚbrÚcolÚframeÚhrÚimgÚinputÚisindexÚlinkÚmetaÚparamz)&(?!(?:\#[0-9]+|\#x[0-9a-f]+|[0-9a-z]+);)c                 C   s   t d | t| ƒj¡ƒ‚)Nzcannot serialize {!r} (type {}))Ú	TypeErrorÚformatÚtypeÚ__name__©Útext© r   ú6/usr/lib/python3/dist-packages/markdown/serializers.pyÚ_raise_serialization_error8   s   ÿr   c              	   C   sd   z!d| v rt  d| ¡} d| v r|  dd¡} d| v r|  dd¡} | W S  ttfy1   t| ƒ Y d S w )Nú&ú&amp;ú<ú&lt;ú>ú&gt;©ÚRE_AMPÚsubÚreplacer   ÚAttributeErrorr   r   r   r   r   Ú_escape_cdata>   s   ÿr)   c              	   C   sŒ   z5d| v rt  d| ¡} d| v r|  dd¡} d| v r|  dd¡} d| v r)|  dd¡} d	| v r3|  d	d
¡} | W S  ttfyE   t| ƒ Y d S w )Nr   r   r    r!   r"   r#   ú"ú&quot;Ú
z&#10;r$   r   r   r   r   Ú_escape_attribP   s   ÿr-   c              	   C   sx   z+d| v rt  d| ¡} d| v r|  dd¡} d| v r|  dd¡} d| v r)|  dd¡} | W S  ttfy;   t| ƒ Y d S w )	Nr   r   r    r!   r"   r#   r*   r+   r$   r   r   r   r   Ú_escape_attrib_htmlc   s   ÿr.   c           
      C   sè  |j }|j}|tu r| dt|ƒ ƒ nÓ|tu r | dt|ƒ ƒ nÆ|d u r8|r,| t|ƒƒ |D ]}t| ||ƒ q.n®d }t|tƒrZ|jd d… dkrV|jdd …  dd¡\}}nt	dƒ‚| d| ƒ | 
¡ }|r�t|ƒ}|D ]0\}}	t|tƒrx|j}t|	tƒr�|	j}	nt|	ƒ}	||	kr”|dkr”| d	|	 ƒ ql| d
 ||	¡ƒ ql|r§| dt|ƒ ƒ |dkr¶| ¡ tv r¶| dƒ n0| dƒ |rÍ| ¡ dv rÇ| |ƒ n| t|ƒƒ |D ]}t| ||ƒ qÏ| ¡ tvræ| d| d ƒ |jrò| t|jƒƒ d S d S )Nz	<!--%s-->z<?%s?>é   ú{ú}z QName objects must define a tag.r    Úhtmlz %sz {}="{}"z xmlns="%s"Úxhtmlz />r"   )ÚscriptÚstylez</)Útagr   r   r)   r   Ú_serialize_htmlÚ
isinstancer   ÚsplitÚ
ValueErrorÚitemsÚsortedr.   r   r-   ÚlowerÚ
HTML_EMPTYÚtail)
ÚwriteÚelemr   r6   r   ÚeÚnamespace_urir;   ÚkÚvr   r   r   r7   t   s\   ÿ




ÿr7   r2   c                 C   s,   | d usJ ‚g }|j }t|| |ƒ d |¡S )NÚ )Úappendr7   Újoin)Úrootr   Údatar@   r   r   r   Ú_write_html­   s
   
rK   c                 C   ó   t t| ƒ ¡ dd�S )Nr2   ©r   ©rK   r   Úgetroot©Úelementr   r   r   r   ¸   ó   c                 C   rL   )Nr3   rM   rN   rP   r   r   r   r   ¼   rR   )r2   )Úxml.etree.ElementTreer   r   r   r   ÚreÚ__all__r>   ÚcompileÚIr%   ÚsetÚ	NameErrorr   r)   r-   r.   r7   rK   r   r   r   r   r   r   Ú<module>   s&   'ÿ
9