o
    i                     @   s"   d dl mZ deddfddZdS )   )StateInlinestatereturnNc                 C   s   d}t | j}d }}||k rr| j| jdk r|d8 }|| j| _| j| jdkr-|d7 }| j| jdkrZ|d |k rZ| j|d  jdkrZ| j| j| j|d  j | j|d  _n||krf| 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   textN)lentokensnestingleveltypecontent)r   r
   maximumcurrlast r   d/home/ubuntu/veenaModal/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    