
    Lc                         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 j
        dez   dz             Zd	Zd
ez   dz   Z G 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                       e Zd ZeZdZdez   dz   Zdez   dz   ez   dz   Z	dez   dz   Z
dZdez   dz   ez   d	z   Zd
ZdZdez   ez   dz   ez   dz   ZdZd# fd	Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d$d Z"d$d!Z#d" Z$ xZ%S )%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_html	auto_linkstd_linkref_link	ref_link2asterisk_emphasisunderscore_emphasiscodespan	linebreakFc                     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   	hard_wraprules	__class__s       5lib/python3.11/site-packages/mistune/inline_parser.pyr   zInlineParser.__init__f   sv    lD!!**,,, 	-,DN T_%%Z   [!!!#    c                 D    |                     d          dd          }d|fS )Nr   r   text)group)r   mstater%   s       r"   parse_escapezInlineParser.parse_escapeq   s#    wwqzz!""~t|r#   c                    |                     d          rd|                    d          fS |                    d          }d}d|v r-|                                                    |          sd|z   }n|}dt	          |          |fS )	N_in_linkr%   r   r   )mailto:zhttp://zhttps://@r,   link)getr&   lower
startswithr   )r   r'   r(   r%   schemesr.   s         r"   parse_auto_linkzInlineParser.parse_auto_linku   s    99Z   	&1771::%%wwqzz4$; 	tzz||66w?? 	t#DDDz$''--r#   c                    |                     d          }|                     d          }t                              d|                     d                    }|                    d          r|                    d          r
|dd         }|                     d          }|r#t                              d|dd                   }|d         d	k    rd
t          |          ||fS |                     |||||          S )Nr   r   \1   <>   !image)r&   ESCAPE_CHARsubr1   endswithr   tokenize_link)r   r'   r(   liner%   r.   titles          r"   parse_std_linkzInlineParser.parse_std_link   s    wwqzzwwqzzuaggajj11??3 	DMM#$6$6 	":D

 	8OOE52;77E7c> 	:Jt,,dE99!!$dE5AAAr#   c                 6   |                     d          }|                     d          }t          |                     d          p|          }|                    d          }|r||vr)t          |                     ||| j                            S |                    |          \  }}t                              d|          }|rt                              d|          }|d         dk    rdt          |          ||fS | 	                    |||||          S )Nr   r   r6   	def_linksr5   r;   r<   )
r&   r   r/   r   _scanr   r=   r>   r   r@   )	r   r'   r(   rA   r%   keyrE   r.   rB   s	            r"   parse_ref_linkzInlineParser.parse_ref_link   s
   wwqzzwwqzzQWWQZZ'4((IIk**	 	FCy0 	F

40CDDEEEmmC((eud++ 	2OOE511E7c> 	:Jt,,dE99!!$dE5AAAr#   c                 .    |                      ||          S N)rH   r   r'   r(   s      r"   parse_ref_link2zInlineParser.parse_ref_link2   s    ""1e,,,r#   c                     |                     d          rd|fS d|d<   |                     ||          }d|d<   dt          |          ||fS )Nr+   r%   TFr.   )r/   renderr   )r   rA   r.   r%   rB   r(   s         r"   r@   zInlineParser.tokenize_link   s^    99Z   	 4< j{{4''!jz$''u44r#   c                 .    |                      ||          S rJ   tokenize_emphasisrK   s      r"   parse_asterisk_emphasisz$InlineParser.parse_asterisk_emphasis       %%a///r#   c                 .    |                      ||          S rJ   rP   rK   s      r"   parse_underscore_emphasisz&InlineParser.parse_underscore_emphasis   rS   r#   c                     |                     d          }|                     d          }t          |          dk    rd|                     ||          fS d|                     ||          fS )Nr   r6   emphasisstrong)r&   lenrN   )r   r'   r(   markerr%   s        r"   rQ   zInlineParser.tokenize_emphasis   se    wwqzzv;;! 	8t{{47777T51111r#   c                     t          j        dd|                    d                                                    }d|fS )Nz[ \n]+ r6   r   )rer>   r&   strip)r   r'   r(   codes       r"   parse_codespanzInlineParser.parse_codespan   s6    viaggajj&6&6&8&8994r#   c                     dS )N)r    rK   s      r"   parse_linebreakzInlineParser.parse_linebreak   s    |r#   c                     |                     d          }|                    d          rd|d<   |                    d          rd|d<   d|fS )Nr   z<a Tr+   z</a>Fr   )r&   r1   )r   r'   r(   htmls       r"   parse_inline_htmlzInlineParser.parse_inline_html   sX    wwqzz??5!! 	% $E*??6"" 	& %E*d""r#   c                 
    d|fS )Nr%   rb   )r   r%   r(   s      r"   
parse_textzInlineParser.parse_text   s    t|r#   Nc                 `     | j         } fd                     |||          D             }|S )Nc              3   n   K   | ]/} j                             |d                    |dd          V  0dS )r   r   N)r   _get_method).0tr   s     r"   	<genexpr>z%InlineParser.parse.<locals>.<genexpr>   sZ       
 
 ,DM%%ad++QqrrU3
 
 
 
 
 
r#   )r    rF   r   sr(   r    tokenss   `    r"   parsezInlineParser.parse   sQ     	JE
 
 
 
ZZ5%00
 
 
 r#   c                 d    |                      |||          }| j                            |          S rJ   )rr   r   finalizero   s        r"   rN   zInlineParser.render   s-    Aue,,}%%f---r#   c                 .    |                      ||          S rJ   )rN   )r   rp   r(   s      r"   __call__zInlineParser.__call__   s    {{1e$$$r#   )FrJ   )&__name__
__module____qualname__r   ESCAPE	AUTO_LINK	LINK_TEXTSTD_LINK
LINK_LABELREF_LINK	REF_LINK2ASTERISK_EMPHASISr   UNDERSCORE_EMPHASISCODESPANr   HTML_TAGNAMEHTML_ATTRIBUTESINLINE_HTMLr   r   r)   r3   rC   rH   rL   r@   rR   rU   rQ   r`   rc   rf   rh   rr   rN   rv   __classcell__)r!   s   @r"   r
   r
      s       F	B  	9   	 $ 	9   		$	%  :%.I	 		 	"	#%,	-  	> 
 *I 	l"_4 8 	#	$')	) J	$ 	$ 	$ 	$ 	$ 	$  
. 
. 
.B B B B B B$- - -5 5 50 0 00 0 02 2 2       # # #     . . . .% % % % % % %r#   r
   )r]   scannerr   utilr   r   r   r   r   r   compiler=   r|   r~   r
   rb   r#   r"   <module>r      s    				 " " " " " " > > > > > > > > > > > >'<  bj;.677B	+l:
M% M% M% M% M%= M% M% M% M% M%r#   