HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/sphinx/writers/__pycache__/html.cpython-310.pyc
o

�$�aG��@s:dZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
mZmZddl
mZddlmZmZmZddlmZddlmZddlmZdd	lmZdd
lmZmZddlmZm Z m!Z!ddl"m#Z#dd
l$m%Z%ddl&m'Z'e	rzddl(m)Z)e#�*e+�Z,de-de.de-fdd�Z/Gdd�de�Z0Gdd�de%e�ZdS)z�
    sphinx.writers.html
    ~~~~~~~~~~~~~~~~~~~

    docutils writers handling Sphinx' custom nodes.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�
TYPE_CHECKING�Iterable�Tuple�cast)�nodes)�Element�Node�Text)�HTMLTranslator)�Writer)�addnodes)�Builder)�RemovedInSphinx50Warning�RemovedInSphinx60Warning)�_�__�admonitionlabels)�logging)�SphinxTranslator)�get_image_size)�StandaloneHTMLBuilder�length�scale�returncCsLt�d|�}|s
|S|dkr|S|��\}}t|�|d}dt|�|fS)z/Multiply *length* (width or height) by *scale*.z^(\d*\.?\d*)\s*(\S*)$�dz%s%s)�re�match�groups�float�int)rr�matched�amount�unit�result�r$�5/usr/lib/python3/dist-packages/sphinx/writers/html.py�multiply_length*sr&csZeZdZe�ej�ZedD]Zdedvrdedd<qd�fd
d�Zddd
�Z	�Z
S)�
HTMLWriter�z--embed-stylesheet�r�default�builderrrNcst���||_dS�N)�super�__init__r+)�selfr+��	__class__r$r%r.?s

