o
    j3                     @  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  sz  | j }| j| }|rdS |dkrdS | | j d}|j}| jjdd}|rj|dk r,dS |dkrF| ddd	}|| |_|  j |j7  _ dS | ddd	}|| |_| j	
tt|d	t| jd d
|j|jd nI|dk rpdS |d r| ddd	}||_|d8 }d	}||k r| ddd	}|| |_| j	
tt|d	t| jd d
|j|jd |d7 }||k s|  j |j7  _ dS )a7  Insert each marker as a separate text token, and add it to delimiter list.

    When the ``strikethrough_single_tilde`` option is enabled on the
    ``MarkdownIt`` instance, single ``~`` delimiters are also accepted and
    runs of three or more tildes are rejected (matching GitHub's rendering behaviour).
    F~Tstrikethrough_single_tilder      text r   )markerlengthtokenendopenclose)possrc
scanDelimsr   mdoptionsgetpushcontent
delimitersappendr   ordlentokenscan_open	can_close)	r   r   startchscannedr   single_tilder   i r*   l/var/www/html/fyndo/pharma/fyndo/venv/lib/python3.10/site-packages/markdown_it/rules_inline/strikethrough.pytokenize   sj   



r,   r   list[Delimiter]Nonec                 C  s  g }t |}| jjdd}d}||k r|| }|jdkr"|d7 }q|jdkr,|d7 }q||j }|rJ| j|j j}| j|j j}	||	krJ|d7 }q| j|j j}
| j|j }d|_	d|_
d|_|
|_d	|_| j|j }d
|_	d|_
d|_|
|_d	|_| j|jd  j	dkr| j|jd  jdkr||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|< |sd S d S )Nr   Fr   ~   r   r   s_opensr   s_closer   r
   )r!   r   r   r   r   r   r"   r   r   typetagnestingmarkupr   pop)r   r   loneMarkersmaximumr(   r)   
startDelimendDelimopener_contentcloser_contentr6   r   jr*   r*   r+   _postProcessU   sb   


4

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@   r9   curr	curr_metar*   r*   r+   postProcess   s   
rD   N)r   r   r   r   r	   r   )r   r   r   r-   r	   r.   )r   r   r	   r.   )
__future__r   state_inliner   r   r,   r?   rD   r*   r*   r*   r+   <module>   s
   

NI