o
    3Ih                     @  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src
scanDelimsr   pushcontent
delimitersappendr   ordlentokenscan_open	can_close)r   r   startchscannedr   r   i r%   f/home/air/sanwanet/gpt-api/venv/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   s_opensz~~r   s_closer   r
   )r   r   r   r   r   typetagnestingmarkupr   r   pop)	r   r   loneMarkersmaximumr$   
startDelimendDelimr   jr%   r%   r&   _postProcess3   sR   


)

r8   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   r8   r   
IndexError)r   r9   r4   curr	curr_metar%   r%   r&   postProcessp   s   
r=   N)r   r   r   r   r	   r   )r   r   r   r(   r	   r)   )r   r   r	   r)   )
__future__r   state_inliner   r   r'   r8   r=   r%   r%   r%   r&   <module>   s
   

,=