
    O&i                     P   d Z ddlZddlmZ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 ddlmZ dd	lmZ dd
lmZ dZej        j                            e          Zdedej        ddfdZdedej        ddfdZde
dededeeef         deddfdZ de
deeef         f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/
    N)AnyDictcast)nodes)Sphinx)
MathDomain)ExtensionError)_)get_node_equation_number)HTMLTranslatorz;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.jsselfnodereturnc                 `   | 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     _/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/ext/mathjax.pyhtml_visit_mathr"      s    IT]]4;Y]ZZ[[[IT\(7:[[//0\(7:;=FG H H H .    c                 p   | j                             |                     |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   nowrapz</div>numberz<span class="eqno">(%s)zPermalink to this equationr   r   c                 :    g | ]}|                                 |S  )strip).0prts     r!   
<listcomp>z*html_visit_displaymath.<locals>.<listcomp>2   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   r   r   r   r    r   add_permalink_refr
   r   r   mathjax_displaysplitlen	enumerate)r   r   r'   partsiparts         r!   html_visit_displaymathr6   $   sa   IT]]46T]UUVVVH~ 	T[[]]33444	"""n H~ $)$55	2V;<<<tQ'C%D%DEEE	###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#   apppagenametemplatenamecontext	event_argc                 b   | j         j        dk    s| j         j        dk    rd S | j        j        st          d          t          t          | j        	                    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 workmathalwayszimathjax_config/mathjax2_config does not work for the current MathJax version, use mathjax3_config insteadzMathJax.Hub.Config(%s)ztext/x-mathjax-config)typer   zwindow.MathJax = %s)r   asyncdefer)r   formatmath_renderer_namer   mathjax_pathr	   r   r   env
get_domainregistryhtml_assets_policyhas_equationsmathjax2_configMATHJAX_URLloggerwarningjsondumpsadd_js_filemathjax3_configmathjax_optionsupdate)r7   r8   r9   r:   r;   domainr   optionss           r!   install_mathjaxrX   D   s   
{V##s{'E'R'R:" : 9 : : 	: *cg008899F
|&(22f6J6J86T6T2:% 	Kz&+55ST T T ,dj9S.T.TTDOOD'>TOJJJ:% 	-(4:cj6P+Q+QQDOODtO,,,:% 	7NN3:5666'!!gW&<&<z) +#*   $+ 
/;;7;;;;;/ 32r#   c                    |                      dt          d ft          d f           |                     dt          d           |                     di d           |                     dddgd           |                     dd	d
gd           |                     dd d           |                     dd d           |                     dd d           |                     dt                     t          j        ddS )Nr>   rF   r=   rT   r   z\(z\)r/   z\[z\]mathjax_configrL   c                     | j         S )N)rZ   )cs    r!   <lambda>zsetup.<locals>.<lambda>q   s	    a6F r#   rS   zhtml-page-contextT)versionparallel_read_safe)	add_html_math_rendererr"   r6   add_config_valuerM   connectrX   sphinx__display_version__)r7   s    r!   setupre   g   s   y /6 6=? ? ? f===*B777)E5>6BBB*UENFCCC)4888*,F,FOOO*D&999KK#_5551NNNr#   )"__doc__rP   typingr   r   r   docutilsr   rc   sphinx.applicationr   sphinx.domains.mathr   sphinx.errorsr	   sphinx.localer
   sphinx.util.mathr   sphinx.writers.htmlr   rM   utillogging	getLogger__name__rN   r?   r"   
math_blockr6   strrX   re   r)   r#   r!   <module>ru      s     " " " " " " " " " "        % % % % % % * * * * * * ( ( ( ( ( (       5 5 5 5 5 5 . . . . . . L			&	&x	0	0. 
 t     u7G D    @ <  <3  <c  <DQTVYQYN  <" <'+ <  <  <  <FOv O$sCx. O O O O O Or#   