B
    &‹dü  ã               @   sj   d dl Z ddlmZ ddlmZmZmZmZ dZdZ	e  
de d ¡Zd	Zd
e d ZG dd„ deƒZdS )é    Né   )ÚScannerParser)ÚPUNCTUATIONÚESCAPE_TEXTÚ
escape_urlÚunikeyz[A-Za-z][A-Za-z0-9-]*zT(?:\s+[A-Za-z_:][A-Za-z0-9_.:-]*(?:\s*=\s*(?:[^ "\'=<>`]+|\'[^\']*?\'|"[^\"]*?"))?)*z\\([z])z3(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?z(?:[^\\\[\]]|z	){0,1000}c                   s  e Zd ZeZdZde d Zde d e d Z	de d Z
dZde d e d	 Zd
ZdZde e d e d ZdZd4‡ fdd„	Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Z d+d,„ Z!d5d.d/„Z"d6d0d1„Z#d2d3„ Z$‡  Z%S )7ÚInlineParserz¼(?<!\\)(?:\\\\)*<([A-Za-z][A-Za-z0-9+.-]{1,31}:[^ <>]*?|[A-Za-z0-9.!#$%&'*+/=?^_`{|}~-]+@[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*)>z!?\[(z£)\]\(\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f\\]*\)|[^\s\x00-\x1f()\\])*?)(?:\s+("(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)))?\s*\)z)\]\[(z)\]z?(\*{1,2})(?=[^\s*])((?:(?:(?<!\\)(?:\\\\)*\*)|[^*])+?)(?<!\\)\1z \b(_{1,2})(?=[^\s_])([\s\S]*?(?:z|[^\s_]))\1(?!_|[^\sz])\bz2(?<!\\|`)(?:\\\\)*(`+)(?!`)([\s\S]+?)(?<!`)\1(?!`)z(?:\\| {2,})\n(?!\s*$)z(?<!\\)<z\s*/?>|(?<!\\)</z\s*>|(?<!\\)<!--(?!>|->)(?:(?!--)[\s\S])+?(?<!-)-->|(?<!\\)<\?[\s\S]+?\?>|(?<!\\)<![A-Z][\s\S]+?>|(?<!\\)<!\[CDATA[\s\S]+?\]\]>)
ÚescapeÚinline_htmlZ	auto_linkZstd_linkÚref_linkÚ	ref_link2Zasterisk_emphasisZunderscore_emphasisÚcodespanÚ	linebreakFc                sF   t t| ƒ ¡  |rd| _|| _t| jƒ}| d¡ | d¡ || _d S )Nz *\n(?!\s*$)r   r   )	Úsuperr   Ú__init__Ú	LINEBREAKÚrendererÚlistÚ
RULE_NAMESÚremoveÚref_link_rules)Úselfr   Z	hard_wrapÚrules)Ú	__class__© úb/work/yifan.wang/ringdown/master-ringdown-env/lib/python3.7/site-packages/mistune/inline_parser.pyr   f   s    


zInlineParser.__init__c             C   s   |  d¡dd … }d|fS )Nr   r   Útext)Úgroup)r   ÚmÚstater   r   r   r   Úparse_escapeq   s    zInlineParser.parse_escapec             C   sX   |  d¡rd| d¡fS | d¡}d}d|krF| ¡  |¡sFd| }n|}dt|ƒ|fS )	NÚ_in_linkr   r   r   )zmailto:zhttp://zhttps://ú@zmailto:Úlink)Úgetr   ÚlowerÚ
startswithr   )r   r   r   r   Úschemesr#   r   r   r   Úparse_auto_linku   s    


zInlineParser.parse_auto_linkc             C   s–   |  d¡}|  d¡}t d|  d¡¡}| d¡rF| d¡rF|dd… }|  d¡}|rht d|dd… ¡}|d d	kr„d
t|ƒ||fS |  |||||¡S )Nr   r   z\1é   ú<ú>éÿÿÿÿé   ú!Úimage)r   ÚESCAPE_CHARÚsubr&   Úendswithr   Útokenize_link)r   r   r   Úliner   r#   Útitler   r   r   Úparse_std_link   s    


zInlineParser.parse_std_linkc       	      C   s¨   |  d¡}|  d¡}t|  d¡p"|ƒ}| d¡}|r<||krPt|  ||| j¡ƒS | |¡\}}t d|¡}|rzt d|¡}|d dkr–dt|ƒ||fS |  	|||||¡S )Nr   r   r)   Ú	def_linksz\1r.   r/   )
r   r   r$   r   Ú_scanr   r0   r1   r   r3   )	r   r   r   r4   r   Úkeyr7   r#   r5   r   r   r   Úparse_ref_link‘   s    


zInlineParser.parse_ref_linkc             C   s   |   ||¡S )N)r:   )r   r   r   r   r   r   Úparse_ref_link2£   s    zInlineParser.parse_ref_link2c             C   s>   |  d¡rd|fS d|d< |  ||¡}d|d< dt|ƒ||fS )Nr!   r   TFr#   )r$   Úrenderr   )r   r4   r#   r   r5   r   r   r   r   r3   ¦   s    
zInlineParser.tokenize_linkc             C   s   |   ||¡S )N)Útokenize_emphasis)r   r   r   r   r   r   Úparse_asterisk_emphasis®   s    z$InlineParser.parse_asterisk_emphasisc             C   s   |   ||¡S )N)r=   )r   r   r   r   r   r   Úparse_underscore_emphasis±   s    z&InlineParser.parse_underscore_emphasisc             C   s@   |  d¡}|  d¡}t|ƒdkr0d|  ||¡fS d|  ||¡fS )Nr   r)   ZemphasisÚstrong)r   Úlenr<   )r   r   r   Úmarkerr   r   r   r   r=   ´   s
    

zInlineParser.tokenize_emphasisc             C   s    t  dd| d¡ ¡ ¡}d|fS )Nz[ \n]+ú r)   r   )Úrer1   r   Ústrip)r   r   r   Úcoder   r   r   Úparse_codespan»   s    zInlineParser.parse_codespanc             C   s   dS )N)r   r   )r   r   r   r   r   r   Úparse_linebreak¿   s    zInlineParser.parse_linebreakc             C   s6   |  d¡}| d¡rd|d< | d¡r.d|d< d|fS )Nr   z<a Tr!   z</a>Fr
   )r   r&   )r   r   r   Úhtmlr   r   r   Úparse_inline_htmlÂ   s    


zInlineParser.parse_inline_htmlc             C   s   d|fS )Nr   r   )r   r   r   r   r   r   Ú
parse_textÊ   s    zInlineParser.parse_textNc                s.   |d krˆ j }‡ fdd„ˆ  |||¡D ƒ}|S )Nc             3   s*   | ]"}ˆ j  |d  ¡|dd… Ž V  qdS )r   r   N)r   Z_get_method)Ú.0Út)r   r   r   ú	<genexpr>Ò   s   z%InlineParser.parse.<locals>.<genexpr>)r   r8   )r   Úsr   r   Útokensr   )r   r   ÚparseÍ   s
    
zInlineParser.parsec             C   s   |   |||¡}| j |¡S )N)rQ   r   Úfinalize)r   rO   r   r   rP   r   r   r   r<   ×   s    zInlineParser.renderc             C   s   |   ||¡S )N)r<   )r   rO   r   r   r   r   Ú__call__Û   s    zInlineParser.__call__)F)N)N)&Ú__name__Ú
__module__Ú__qualname__r   ÚESCAPEZ	AUTO_LINKÚ	LINK_TEXTZSTD_LINKÚ
LINK_LABELZREF_LINKZ	REF_LINK2ZASTERISK_EMPHASISr   ZUNDERSCORE_EMPHASISZCODESPANr   ÚHTML_TAGNAMEÚHTML_ATTRIBUTESZINLINE_HTMLr   r   r    r(   r6   r:   r;   r3   r>   r?   r=   rG   rH   rJ   rK   rQ   r<   rS   Ú__classcell__r   r   )r   r   r      s8   


r   )rD   Úscannerr   Úutilr   r   r   r   rZ   r[   Úcompiler0   rX   rY   r   r   r   r   r   Ú<module>   s   