
    c%                        U d dl Z d dlmZ d dlmZ d dlmZ d2dedee         fdZd	e	fd
Z
d Zd Zd Zd Zd Zd e j        de j                  dddgd e j        de j                  dddd e j        de j                  dddgdd e j        d          dddgd e j        de j                  d d!dd e j        d"e j                  dd!dgdd e j        d#          dd$dd e j        d%          dd&eed'd( e j        d)          dd&eed'gd e j        de j                  dd!dd e j        d"e j                  d*d!dgdd e j        d+          dd,dgd e j        d-e j                  dd,dd e j        d.e j                  d*d,dgdd e j        d/          dd&eed'd( e j        d)          dd&eed'gd e j        d-e j                  d d,dd e j        d.e j                  dd,dgdd0Zeed1<   dS )3    N)Optional)
MarkdownIt
charCodeAtdollarsmdmacrosc                    pi |t           v rt           |         d         D ]X| j        j                            dd         t	                               fd}|                     d         |           Yt           |         d         D ]Z| j        j                            dd         t                               fd}|                     d         |           YdS dS )	a7  Plugin ported from
    `markdown-it-texmath <https://github.com/goessner/markdown-it-texmath>`__.

    It parses TeX math equations set inside opening and closing delimiters:

    .. code-block:: md

        $\alpha = \frac{1}{2}$

    :param delimiters: one of: brackets, dollars, gitlab, julia, kramdown

    inlineescapenamec                 n    d                              t          ||         j        d                    S )NtmplF)formatrendercontent)selftokensidxoptionsenvr	   rule_inlines        =lib/python3.11/site-packages/mdit_py_plugins/texmath/index.pyrender_math_inlinez*texmath_plugin.<locals>.render_math_inline   s6    "6*116#;.v>>      blockfencec                     d                              t          ||         j        d          ||         j                  S )Nr   T)r   r   r   info)r   r   r   r   r   r	   
rule_blocks        r   render_math_blockz)texmath_plugin.<locals>.render_math_block)   s?    !&)006#;.f==vc{?O  r   N)rulesr   rulerbeforemake_inline_funcadd_render_ruler   make_block_func)r   
delimitersr	   r   r!   r    r   s     `  @@r   texmath_pluginr)      sK    \rFU F ,X6 
	H 
	HKIO""+f-/?/L/L       
 {624FGGGG
+G4 
	F 
	FJHN!!F+_Z-H-H       
 z&13DEEEE/F F
	F 
	Fr   stringc                    |                     | d         |          rd| v r | d         ||          sn	 ndS | d                             ||d                    }|r|                                dk    rdS |                                |z   dz
  }d| v r- | d         ||          r|rd	|                    d          vsdS |S )
NtagpreTFrexr      post
)
startswithmatchstartendgroup)ruler*   begininBlockquoter3   	lastIndexs         r   	applyRuler;   1   s    	$u+u--+0D=T%['' >B uKfUVVn--E EKKMMQ& u		e#a'I~ DL++	 "	 &*Q%?	
 5Lr   c                       fd}|S )Nc                    t          | j        | j        d          }|r[|s7|                     d         dd          }|d         |_        d         |_        | xj        |                                z  c_        t          |          S )NFr   mathr   r/   r,   )r;   srcpospushr   markupr5   bool)statesilentrestokenr7   s       r   _funczmake_inline_func.<locals>._funcJ   s}    eiE:: 	# +

4<;; #A#E{II"IICyyr    r7   rH   s   ` r   r%   r%   I   s#    
 
 
 
 
 Lr   c                       fd}|S )Nc                 `   | j         |         | j        |         z   }t          	| j        || j        dk              }|r|sj|                     	d         dd          }d|_        |d         |_        |t          |	                                                   |_
        	d         |_        |}||                                z   dz
  }||k     r8|| j         |         k    r|| j        |         k    r|dz   | _        n|dz  }||k     8||                                z   | _        t!          |          S )N
blockquoter   r>   r   Tr/   r,   )bMarkstShiftr;   r?   
parentTyperA   r   r   lengroupsr   rB   r5   eMarksliner@   rC   )
rD   begLineendLinerE   r8   rF   rG   rT   endposr7   s
            r   rH   zmake_block_func.<locals>._funcZ   s0   W%W(==ei0@L0PQQ 	* +

4<;;" #A SZZ\\!2!23
#E{DSWWYY&*F. U\$// Fel4>P4P !%EJ	 .  		)EICyyr   rI   rJ   s   ` r   r'   r'   Y   s#        2 Lr   c                 n    |dk    rt          | |dz
           d          nd}| p|dk    o|dk     p|dk    S )Nr   r/   F\   0   9   r   )strbegprvs      r   
dollar_prer_   v   sL    ),q
;*Sq\1
%
%
%eC?SD[?cDj&>C$Jr   c                     	 | |dz            ot          | |dz            d          }n# t          $ r Y dS w xY w| p|dk     p|dk    S )Nr/   r   TrZ   r[   )r   
IndexError)r*   r5   nxts      r   dollar_postrc   }   sm    S1Wo@*VC!G_a"@"@   tt 1cDj1cDjs   $' 
55c                     | S )NrI   )texdisplayModer	   s      r   r   r      s    Jr   math_inlinez^\\\((.+?)\\\)z<eq>{0}</eq>z\()r   r.   r   r,   math_block_eqnoz7^\\\[(((?!\\\]|\\\[)[\s\S])+?)\\\]\s*?\(([^)$\r\n]+?)\)z@<section class="eqno"><eqn>{0}</eqn><span>({1})</span></section>z\[
math_blockz^\\\[([\s\S]+?)\\\]z$<section>
<eqn>{0}</eqn>
</section>
)r   r   z^\$`(.+?)`\$z$`z2^`{3}math\s+?([^`]+?)\s+?`{3}\s*?\(([^)$\r\n]+?)\)zC<section class="eqno">
<eqn>{0}</eqn><span>({1})</span>
</section>
z```mathz^`{3}math\s+?([^`]+?)\s+?`{3}z^`{2}([^`]+?)`{2}z``z^\$(\S[^$\r\n]*?[^\s\\]{1}?)\$$)r   r.   r   r,   r-   r0   math_singlez^\$([^$\s\\]{1}?)\$z!<section><eqn>{0}</eqn></section>z^\${2}([^$\r\n]*?)\${2}z$$z(^\${2}([^$]*?)\${2}\s*?\(([^)$\r\n]+?)\)z^\${2}([^$]*?)\${2}z^\$(\S[^$]*?[^\s\\]{1}?)\$)bracketsgitlabjuliakramdownr   r"   )r   N)retypingr   markdown_itr   markdown_it.common.utilsr   dictr)   r\   r;   r%   r'   r_   rc   r   compileDOTALLMr"   __annotations__rI   r   r   <module>ry      sg   					       " " " " " " / / / / / /&F &Fz &F$ &F &F &F &FRC    0     :      . &!rz"3RY??&	 
 *!rzNPRPT  [  %!rz"8"$??A	 
 : &!rz/22&	 
 *!rzI24  a   %!rz"BBDIIA 	 
 : &!rz"677&	  &!rz"CDD&!#  &!rz"899&!# 
4 *!rzI24  [   %!rz"BBDII; 	 
3) )Z &!rz"<==&	 
 *!rz"MrtTTZ	  %!rz"8"$??;	 
 6 &!rz"?@@&!#  &!rz"899&!# 
( *!rz"MrtTT`	  %!rz"8"$??A	 
'! !oY Yt Y Y Y Y Yr   