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__/html5.cpython-310.pyc
o

�W�a���@sdZddlZddlZddlZddlZddlZddlmZm	Z	m
Z
mZmZddl
mZddlmZmZmZddlmZddlmZddlmZdd	lmZmZdd
lmZmZm Z ddl!m"Z"ddl#m$Z$dd
l%m&Z&errddl'm(Z(e"�)e*�Z+de,de-de,fdd�Z.Gdd�de$e�Z/dS)z�
    sphinx.writers.html5
    ~~~~~~~~~~~~~~~~~~~~

    Experimental docutils writers for HTML5 handling Sphinx's custom nodes.

    :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
�N)�
TYPE_CHECKING�Iterable�Set�Tuple�cast)�nodes)�Element�Node�Text)�HTMLTranslator)�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$�6/usr/lib/python3/dist-packages/sphinx/writers/html5.py�multiply_length(sr&csp	eZdZUdZdZded<e�Zee	ed<de
jdeddf�fdd	�Z
d
eddfdd�Zd
eddfd
d�Zd
eddfdd�Zd
eddfdd�Zd
eddfdd�Zd
eddfdd�Zd
eddfdd�Zd
eddfdd�Zd
eddfdd�Zd
eddfdd�Zd
eddfdd �Zd
eddfd!d"�Zd
eddfd#d$�Zd
eddfd%d&�Zd
eddfd'd(�Zd
eddfd)d*�Zd
eddfd+d,�Zd
eddfd-d.�Z d
eddfd/d0�Z!d
eddfd1d2�Z"d
eddfd3d4�Z#d
eddfd5d6�Z$d
eddfd7d8�Z%d
eddfd9d:�Z&d
eddfd;d<�Z'd
eddfd=d>�Z(d
eddfd?d@�Z)d
eddfdAdB�Z*d
eddfdCdD�Z+d
eddfdEdF�Z,d
eddfdGdH�Z-d
eddfdIdJ�Z.d
eddfdKdL�Z/d
eddfdMdN�Z0�dd
edPe	ddfdQdR�Z1d
eddfdSdT�Z2d
eddfdUdV�Z3d
ede4e5dWffdXdY�Z6d
eddfdZd[�Z7d
eddfd\d]�Z8d
ed^e	ddfd_d`�Z9d
eddf�fdadb�Z:d
eddfdcdd�Z;d
eddfdedf�Z<d
eddfdgdh�Z=d
eddfdidj�Z>d
eddfdkdl�Z?d
eddfdmdn�Z@d
eddf�fdodp�ZAd
eddf�fdqdr�ZBd
eddf�fdsdt�ZCd
eddf�fdudv�ZDd
eddf�fdwdx�ZEd
eddfdydz�ZFd
eddfd{d|�ZGd
eddfd}d~�ZHd
eddfdd��ZId
eddfd�d��ZJd
eddfd�d��ZKd
eddfd�d��ZLd
eddfd�d��ZMd
eddfd�d��ZNd
eddfd�d��ZOd
eddfd�d��ZPd
eddfd�d��ZQd
eddfd�d��ZRd
eddfd�d��ZSd
eddfd�d��ZTd
eddf�fd�d��ZUd
eddf�fd�d��ZVd
eddf�fd�d��ZWd
eddfd�d��ZXd
eddfd�d��ZYd
eddfd�d��ZZd
eddfd�d��Z[d
eddfd�d��Z\d
eddfd�d��Z]d
eddfd�d��Z^d
eddfd�d��Z_d
eddfd�d��Z`d
eddfd�d��Zad
eddfd�d��Zbd
ecddfd�d��Zdd
eddfd�d��Zed
eddfd�d��Zfd
eddfd�d��Zgd
eddfd�d��Zhd
eddfd�d��Zid
eddfd�d��Zjd
eddfd�d„Zkd
eddfd�dĄZld
eddfd�dƄZmd
eddfd�dȄZnd
eddfd�dʄZod
eddfd�d̄Zpd
eddfd�d΄Zqd
eddfd�dЄZrd
eddfd�d҄Zsd
eddfd�dԄZtd
eddfd�dքZud
eddfd�d؄Zvd
eddfd�dڄZwd
eddfd�d܄Zxd
eddfd�dބZyd
eddfd�d�Zzd
eddfd�d�Z{d
eddfd�d�Z|d
eddfd�d�Z}d
eddfd�d�Z~d
eddfd�d�Zd
eddf�fd�d�Z�d
eddfd�d�Z�d
eddf�fd�d�Z�d
eddf�fd�d�Z�d
eddfd�d�Z��dd
ed�e	ddfd�d��Z��dd
ed�e	ddfd�d��Z��dd
ed�e	ddfd�d��Z��dd
ed�e	ddfd�d��Z�d
e�ddfd�d��Z�e�de	f�d�d��Z�d
eddf�d�d�Z�e��d�d��Z�e��d�d��Z��Z�S(	�HTML5Translatorz%
    Our custom HTML translator.
    Nr�builder�supported_inline_tags�documentrcsdt��||�|jj|_|jjg|_|jj|_d|_|jj	|_
d|_d|_dg|_
dg|_d|_dS)Nr�)�super�__init__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)�selfr*r(��	__class__r$r%r-@s



zHTML5Translator.__init__�nodecCs(|j�|d�|j�d|d�dS)N�docnamez<span id="document-%s"></span>)r0�append�body�r;r>r$r$r%�visit_start_of_fileNsz#HTML5Translator.visit_start_of_filecCs|j��dS�N)r0�poprBr$r$r%�depart_start_of_fileS�z$HTML5Translator.depart_start_of_filecCs|j�|�|d��dS)N�dl�rAr@�starttagrBr$r$r%�
visit_desc]szHTML5Translator.visit_desccC�|j�d�dS)Nz</dl>