zHTMLWriter.__init__cCsp|j�|j|j�}tt|�|_|j�|�|j��|_dD]}t	||t
||d��qd�|jjdd��|_
dS)N)�head_prefix�
stylesheet�head�body_prefix�body_pre_docinfo�docinfo�body�fragment�body_suffix�meta�title�subtitle�header�footer�html_prolog�	html_head�
html_title�
html_subtitle�	html_body�r()r+�create_translator�documentrr
�visitor�	walkabout�astext�output�setattr�getattr�joinr;�
clean_meta)r/rH�attrr$r$r%�	translateCszHTMLWriter.translate)r+rrN)rN)�__name__�
__module__�__qualname__�copy�deepcopyr�
settings_spec�_settingr.rQ�
__classcell__r$r$r0r%r'7s�r'cs�	eZdZUdZdZded<dejdeddf�fdd�Z	d	e
ddfd
d�Zd	e
ddfdd
�Zd	e
ddfdd�Z
d	e
ddfdd�Zd	e
ddfdd�Zd	e
ddfdd�Zd	e
ddfdd�Zd	e
ddfdd�Zd	e
ddfdd�Zd	e
ddfdd�Zd	e
ddfdd�Zd	e
ddfd d!�Zd	e
ddfd"d#�Zd	e
ddfd$d%�Zd	e
ddfd&d'�Zd	e
ddfd(d)�Zd	e
ddfd*d+�Zd	e
ddfd,d-�Zd	e
ddfd.d/�Zd	e
ddfd0d1�Zd	e
ddfd2d3�Zd	e
ddfd4d5�Z d	e
ddfd6d7�Z!d	e
ddfd8d9�Z"d	e
ddfd:d;�Z#d	e
ddfd<d=�Z$d	e
ddfd>d?�Z%d	e
ddfd@dA�Z&d	e
ddfdBdC�Z'd	e
ddfdDdE�Z(d	e
ddfdFdG�Z)d	e
ddfdHdI�Z*d	e
ddfdJdK�Z+d	e
ddfdLdM�Z,�dd	e
dOe-ddfdPdQ�Z.d	e
ddfdRdS�Z/d	e
ddfdTdU�Z0d	e
de1e2dVffdWdX�Z3d	e
ddfdYdZ�Z4d	e
ddfd[d\�Z5d	e
d]e-ddfd^d_�Z6d	e
ddfd`da�Z7d	e
ddf�fdbdc�Z8d	e
ddf�fddde�Z9d	e
ddfdfdg�Z:d	e
ddfdhdi�Z;d	e
ddfdjdk�Z<d	e
ddfdldm�Z=d	e
ddfdndo�Z>d	e
ddfdpdq�Z?d	e
ddf�fdrds�Z@d	e
ddf�fdtdu�ZAd	e
ddf�fdvdw�ZBd	e
ddf�fdxdy�ZCd	e
ddf�fdzd{�ZDd	e
ddfd|d}�ZEd	e
ddfd~d�ZFd	e
ddfd�d��ZGd	e
ddfd�d��ZHd	e
ddfd�d��ZId	e
ddfd�d��ZJd	e
ddfd�d��ZKd	e
ddfd�d��ZLd	e
ddfd�d��ZMd	e
ddfd�d��ZNd	e
ddfd�d��ZOd	ePdeQf�fd�d��ZRd	e
ddfd�d��ZSd	e
ddfd�d��ZTd	e
ddfd�d��ZUd	e
ddfd�d��ZVd	e
ddf�fd�d��ZWd	e
ddf�fd�d��ZXd	e
ddf�fd�d��ZYd	e
ddfd�d��ZZd	e
ddfd�d��Z[d	e
ddfd�d��Z\d	e
ddfd�d��Z]d	e
ddfd�d��Z^d	e
ddfd�d��Z_d	e
ddfd�d��Z`d	e
ddfd�d��Zad	e
ddfd�d��Zbd	e
ddfd�d��Zcd	e
ddfd�d��Zdd	e
ddf�fd�d��Zed	efddfd�d��Zgd	e
ddfd�d��Zhd	e
ddfd�d��Zid	e
ddfd�d��Zjd	e
ddfd�dÄZkd	e
ddfd�dńZld	e
ddfd�dDŽZmd	e
ddfd�dɄZnd	e
ddfd�d˄Zod	e
ddfd�d̈́Zpd	e
ddfd�dτZqd	e
ddfd�dфZrd	e
ddfd�dӄZsd	e
ddfd�dՄZtd	e
ddfd�dׄZud	e
ddfd�dلZvd	e
ddfd�dۄZwd	e
ddfd�d݄Zxd	e
ddfd�d߄Zyd	e
ddfd�d�Zzd	e
ddfd�d�Z{d	e
ddfd�d�Z|d	e
ddfd�d�Z}d	e
ddfd�d�Z~d	e
ddfd�d�Zd	e
ddfd�d�Z�d	e
ddfd�d�Z�d	e
ddf�fd�d�Z�d	e
ddf�fd�d�Z�d	e
ddfd�d��Z�d	e
ddf�fd�d��Z�d	e
ddf�fd�d��Z�d	e
ddf�fd�d��Z�d	e
ddfd�d��Z�d	e
ddf�fd�d��Z��dd	e
�de-ddf�d�d�Z��dd	e
�de-ddf�d�d�Z��dd	e
�de-ddf�d�d�Z��dd	e
�de-ddf�d�d�Z�d	ePddf�d	�d
�Z�e�de-f�d�d��Z�e��d
�d��Z�e��d�d��Z��Z�S(r
z%
    Our custom HTML translator.
    Nrr+rGrcsdt��||�|jj|_|jjg|_|jj|_d|_|jj	|_
d|_d|_dg|_
dg|_d|_dS)NrrE)r-r.r+�highlighter�current_docname�docnames�config�manpages_url�protect_literal_text�html_secnumber_suffix�secnumber_suffix�param_separator�optional_param_level�_table_row_indices�_fieldlist_row_indices�required_params_left)r/rGr+r0r$r%r.Ys



zHTMLTranslator.__init__�nodecCs(|j�|d�|j�d|d�dS)N�docnamez<span id="document-%s"></span>)r\�appendr8�r/rgr$r$r%�visit_start_of_filegsz"HTMLTranslator.visit_start_of_filecCs|j��dSr,)r\�poprjr$r$r%�depart_start_of_filel�z#HTMLTranslator.depart_start_of_filecCs|j�|�|d��dS)N�dl�r8ri�starttagrjr$r$r%�
visit_descvszHTMLTranslator.visit_desccC�|j�d�dS)Nz</dl>

