U
    muf
                     @   sV   d dl Z ddlmZ ddlmZmZ dZe eZdd Z	dd	 Z
d
d Zdd ZdS )    N   )unikey)
parse_linkparse_link_labelz\[(?:\w+\(\w+\))+\]c                 C   s   | ddd }|d}g }|D ](}|d\}}|d|d|id q$| }	t|j|	}
|
r|D ]}|| qlt| |
|S |	t	|jk rt
| ||	|}|r|S |D ]}|| q|	S )	Nr      )(rubyrt)typerawattrs)groupsplitappendend_ruby_rematchsrcappend_token
parse_rubylen_parse_ruby_link)inlinemstatetextitemstokensitemrbr   Zend_posZ
next_matchtoklink_pos r$   8/tmp/pip-unpacked-wheel-8p1ovdot/mistune/plugins/ruby.pyr   
   s.    

r   c                 C   s   |j | }|dkrBt|j |d \}}|r|d||d |S n|dkrt|j |d \}}|r|r|jd }t|}	||	}
|
r|
d |
dd	}|d||d n,|D ]}|| q|d
d| d d |S d S )Nr	   r   link)r   childrenr   [	ref_linksurltitle)r*   r+   r   ])r   r   )r   r   r   r   envr   get)r   r   posr   cr   r#   labelr)   keyr-   r"   r$   r$   r%   r   )   s<    




r   c                 C   s   d| d | d S )Nz
<ruby><rb>z	</rb><rt>z</rt></ruby>r$   )rendererr   r   r$   r$   r%   render_rubyN   s    r4   c                 C   s8   | j jdttdd | jr4| jjdkr4| jdt dS )uq  A mistune plugin to support ``<ruby>`` tag. The syntax is defined
    at https://lepture.com/en/2022/markdown-ruby-markup:

    .. code-block:: text

        [漢字(ㄏㄢˋㄗˋ)]
        [漢(ㄏㄢˋ)字(ㄗˋ)]

        [漢字(ㄏㄢˋㄗˋ)][link]
        [漢字(ㄏㄢˋㄗˋ)](/url "title")

        [link]: /url "title"

    :param md: Markdown instance
    r
   r&   )beforehtmlN)r   registerRUBY_PATTERNr   r3   NAMEr4   )Zmdr$   r$   r%   r
   R   s    r
   )reutilr   Zhelpersr   r   r8   compiler   r   r   r4   r
   r$   r$   r$   r%   <module>   s   
%