
    f.              	          d dl Z d dlmZmZmZmZmZ ddlmZm	Z	 ddl
mZmZmZ ddlmZmZmZmZmZmZmZmZ  e j.                  d      ZdZd	ez   ez   d
z   ez   dz   Z e j.                  dez   dz          e j.                  dez   dz          e j.                  dez   dz          e j.                  dez   dz          e j.                  dez   dz          e j.                  dez   dz         dZ G d de      Zy)    N)OptionalListDictAnyMatch   )ParserInlineState)escape
escape_urlunikey)PREVENT_BACKSLASHPUNCTUATIONHTML_TAGNAMEHTML_ATTRIBUTESunescape_char
parse_linkparse_link_labelparse_link_textz\s*\)z<[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	\s*/?>|</zc\s*>|<!--(?!>|->)(?:(?!--)[\s\S])+?(?<!-)-->|<\?[\s\S]+?\?>|<![A-Z][\s\S]+?>|<!\[CDATA[\s\S]+?\]\]>z(?:z\\\*|[^\s*])\*(?!\*)z\\_|[^\s_])_(?!_)\bz\\\*|[^\s*])\*\*(?!\*)z\\_|[^\s_])__(?!_)\bz\\\*|[^\s*])\*\*\*(?!\*)z\\_|[^\s_])___(?!_)\b)*_z**__z***___c                       e Zd ZdZeZdZdZdez   dz   dddd	e	e
eed
dez   dz   dZdZd&def fdZdededefdZdededee   fdZd ZdededefdZdededefdZd ZdededefdZdededefdZdededefdZdededefdZdededefdZdedefd Zdede e!ee"f      fd!Z#d'deded"efd#Z$defd$Z%d% Z& xZ'S )(InlineParserr   z(?:\\| {2,})\n\s*z *\n\s*z(?:\\z)+z`{1,}z$\*{1,3}(?=[^\s*])|\b_{1,3}(?=[^\s_])z!?\[z.<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\x00-\x20]*>z<[A-Za-z][A-Za-z\d.+-]{1,31}:z</?z|<!|<\?)r   codespanemphasislink	auto_link
auto_emailinline_html	linebreak	softbreakprec_auto_linkprec_inline_html)r   r   r   r   r    r!   r"   r#   	hard_wrapc           	      
   t         t        |           || _        |r| j                  | j
                  d<   n| j                  j                  d       | j                  D ci c]  }|t        | d|z          c}| _	        y c c}w )Nr#   r$   parse_)
