
    iKj                     D   d dl Z d dlZd dlmZmZmZmZ ddlmZ ddl	m
Z
 erddlmZ ddlmZmZmZ ddlmZ dd	lmZ d
gZeeef   Zdez   dz   Zdddee   dddefdZdddedddeddf
dZdddee   dddededdfdZ	 d$dddedddeddf
dZdd ded!edefd"Zd%d#Z y)&    N)TYPE_CHECKINGListMatchTuple   )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                    |j                   j                  d      }|si }|j                  d      }|j                  d      }|j                         ||<   ||j                   d<   |j	                  ddi       |j                         dz   S )N	ref_abbrsabbr_key	abbr_texttype
blank_line   )envgetgroupstripappend_tokenend)r   r   r   refkeytexts         e/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/mistune/plugins/abbr.pyparse_ref_abbrr'      sx    
))--
$C
''*
C77;Dzz|CH EIIk	-.557Q;    inliner   r%   r   parse_emphasisc                 @    t        |       j                  | |||       y )N)r*   )r   process_text)r)   r%   r   r*   s       r&   _append_textr-   %   s     	LfdE.Qr(   segmentsstartr"   c                     d}|D ]W  \  }}|t        |      z   }||k  r=||kD  r8t        ||z
  d      }	t        ||z
  t        |            }
t        | ||	|
 ||       |}Y y )Nr   )lenmaxminr-   )r)   r.   r   r/   r"   offsetvaluer*   next_offset
part_startpart_ends              r&   _append_text_segmentsr9   .   sr     F!)~s5z);3<UV^Q/J3<U4Hz(!;UNS "*r(   c           	         |j                   j                  d      }|st        | |||      S g }|j                  rW|j                  d   }|d   dk(  r@|j                  j	                          |j                  |d   |j                  dd      f       |j                  ||f       dj                  d	 |D              }|j                   j                  d
      }|sHt        j                  dj                  d |j                         D                    }||j                   d
<   d}|t        |      k  r|j                  ||      }	|	snr|	j                         }
|
|kD  rt        | ||||
       |	j                  d      }|j                  dd|dgd||   id       |	j!                         }|t        |      k  r|dk(  rt        | ||dt        |             y |t        |      k  rt        | |||t        |             y y )Nr   r   r%   raw	_emphasisT c              3   &   K   | ]	  \  }}|  y wN ).0r5   _s      r&   	<genexpr>zprocess_text.<locals>.<genexpr>P   s     2XUA5s   abbrs_re|c              3   F   K   | ]  }t        j                  |        y wr@   )rer
   )rB   ks     r&   rD   zprocess_text.<locals>.<genexpr>T   s     'Ij		!js   !r   r   )r   r<   title)r   childrenattrs)r   r   r-   tokenspopappendjoinrH   compilekeysr1   searchr/   r9   r   r!   r"   )r)   r%   r   r*   r#   r.   lastrE   posr   end_poslabels               r&   r,   r,   ?   s    ))--
$CFD%@@"$H||||B<6!LLOOT%[$((;*EFGOOT>*+77222Dyy}}Z(H::dii'Ichhj'IIJ (		*
C
D	/OOD#&'')S=!&(E3H
6%*H)IU\^abg^hTij	
 eeg D	/ axfhq#d)D	s4yfhsCIF 
r(   rendererr   rJ   c                 D    |sd|z   dz   S dt        |      z   dz   |z   dz   S )Nz<abbr>z</abbr>z<abbr title="z">r	   )rX   r%   rJ   s      r&   render_abbrrZ   n   s2    $**VE]*T1D89DDr(   c                 F   | j                   j                  dt        t        d       t	        j
                  t        | j                        | j                  _        | j                  r;| j                  j                  dk(  r!| j                  j                  dt               yyy)aG  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
MethodTyper,   r)   rX   NAMErZ   )mds    r&   r   r   t   so    . HHj(N;O"--lBIIFBII	{{r{{''61
V[1 2{r(   )T)re   r   r   N)!rH   rb   typingr   r   r   r   helpersr   utilr
   block_parserr   corer   r   r   inline_parserr   markdownr   __all__strboolTextSegmentra   intr'   r-   r9   r,   rZ   r   rA   r(   r&   <module>rr      se   	  4 4 ' *<<,#(CI '):: >A A 	
- 
E#J 
| 
PS 
RR
R R 	R
 
R;  	
 
 
*  	,G,G
,G ,G 	,G
 
,G^E. E EC EC E2r(   