o
    Zh                     @  s>   d dl mZ ddlmZmZ dd	d
ZdddZdddZdS )    )annotations   )	DelimiterStateInlinestater   silentboolreturnc              
   C  s   | j }| j| }|rdS |dkrdS | | j d}|j}|dk r"dS |d r4| ddd}||_|d8 }d}||k re| ddd}|| |_| jtt	|dt
| jd d	|j|jd
 |d7 }||k s:|  j |j7  _ dS )zIInsert each marker as a separate text token, and add it to delimiter listF~T   text r   r   )markerlengthtokenendopenclose)possrcZ
scanDelimsr   pushcontent
delimitersappendr   ordlentokensZcan_openZ	can_close)r   r   startchZscannedr   r   i r!   ]/var/www/html/lang_env/lib/python3.10/site-packages/markdown_it/rules_inline/strikethrough.pytokenize   s@   

r#   r   list[Delimiter]Nonec           	      C  s  g }t |}d}||k ry|| }|jdkr|d7 }q|jdkr$|d7 }q||j }| j|j }d|_d|_d|_d|_d|_	| j|j }d	|_d|_d|_d|_d|_	| j|jd  jd
krq| j|jd  j	dkrq|
|jd  |d7 }||k s|r| }|d }|t | jk r| j| jd	kr|d7 }|t | jk r| j| jd	ks|d8 }||kr| j| }| j| | j|< || j|< |s{d S d S )Nr   ~   r   r   Zs_opensz~~r   Zs_closer   r
   )r   r   r   r   r   typetagZnestingmarkupr   r   pop)	r   r   ZloneMarkersmaximumr    Z
startDelimZendDelimr   jr!   r!   r"   _postProcess3   sR   


)

r.   c                 C  sz   | j }t| j }t| | j d}||k r;z|| }W n	 ty#   Y nw |r1d|v r1t| |d  |d7 }||k sdS dS )z>Walk through delimiter list and replace text tokens with tags.r   r   r   N)tokens_metar   r.   r   
IndexError)r   r/   r,   currZ	curr_metar!   r!   r"   postProcessp   s   
r2   N)r   r   r   r   r	   r   )r   r   r   r$   r	   r%   )r   r   r	   r%   )
__future__r   Zstate_inliner   r   r#   r.   r2   r!   r!   r!   r"   <module>   s
   

,=