�r8rirjr$r$r%�depart_descy�zHTMLTranslator.depart_desccCs&|j�|�|d��|jd7_dS)N�dtr)�r8rirqr_rjr$r$r%�visit_desc_signature|sz#HTMLTranslator.visit_desc_signaturecCs8|jd8_|�d�s|�|td��|j�d�dS)Nr)�is_multiline�Permalink to this definitionz</dt>
)r_�get�add_permalink_refrr8rirjr$r$r%�depart_desc_signature�s
z$HTMLTranslator.depart_desc_signaturecC�dSr,r$rjr$r$r%�visit_desc_signature_line��z(HTMLTranslator.visit_desc_signature_linecCs,|�d�r|�|jtd��|j�d�dS)N�
add_permalinkr{z<br />)r|r}�parentrr8rirjr$r$r%�depart_desc_signature_line�s
z)HTMLTranslator.depart_desc_signature_linecC�|j�|�|dd��dS�N�ddrErprjr$r$r%�visit_desc_content��z!HTMLTranslator.visit_desc_contentcCrs)Nz</dd>rtrjr$r$r%�depart_desc_content�rvz"HTMLTranslator.depart_desc_contentcCr�)N�spanrErprjr$r$r%�visit_desc_inline�r�z HTMLTranslator.visit_desc_inlinecCrs)N�</span>rtrjr$r$r%�depart_desc_inline�rvz!HTMLTranslator.depart_desc_inlinecCr��N�coderErprjr$r$r%�visit_desc_name�r�zHTMLTranslator.visit_desc_namecCrs�N�</code>rtrjr$r$r%�depart_desc_name�rvzHTMLTranslator.depart_desc_namecCr�r�rprjr$r$r%�visit_desc_addname�r�z!HTMLTranslator.visit_desc_addnamecCrsr�rtrjr$r$r%�depart_desc_addname�rvz"HTMLTranslator.depart_desc_addnamecCrr,r$rjr$r$r%�visit_desc_type�r�zHTMLTranslator.visit_desc_typecCrr,r$rjr$r$r%�depart_desc_type�r�zHTMLTranslator.depart_desc_typecCs(|j�d�|j�d�|j�d�dS)Nz <span class="sig-return">z-<span class="sig-return-icon">&#x2192;</span>z# <span class="sig-return-typehint">rtrjr$r$r%�visit_desc_returns�sz!HTMLTranslator.visit_desc_returnscCrs)Nz</span></span>rtrjr$r$r%�depart_desc_returns�rvz"HTMLTranslator.depart_desc_returnscCs:|j�d�d|_d|_tdd�|jD��|_|j|_dS)Nz <span class="sig-paren">(</span>r)rcSsg|]}t|tj��qSr$)�
isinstancer�desc_parameter)�.0�cr$r$r%�
<listcomp>�s�z;HTMLTranslator.visit_desc_parameterlist.<locals>.<listcomp>)	r8ri�first_paramrc�sum�childrenrf�child_text_separatorrbrjr$r$r%�visit_desc_parameterlist�s
�z'HTMLTranslator.visit_desc_parameterlistcCrs)Nz <span class="sig-paren">)</span>rtrjr$r$r%�depart_desc_parameterlist�rvz(HTMLTranslator.depart_desc_parameterlistcCsX|jrd|_n
|js|j�|j�|jdkr|jd8_|�d�s*|j�d�dSdS)Nrr)�noemphz<em>)r�rfr8rirbrc�hasattrrjr$r$r%�visit_desc_parameter�s

�z#HTMLTranslator.visit_desc_parametercCs2|�d�s|j�d�|jr|j�|j�dSdS)Nr��</em>)r�r8rirfrbrjr$r$r%�depart_desc_parameter�s

