o
    Ù­jÀ  ã                   @   s"   d dl mZ deddfdd„ZdS )é   )ÚStateInlineÚstateÚreturnNc                 C   sj  d}t | jƒ}d }}||k r§| j| jdk r|d8 }|| j| _| j| jdkr-|d7 }| j| jdkr�|d |k r�| j|d  jdkr�| j| jg}|d7 }||k ru| j| jdkru| | j| j¡ |d7 }||k ru| j| jdks\| j|d  }d |¡|_||_|| j|< |d7 }q||kr›| j| | j|< |d7 }|d7 }||k s||kr³| j|d…= dS dS )a¼  
    Clean up tokens after emphasis and strikethrough postprocessing:
    merge adjacent text nodes into one and re-calculate all token levels

    This is necessary because initially emphasis delimiter markers (``*, _, ~``)
    are treated as their own separate text tokens. Then emphasis rule either
    leaves them as text (needed to merge with adjacent text) or turns them
    into opening/closing tags (which messes up levels inside).
    é    r   ÚtextÚ N)ÚlenÚtokensÚnestingÚlevelÚtypeÚcontentÚappendÚjoin)r   r   ÚmaximumÚcurrÚlastÚpartsÚmerged© r   úd/var/www/html/CropPilot/venv/lib/python3.10/site-packages/markdown_it/rules_inline/fragments_join.pyÚfragments_join   s@   

þ
ß#ÿr   )Ústate_inliner   r   r   r   r   r   Ú<module>   s    