�rAr@rBr$r$r%�depart_desc`�zHTML5Translator.depart_desccCs&|j�|�|d��|jd7_dS)N�dt��rAr@rJr3rBr$r$r%�visit_desc_signaturecsz$HTML5Translator.visit_desc_signaturecCs8|jd8_|�d�s|�|td��|j�d�dS)NrQ�is_multiline�Permalink to this definitionz</dt>
)r3�get�add_permalink_refrrAr@rBr$r$r%�depart_desc_signaturehs
z%HTML5Translator.depart_desc_signaturecC�dSrDr$rBr$r$r%�visit_desc_signature_linen�z)HTML5Translator.visit_desc_signature_linecCs,|�d�r|�|jtd��|j�d�dS)N�
add_permalinkrUz<br />)rVrW�parentrrAr@rBr$r$r%�depart_desc_signature_lineqs
z*HTML5Translator.depart_desc_signature_linecC�|j�|�|dd��dS�N�ddr+rIrBr$r$r%�visit_desc_contentw�z"HTML5Translator.visit_desc_contentcCrL)Nz</dd>rMrBr$r$r%�depart_desc_contentzrOz#HTML5Translator.depart_desc_contentcCr_�N�spanr+rIrBr$r$r%�visit_desc_inline}rcz!HTML5Translator.visit_desc_inlinecCrL�N�</span>rMrBr$r$r%�depart_desc_inline�rOz"HTML5Translator.depart_desc_inlinecCr_rerIrBr$r$r%�visit_desc_name�rczHTML5Translator.visit_desc_namecCrLrhrMrBr$r$r%�depart_desc_name�rOz HTML5Translator.depart_desc_namecCr_rerIrBr$r$r%�visit_desc_addname�rcz"HTML5Translator.visit_desc_addnamecCrLrhrMrBr$r$r%�depart_desc_addname�rOz#HTML5Translator.depart_desc_addnamecCrYrDr$rBr$r$r%�visit_desc_type�r[zHTML5Translator.visit_desc_typecCrYrDr$rBr$r$r%�depart_desc_type�r[z HTML5Translator.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">rMrBr$r$r%�visit_desc_returns�sz"HTML5Translator.visit_desc_returnscCrL)Nz</span></span>rMrBr$r$r%�depart_desc_returns�rOz#HTML5Translator.depart_desc_returnscCs:|j�d�d|_d|_tdd�|jD��|_|j|_dS)Nz <span class="sig-paren">(</span>rQrcSsg|]}t|tj��qSr$)�
isinstancer�desc_parameter)�.0�cr$r$r%�
<listcomp>�s�z<HTML5Translator.visit_desc_parameterlist.<locals>.<listcomp>)	rAr@�first_paramr7�sum�childrenr:�child_text_separatorr6rBr$r$r%�visit_desc_parameterlist�s
�z(HTML5Translator.visit_desc_parameterlistcCrL)Nz <span class="sig-paren">)</span>rMrBr$r$r%�depart_desc_parameterlist�rOz)HTML5Translator.depart_desc_parameterlistcCsX|jrd|_n
|js|j�|j�|jdkr|jd8_|�d�s*|j�d�dSdS)NrrQ�noemphz<em class="sig-param">)rxr:rAr@r6r7�hasattrrBr$r$r%�visit_desc_parameter�s

�z$HTML5Translator.visit_desc_parametercCs2|�d�s|j�d�|jr|j�|j�dSdS)Nr~�</em>)rrAr@r:r6rBr$r$r%�depart_desc_parameter�s

�z%HTML5Translator.depart_desc_parametercCs|jd7_|j�d�dS)NrQz<span class="optional">[</span>�r7rAr@rBr$r$r%�visit_desc_optional��z#HTML5Translator.visit_desc_optionalcCs|jd8_|j�d�dS)NrQz<span class="optional">]</span>r�rBr$r$r%�depart_desc_optional�r�z$HTML5Translator.depart_desc_optionalcC�|j�|j|dddd��dS)N�emr+�property��CLASSrIrBr$r$r%�visit_desc_annotation��z%HTML5Translator.visit_desc_annotationcCrL)Nr�rMrBr$r$r%�depart_desc_annotation�rOz&HTML5Translator.depart_desc_annotationcCs |j�|j|d|dd��dS)N�div�typer�rIrBr$r$r%�visit_versionmodified�s z%HTML5Translator.visit_versionmodifiedcCrL)N�</div>
rMrBr$r$r%�depart_versionmodified�rOz&HTML5Translator.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.rQrz image-reference�reftitle�title�target�ar+�	secnumberz%s�.)rV�settings�cloak_email_addresses�
startswith�cloak_mailto�	in_mailtorsr]r�TextElement�len�imagerAr@rJr5�join�map�str�r;r>�attsr$r$r%�visit_reference�s6�
� 

��zHTML5Translator.visit_referencecC�|�|�dSrD)r�rBr$r$r%�visit_number_reference�rGz&HTML5Translator.visit_number_referencecCr�rD)�depart_referencerBr$r$r%�depart_number_reference�rGz'HTML5Translator.depart_number_referencecC�tj�rD�r�SkipNoderBr$r$r%�
visit_comment��zHTML5Translator.visit_commentr+�namecCs@|j�|j|dd|d��|r|�dt�|t|��dSdS)Nr�zadmonition r�r)rAr@rJ�insertrr�r)r;r>r�r$r$r%�visit_admonitions

��z HTML5Translator.visit_admonitioncC�|�|d�dS)N�seealso�r�rBr$r$r%�
visit_seealsorOzHTML5Translator.visit_seealsocCr�rD��depart_admonitionrBr$r$r%�depart_seealso	rGzHTML5Translator.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�r+)	rVrsr]r�sectionr(r�r0�
secnumbers)r;r>r?�
anchornamer$r$r%�
get_secnumbers

�zHTML5Translator.get_secnumbercCs8|�|�}|r|j�dd�tt|��|j�dSdS)Nz&<span class="section-number">%s</span>r�)r�rAr@r�r�r�r5)r;r>r�r$r$r%�
add_secnumber s

��zHTML5Translator.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�� ri)r(r�r0�
fignumbersrVrAr@r1�
numfig_formatr�logger�warningr�r�r�)r�r��key�prefix�msg�numbers�r;r$r%�append_fignumber's �z7HTML5Translator.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;r>r�r�r�r$r�r%�
add_fignumber&s�zHTML5Translator.add_fignumberr�cCsN|dr!|jjr#|jjr%d}|j�||dd||jjf�dSdSdSdS)Nr�z2<a class="headerlink" href="#%s" title="%s">%s</a>r)r1�html_permalinksr(�add_permalinksrAr@�html_permalinks_icon)r;r>r��formatr$r$r%rW@s��z!HTML5Translator.add_permalink_refcs2t|�dkrt|dtj�rtj�t��|�dS)NrQr)r�rsr�toctreerr�r,�visit_bullet_listrBr<r$r%r�Gsz!HTML5Translator.visit_bullet_listcCr_r`rIrBr$r$r%�visit_definitionNsz HTML5Translator.visit_definitioncCrL)Nz</dd>
rMrBr$r$r%�depart_definitionSrOz!HTML5Translator.depart_definitioncCr�)Nrfr+�
classifierr�rIrBr$r$r%�visit_classifierWr�z HTML5Translator.visit_classifiercCs:|j�d�|jddd�}t|tj�s|j�d�dSdS)NriFT��descend�siblings�</dt>)rAr@�	next_nodersrr��r;r>r�r$r$r%�depart_classifier[s
�z!HTML5Translator.depart_classifiercCr_)NrPr+rIrBr$r$r%�
visit_termdrczHTML5Translator.visit_termcCsP|jddd�}t|tj�rdSt|jjjtj�r |�|td��|j	�
d�dS)NFTr�zPermalink to this termr�)r�rsrr�r]r�glossaryrWrrAr@r�r$r$r%�depart_termhszHTML5Translator.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��pr+�caption�heading)r��ROLEz<span class="caption-text">z</span></p>
)rsr]r�compact_paragraphrVrAr@rJ�contextr,�visit_titler�r�r�tablerBr<r$r%r�vs
�zHTML5Translator.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">%srizPermalink to this table)r�r1r�r(r�r]rr�rWrrAr@r�rsrr�r,�depart_title)r;r>�	close_tagr<r$r%r��s0

