
    h                        S SK r S SKJrJrJrJrJrJr  SSKJ	r	J
r
  SSKJr  \(       a  SSKJrJr  SSKJr  SSKJr  S	r\ R*                  " \5      rS
SS\\   SSS\4S jrS
SSSS\S\\\\4      S\\   4
S jrSSS\S\S\4S jrSS jrg)    N)TYPE_CHECKINGAnyDictListMatchOptional   )
parse_linkparse_link_label)unikey)BaseRendererInlineState)InlineParser)Markdownz\[(?:\w+\([\w ]+\))+\]inliner   mstater   returnc                    UR                  S5      SS nUR                  S5      n/ nU H-  nUR                  S5      u  pxUR                  SUSU0S.5        M/     UR                  5       n	[        R                  UR                  U	5      n
U
(       a&  U H  nUR                  U5        M     [        X
U5      $ U	[        UR                  5      :  a  [        XX5      nU(       a  U$ U H  nUR                  U5        M     U	$ )	Nr      )(rubyrt)typerawattrs)groupsplitappendend_ruby_rematchsrcappend_token
parse_rubylen_parse_ruby_link)r   r   r   textitemstokensitemrbr   end_pos
next_matchtoklink_poss                gC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\mistune/plugins/ruby.pyr'   r'      s    771:aDJJsOEFCvbD":FG  eegG		73JCs# &e44 UYY#F7CO3 N    posr,   c                 .   UR                   U   nUS:X  a;  [        UR                   US-   5      u  pVU(       a  UR                  SUUS.5        U$  g US:X  a  [        UR                   US-   5      u  pvU(       a  U(       a  UR                  S   n[        U5      n	UR                  U	5      n
U
(       a.  U
S   U
R                  S5      S	.nUR                  SUUS.5        U$ U H  nUR                  U5        M     UR                  S
SU-   S-   S.5        U$ g )Nr   r   link)r   childrenr   [	ref_linksurltitle)r;   r<   r*   ])r   r   )r%   r
   r&   r   envr   get)r   r   r5   r,   cr   r2   labelr:   keyr>   r1   s               r3   r)   r)   ,   s+    			#ACx$UYYa8" &" O H 5 
c*599cAg>X		+.I-C--$C #E
SWWW5EF"" &$*!&  O "C&&s+ """ &"U{S0 Or4   rendererr   r*   r   c                     SU-   S-   U-   S-   $ )Nz<ruby>z<rt>z</rt></ruby> )rC   r*   r   s      r3   render_rubyrF   Z   s    d?V#b(>99r4   c                     U R                   R                  S[        [        SS9  U R                  (       a<  U R                  R
                  S:X  a!  U R                  R                  S[        5        ggg)uM  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   r7   )beforehtmlN)r   registerRUBY_PATTERNr'   rC   NAMErF   )mds    r3   r   r   ^   sR      IIv|ZG	{{r{{''61
V[1 2{r4   )rM   r   r   N)retypingr   r   r   r   r   r   helpersr
   r   utilr   corer   r   inline_parserr   markdownr   rK   compiler#   strintr'   r)   rF   r   rE   r4   r3   <module>rX      s    	 B B 2 0,# )::l#~ %* ] s 6++#0+7:+DHcSVhDX+c]+\:. : : : :2r4   