
    7 f                        d Z ddlm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 er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)TYPE_CHECKINGAnycast)nodes)StandaloneHTMLBuilder)
MathDomain)ExtensionError)_)get_node_equation_number)Sphinx)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     H/var/www/equiseq/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 .    nodes.math_blockc                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Link to this equationr   r   c                :    g | ]}|                                 |S  )strip).0prts     r%   
<listcomp>z*html_visit_displaymath.<locals>.<listcomp>7   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_displaymathr;   )   sa   IT]]46T]UUVVVH~ 	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    s| j         j        dk    rd S | j        j        sd}t          |          t          t          | j        	                    d                    }t          t          | j                   }| 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)r   ztext/x-mathjax-config)typer   zwindow.MathJax = %s)r   asyncdefer)r   formatmath_renderer_namer    mathjax_pathr
   r   r	   env
get_domainr   registryhtml_assets_policyhas_equationsmathjax2_configMATHJAX_URLloggerwarningjsondumpsadd_js_filemathjax3_configmathjax_optionsupdate)
r<   r=   r?   r@   rB   msgdomainr   r   optionss
             r%   install_mathjaxr`   I   s    	f$$&)33:" "WS!!!*cg008899F(#+66G
|&(22f6J6J86T6T2:% 	Mz&+55ST T T ,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?????/ 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 )NrE   rM   rD   r[   r!   z\(z\)r4   z\[z\]mathjax_configrS   c                    | j         S )N)rb   )cs    r%   <lambda>zsetup.<locals>.<lambda>z   s	    a6F r'   rZ   zhtml-page-contextT)versionparallel_read_safe)	add_html_math_rendererr&   r;   add_config_valuerT   connectr`   sphinx__display_version__)r<   s    r%   setuprm   p   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'   )r   r   r   r   r   r   )r   r   r   r(   r   r   )r<   r   r=   r>   r?   r>   r@   rA   rB   r   r   r   )r<   r   r   rA   )#__doc__
__future__r   rW   typingr   r   r   docutilsr   rk   sphinx.builders.htmlr   sphinx.domains.mathr	   sphinx.errorsr
   sphinx.localer   sphinx.util.mathr   sphinx.applicationr   sphinx.writers.htmlr   rT   utillogging	getLogger__name__rU   r&   r;   r`   rm   r.   r'   r%   <module>r}      sq    # " " " " "  + + + + + + + + + +        6 6 6 6 6 6 * * * * * * ( ( ( ( ( (       5 5 5 5 5 5 4))))))333333 L			&	&x	0	0      @$@ $@ $@ $@NO O O O O Or'   