o
    MiQ                     @   s  d Z ddlmZ ddlmZmZ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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eeZeeZ dedej!ddfddZ"dedej#ddfddZ$de
deddfddZ%de
dee&ef fddZ'dS )z
    sphinxcontrib.jsmath
    ~~~~~~~~~~~~~~~~~~~~

    Set up everything for use of JSMath to display math in HTML
    via JavaScript.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
    )path)AnyDictcast)nodes)Sphinx)StandaloneHTMLBuilder)
MathDomain)BuildEnvironment)ExtensionError)get_translation)get_node_equation_number)HTMLTranslator)__version__selfnodereturnNc                 C   s:   | j | j|dddd | j | | d  tj)Nspan math notranslate nohighlightCLASS</span>)bodyappendstarttagencodeastextr   SkipNode)r   r    r   Q/home/ubuntu/.local/lib/python3.10/site-packages/sphinxcontrib/jsmath/__init__.pyhtml_visit_math    s   r!   c                 C   s  |d r$| j | j|ddd | j | |  | j d tjt| dD ]^\}}| |}|dkrf|d rYt	| |}| j d	|  | 
|td
 | j d | j | j|ddd n| j d d|v std|v r| j d| d  n| j | | j d q-tj)Nnowrapdivr   r   z</div>z

r   numberz<span class="eqno">(%s)zPermalink to this equationr   z<div class="math">&z\\z\begin{split}z\end{split}z</div>
)r   r   r   r   r   r   r   	enumeratesplitr   add_permalink_ref_)r   r   ipartr$   r   r   r    html_visit_displaymath&   s(   

r,   appenvc                 C   sf   | j jdks| j jdkrd S | jjstdtt| j }tt|	d}|
 r1|| jj d S d S )NhtmljsmathzEjsmath_path config value must be set for the jsmath extension to workmath)builderformatmath_renderer_nameconfigjsmath_pathr   r   r   r	   
get_domainhas_equationsadd_js_file)r-   r.   r2   domainr   r   r    install_jsmathA   s   r;   c                 C   sZ   |  d | tttd | dtd ftd f | 	ddd | 
dt tddd	S )
Nz2.0localesr0   r6   r   Fzenv-updatedT)versionparallel_read_safeparallel_write_safe)require_sphinxadd_message_catalog__name__r   joinpackage_diradd_html_math_rendererr!   r,   add_config_valueconnectr;   r   )r-   r   r   r    setupO   s   
rH   )(__doc__osr   typingr   r   r   docutilsr   sphinx.applicationr   sphinx.builders.htmlr   sphinx.domains.mathr	   sphinx.environmentr
   sphinx.errorsr   sphinx.localer   sphinx.util.mathr   sphinx.writers.htmlr   sphinxcontrib.jsmath.versionr   abspathdirname__file__rD   rB   r)   r1   r!   
math_blockr,   r;   strrH   r   r   r   r    <module>   s&    