
    iKj%                         d dl mZ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 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y)     )TYPE_CHECKINGMatch   )escape)BlockParser)BaseRenderer
BlockStateInlineState)InlineParser)Markdown)mathmath_in_quotemath_in_listz^ {0,3}\$\$(?P<math_text_single>[^\n]*?)\$\$[ \t]*(?:\n|$)|^ {0,3}\$\$[ \t]*\n(?P<math_text_multi>[\s\S]*?)\n\$\$[ \t]*(?:\n|$)z\$\$(?P<display_math_text>(?:[^$\\]|\\.)*?)\$\$|\$(?P<backtick_math_marker>`+)(?P<backtick_math_text>[\s\S]*?)(?P=backtick_math_marker)\$|\$(?!\$)(?!\s)(?P<math_text>(?:[^$\\\n]|\\.)+?)\$(?!\d)blockr   mstater	   returnc                     |j                  d      }||j                  d      }|J |j                  d|d       |j                         S )Nmath_text_singlemath_text_multi
block_mathtyperawgroupappend_tokenend)r   r   r   texts       e/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/mistune/plugins/math.pyparse_block_mathr!      sO    77%&D|ww()	T:;557N    inliner   r
   c                    |j                  d      }|$|j                  d|d       |j                         S |j                  d      }||j                  d      }|J |j                  d|d       |j                         S )Ndisplay_math_textr   r   backtick_math_text	math_textinline_mathr   )r#   r   r   display_textr   s        r    parse_inline_mathr*       s    77./LLFGuuw77'(D|ww{#	d;<557Nr"   rendererr   r   c                 $    dt        |      z   dz   S )Nz<div class="math">$$
z

$$</div>
escape_textr+   r   s     r    render_block_mathr0   .   s    #k$&77.HHr"   c                 $    dt        |      z   dz   S )Nz<span class="math">\(z	\)</span>r-   r/   s     r    render_inline_mathr2   2   s    #k$&77,FFr"   Nc                 n   | j                   j                  dt        t        d       | j                  j                  dt
        t        d       | j                  r[| j                  j                  dk(  rA| j                  j                  dt               | j                  j                  dt               yyy)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(   codespanhtmlN)r   registerBLOCK_MATH_PATTERNr!   r#   INLINE_MATH_PATTERNr*   r+   NAMEr0   r2   mds    r    r   r   6   s      HHl$68HQWXII}&9;LU_`	{{r{{''61
\+<=
],>? 2{r"   c                 h    | j                   j                  | j                   j                  dd       y)z(Enable block math plugin in block quote.r   r4   r5   N)r   insert_ruleblock_quote_rulesr=   s    r    r   r   M   s%    HH33\&Qr"   c                 h    | j                   j                  | j                   j                  dd       y)z!Enable block math plugin in list.r   r4   r5   N)r   r@   
list_rulesr=   s    r    r   r   R   s%    HH,,l6Jr"   )r>   r   r   N)typingr   r   utilr   r.   block_parserr   corer   r	   r
   inline_parserr   markdownr   __all__r:   r;   strintr!   r*   r0   r2   r   r   r    r"   r    <module>rN      s    ' (*<<,#
3L 
? M eCj  RU n s M VY I Ic Ic IG Gs Gs G@.R
Kr"   