U
    Sh                     @   s   d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	 erhd dl
mZ d dlmZ d dlmZmZ e d	Zedd
ddZe	eedddZded eddedddZdS )    N)TYPE_CHECKINGSequence)
MarkdownIt)
escapeHtml)StateInline)RendererProtocol)Token)EnvTypeOptionsDictz^\{([a-zA-Z0-9\_\-\+\:]+)\})mdreturnc                 C   s"   | j jddt | dt dS )zParse ``{role-name}`content```Z	backticks	myst_roleN)inlineZrulerbeforer   Zadd_render_rulerender_myst_role)r    r   R/root/rtd-docs/venv/lib/python3.8/site-packages/mdit_py_plugins/myst_role/index.pymyst_role_plugin   s    r   )statesilentr   c           	      C   s4  t | j| jd  }|sdS |d}z| j| jd  dkrDW dS W n tk
rZ   Y nX | j|   }}z| j| dkr|d7 }qpW n tk
r   Y dS X || }|sdS td| | j|d d  }|sdS | j|||	  d  
dd}|s| ddd	}d
|i|_||_||  d | _dS )NF   \`
 r    r   nameT)VALID_NAME_PATTERNmatchsrcposgroup
IndexErrorendresearchstartreplacepushmetacontent)	r   r   r   r   r&   r    Ztick_lengthr*   tokenr   r   r   r      s8    

"
r   r   r   r
   r	   )selftokensidxoptionsenvr   c                 C   s.   || }|j dd}d| dt|j dS )Nr   unknownz<code class="myst role">{z}[z]</code>)r)   getr   r*   )r,   r-   r.   r/   r0   r+   r   r   r   r   r   A   s    r   )r$   typingr   r   Zmarkdown_itr   Zmarkdown_it.common.utilsr   Zmarkdown_it.rules_inliner   Zmarkdown_it.rendererr   Zmarkdown_it.tokenr   Zmarkdown_it.utilsr	   r
   compiler   r   boolr   intstrr   r   r   r   r   <module>   s$   
,