U
    Sh                     @  sT   d dl mZ ddlmZmZ ddddddZdd	d
dddZdd
dddZdS )    )annotations   )	DelimiterStateInliner   bool)statesilentreturnc              
   C  s   | j }| j| }|rdS |dkr$dS | | j d}|j}|dk rDdS |d rh| ddd}||_|d8 }d}||k r| ddd}|| |_| jtt	|dt
| jd d	|j|jd
 |d7 }ql|  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!   Y/root/rtd-docs/venv/lib/python3.8/site-packages/markdown_it/rules_inline/strikethrough.pytokenize   s>    


r#   zlist[Delimiter]None)r   r   r	   c           	      C  sj  g }t |}d}||k r|| }|jdkr4|d7 }q|jdkrH|d7 }q||j }| j|j }d|_d|_d|_d|_d|_	| j|j }d	|_d|_d|_d|_d|_	| j|jd  jd
kr| j|jd  j	dkr|
|jd  |d7 }q|rf| }|d }|t | jk r0| j| jd	kr0|d7 }q|d8 }||kr| j| }| j| | j|< || j|< qd 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   sP    



"
r-   )r   r	   c                 C  sr   | j }t| j }t| | j d}||k rnz|| }W n tk
rH   Y nX |rdd|krdt| |d  |d7 }q 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    
r1   N)
__future__r   Zstate_inliner   r   r#   r-   r1   r!   r!   r!   r"   <module>   s   ,=