
    -Ph                       d Z ddlmZ ddlZddlmZ ddlmZmZ ddl	m
Z
 ddlZddlmZ ddlmZ dd	lmZ erdd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ dZej        j                            e          Z d%dZ!d&dZ"d'd"Z#d(d$Z$dS ))zAllow `MathJax`_ to be used to display math in Sphinx's HTML writer.

This requires the MathJax JavaScript library on your webserver/computer.

.. _MathJax: https://www.mathjax.org/
    )annotationsN)NoneType)TYPE_CHECKINGcast)nodes)ExtensionError)_)get_node_equation_number)Any)Sphinx)StandaloneHTMLBuilder)ExtensionMetadata)HTML5Translatorz;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.jsselfr   node
nodes.mathreturnNonec                `   | j                             |                     |ddd                     | j                             | j        j        j        d         |                     |                                          z   | j        j        j        d         z   dz              t          j	        )Nspan math notranslate nohighlightCLASSr      </span>)
bodyappendstarttagbuilderconfigmathjax_inlineencodeastextr   SkipNode)r   r   s     R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sphinx/ext/mathjax.pyhtml_visit_mathr'   $   s    IdFB.LMM   	I*1-
++dkkmm
$
$	%
,

,Q
/	0 	   .    nodes.math_blockc                   | j                             |                     |dd                     |                    d|                    dd                    re| j                             |                     |                                                     | j                             d           t          j        |d         rjt          | |          }| j                             d	|z             | 	                    |t          d
                     | j                             d           | j                             | j        j        j        d                    d |                                                    d          D             }t          |          dk    r| j                             d           t!          |          D ]\  }}|                     |          }d|v r!| j                             d|z   dz              n| j                             |           |t          |          dz
  k     r| j                             d           t          |          dk    r| j                             d           | j                             | j        j        j        d                    | j                             d           t          j        )Ndivr   r   zno-wrapnowrapFz</div>numberz<span class="eqno">(%s)zLink to this equationr   r   c                :    g | ]}|                                 |S  )strip).0prts     r&   
<listcomp>z*html_visit_displaymath.<locals>.<listcomp>?   s%    GGGS399;;GSGGGr(   z

r   z \begin{align}\begin{aligned}z\\z\begin{split}z\end{split}z\end{aligned}\end{align} z</div>
)r   r   r   getr#   r$   r   r%   r
   add_permalink_refr	   r    r!   mathjax_displaysplitlen	enumerate)r   r   r-   partsiparts         r&   html_visit_displaymathr=   1   sy   IT]]46T]UUVVVxx	488He4455 	T[[]]33444	"""n H~ $)$55	2V;<<<tQ'>%?%?@@@	###IT\(8;<<<GGDKKMM//77GGGE
5zzA~~	9:::U## $ $4{{4  D==I-4~EFFFFIT"""s5zzA~IU###
5zzA~~	5666IT\(8;<<<IZ   
.r(   appr   pagenamestrtemplatenamecontextdict[str, Any]	event_argr   c                @   | j         j        dk    rd S | j         j        dk    rd S | j        j        sd}t          |          t          d| j                   }|                    dd          }| j        j	        dk    s|r| j        j
        rh| j        j        t          k    rt                              d           d	t          j        | j        j
                  z  }|                    d
d|           | j        j        r8dt          j        | j        j                  z  }|                    d
|           i }	| j        j        r|	                    | j        j                   d|	vrd|	vr| j        j        rd|	d<   nd|	d<    |j        | j        j        fi |	 d S d S )NhtmlmathjaxzGmathjax_path config value must be set for the mathjax extension to workr   has_maths_elementsFalwayszimathjax_config/mathjax2_config does not work for the current MathJax version, use mathjax3_config insteadzMathJax.Hub.Config(%s)r   ztext/x-mathjax-config)typer   zwindow.MathJax = %s)r   asyncdefer)r    formatmath_renderer_namer!   mathjax_pathr   r   r4   registryhtml_assets_policymathjax2_configMATHJAX_URLloggerwarningjsondumpsadd_js_filemathjax3_configmathjax_optionsupdate)
r>   r?   rA   rB   rD   msgr    page_has_equationsr   optionss
             r&   install_mathjaxr_   Q   s    {V##
{%22:" "WS!!!*CK88G %95AA
|&(226H2:% 	Mz&+55S   ,dj9S.T.TTD)@tLLL:% 	/(4:cj6P+Q+QQD...:% 	7NN3:5666'!!gW&<&<z) +#*   $+ CJ3??w?????1 32r(   r   c           	     Z   |                      dt          d ft          d f           |                     dt          dt          t          h                     |                     di dt          t          h                     |                     ddd	gdt          t          t          h                     |                     d
ddgdt          t          t          h                     |                     dd dt          t          t          h                     |                     dd dt          t          t          h                     |                     dd dt          t          t          h                     |                     dt                     t          j        ddS )NrG   )inline_renderersblock_renderersrO   rF   )typesrZ   r"   z\(z\)r6   z\[z\]mathjax_configrR   c                    | j         S )N)rd   )cs    r&   <lambda>zsetup.<locals>.<lambda>   s	    !" r(   rY   zhtml-page-contextT)versionparallel_read_safe)add_html_math_rendererr'   r=   add_config_valuerS   	frozensetr@   dictlisttupler   connectr_   sphinx__display_version__)r>   s    r&   setuprs   }   s   )40/6     fIseDTDTUUU*Bi>O>OPPP5%.&	4-8P8P     E5>6D%=9Q9Q     $ix8H.I.I     ""x())	     4y$9I/J/J     KK#_555 -"  r(   )r   r   r   r   r   r   )r   r   r   r)   r   r   )r>   r   r?   r@   rA   r@   rB   rC   rD   r   r   r   )r>   r   r   r   )%__doc__
__future__r   rV   rc   r   typingr   r   docutilsr   rq   sphinx.errorsr   sphinx.localer	   sphinx.util.mathr
   r   sphinx.applicationr   sphinx.builders.htmlr   sphinx.util.typingr   sphinx.writers.html5r   rS   utillogging	getLogger__name__rT   r'   r=   r_   rs   r/   r(   r&   <module>r      s    # " " " " "        & & & & & & & &        ( ( ( ( ( (       5 5 5 5 5 5 5))))))::::::444444444444 L			&	&x	0	0
 
 
 
   @)@ )@ )@ )@X           r(   