U
    ^g                     @  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!   J/tmp/pip-unpacked-wheel-l8p1c1gx/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nestingZ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    
r0   N)
__future__r   Zstate_inliner   r   r#   r,   r0   r!   r!   r!   r"   <module>   s   ,=