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*   úc/var/www/html/CropPilot/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|< |s£d 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