
    f
                     h    d dl Z ddlmZ ddlmZmZ dZ e j                  e      Zd Z	d Z
d Zd	 Zy)
    N   )unikey)
parse_linkparse_link_labelz\[(?:\w+\(\w+\))+\]c                    |j                  d      dd }|j                  d      }g }|D ]-  }|j                  d      \  }}|j                  d|d|id       / |j                         }	t        j                  |j                  |	      }
|
r%|D ]  }|j                  |        t        | |
|      S |	t        |j                        k  rt        | ||	|      }|r|S |D ]  }|j                  |        |	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   end_pos
next_matchtoklink_poss                O/var/www/cvtools/html/venv/lib/python3.12/site-packages/mistune/plugins/ruby.pyr   r   
   s   771:aDJJsOEF CBBZ
 	 eegG		73J 	$Cs#	$&*e44 UYY#FE7FCO  3 N    c                    |j                   |   }|dk(  r6t        |j                   |dz         \  }}|r|j                  d||d       |S y |dk(  rt        |j                   |dz         \  }}|r|r|j                  d   }t        |      }	|j                  |	      }
|
r.|
d   |
j                  d      d	}|j                  d||d       |S |D ]  }|j                  |        |j                  d
d|z   dz   d       |S y y y )Nr   r   link)r   childrenr   [	ref_linksurltitle)r/   r0   r   ])r   r   )r   r   r   r   envr   get)r   r   posr!   cr   r'   labelr.   keyr2   r&   s               r(   r   r   )   s5   		#ACx$UYYa8x"  
 O  
c*599cAg>xX		+.I-C--$C #E
SWWW5EF""" &"$  O " ,C&&s+,""";,$  O% 5 
r)   c                     d|z   dz   |z   dz   S )Nz
<ruby><rb>z	</rb><rt>z</rt></ruby> )rendererr   r   s      r(   render_rubyr;   N   s    $,r1NBBr)   c                     | j                   j                  dt        t        d       | j                  r;| j                  j
                  dk(  r!| j                  j                  dt               yyy)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   r:   NAMEr;   )mds    r(   r   r   R   sR      IIv|ZG	{{r{{''61
V[1 2{r)   )reutilr   helpersr   r   r@   compiler   r   r   r;   r   r9   r)   r(   <module>rG      s;    	  2 &2::l#>"JC2r)   