
    Ri                    6   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j8                  j:                  j=                  e      Z ddZ!ddZ"	 	 	 	 	 	 	 	 	 	 	 	 ddZ#ddZ$y)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)HTML5Translatorz7https://cdn.jsdelivr.net/npm/mathjax@4/tex-mml-chtml.jsc                   | j                   j                  | j                  |ddd             | j                   j                  | j                  j                  j
                  d   | j                  |j                               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)selfnodes     J/home/agent/.friday_env/lib/python3.12/site-packages/sphinx/ext/mathjax.pyhtml_visit_mathr$   $   s    IIdFB.LM 	II**1-
++dkkm
$	%
,,


,
,Q
/	0 	 ..    c                   | j                   j                  | j                  |dd             |j                  d|j                  dd            rc| j                   j                  | j	                  |j                                      | j                   j                  d       t        j                  |d   r`t        | |      }| j                   j                  d	|z         | j                  |t        d
             | j                   j                  d       | j                   j                  | j                  j                  j                  d          |j                         j                  d      D cg c]  }|j                         s| }}t!        |      dkD  r| j                   j                  d       t#        |      D ]  \  }}| j	                  |      }d|v r"| j                   j                  d|z   dz          n| j                   j                  |       |t!        |      dz
  k  sj| j                   j                  d        t!        |      dkD  r| j                   j                  d       | j                   j                  | j                  j                  j                  d          | j                   j                  d       t        j                  c c}w )Ndivr   r   zno-wrapnowrapFz</div>numberz<span class="eqno">(%s)zLink to this equationr   r   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striplen	enumerate)r!   r"   r)   prtpartsiparts          r#   html_visit_displaymathr5   1   s'   IIT]]46T]UVxx	488He45		T[[]34		"nn H~)$5		2V;<tQ'>%?@		#IIT\\((88;< KKM//7GS399;SGEG
5zA~		9:U# $4{{4 D=II-4~EFIIT"s5zA~IIU#$ 5zA~		56IIT\\((88;<IIZ 
.. Hs   5KKc                B   | j                   j                  dk7  ry | j                   j                  dk7  ry | j                  j                  sd}t        |      t        d| j                         }|j                  dd      }| j                  j                  dk(  s|r| j                  j                  rs| j                  j                  t        k(  rt        j                  d       d	t        j                  | j                  j                         d
}|j!                  dd|       | j                  j"                  r?dt        j                  | j                  j"                         }|j!                  d|       | j                  j$                  r?dt        j                  | j                  j$                         }|j!                  d|       | j                  j&                  r| j(                  | j                  j&                  z  }	|	j+                         sd|	 }t        |      |	j-                         r|	j.                  dk7  rd|	 }t        |      |	j1                  d      }|j!                  d|       i }
| j                  j2                  r%|
j5                  | j                  j2                         d|
vr;d|
vr7| j                  j                  s| j                  j6                  rd|
d<   nd|
d<    |j                   | j                  j                  fi |
 y y )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 mathjax4_config insteadzMathJax.Hub.Config()r   ztext/x-mathjax-config)typer   zwindow.MathJax = )r   z$mathjax_config_path file not found: z.jsz2mathjax_config_path: expected a .js file, but got zutf-8)encodingasyncdefer)r   formatmath_renderer_namer   mathjax_pathr   r   r*   registryhtml_assets_policymathjax2_configMATHJAX_URLloggerwarningjsondumpsadd_js_filemathjax3_configmathjax4_configmathjax_config_pathconfdirexistsis_filesuffix	read_textmathjax_optionsupdatemathjax_config)apppagenametemplatenamecontext	event_argmsgr   page_has_equationsr   config_pathoptionss              r#   install_mathjaxr`   Q   s    {{V#
{{%%2::""WS!!*CKK8G %95A ||&&(26H::%%zz&&+5S )CJJ4N4N)O(PPQRD)@tL::%%&tzz#**2L2L'M&NOD.::%%&tzz#**2L2L'M&NOD.::))++

(F(FFK%%'<[MJ$S))&&(K,>,>%,GJ;-X$S))(('(:D.::%%NN3::556'!gW&<zz))SZZ-F-F#*  $+ CJJ33?w?O 7Ir%   c           	     X   | j                  dt        d ft        d f       | j                  dt        dt        t        h             | j                  di dt        t        h             | j                  ddd	gdt        t        t        h             | j                  d
ddgdt        t        t        h             | j                  dd dt        t        t        h             | j                  dd dt        t        t        h             | j                  dd dt        t        t        h             | j                  dd dt        t        t        h             | j                  dddt        t        h             | j                  dt               t        j                  ddS )Nr8   )inline_renderersblock_renderersrB   r7   )typesrT   r   z\(z\)r,   z\[z\]rV   rE   c                    | j                   S )N)rV   )cs    r#   <lambda>zsetup.<locals>.<lambda>   s    !"" r%   rL   rM   rN   r   zhtml-page-contextT)versionparallel_read_safe)add_html_math_rendererr$   r5   add_config_valuerF   	frozensetstrdictlisttupler   connectr`   sphinx__display_version__)rW   s    r#   setuprt      s   )40/6   fIseDTU*Bi>OP5%.&	4-8P   E5>6D%=9Q   $ix8H.I   "x()	   4y$9I/J   4y$9I/J   .F)SEBRSKK#_5 --" r%   )r!   r   r"   z
nodes.mathreturnNone)r!   r   r"   znodes.math_blockru   rv   )rW   r   rX   rm   rY   rm   rZ   zdict[str, Any]r[   r   ru   rv   )rW   r   ru   r   )%__doc__
__future__r   rI   rd   r   typingr   r   docutilsr   rr   sphinx.errorsr   sphinx.localer	   sphinx.util.mathr
   r   sphinx.applicationr   sphinx.builders.htmlr   sphinx.util.typingr   sphinx.writers.html5r   rF   utillogging	getLogger__name__rG   r$   r5   r`   rt    r%   r#   <module>r      s    #   &   (  5):44 H				&	&x	0
@:@	:@:@ :@ 	:@
 :@ 
:@z$r%   