��

����zHTML5Translator.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�language�default�linenosF�highlight_args�force)�optsrr�r�r+zhighlight-%s notranslate)�suffixr�r�)�	rawsource�astextr,�visit_literal_blockrVr1�highlight_options�html_codeblock_linenos_styler.�highlight_blockrJrAr@rr�)r;r>�langrrr�highlightedrJr<r$r%r�s,���
�z#HTML5Translator.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">rfr+zcaption-textr�)rsr]r�	containerrVrAr@r,�
visit_captionr�rJrBr<r$r%r�s
zHTML5Translator.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)NrirzPermalink to this codezPermalink to this imager�zPermalink to this toctreer�)rAr@rsr]rrrVrWr�figurer,�depart_captionrBr<r$r%r�szHTML5Translator.depart_captioncCr�rD)rrBr$r$r%�visit_doctest_block�rGz#HTML5Translator.visit_doctest_blockcCs|j�|�|d�d�dS)N�
blockquotez<div>rIrBr$r$r%�visit_block_quote�sz!HTML5Translator.visit_block_quotecCrL)Nz</div></blockquote>
rMrBr$r$r%�depart_block_quote�rOz"HTML5Translator.depart_block_quotecCsVd|dvr|j�|j|dddd��dS|j�|j|dddd��|jd7_dS)N�kbd�classesr+zdocutils literal notranslater��coderQrRrBr$r$r%�
visit_literal�s��zHTML5Translator.visit_literalcCs:d|dvr|j�d�dS|jd8_|j�d�dS)Nrrz</kbd>rQz</code>)rAr@r3rBr$r$r%�depart_literal�szHTML5Translator.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|�VqdSrD)r�)rur�r$r$r%�	<genexpr>�s�z7HTML5Translator.visit_productionlist.<locals>.<genexpr>�strongr+z</strong> ::= z%s     r��
z</pre>
)
rAr@rJrrr�
production�max�ljustr��	walkaboutrr�)r;r>�names�productionlistr!�maxlen�lastnamer$r$r%�visit_productionlist�s$
z$HTML5Translator.visit_productionlistcCrYrDr$rBr$r$r%�depart_productionlist�r[z%HTML5Translator.depart_productionlistcCrYrDr$rBr$r$r%�visit_production�r[z HTML5Translator.visit_productioncCrYrDr$rBr$r$r%�depart_production�r[z!HTML5Translator.depart_productioncCs |j�|j|ddd�d�dS)Nr��centeredr�z<strong>rIrBr$r$r%�visit_centered�s
�zHTML5Translator.visit_centeredcCrL)Nz
</strong></p>rMrBr$r$r%�depart_centeredrOzHTML5Translator.depart_centeredcCrYrDr$rBr$r$r%�visit_compact_paragraphr[z'HTML5Translator.visit_compact_paragraphcCrYrDr$rBr$r$r%�depart_compact_paragraph	r[z(HTML5Translator.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 downloadr+)r��downloadr�r�r�r�r�z</a>�filenamer�)r(�download_supportr�r@rArJ�	posixpathr��dlpath�urllib�parse�quoter�r$r$r%�visit_download_references$�
�z(HTML5Translator.visit_download_referencecCs|j�|j���dSrD)rAr@r�rErBr$r$r%�depart_download_reference sz)HTML5Translator.depart_download_referencecs|�dd�t��|�S)N�alignr)�
setdefaultr,�visit_figurerBr<r$r%r>$szHTML5Translator.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.r�rrQ��svg�svgz�src�altr<�align-%sr��imgr+)r(�imagesr5r��imgpathr�os�path�srcdirr�r�rr��lower�endswithr&rVrAr@�emptytagr,�visit_image)r;r>�olduri�sizer?r�r<r$r%rQ+sD

