U
    Sh3                     @  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k}t|jD ]H}| ddd}||_| jt	t
||jt| jd d|j|jd	 q@|  j |j7  _ d
S )zIInsert each marker as a separate text token, and add it to delimiter listF)_*r   text r   r   )markerlengthtokenendopencloseT)possrcZ
scanDelimsranger   pushcontent
delimitersappendr   ordlentokensZcan_openZ	can_close)r   r   startr   Zscannedr
   r    r    T/root/rtd-docs/venv/lib/python3.8/site-packages/markdown_it/rules_inline/emphasis.pytokenize   s,    
r"   zlist[Delimiter]None)r   r   r	   c                 C  s  t |d }|dkr|| }|jdkr<|jdkr<|d8 }q|jdkrP|d8 }q||j }|dko||d  j|jd ko||d  j|jko||d  j|jd ko||jd  j|jd k}t|j}| j|j }|rdnd|_|rdnd	|_d|_|r|| n||_	d
|_
| j|j }|r(dnd|_|r8dnd	|_d|_|rR|| n||_	d
|_
|rd
| j||d  j _
d
| j||jd  j _
|d8 }|d8 }qd S )Nr   r   _   *   r   Zstrong_openZem_openstrongZemr   Zstrong_closeZem_close)r   r   r   r   chrr   typetagZnestingmarkupr   )r   r   iZ
startDelimZendDelimZisStrongchr   r    r    r!   _postProcess(   sJ    




r-   )r   r	   c                 C  s6   t | | j | jD ]}|rd|krt | |d  qdS )z>Walk through delimiter list and replace text tokens with tags.r   N)r-   r   Ztokens_meta)r   r   r    r    r!   postProcess`   s    
r.   N)
__future__r   Zstate_inliner   r   r"   r-   r.   r    r    r    r!   <module>   s    8