3

T'ícõã@sêdZddlZddlmZmZmZddlmZddlZddl	m
Z
ddlmZddl
mZddlmZdd	lmZdd
lmZdZejjjeƒZeejddœd
d„Zeejddœdd„Ze
eeeeddœdd„Z e
eeefdœdd„Z!dS)z¶Allow `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ÚreturncCsZ|jj|j|ddddƒ|jj|jjjd|j|jƒƒ|jjjddƒtj	‚dS)NÚspanÚzmath notranslate nohighlight)ÚCLASSréz</span>)
ÚbodyÚappendÚstarttagÚbuilderÚconfigÚmathjax_inlineÚencodeÚastextrÚSkipNode)rr
©rú4/tmp/pip-build-gk9425m9/sphinx/sphinx/ext/mathjax.pyÚhtml_visit_maths0rcCsz|jj|j|dddƒ|drH|jj|j|jƒƒƒ|jjdƒtj‚|dr†t||ƒ}|jjd|ƒ|j|t	dƒƒ|jjd	ƒ|jj|j
jjd
ƒdd„|jƒj
d
ƒDƒ}t|ƒdkrÌ|jjdƒxft|ƒD]Z\}}|j|ƒ}d|kr|jjd|dƒn|jj|ƒ|t|ƒdkrÖ|jjdƒqÖWt|ƒdkrN|jjdƒ|jj|j
jjdƒ|jjdƒtj‚dS)NÚdivzmath notranslate nohighlight)rZnowrapz</div>Únumberz<span class="eqno">(%s)zPermalink to this equationz</span>rcSsg|]}|jƒr|‘qSr)Ústrip)Ú.0Zprtrrrú
<listcomp>2sz*html_visit_displaymath.<locals>.<listcomp>z

rz \begin{align}\begin{aligned}z\\z
\begin{split}z\end{split}z\end{aligned}\end{align} z</div>
)rrrrrrrr
Zadd_permalink_refr	rrÚmathjax_displayÚsplitÚlenÚ	enumerate)rr
r ÚpartsÚiÚpartrrrÚhtml_visit_displaymath$s4


r+)ÚappÚpagenameÚtemplatenameÚcontextÚ	event_argrcCs|jjdks|jjdkrdS|jjs,tdƒ‚tt|jj	dƒƒ}|j
jdksV|j|ƒr|jj
r–|jjtkrttjdƒdtj|jj
ƒ}|jdd|d	|jjr¾d
tj|jjƒ}|jd|di}|jjrØ|j|jjƒd|koæd
|kr|jjrüd
|d
<nd|d<|j|jjf|ŽdS)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 insteadzMathJax.Hub.Config(%s)ztext/x-mathjax-config)Útyperzwindow.MathJax = %s)rÚasyncÚdefer)rÚformatZmath_renderer_namerÚmathjax_pathrrrÚenvZ
get_domainÚregistryZhtml_assets_policyZ
has_equationsÚmathjax2_configÚMATHJAX_URLÚloggerÚwarningÚjsonÚdumpsZadd_js_fileÚmathjax3_configÚmathjax_optionsÚupdate)r,r-r.r/r0ÚdomainrÚoptionsrrrÚinstall_mathjaxDs.
rG)r,rcCsœ|jdtdftdfƒ|jdtdƒ|jdidƒ|jdddgdƒ|jdd	d
gdƒ|jdddƒ|jdd
d„dƒ|jdddƒ|jdtƒtjddœS)Nr2r9r1rCrz\(z\)r$z\[z\]Úmathjax_configr<cSs|jS)N)rH)ÚcrrrÚ<lambda>qszsetup.<locals>.<lambda>rBzhtml-page-contextT)ÚversionZparallel_read_safe)	Zadd_html_math_rendererrr+Zadd_config_valuer=ÚconnectrGÚsphinxZ__display_version__)r,rrrÚsetupgs
rN)"Ú__doc__r@ÚtypingrrrZdocutilsrrMZsphinx.applicationrZsphinx.domains.mathrZ
sphinx.errorsrZ
sphinx.localer	Zsphinx.util.mathr
Zsphinx.writers.htmlrr=ÚutilÚloggingÚ	getLoggerÚ__name__r>r3rZ
math_blockr+ÚstrrGrNrrrrÚ<module>s" "