
    Mhb                         d dl mZ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 g dZdZd	Zd
ddee         dddefdZdddee         dddefdZdddedefdZdddedefdZd dZd dZd dZdS )!    )TYPE_CHECKINGMatch   )BlockParser)BaseRenderer
BlockStateInlineState)InlineParser)Markdown)mathmath_in_quotemath_in_listz7^ {0,3}\$\$[ \t]*\n(?P<math_text>[\s\S]+?)\n\$\$[ \t]*$z"\$(?!\s)(?P<math_text>.+?)(?!\s)\$blockr   mstater   returnc                     |                     d          }|                    d|d           |                                dz   S )N	math_text
block_mathtyperaw   groupappend_tokenend)r   r   r   texts       T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mistune/plugins/math.pyparse_block_mathr       sA    77;D	T::;;;5577Q;    inliner
   r	   c                     |                     d          }|                    d|d           |                                S )Nr   inline_mathr   r   )r"   r   r   r   s       r   parse_inline_mathr%      s<    77;D	d;;<<<5577Nr!   rendererr   r   c                     d|z   dz   S )Nz<div class="math">$$
z

$$</div>
 r&   r   s     r   render_block_mathr*      s    #d*^;;r!   c                     d|z   dz   S )Nz<span class="math">\(z	\)</span>r(   r)   s     r   render_inline_mathr,      s    #d*\99r!   mdr   Nc                 \   | j                             dt          t          d           | j                            dt
          t          d           | j        rR| j        j        dk    rD| j                            dt                     | j                            dt                     dS dS dS )a'  A mistune plugin to support math. The syntax is used
    by many markdown extensions:

    .. code-block:: text

        Block math is surrounded by $$:

        $$
        f(a)=f(b)
        $$

        Inline math is surrounded by `$`, such as $f(a)=f(b)$

    :param md: Markdown instance
    r   listbeforer$   linkhtmlN)r   registerBLOCK_MATH_PATTERNr    r"   INLINE_MATH_PATTERNr%   r&   NAMEr*   r,   r-   s    r   r   r   #   s      Hl$68HQWXXXI}&9;LU[\\\	{ @r{'611
\+<===
],>?????@ @11r!   c                 T    | j                             | j         j        dd           dS )z(Enable block math plugin in block quote.r   r/   r0   N)r   insert_ruleblock_quote_rulesr8   s    r   r   r   :   s*    H3\&QQQQQr!   c                 T    | j                             | j         j        dd           dS )z!Enable block math plugin in list.r   r/   r0   N)r   r:   
list_rulesr8   s    r   r   r   ?   s*    H,l6JJJJJr!   )r-   r   r   N)typingr   r   block_parserr   corer   r   r	   inline_parserr
   markdownr   __all__r5   r6   strintr    r%   r*   r,   r   r   r   r(   r!   r   <module>rF      s   ' ' ' ' ' ' ' ' $******<<<<<<<<<<,,,,,,######
3
3
3O ; M eCj  RU    n s M VY    < <c <c < < < <: :s :s : : : :@ @ @ @.R R R R
K K K K K Kr!   