�z$HTMLTranslator.depart_desc_parametercCs|jd7_|j�d�dS)Nr)z<span class="optional">[</span>�rcr8rirjr$r$r%�visit_desc_optional��z"HTMLTranslator.visit_desc_optionalcCs|jd8_|j�d�dS)Nr)z<span class="optional">]</span>r�rjr$r$r%�depart_desc_optional�r�z#HTMLTranslator.depart_desc_optionalcC�|j�|j|dddd��dS)N�emrE�property��CLASSrprjr$r$r%�visit_desc_annotation��z$HTMLTranslator.visit_desc_annotationcCrs)Nr�rtrjr$r$r%�depart_desc_annotation�rvz%HTMLTranslator.depart_desc_annotationcCs |j�|j|d|dd��dS)N�div�typer�rprjr$r$r%�visit_versionmodified�s z$HTMLTranslator.visit_versionmodifiedcCrs)N�</div>
rtrjr$r$r%�depart_versionmodified�rvz%HTMLTranslator.depart_versionmodifiedc	Cs`ddi}|�d�s
d|vr|dd7<n|dd7<d|vrB|dp'd|d<|jjrA|d�d	�rA|�|d�|d<d
|_nd|vsJJd��d|d|d<t|jtj	�sqt
|�d
krgt|dtj�siJ�|dd7<d|vr{|d|d<d|vr�|d|d<|j�
|j|ddfi|���|�d�r�|j�
d|jd�tt|d���dSdS)N�class�	reference�internal�refuri�	 internal�	 external�#�hrefzmailto:T�refidz3References must have "refuri" or "refid" attribute.r)rz image-reference�reftitler<�target�arE�	secnumberz%s�.)r|�settings�cloak_email_addresses�
startswith�cloak_mailto�	in_mailtor�r�r�TextElement�len�imager8rirqrarN�map�str�r/rg�attsr$r$r%�visit_reference�s6�
� 

��zHTMLTranslator.visit_referencecC�|�|�dSr,)r�rjr$r$r%�visit_number_referencernz%HTMLTranslator.visit_number_referencecCr�r,)�depart_referencerjr$r$r%�depart_number_referencernz&HTMLTranslator.depart_number_referencecC�tj�r,�r�SkipNoderjr$r$r%�
visit_comment�zHTMLTranslator.visit_commentrE�namecCsF|j�|j|dd|d��|r|�dt�|t|��|�|�dS)Nr�zadmonition r�r)r8rirq�insertrr<r�set_first_last)r/rgr�r$r$r%�visit_admonitions

�zHTMLTranslator.visit_admonitioncC�|�|d�dS)N�seealso�r�rjr$r$r%�
visit_seealso rvzHTMLTranslator.visit_seealsocCr�r,��depart_admonitionrjr$r$r%�depart_seealso#rnzHTMLTranslator.depart_seealso.cCs�|�d�r	|dSt|jtj�rO|jjdkr1|jd}d||jddf}||jjvr0d|}nd|jdd}||jjvrBd	}|jj�|�rO|jj|SdS)
Nr��
singlehtml���z%s/#%s�idsrz%s/r�rE)	r|r�r�r�sectionr+r�r\�
secnumbers)r/rgrh�
anchornamer$r$r%�
get_secnumber&s

�zHTMLTranslator.get_secnumbercCs8|�|�}|r|j�dd�tt|��|j�dSdS)Nz&<span class="section-number">%s</span>r�)r�r8rirNr�r�ra)r/rgr�r$r$r%�
add_secnumber9s

��zHTMLTranslator.add_secnumbercs|dtdtddf�fdd�}�jjjd�|�}|r<t|d�dkr1td	�|j}tj	||d
�dS|||dd�dSdS)N�figtype�	figure_idrcs��jjdkrd�jd|f}n|}|�jj�|i�vrZ�j�d��jj�|�}|dur:t	d�|}t
�|�dS�jj||}�j�|d�t
t|��d��j�d�dSdS)	Nr�z%s/%sr�z<span class="caption-number">z#numfig_format is not defined for %sr�� r�)r+r�r\�
fignumbersr|r8rir]�
numfig_formatr�logger�warningrNr�r�)r�r��key�prefix�msg�numbers�r/r$r%�append_fignumber@s �z6HTMLTranslator.add_fignumber.<locals>.append_fignumber�stdr�rz Any IDs not assigned for %s node��location)
r�r+�env�domains�get_enumerable_node_typer�r�tagnamer�r�)r/rgr�r�r�r$r�r%�
add_fignumber?s�zHTMLTranslator.add_fignumberr<cCsN|dr!|jjr#|jjr%d}|j�||dd||jjf�dSdSdSdS)Nr�z2<a class="headerlink" href="#%s" title="%s">%s</a>r)r]�html_permalinksr+�add_permalinksr8ri�html_permalinks_icon)r/rgr<�formatr$r$r%r}Ys��z HTMLTranslator.add_permalink_refcCs8|ddd�D]}|j�d|�|d�|�qdS)a�Generate hyperlink targets for listings.

        Original visit_bullet_list(), visit_definition_list() and visit_enumerated_list()
        generates hyperlink targets inside listing tags (<ul>, <ol> and <dl>) if multiple
        IDs are assigned to listings.  That is invalid DOM structure.
        (This is a bug of docutils <= 0.12)

        This exports hyperlink targets before listings to make valid DOM structure.
        r�r)Nz<span id="%s"></span>)r8ri�remove)r/rg�idr$r$r%�generate_targets_for_listing_s
�z+HTMLTranslator.generate_targets_for_listingcs<t|�dkrt|dtj�rtj�|�|�t��|�dS)Nr)r)	r�r�r�toctreerr�rr-�visit_bullet_listrjr0r$r%rns
z HTMLTranslator.visit_bullet_listcs|�|�t��|�dSr,)rr-�visit_enumerated_listrjr0r$r%rv�
z$HTMLTranslator.visit_enumerated_listcCr�r�rprjr$r$r%�visit_definition{szHTMLTranslator.visit_definitioncCrs)Nz</dd>
rtrjr$r$r%�depart_definition�rvz HTMLTranslator.depart_definitioncCr�)Nr�rE�
classifierr�rprjr$r$r%�visit_classifier�r�zHTMLTranslator.visit_classifiercCs:|j�d�|jddd�}t|tj�s|j�d�dSdS)Nr�FT��descend�siblings�</dt>)r8ri�	next_noder�rr�r/rgrr$r$r%�depart_classifier�s
�z HTMLTranslator.depart_classifiercCr�)NrwrErprjr$r$r%�
visit_term�r�zHTMLTranslator.visit_termcCsP|jddd�}t|tj�rdSt|jjjtj�r |�|td��|j	�
d�dS)NFTrzPermalink to this termr)rr�rrr�r�glossaryr}rr8rirr$r$r%�depart_term�szHTMLTranslator.depart_termc	s�t|jtj�r(|j�d�r(|j�|j|ddddd��|j�d�|j�d�nt	��
|�|�|�|�|j�t|jt
j�rH|j�d�dSdS)	Nr�prE�caption�heading)r��ROLEz<span class="caption-text">z</span></p>
)r�r�r�compact_paragraphr|r8rirq�contextr-�visit_titler�rr�tablerjr0r$r%r'�s
�zHTMLTranslator.visit_titlecs�|jd}|jjr[|jjr[|j�d�r[|jdr[|�d�r'|�|jt	d��nA|�d�rD|j
�d|jdddt	d�|jjf�n$t
|jtj�rZ|j
�d	�|�|jt	d
��n
t
|jtj�rh|j
�d	�t��|�dS)Nr�r�z</hzPermalink to this headlinez</a></hz%</a><a class="headerlink" href="#%s" rz
title="%s">%sr�zPermalink to this table)r&r]rr+r	r�r�r�r}rr8rir
r�rr(r-�depart_title)r/rg�	close_tagr0r$r%r)�s0

��

����zHTMLTranslator.depart_titlecs�|j|��kr
t��|�S|�dd�}|�dd�}|�di�}|�dd�|d<|jj�|i�}|r9|jjr9|jj}|jj	|j|f|||d�|��}|j
|dd	d
|d�}|j�||d�t
j�)
N�languager*�linenosF�highlight_args�force)�optsr,rr�rEzhighlight-%s notranslate)�suffixr�r�)�	rawsourcerJr-�visit_literal_blockr|r]�highlight_options�html_codeblock_linenos_stylerZ�highlight_blockrqr8rirr�)r/rg�langr,r-r/�highlightedrqr0r$r%r2�s,���
�z"HTMLTranslator.visit_literal_blockcs^t|jtj�r|j�d�r|j�d�nt��|�|�	|j�|j�|j
|dddd��dS)N�
literal_blockz <div class="code-block-caption">r�rEzcaption-textr�)r�r�r�	containerr|r8rir-�
visit_captionrrqrjr0r$r%r:�s
zHTMLTranslator.visit_captioncs�|j�d�t|jtj�r|j�d�r|�|jtd��n!t|jtj	�r.|�|jtd��n|j�d�r>|�|jjtd��t|jtj�rS|j�d�rS|j�d�dSt
��|�dS)Nr�r8zPermalink to this codezPermalink to this imagerzPermalink to this toctreer�)r8rir�r�rr9r|r}r�figurer-�depart_captionrjr0r$r%r<�szHTMLTranslator.depart_captioncCr�r,)r2rjr$r$r%�visit_doctest_block�rnz"HTMLTranslator.visit_doctest_blockcCs|j�|�|d�d�dS)N�
blockquotez<div>rprjr$r$r%�visit_block_quote�sz HTMLTranslator.visit_block_quotecCrs)Nz</div></blockquote>
rtrjr$r$r%�depart_block_quote�rvz!HTMLTranslator.depart_block_quotecCsVd|dvr|j�|j|dddd��dS|j�|j|dddd��|jd7_dS)N�kbd�classesrEzdocutils literal notranslater�r�r)rxrjr$r$r%�
visit_literal�s��zHTMLTranslator.visit_literalcCs:d|dvr|j�d�dS|jd8_|j�d�dS)NrArBz</kbd>r)r�)r8rir_rjr$r$r%�depart_literalszHTMLTranslator.depart_literalcCs�|j�|�|d��g}tttj|�}|D]	}|�|d�qtdd�|D��}d}|D]<}|drN|d�|�}|j�|�|dd��|j�|d�n|dur^|j�dd	t	|��|�
|�|j�d
�q-|j�d�tj�)N�pre�	tokennamecss�|]}t|�VqdSr,)r�)r�r�r$r$r%�	<genexpr>s�z6HTMLTranslator.visit_productionlist.<locals>.<genexpr>�strongrEz</strong> ::= z%s     r��
z</pre>
)
r8rirqrrr�
production�max�ljustr�rIrr�)r/rg�names�productionlistrJ�maxlen�lastnamer$r$r%�visit_productionlists$
z#HTMLTranslator.visit_productionlistcCrr,r$rjr$r$r%�depart_productionlist#r�z$HTMLTranslator.depart_productionlistcCrr,r$rjr$r$r%�visit_production&r�zHTMLTranslator.visit_productioncCrr,r$rjr$r$r%�depart_production)r�z HTMLTranslator.depart_productioncCs |j�|j|ddd�d�dS)Nr!�centeredr�z<strong>rprjr$r$r%�visit_centered,s
�zHTMLTranslator.visit_centeredcCrs)Nz
</strong></p>rtrjr$r$r%�depart_centered0rvzHTMLTranslator.depart_centeredcs0t|jtj�r	dSt|jtj�rdSt��|�S)z:Determine if the <p> tags around paragraph can be omitted.F)r�r�r�desc_content�versionmodifiedr-�should_be_compact_paragraphrjr0r$r%rZ4s
z*HTMLTranslator.should_be_compact_paragraphcCrr,r$rjr$r$r%�visit_compact_paragraph>r�z&HTMLTranslator.visit_compact_paragraphcCrr,r$rjr$r$r%�depart_compact_paragraphAr�z'HTMLTranslator.depart_compact_paragraphcCs�ddd�}|jjs|j�d�dSd|vr:|dd7<|d|d<|j�|j|ddfi|���|j�d	�dSd
|vrm|dd7<t�|jjt	j
�|d
��|d<|j�|j|ddfi|���|j�d	�dS|j�d�dS)Nzreference downloadrE)r��downloadr�r�r�r�r�z</a>�filenamer�)r+�download_supportr&rir8rq�	posixpathrN�dlpath�urllib�parse�quoter�r$r$r%�visit_download_referenceDs$�
�z'HTMLTranslator.visit_download_referencecCs|j�|j���dSr,)r8rir&rlrjr$r$r%�depart_download_referenceXsz(HTMLTranslator.depart_download_referencecs|�dd�t��|�S)N�alignr*)�
setdefaultr-�visit_figurerjr0r$r%ri\szHTMLTranslator.visit_figurecs�|d}||jjvrt�|jj|jj|�|d<d|vrUd|vr$d|vsUttj�|jj|��}|dur=t	j
td�|d�nd|vrIt|d�|d<d|vrUt|d�|d<|d}|�
��d	�r�d
|i}d|vrn|d|d<d|vrx|d|d<d|vr�d|vr�t|d|d�|d<d|vr�t|d|d�|d<|�d|�|d<d|vr�d
|d|d<|j�|j|ddfi|���dSt��|�dS)N�urir�width�heightz7Could not obtain image size. :scale: option is ignored.rrr)��svg�svgz�src�altrgzalign-%sr��imgrE)r+�imagesr`rN�imgpathr�os�path�srcdirr�r�rr��lower�endswithr&r|r8ri�emptytagr-�visit_image)r/rg�olduri�sizerjr�r0r$r%r{csD

�
�zHTMLTranslator.visit_imagecs&|d���d�rdSt��|�dS)Nrjrm)rxryr-�depart_imagerjr0r$r%r~�szHTMLTranslator.depart_imagecCr�r,r�rjr$r$r%�
visit_toctree�szHTMLTranslator.visit_toctreecCr�r,r�rjr$r$r%�visit_index�r�zHTMLTranslator.visit_indexcCr�r,r�rjr$r$r%�visit_tabular_col_spec�r�z%HTMLTranslator.visit_tabular_col_speccCrr,r$rjr$r$r%�visit_glossary�r�zHTMLTranslator.visit_glossarycCrr,r$rjr$r$r%�depart_glossary�r�zHTMLTranslator.depart_glossarycCrr,r$rjr$r$r%�
visit_acks�r�zHTMLTranslator.visit_ackscCrr,r$rjr$r$r%�depart_acks�r�zHTMLTranslator.depart_ackscCrs)Nz<table class="hlist"><tr>rtrjr$r$r%�visit_hlist�rvzHTMLTranslator.visit_hlistcCrs)Nz</tr></table>
rtrjr$r$r%�depart_hlist�rvzHTMLTranslator.depart_hlistcCrs)Nz<td>rtrjr$r$r%�visit_hlistcol�rvzHTMLTranslator.visit_hlistcolcCrs)Nz</td>rtrjr$r$r%�depart_hlistcol�rvzHTMLTranslator.depart_hlistcolcs(t��|�|jd�dd�|jd<dS)N����&nbsp;�&#160;)r-�visit_option_groupr&�replacerjr0r$r%r��sz!HTMLTranslator.visit_option_groupcCs�|��}|�|�}|jr=|j�|�D](}|��r!|j�d|�q|dvr,|j�|�q|j�dt|�dd�qdS|j	rI|j
jrI|�|�}|j�|�dS)Nz<span class="pre">%s</span>z 
r�r)r�)
rJ�encoder_�words_and_spaces�findall�stripr8rir�r�r�r��cloak_email)r/rg�text�encoded�tokenr$r$r%�
visit_Text�s
�
zHTMLTranslator.visit_TextcCr�)N�noter�rjr$r$r%�
visit_note�rvzHTMLTranslator.visit_notecCr�r,r�rjr$r$r%�depart_note�rnzHTMLTranslator.depart_notecCr�)Nr�r�rjr$r$r%�
visit_warning�rvzHTMLTranslator.visit_warningcCr�r,r�rjr$r$r%�depart_warning�rnzHTMLTranslator.depart_warningcCr�)N�	attentionr�rjr$r$r%�visit_attention�rvzHTMLTranslator.visit_attentioncCr�r,r�rjr$r$r%�depart_attention�rnzHTMLTranslator.depart_attentioncCr�)N�cautionr�rjr$r$r%�
visit_caution�rvzHTMLTranslator.visit_cautioncCr�r,r�rjr$r$r%�depart_caution�rnzHTMLTranslator.depart_cautioncCr�)N�dangerr�rjr$r$r%�visit_danger�rvzHTMLTranslator.visit_dangercCr�r,r�rjr$r$r%�
depart_danger�rnzHTMLTranslator.depart_dangercCr�)N�errorr�rjr$r$r%�visit_error�rvzHTMLTranslator.visit_errorcCr�r,r�rjr$r$r%�depart_error�rnzHTMLTranslator.depart_errorcCr�)N�hintr�rjr$r$r%�
visit_hint�rvzHTMLTranslator.visit_hintcCr�r,r�rjr$r$r%�depart_hint�rnzHTMLTranslator.depart_hintcCr�)N�	importantr�rjr$r$r%�visit_important�rvzHTMLTranslator.visit_importantcCr�r,r�rjr$r$r%�depart_important�rnzHTMLTranslator.depart_importantcCr�)N�tipr�rjr$r$r%�	visit_tiprvzHTMLTranslator.visit_tipcCr�r,r�rjr$r$r%�
depart_tiprnzHTMLTranslator.depart_tipcC�
|�|�Sr,)�visit_emphasisrjr$r$r%�visit_literal_emphasis�
z%HTMLTranslator.visit_literal_emphasiscCr�r,)�depart_emphasisrjr$r$r%�depart_literal_emphasis
r�z&HTMLTranslator.depart_literal_emphasiscCr�r,)�visit_strongrjr$r$r%�visit_literal_strong
r�z#HTMLTranslator.visit_literal_strongcCr�r,)�
depart_strongrjr$r$r%�depart_literal_strongr�z$HTMLTranslator.depart_literal_strongcCs<i}|�d�r
|d|d<|j�|j|ddfi|���dS)N�explanationr<�abbrrE)r�r8rirq)r/rg�attrsr$r$r%�visit_abbreviations
"z!HTMLTranslator.visit_abbreviationcCrs)Nz</abbr>rtrjr$r$r%�depart_abbreviationrvz"HTMLTranslator.depart_abbreviationcCs:|�|�|jr|jjdi|j��|d<|�|�dSdS)Nr�r$)r�r^r�
attributesr�rjr$r$r%�
visit_manpages