superr   __init__r'   HARD_LINEBREAKspecificationrulesappendgetattr_methods)selfr'   name	__class__s      P/var/www/cvtools/html/venv/lib/python3.12/site-packages/mistune/inline_parser.pyr+   zInlineParser.__init__`   su    lD*,".2.A.AD{+JJk* >BZZ
59D'$400
 
s    B mstatereturnc                     |j                  d      }t        |      }|j                  d|d       |j                         S )Nr   texttyperaw)groupr   append_tokenend)r2   r6   r7   r:   s       r5   parse_escapezInlineParser.parse_escapen   s?    wwqzT"
 	 uuw    c                    |j                         }|j                  d      }|d   dk(  }|r"|j                  r|j                  d|d       |S |s"|j                  r|j                  d|d       |S d }t        |j                  |      \  }}|t        |j                  |      \  }}|y ||}|t        |j                        k\  r|y g d}	| j                  ||||	      }
|
r|
S |t        |j                        k  r|j                  |   }|dk(  rEt        |j                  |dz         \  }}|rP| j                  ||||      }|j                  |       |S |dk(  r$t        |j                  |dz         \  }}|r|}|r|}|y |j                  j                  d	      }|sy t        |      }|j                  |      }|rH|d
   |j                  d      d}| j                  ||||      }||d<   ||d<   |j                  |       |S y )Nr   !r:   r;   )r   r%   r&   (r   [	ref_linksurltitle)rH   rI   reflabel)r@   r>   in_imager?   in_linkr   srcr   lenprecedence_scanr   _InlineParser__parse_link_tokenenvgetr   )r2   r6   r7   posmarkeris_imager:   rK   end_posr.   prec_poscattrspos2tokenlabel2rG   keyrR   s                      r5   r   zInlineParser.parse_linkw   s   eeg!9#v>?Jemmv>?J)%))S9w=+EIIs;MD'|<Dc%))n$B''5'5AOS^#		'"ACx(GaK@t 33HdE5QE&&u-Kc/		7Q;G"G &=IIMM+.	UmmmC J1ABE++HdE5IEE%L"E'Nu%N rB   c                     |j                         }||_        |rd|_        d| j                  |      |d}|S d|_        d| j                  |      |d}|S )NTimager<   childrenrZ   r   )copyrN   rL   renderrM   )r2   rV   r:   rZ   r7   	new_stater\   s          r5   __parse_link_tokenzInlineParser.__parse_link_token   si    JJL		!%I KK	2E  !%I KK	2E
 rB   c                     |j                  d      }|j                         }|j                  r| j                  ||       |S |dd }| j	                  |||       |S )Nr   r   r>   r@   rM   process_text_add_auto_link)r2   r6   r7   r:   rT   s        r5   parse_auto_linkzInlineParser.parse_auto_link   sX    wwqzeeg==dE*JAbzD$.
rB   c                     |j                  d      }|j                         }|j                  r| j                  ||       |S |dd }d|z   }| j	                  |||       |S )Nr   r   rh   zmailto:ri   )r2   r6   r7   r:   rT   rH   s         r5   parse_auto_emailzInlineParser.parse_auto_email   sb    wwqzeeg==dE*JAbz$Cu-
rB   c                 L    |j                  dd|dgdt        |      id       y )Nr   r:   r;   rH   ra   )r?   r   )r2   rH   r:   r7   s       r5   rk   zInlineParser._add_auto_link   s/    "(67Z_-
 	rB   c                 N   |j                         }|j                  d      }t        |      }|dk(  r"|j                  r|j	                  d|d       |S |dk(  r"|j
                  r|j	                  d|d       |S t        |   }|j                  |j                  |      }|s|j	                  d|d       |S |j                         }|j                  |||z
   }	| j                  |||      }
|
r|
S |j                         }|	|_        |dk(  r.d|_        | j                  |      }|j	                  d|d       |S |dk(  r.d|_        | j                  |      }|j	                  d	|d       |S d|_        d|_        d	| j                  |      dg}|j	                  d|d       |S )
Nr   r   r:   r;      Tr   )r<   rb   strong)r@   r>   rO   in_emphasisr?   	in_strongEMPHASIS_END_REsearchrN   rP   rc   rd   )r2   r6   r7   rT   rU   mlen_end_rem1rW   r:   rX   re   rb   s                r5   parse_emphasiszInlineParser.parse_emphasis   s   eeg6{19**v>?JQY5??v>?J!&)^^EIIs+v>?J&&(yyWT\*''5':OJJL		19$(I!{{9-H
IJ" ! QY"&I{{9-HhGH  %)I!"&I ! KK	2 H "$   rB   c                 $   |j                  d      }t        j                  d|z   dz   t        j                        }|j	                         }|j                  |j                  |      }|r|j	                         }|j                  d      }|j                  dd      }t        |j                               r'|j                  d      r|j                  d      r|dd }|j                  dt        |      d	       |S |j                  d
|d	       |S )Nr   z	(.*?[^`])z(?!`)r   
 rh   r   r;   r:   )r>   recompileSr@   matchrN   replacerO   strip
startswithendswithr?   r   )r2   r6   r7   rU   patternrT   rW   codes           r5   parse_codespanzInlineParser.parse_codespan  s     **\F2X=rttDeegMM%))S)eegG771:D<<c*D4::< ??3'DMM#,>":D
6$<HINv>?JrB   c                 H    |j                  ddi       |j                         S )Nr<   r#   r?   r@   r2   r6   r7   s      r5   parse_linebreakzInlineParser.parse_linebreak0       FK01uuwrB   c                 H    |j                  ddi       |j                         S )Nr<   r$   r   r   s      r5   parse_softbreakzInlineParser.parse_softbreak4  r   rB   c                     |j                         }|j                  d      }|j                  d|d       |j                  d      r	d|_        |S |j                  d      rd|_        |S )Nr   r"   r;   )z<a z<a>z<A z<A>T)z</a z</a>z</A z</A>F)r@   r>   r?   r   rM   )r2   r6   r7   rW   htmls        r5   parse_inline_htmlzInlineParser.parse_inline_html8  sc    %%'wwqzM$?@??78 EM  __=>!EMrB   r:   c                 ,    |j                  d|d       y )Nr:   r;   )r?   )r2   r:   r7   s      r5   rj   zInlineParser.process_textB  s    F489rB   c                    d}| j                         }|t        |j                        k  r|j                  |j                  |      }|sn|j	                         }||kD  r!|j                  || }| j                  ||       | j                  ||      }|s'|dz   }|j                  || }| j                  ||       n|}|t        |j                        k  r|dk(  r(| j                  |j                  |       |j                  S |t        |j                        k  r| j                  |j                  |d  |       |j                  S )Nr   r   )
compile_scrO   rN   rv   startrj   parse_methodtokens)r2   r7   rT   scr6   rW   holenew_poss           r5   parsezInlineParser.parseE  s#   __C		N"		%))S)AggiG}yyW-!!$.''51Gkyy-!!$.# C		N"& !8eii/ || 3uyy>!eiiou5||rB   rW   c                    |g d}|j                         }| j                  |      }|j                  |j                  ||      }|sy |j                  j                  dd      }| j                  |g      }|j                  |j                  |j                               }	|	sy | j                  |   }
|j                         }|j                  |_         |
|	|      }|r||k  ry |j                  |j                         |	j                          }|j                  d|d       |j                  D ]  }|j                  |        |S )N)r   r   r%   r&   prec_ r:   r;   )r@   r   rv   rN   	lastgroupr   r   r   r1   rc   r?   r   )r2   r6   r7   rW   r.   mark_posr   ry   	rule_namem2funcre   m2_posraw_textr\   s                  r5   rP   zInlineParser.precedence_scanb  s   =NE557__U#YYuyy(G4LL(("5	__i[)XXeii,}}Y'JJL				b)$')99QWWYrxxz2F8<=%% 	&Eu%	&rB   c                 <    | j                  |       |j                  S N)r   r   )r2   r7   s     r5   rd   zInlineParser.render  s    

5||rB   c                 T    | j                  |      }||_        | j                  |      S r   )	state_clsrN   rd   )r2   srR   r7   s       r5   __call__zInlineParser.__call__  s&    s#	{{5!!rB   )Fr   )(__name__
__module____qualname__sc_flagr
   r   STD_LINEBREAKr,   r   
AUTO_EMAILINLINE_HTMLr   SPECIFICATIONDEFAULT_RULESboolr+   r   intrA   r   r   rQ   rl   rn   rk   rz   r   r   r   r   strrj   r   r   r   r   rP   rd   r   __classcell__)r4   s   @r5   r   r   1   s   GI )M  N
 [(4/  <  G ""#:"\1J>/M2	M
$ 
e K C ?E ?+ ?(3- ?B&	 	{ 	s 	
% 
 
 
/ /k /c /b k c , { s  { s 5   : :[ :; 4S#X+? : { S :K "rB   r   )r~   typingr   r   r   r   r   corer	   r
   utilr   r   r   helpersr   r   r   r   r   r   r   r   r   PAREN_END_REr   r   ru   r    rB   r5   <module>r      s)   	 3 3 % 
	 	 	 rzz(#=  	</) -
 
  
F..1HH	I	F..1GG	H
"**V//2KK
L
"**V//2II
J2::f003NNO2::f003KKL	U"6 U"rB   