o oa @sdZddlZddlmZmZmZddlmZddlZddl m Z ddl m Z ddl mZddlmZdd lmZdd lmZd ZejjeZd ed ejddfddZd ed ejddfddZde dededededdf ddZ de deeeffddZ!dS)aT sphinx.ext.mathjax ~~~~~~~~~~~~~~~~~~ Allow `MathJax `_ to be used to display math in Sphinx's HTML writer -- requires the MathJax JavaScript library on your webserver/computer. :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. N)AnyDictcast)nodes)Sphinx) MathDomain)ExtensionError)_)get_node_equation_number)HTMLTranslatorz;https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.jsselfnodereturncCsV|j|j|dddd|j|jjjd|||jjjddtj )Nspanmath notranslate nohighlightCLASSr) bodyappendstarttagbuilderconfigmathjax_inlineencodeastextrSkipNode)r r r4/usr/lib/python3/dist-packages/sphinx/ext/mathjax.pyhtml_visit_math!s  r!cCsn|j|j|ddd|dr$|j|||jdtj|drCt||}|jd|||t d|jd |j|j j j d d d | d D}t|dkrf|jdt|D],\}}||}d|vr|jd|dn|j||t|dkr|jdqjt|dkr|jd|j|j j j d|jdtj)Ndivrrnowrapznumberz(%s)zPermalink to this equationrrcSsg|]}|r|qSr)strip).0prtrrr 7sz*html_visit_displaymath..z rz \begin{align}\begin{aligned}z\\z \begin{split}z \end{split}z\end{aligned}\end{align} z )rrrrrrrr add_permalink_refr rrmathjax_displaysplitlen enumerate)r r r$partsipartrrr html_visit_displaymath)s6           r1apppagename templatenamecontext event_argcCs"|jjdks |jjdkrdS|jjstdtt|j d}|j j dks*| |ri}|jj r7||jj d|vrLd|vrL|jjrHd|d<nd|d<|j|jjfi||jjrw|jjtkrftdd t|jj}|jdd |d |jjrd t|jj}|jd|d dSdSdS)NhtmlmathjaxzGmathjax_path config value must be set for the mathjax extension to workmathalwaysasyncdeferzimathjax_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)rformatmath_renderer_namer mathjax_pathrrrenv get_domainregistryhtml_assets_policy has_equationsmathjax_optionsupdatemathjax3_config add_js_filemathjax2_config MATHJAX_URLloggerwarningjsondumps)r2r3r4r5r6domainoptionsrrrr install_mathjaxIs4  rRcCs|dtdftdf|dtd|did|dddgd|dd d gd|d dd|d d dd|ddd|dttjddS)Nr8r@r7rFrz\(z\)r*z\[z\]mathjax_configrJcSs|jS)N)rS)crrr vszsetup..rHzhtml-page-contextT)versionparallel_read_safe) add_html_math_rendererr!r1add_config_valuerKconnectrRsphinx__display_version__)r2rrr setupls  r])"__doc__rNtypingrrrdocutilsrr[sphinx.applicationrsphinx.domains.mathr sphinx.errorsr sphinx.localer sphinx.util.mathr sphinx.writers.htmlr rKutillogging getLogger__name__rLr9r! math_blockr1strrRr]rrrr s*          #