�
�zHTML5Translator.visit_imagecs&|d���d�rdSt��|�dS)Nr?rB)rNrOr,�depart_imagerBr<r$r%rTVszHTML5Translator.depart_imagecCr�rDr�rBr$r$r%�
visit_toctree\szHTML5Translator.visit_toctreecCr�rDr�rBr$r$r%�visit_indexar�zHTML5Translator.visit_indexcCr�rDr�rBr$r$r%�visit_tabular_col_specdr�z&HTML5Translator.visit_tabular_col_speccCrYrDr$rBr$r$r%�visit_glossarygr[zHTML5Translator.visit_glossarycCrYrDr$rBr$r$r%�depart_glossaryjr[zHTML5Translator.depart_glossarycCrYrDr$rBr$r$r%�
visit_acksmr[zHTML5Translator.visit_ackscCrYrDr$rBr$r$r%�depart_ackspr[zHTML5Translator.depart_ackscCrL)Nz<table class="hlist"><tr>rMrBr$r$r%�visit_hlistsrOzHTML5Translator.visit_hlistcCrL)Nz</tr></table>
rMrBr$r$r%�depart_hlistvrOzHTML5Translator.depart_hlistcCrL)Nz<td>rMrBr$r$r%�visit_hlistcolyrOzHTML5Translator.visit_hlistcolcCrL)Nz</td>rMrBr$r$r%�depart_hlistcol|rOzHTML5Translator.depart_hlistcolcCs�|��}|�|�}|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 
z&#160;rQr�)
r�encoder3�words_and_spaces�findall�striprAr@r�r�r�r��cloak_email)r;r>�text�encoded�tokenr$r$r%�
visit_Text�s
�
zHTML5Translator.visit_TextcCr�)N�noter�rBr$r$r%�
visit_note�rOzHTML5Translator.visit_notecCr�rDr�rBr$r$r%�depart_note�rGzHTML5Translator.depart_notecCr�)Nr�r�rBr$r$r%�
visit_warning�rOzHTML5Translator.visit_warningcCr�rDr�rBr$r$r%�depart_warning�rGzHTML5Translator.depart_warningcCr�)N�	attentionr�rBr$r$r%�visit_attention�rOzHTML5Translator.visit_attentioncCr�rDr�rBr$r$r%�depart_attention�rGz HTML5Translator.depart_attentioncCr�)N�cautionr�rBr$r$r%�
visit_caution�rOzHTML5Translator.visit_cautioncCr�rDr�rBr$r$r%�depart_caution�rGzHTML5Translator.depart_cautioncCr�)N�dangerr�rBr$r$r%�visit_danger�rOzHTML5Translator.visit_dangercCr�rDr�rBr$r$r%�
depart_danger�rGzHTML5Translator.depart_dangercCr�)N�errorr�rBr$r$r%�visit_error�rOzHTML5Translator.visit_errorcCr�rDr�rBr$r$r%�depart_error�rGzHTML5Translator.depart_errorcCr�)N�hintr�rBr$r$r%�
visit_hint�rOzHTML5Translator.visit_hintcCr�rDr�rBr$r$r%�depart_hint�rGzHTML5Translator.depart_hintcCr�)N�	importantr�rBr$r$r%�visit_important�rOzHTML5Translator.visit_importantcCr�rDr�rBr$r$r%�depart_important�rGz HTML5Translator.depart_importantcCr�)N�tipr�rBr$r$r%�	visit_tip�rOzHTML5Translator.visit_tipcCr�rDr�rBr$r$r%�
depart_tip�rGzHTML5Translator.depart_tipcC�
|�|�SrD)�visit_emphasisrBr$r$r%�visit_literal_emphasis��
z&HTML5Translator.visit_literal_emphasiscCr�rD)�depart_emphasisrBr$r$r%�depart_literal_emphasis�r�z'HTML5Translator.depart_literal_emphasiscCr�rD)�visit_strongrBr$r$r%�visit_literal_strong�r�z$HTML5Translator.visit_literal_strongcCr�rD)�
depart_strongrBr$r$r%�depart_literal_strong�r�z%HTML5Translator.depart_literal_strongcCs<i}|�d�r
|d|d<|j�|j|ddfi|���dS)N�explanationr��abbrr+)rrAr@rJ)r;r>�attrsr$r$r%�visit_abbreviation�s
"z"HTML5Translator.visit_abbreviationcCrL)Nz</abbr>rMrBr$r$r%�depart_abbreviation�rOz#HTML5Translator.depart_abbreviationcCs:|�|�|jr|jjdi|j��|d<|�|�dSdS)Nr�r$)r�r2r��
attributesr�rBr$r$r%�
visit_manpage�s