�zHTMLTranslator.visit_manpagecCs|jr|�|�|�|�dSr,)r^r�r�rjr$r$r%�depart_manpage"s
zHTMLTranslator.depart_manpagecs$|j�d�|�dd�t��|�S)Nrrgr*)rdrirhr-�visit_tablerjr0r$r%r�)szHTMLTranslator.visit_tablecs|j��t��|�dSr,)rdrlr-�depart_tablerjr0r$r%r�1rzHTMLTranslator.depart_tablecCsb|jdd7<|jdddkr|d�d�n|d�d�|j�|�|dd	��d|_dS)
Nr�r)r(rrBzrow-evenzrow-odd�trrE)rdrir8rq�columnrjr$r$r%�	visit_row5s
zHTMLTranslator.visit_rowcs,t��|�|jddkrd|jd<dSdS�Nr�r�r�)r-�visit_entryr8rjr0r$r%r�>s�zHTMLTranslator.visit_entrycs|j�d�t��|�S)Nr)rerir-�visit_field_listrjr0r$r%r�CszHTMLTranslator.visit_field_listcs|j��t��|�Sr,)rerlr-�depart_field_listrjr0r$r%r�Gs
z HTMLTranslator.depart_field_listcCs`|jdd7<|jdddkr|d�d�n|d�d�|j�|j|dd	d
d��dS)Nr�r)r(rrBz
field-evenz	field-oddr�rE�fieldr�)rerir8rqrjr$r$r%�visit_fieldKs
zHTMLTranslator.visit_fieldcsDt|j�}t��|�|t|j�kr |jd�dd�|jd<dSdSr�)r�r&r-�visit_field_namer�)r/rg�
context_countr0r$r%r�Ss

�zHTMLTranslator.visit_field_name�math_envcC�*|jj}|jjjj|\}}|||�dSr,�r+�math_renderer_name�app�registry�html_inline_math_renderers�r/rgr�r��visitrr$r$r%�
visit_mathY�zHTMLTranslator.visit_mathcC�2|jj}|jjjj|\}}|r|||�dSdSr,r��r/rgr�r�r�departr$r$r%�depart_math^�
�zHTMLTranslator.depart_mathcCr�r,�r+r�r�r��html_block_math_renderersr�r$r$r%�visit_math_blockdr�zHTMLTranslator.visit_math_blockcCr�r,r�r�r$r$r%�depart_math_blockir�z HTMLTranslator.depart_math_blockcCstd|jj��)NzUnknown node: )�NotImplementedErrorr1rRrjr$r$r%�
unknown_visitorvzHTMLTranslator.unknown_visitcCstjdtdd�|jjS)Nz,HTMLTranslator.permalink_text is deprecated.r(��
stacklevel)�warnings�warnrr]r
r�r$r$r%�permalink_textrs�zHTMLTranslator.permalink_textcC�tjdtdd�|jdS)Nz"_fieldlist_row_index is deprecatedr(r�r�)r�r�rrer�r$r$r%�_fieldlist_row_indexx��
z#HTMLTranslator._fieldlist_row_indexcCr�)Nz_table_row_index is deprecatedr(r�r�)r�r�rrdr�r$r$r%�_table_row_index~r�zHTMLTranslator._table_row_index)rE)�rRrSrT�__doc__r+�__annotations__rrGr
r.rrkrmrrruryr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�r�rr}rrrrrrrrr r'r)r2r:r<r=r?r@rCrDrQrRrSrTrVrWr�boolrZr[r\rerfrir{r~rr�r�r�r�r�r�r�r�r�r�r�r	r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rYr$r$r0r%r
Rs

		
		
+	    r
)1r�rUrur`r�urllib.parserbr��typingrrrr�docutilsr�docutils.nodesrrr	�docutils.writers.html4css1r
�BaseTranslatorr�sphinxr�sphinx.buildersr
�sphinx.deprecationrr�
sphinx.localerrr�sphinx.utilr�sphinx.util.docutilsr�sphinx.util.imagesr�sphinx.builders.htmlr�	getLoggerrRr�r�rr&r'r$r$r$r%�<module>s2