
    h                         S SK r S SKrS SKJrJr  SSKJr  SSKJr  \(       a  SSK	J
r
  SSKJrJrJr  SSKJr  SS	KJr  S
/rS\-   S-   rSSS\\   SSS\4S jrSSS\SSSS4S jrSSS\S\S\4S jrSS jrg)    N)TYPE_CHECKINGMatch   )PREVENT_BACKSLASHescape)BlockParser)BaseRenderer
BlockStateInlineState)InlineParser)Markdownabbrz^ {0,3}\*\[(?P<abbr_key>[^\]]+)z<\]:(?P<abbr_text>(?:[ \t]*\n(?: {3,}|\t)[^\n]+)|(?:[^\n]*))$blockr	   mstater   returnc                    UR                   R                  S5      nU(       d  0 nUR                  S5      nUR                  S5      nUR                  5       X4'   X2R                   S'   UR	                  SS05        UR                  5       S-   $ )N	ref_abbrsabbr_key	abbr_texttype
blank_line   )envgetgroupstripappend_tokenend)r   r   r   refkeytexts         gC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\mistune/plugins/abbr.pyparse_ref_abbrr%      st    
))--
$C
''*
C77;Dzz|CH IIk	-.557Q;    inliner   r#   r   c                    UR                   R                  S5      nU(       d  UR                  SUS.5      $ UR                  (       a:  UR                  S   nUS   S:X  a"  UR                  R	                  5         US   U-   nUR                   R                  S5      nU(       dH  [
        R                  " SR                  S	 UR                  5        5       5      5      nXRR                   S'   S
nU[        U5      :  a  UR                  X5      nU(       d  O|UR                  5       nX:  a  XU n	UR                  SU	S.5        UR                  S
5      n
UR                  SSU
S./SX:   0S.5        UR                  5       nU[        U5      :  a  M  US
:X  a  UR                  SUS.5        g U[        U5      :  a  UR                  SXS  S.5        g g )Nr   r#   )r   rawr   r)   abbrs_re|c              3   N   #    U  H  n[         R                  " U5      v   M     g 7f)N)rer   ).0ks     r$   	<genexpr>process_text.<locals>.<genexpr>1   s     'Ij		!js   #%r   r   title)r   childrenattrs)r   r   r   tokenspopr.   compilejoinkeyslensearchstartr   r    )r'   r#   r   r!   lastr+   posr   end_posholelabels              r$   process_textrC   $   s   
))--
$C!!6$"?@@||||B<6!LL;%Dyy}}Z(H::dii'Ichhj'IIJ (		*
C
D	/OOD&'')=G$Dt<=
6%*H)IU\^a^hTij	
 eeg D	/  axF489	s4yF4:>? 
r&   rendererr
   r3   c                 N    U(       d  SU-   S-   $ S[        U5      -   S-   U-   S-   $ )Nz<abbr>z</abbr>z<abbr title="z">r   )rD   r#   r3   s      r$   render_abbrrF   L   s2    $**VE]*T1D89DDr&   c                 N   U R                   R                  S[        [        SS9  [        R
                  " [        U R                  5      U R                  l        U R                  (       a<  U R                  R                  S:X  a!  U R                  R                  S[        5        ggg)a  A mistune plugin to support abbreviations, spec defined at
https://michelf.ca/projects/php-markdown/extra/#abbr

Here is an example:

.. code-block:: text

    The HTML specification
    is maintained by the W3C.

    *[HTML]: Hyper Text Markup Language
    *[W3C]:  World Wide Web Consortium

It will be converted into HTML:

.. code-block:: html

    The <abbr title="Hyper Text Markup Language">HTML</abbr> specification
    is maintained by the <abbr title="World Wide Web Consortium">W3C</abbr>.

:param md: Markdown instance
ref_abbr	paragraph)beforehtmlr   N)r   registerREF_ABBRr%   types
MethodTyperC   r'   rD   NAMErF   )mds    r$   r   r   R   so    . HHj(N;O"--lBIIFBII	{{r{{''61
V[1 2{r&   )rQ   r   r   N)r.   rN   typingr   r   helpersr   utilr   block_parserr	   corer
   r   r   inline_parserr   markdownr   __all__rM   strintr%   rC   rF   r    r&   r$   <module>r]      s    	  ' ' *<<,#( '):: >A A 	
- 
E#J 
| 
PS 
%@ %@s %@= %@T %@PE. E EC EC E2r&   