�zHTML5Translator.visit_manpagecCs|jr|�|�|�|�dSrD)r2r�r�rBr$r$r%�depart_manpage�s
zHTML5Translator.depart_manpagecCs�|j�d�i}dd�|jj�d�D�}|�dd�|�d|�dd��d	|vr1d
|d	|d<|j|dfd
d�|�i|��}|j	�|�dS)NrcSsg|]}|�d��qS)z 	
)rc)ru�clsr$r$r%rw�sz/HTML5Translator.visit_table.<locals>.<listcomp>�,�docutilsrGr<rr@z	width: %s�styler�r�r�)
r8r@r��table_style�splitr�rVrJr�rA)r;r>r�r�tagr$r$r%�visit_table�szHTML5Translator.visit_tablecs|j��t��|�dSrD)r8rEr,�depart_tablerBr<r$r%r��s
zHTML5Translator.depart_tablecCsb|jdd7<|jdddkr|d�d�n|d�d�|j�|�|dd	��d|_dS)
Nr�rQ�rrzrow-evenzrow-odd�trr+)r8r@rArJ�columnrBr$r$r%�	visit_rows
zHTML5Translator.visit_rowcs|j�d�t��|�S)Nr)r9r@r,�visit_field_listrBr<r$r%r�	sz HTML5Translator.visit_field_listcs|j��t��|�SrD)r9rEr,�depart_field_listrBr<r$r%r�
s
z!HTML5Translator.depart_field_listcCsH|jdd7<|jdddkr|d�d�dS|d�d�dS)Nr�rQr�rrz
field-evenz	field-odd)r9r@rBr$r$r%�visit_fieldszHTML5Translator.visit_field�math_envcC�*|jj}|jjjj|\}}|||�dSrD�r(�math_renderer_name�app�registry�html_inline_math_renderers�r;r>r�r��visitrr$r$r%�
visit_math�zHTML5Translator.visit_mathcC�2|jj}|jjjj|\}}|r|||�dSdSrDr��r;r>r�r�r�departr$r$r%�depart_math�
�zHTML5Translator.depart_mathcCr�rD�r(r�r�r��html_block_math_renderersr�r$r$r%�visit_math_block#r�z HTML5Translator.visit_math_blockcCr�rDr�r�r$r$r%�depart_math_block(r�z!HTML5Translator.depart_math_blockcCstd|jj��)NzUnknown node: )�NotImplementedErrorr=�__name__rBr$r$r%�
unknown_visit.rOzHTML5Translator.unknown_visitcCstjdtdd�|jjS)Nz,HTMLTranslator.permalink_text is deprecated.r���
stacklevel)�warnings�warnrr1r�r�r$r$r%�permalink_text1s�zHTML5Translator.permalink_textcCsHtjdtdd�|ddd�D]}|j�d|�|d�|�qdS)aZGenerate hyperlink targets for tables.

        Original visit_table() generates hyperlink targets inside table tags
        (<table>) if multiple IDs are assigned to listings.
        That is invalid DOM structure.  (This is a bug of docutils <= 0.13.1)

        This exports hyperlink targets before tables to make valid DOM structure.
        z*generate_targets_for_table() is deprecatedr�r�r�rQNz<span id="%s"></span>)r�r�rrAr@�remove)r;r>�idr$r$r%�generate_targets_for_table7s	��z*HTML5Translator.generate_targets_for_tablecC�tjdtdd�|jdS)Nz"_fieldlist_row_index is deprecatedr�r�r�)r�r�rr9r�r$r$r%�_fieldlist_row_indexF��
z$HTML5Translator._fieldlist_row_indexcCr�)Nz_table_row_index is deprecatedr�r�r�)r�r�rr8r�r$r$r%�_table_row_indexLr�z HTML5Translator._table_row_index)r+)�r��
__module__�__qualname__�__doc__r(�__annotations__�setr)rr�rr*r
r-rrCrFrKrNrSrXrZr^rbrdrgrjrkrlrmrnrorprqrrr|r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr�r�r�rWr�r�r�r�r�r�r�r�r�rrrrrrrrr)r*r+r,r.r/r0r1r:r;r>rQrTrUrVrWrXrYrZr[r\r]r^r_r
rhrjrkrlrmrorprrrsrurvrxryr{r|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��
__classcell__r$r$r<r%r'5s

		
		+	r')0r�rKr5r�urllib.parser7r��typingrrrrrr�r�docutils.nodesrr	r
�docutils.writers.html5_polyglotr�BaseTranslator�sphinxr�sphinx.buildersr
�sphinx.deprecationrr�
sphinx.localerrr�sphinx.utilr�sphinx.util.docutilsr�sphinx.util.imagesr�sphinx.builders.htmlr�	getLoggerr�r�r�rr&r'r$r$r$r%�<module>s,