U
    YShQ                     @   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 eej!ddddZ"eej#ddddZ$e
eddddZ%e
ee&ef d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__N)selfnodereturnc                 C   s>   | j | j|dddd | j | | d  tjd S )Nspan math notranslate nohighlightZCLASS</span>)bodyappendstarttagencodeastextr   SkipNode)r   r    r   P/root/rtd-docs/venv/lib/python3.8/site-packages/sphinxcontrib/jsmath/__init__.pyhtml_visit_math    s    r    c                 C   s"  |d rH| j | j|ddd | j | |  | j d tjt| dD ]\}}| |}|dkr|d rt	| |}| j d	|  | 
|td
 | j d | j | j|ddd n| j d d|ksd|kr| j d| d  n| j | | j d qZtjd S )NZ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   Zadd_permalink_ref_)r   r   ipartr"   r   r   r   html_visit_displaymath&   s(    

r)   )appenvr   c                 C   sb   | j jdks| j jdkrd S | jjs,tdtt| j }tt|	d}|
 r^|| jj d S )NhtmljsmathzEjsmath_path config value must be set for the jsmath extension to workmath)builderformatZmath_renderer_nameconfigjsmath_pathr   r   r   r	   Z
get_domainZhas_equationsZadd_js_file)r*   r+   r/   domainr   r   r   install_jsmathA   s    r4   )r*   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.0Zlocalesr-   r2   r   Fzenv-updatedT)versionZparallel_read_safeZparallel_write_safe)Zrequire_sphinxZadd_message_catalog__name__r   joinpackage_dirZadd_html_math_rendererr    r)   Zadd_config_valueconnectr4   r   )r*   r   r   r   setupO   s    
r:   )(__doc__osr   typingr   r   r   Zdocutilsr   Zsphinx.applicationr   Zsphinx.builders.htmlr   Zsphinx.domains.mathr	   Zsphinx.environmentr
   Zsphinx.errorsr   Zsphinx.localer   Zsphinx.util.mathr   Zsphinx.writers.htmlr   Zsphinxcontrib.jsmath.versionr   abspathdirname__file__r8   r6   r&   r.   r    Z
math_blockr)   r4   strr:   r   r   r   r   <module>   s$   