HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: //lib/python3.6/site-packages/docutils/writers/__pycache__/_html_base.cpython-36.pyc
3

�2�e���@s$dZddlZddlZddlZddlZddlZddlZyddl	Z
WnPek
r�y"ddlZGdd�de
�Z
ee
_Wnek
r�dZ
YnXYnXddlZddlmZmZmZmZmZddlmZddlmZddlmZmZmZmZmZGd	d
�d
ej�ZGdd�dej�Z Gd
d�dej!�Z"dS)z,common definitions for Docutils HTML writers�Nc@seZdZdS)�PILN)�__name__�
__module__�__qualname__�rr� /usr/lib/python3.6/_html_base.pyrsr)�nodes�utils�writers�	languages�io)�
SafeString)�
writer_aux)�unichar2tex�pick_math_environment�	math2html�latex2mathml�tex2mathml_externc@sPeZdZd&ZdZddiZddgZd'Zdd�Zdd�Z	dd �Z
d!d"�Zd#d$�Zd%S)(�Writer�html�xhtmlztemplate.txtZoutput_encoding_error_handler�xmlcharrefreplacer
zhtml writers�head_prefix�head�
stylesheet�body_prefix�body_pre_docinfo�docinfo�body�body_suffix�title�subtitle�header�footer�meta�fragment�html_prolog�	html_head�
html_title�
html_subtitle�	html_bodycCstjj|�tjgS)N)r
r�get_transformsrZAdmonitions)�selfrrrr+BszWriter.get_transformscCsN|j|j�|_}|jj|�x |jD]}t||t||��q&W|j�|_dS)N)	Ztranslator_class�document�visitorZ	walkabout�visitor_attributes�setattr�getattr�apply_template�output)r,r.�attrrrr�	translateEs
zWriter.translatecCs6t|jjjd�}t|j�d�}|j�|j�}||S)N�rbzutf-8)�openr-�settings�template�str�read�close�interpolation_dict)r,Z
template_filer9�subsrrrr2Ls
zWriter.apply_templatecCsNi}|jj}x(|jD]}djt||��jd�||<qW|j|d<tj|d<|S)N��
�encoding�version)	r-r8r/�joinr1�rstrip�output_encoding�docutils�__version__)r,r>r8r4rrrr=Ss

zWriter.interpolation_dictcCs6tjj|�x$|jD]}djt||��|j|<qWdS)Nr?)r
r�assemble_partsr/rCr1�parts)r,�partrrrrH\szWriter.assemble_partsN)rr)rrrrrrrrr r!r"r#r$r%r&r'r(r)r*)
rrrZ	supportedZdefault_templateZsettings_defaultsZconfig_section_dependenciesr/r+r5r2r=rHrrrrr+s	rc
@seZdZdZdZdZeZdZdZdZ	dZ
dZd	Zd
Z
ejd�Zejdej�Zd
Zed�ded�ded�ded�ded�diZdd�Zdd�Zdd�Zdd�Zd d!�Zejd"�fd#d$�Zd%d&�Z�d�d)d*�Z�d�d+d,�Z�d�d.d/�Zd0d1�Z d2d3�Z!d4d5�Z"d6d7�Z#d8d9�Z$d:d;�Z%d<d=�Z&d>d?�Z'd@dA�Z(�d�dCdD�Z)�d��d��d��d�dI�Z*dJdK�Z+dLdM�Z,dNdO�Z-dPdQ�Z.dRdS�Z/dTdU�Z0dVdW�Z1dXdY�Z2dZd[�Z3d\d]�Z4d^d_�Z5d`da�Z6dbdc�Z7ddde�Z8dfdg�Z9dhdi�Z:djdk�Z;dldm�Z<dndo�Z=dpdq�Z>drds�Z?dtdu�Z@ejdv�jAfdwdx�ZBdydz�ZCd{d|�ZDd}d~�ZEdd��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJd�d��ZKd�d��ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�d��ZSd�d��ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZX�d�d�d��ZYd�d��ZZd�d��Z[d�d��Z\d�d��Z]d�d��Z^d�d��Z_d�d��Z`d�d��Zad�d��Zbd�d��Zcd�d��Zdd�d��Zed�d��Zfd�dÄZgd�dńZhd�dDŽZid�dɄZjd�d˄Zkd�d̈́Zld�dτZmd�dфZnd�dӄZod�dՄZpd�dׄZqd�dلZrd�dۄZsd�d݄Ztd�d߄Zud�d�Zvd�d�Zwd�d�Zxd�d�iZyd�d�Zzd�d�Z{d�d�Z|d�d�Z}d�d�Z~d�d�Zd�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z�d�d��Z��d�d�Z��d�d�Z��d�d�Z��d�d�Z��d�d	�Z��d
�d�Z��d��d��d��d��d�Z��d��d�d�Z��d�d�Z��d�d�Z��d�d�Z��d�d�Z��d�d�Z��d�d �Z��d!�d"�Z��d#�d$�Z��d%�d&�Z��d'�d(�Z��d)�d*�Z��d+�d,�Z��d-�d.�Z��d/�d0�Z��d1�d2�Z��d3�d4�Z��d5�d6�Z��d7�d8�Z��d9�d:�Z��d;�d<�Z��d=�d>�Z��d?�d@�Z��dA�dB�Z��dC�dD�Z��dE�dF�Z��dG�dH�Z��dI�dJ�Z��dK�dL�Z��dM�dN�Z��dO�dP�Z��dQ�dR�Z��dS�dT�Z��dU�dV�Z��dW�dX�Z��dY�dZ�Z��d[�d\�Z��d]�d^�Z��d_�d`�Z��da�db�Z��dc�dd�Z��de�df�Z��dg�dh�Z��di�dj�Z��dk�dl�Z��dm�dn�Z��do�dp�Z��dq�dr�Z��ds�dt�Z��du�dv�Z��dw�dx�Z��dy�dz�Z��d{�d|�Z��d}�d~�Zd�d��ZÐd��d��ZĐd��d��ZŐd��d��ZƐd��d��Zǐd��d��ZȐd��d��Zɐd��d��Zʐd��d��Zːd��d��Z̐d��d��Z͐d��d��Zΐd��d��Zϐd��d��ZАd��d��Zѐd��d��ZҐd��d��ZӐd��d��ZԐd��d��ZՐd��d��Z֐d��d��Z�dBS(��HTMLTranslatorai
    Generic Docutils to HTML translator.

    See the `html4css1` and `html5_polyglot` writers for full featured
    HTML writers.

    .. IMPORTANT::
      The `visit_*` and `depart_*` methods use a
      heterogeneous stack, `self.context`.
      When subclassing, make sure to be consistent in its use!

      Examples for robust coding:

      a) Override both `visit_*` and `depart_*` methods, don't call the
         parent functions.

      b) Extend both and unconditionally call the parent functions::

           def visit_example(self, node):
               if foo:
                   self.body.append('<div class="foo">')
               html4css1.HTMLTranslator.visit_example(self, node)

           def depart_example(self, node):
               html4css1.HTMLTranslator.depart_example(self, node)
               if foo:
                   self.body.append('</div>')

      c) Extend both, calling the parent functions under the same
         conditions::

           def visit_example(self, node):
               if foo:
                   self.body.append('<div class="foo">
')
               else: # call the parent method
                   _html_base.HTMLTranslator.visit_example(self, node)

           def depart_example(self, node):
               if foo:
                   self.body.append('</div>
')
               else: # call the parent method
                   _html_base.HTMLTranslator.depart_example(self, node)

      d) Extend one method (call the parent), but don't otherwise use the
         `self.context` stack::

           def depart_example(self, node):
               _html_base.HTMLTranslator.depart_example(self, node)
               if foo:
                   # implementation-specific code
                   # that does not use `self.context`
                   self.body.append('</div>
')

      This way, changes in stack use will not bite you.
    z%<?xml version="1.0" encoding="%s" ?>
z<!DOCTYPE html>
zW<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="%(lang)s" lang="%(lang)s">
<head>
z<meta charset="%s"/>
zR<meta name="generator" content="Docutils %s: http://docutils.sourceforge.net/" />
z2<script type="text/javascript" src="%s"></script>
z-file:/usr/share/javascript/mathjax/MathJax.jsz4<link rel="stylesheet" href="%s" type="text/css" />
z%<style type="text/css">

%s
</style>
z	\S+| +|\nz.+\W\W.+|[-?].+�lang�&z&amp;�<z&lt;�"z&quot;�>z&gt;�@z&#64;cs�tjj�|�|j�_}|j}tj||j��_�j	t
jg�_g�_
g�_|jrt�j
j�j|j��jj�j��jdd��_�fdd�tj|�D��_dg�_g�_g�_g�_g�_dg�_d�_t|j��_|jj ��_�jdd��_!�jdj"��_g�_#g�_$g�_%d�_&d�_'d�_(d�_)d�_*d�_+g�_,g�_-g�_.g�_/�j0g�_1g�_2g�_3g�_4d�_5d�_6d�_7g�_8dS)	Ncsg|]}�j|��qSr)�stylesheet_call)�.0�path)r,rr�
<listcomp>�sz+HTMLTranslator.__init__.<locals>.<listcomp>z</head>
<body>
z</body>
</html>
r�TF)9r�NodeVisitor�__init__r8�
language_coderZget_language�reporter�language�	generatorrFrGr$rr&�xml_declaration�appendrErr	Zget_stylesheet_listrrrrrr%r�
section_level�int�initial_header_level�math_output�split�math_output_options�lower�context�
topic_classes�colspecs�	compact_p�compact_simpleZcompact_field_listZ
in_docinfo�
in_sidebar�in_footnote_listr r!r"r#�content_typer'r(r)r*�in_document_title�	in_mailtoZauthor_in_authors�math_header)r,r-r8Zlcoder)r,rrX�s\



zHTMLTranslator.__init__cCs6dj|j|j|j|j|j|j|j|j�S)Nr?)	rCrrrrrrrr)r,rrr�astextszHTMLTranslator.astextcCst|�}|j|j�S)z-Encode special characters in `text` & return.)r:r5�special_characters)r,�textrrr�encode	szHTMLTranslator.encodecCs|jdd�S)z*Try to hide a mailto: URL from harvesters.rQz%40)�replace)r,�urirrr�cloak_mailtoszHTMLTranslator.cloak_mailtocCs|jdd�}|jdd�}|S)z;Try to hide the link text of a email link from harversters.z&#64;z<span>&#64;</span>�.z<span>&#46;</span>)ru)r,Zaddrrrr�cloak_emailszHTMLTranslator.cloak_emailz[

	]cCs<|j|jd|��}|jr8|jjr8|jdd�}|jdd�}|S)z6Cleanse, HTML encode, and return attribute value text.� z%40z&#37;&#52;&#48;rxz&#46;)rt�subror8�cloak_email_addressesru)r,rsZ
whitespace�encodedrrr�attval s
zHTMLTranslator.attvalcCs�|jjr|y$tj|dd�j�}|jjj|�WnDtk
rp}z(d|t|j	�f}|j
jj|�d|Sd}~XnX|j
|S|jjr�tj|jj|�}|j|j|�S)z8Return code to reference or embed stylesheet file `path`zutf-8)�source_pathrAz!Cannot embed stylesheet '%s': %s.z
<--- %s --->
N)r8Zembed_stylesheetrZ	FileInputr;�record_dependencies�add�IOErrorr
�strerrorr-rZ�error�embedded_stylesheetZstylesheet_pathr	Z
relative_pathZ_destination�stylesheet_linkrt)r,rTZcontent�err�msgrrrrR*s
zHTMLTranslator.stylesheet_callr@Fc
Ks<|j�}g}i}g}x$t|j��D]\}	}
|
||	j�<q"Wg}g}x\|jdg�|jdd�j�D]<}
|
jd�r�|j|
dd��q`|
j�r`|
|kr`|j|
�q`W|r�|d||j	<|r�dj
|�|d<d	|ks�t�|j|jd
g��d
|kr�|j|d
�|d
=|�rr|d|d	<x`|dd�D]P}|�sPt
|tjtjtjtjtjtjtjf��r`|jd|�n|d|7}�qWt|j��}|j�|g}x~|D]v\}	}
|
dk	�s�t�t
|
t��r�d
d�|
D�}|jd|	j�|jdj
|��f�n |jd|	j�|jt|
��f��q�W|�rd}nd}dj
|�ddj
|�|f|S)z�
        Construct and return a start tag given a node (id & class attributes
        are extracted), tag name, and optional attributes.
        �classes�classr?z	language-�	Nrrz�id�idsrVz<span id="%s"></span>cSsg|]}t|��qSr)r:)rS�vrrrrUusz+HTMLTranslator.starttag.<locals>.<listcomp>z%s="%s"z /z<%s%s>)re�list�items�get�poprc�
startswithr^�strip�lang_attributerC�AssertionError�extend�
isinstancer�bullet_listr�definition_list�enumerated_list�
field_listZoption_list�table�sortr~r:)r,�node�tagname�suffix�empty�
attributes�prefix�attsr��name�valuer�r�clsr�ZattlistrI�valuesZinfixrrr�starttag=s^"

zHTMLTranslator.starttagcKs|j|||fddi|��S)z1Construct and return an XML-compatible empty tag.r�T)r�)r,r�r�r�r�rrr�emptytag�szHTMLTranslator.emptytagrcCsBdd�|D�}y||}Wntk
r.dSX|dj|�dS)z�
        Set class `class_` on the visible child no. index of `node`.
        Do nothing if node has fewer children than `index`.
        cSsg|]}t|tj�s|�qSr)r�r�	Invisible)rS�nrrrrU�sz5HTMLTranslator.set_class_on_child.<locals>.<listcomp>Nr�)�
IndexErrorr^)r,r�Zclass_�index�children�childrrr�set_class_on_child�sz!HTMLTranslator.set_class_on_childcCs:|j�}|j|�}|jr*|jjr*|j|�}|jj|�dS)N)rqrtror8r|ryrr^)r,r�rsr}rrr�
visit_Text�s


zHTMLTranslator.visit_TextcCsdS)Nr)r,r�rrr�depart_Text�szHTMLTranslator.depart_TextcCs|jj|j|dd��dS)NZabbrr?)rr^r�)r,r�rrr�visit_abbreviation�sz!HTMLTranslator.visit_abbreviationcCs|jjd�dS)Nz</abbr>)rr^)r,r�rrr�depart_abbreviation�sz"HTMLTranslator.depart_abbreviationcCs|jj|j|dd��dS)NZacronymr?)rr^r�)r,r�rrr�
visit_acronym�szHTMLTranslator.visit_acronymcCs|jjd�dS)Nz
</acronym>)rr^)r,r�rrr�depart_acronym�szHTMLTranslator.depart_acronymcCs.|j|ddd�|jj|j|dddd��dS)NZaddressF)r$�prer?)r��CLASS)�visit_docinfo_itemrr^r�)r,r�rrr�
visit_address�szHTMLTranslator.visit_addresscCs|jjd�|j�dS)Nz
</pre>
)rr^�depart_docinfo_item)r,r�rrr�depart_address�szHTMLTranslator.depart_addresscCs(|djdd�|jj|j|d��dS)Nr�rZ
admonition�div)�insertrr^r�)r,r�rrr�visit_admonition�szHTMLTranslator.visit_admonitionNcCs|jjd�dS)Nz</div>
)rr^)r,r�rrr�depart_admonition�sz HTMLTranslator.depart_admonition�—r?�(�))ZdashZparenthesesZparensZnonecCs<|j|jj\}}|jj|�|jj|j|d|dd��dS)N�p�attribution)r�)�attribution_formatsr8r�rfr^rr�)r,r�r�r�rrr�visit_attribution�sz HTMLTranslator.visit_attributioncCs|jj|jj�d�dS)Nz</p>
)rr^rfr�)r,r�rrr�depart_attribution�sz!HTMLTranslator.depart_attributioncCs*t|jtj�s|j|d�|jjd�dS)NZauthorz<p>)r��parentr�authorsr�rr^)r,r�rrr�visit_author�szHTMLTranslator.visit_authorcCs4|jjd�t|jtj�r(|jjd�n|j�dS)Nz</p>r@)rr^r�r�rr�r�)r,r�rrr�
depart_author�szHTMLTranslator.depart_authorcCs|j|d�dS)Nr�)r�)r,r�rrr�
visit_authors�szHTMLTranslator.visit_authorscCs|j�dS)N)r�)r,r�rrr�depart_authors�szHTMLTranslator.depart_authorscCs|jj|j|d��dS)NZ
blockquote)rr^r�)r,r�rrr�visit_block_quote�sz HTMLTranslator.visit_block_quotecCs|jjd�dS)Nz</blockquote>
)rr^)r,r�rrr�depart_block_quote�sz!HTMLTranslator.depart_block_quotecCs8t|j�}y|j|�Wntjk
r.dSXdSdS)z7Check for a simple list that can be rendered compactly.FTN)�SimpleListCheckerr-�walkr�	NodeFound)r,r�r.rrr�check_simple_list�s
z HTMLTranslator.check_simple_listcCszd|dkrdSd|dkr dSt|tjtjf�r@|jjr@dSt|tjtjf�r`|jjr`dS|j	dgkrpdS|j
|�S)NZcompactr�Tr7F�contents)r�rr�r�r8Zcompact_field_listsr�r�Z
compact_listsrgr�)r,r�rrr�is_compactable�s

zHTMLTranslator.is_compactablecCs`i}|j}|jj|j|jf�d|_|j|�|_|jrD|rDd|d<|jj|j|df|��dS)N�simpler�Zul)rjrfr^rir�rr�)r,r�r�Zold_compact_simplerrr�visit_bullet_listsz HTMLTranslator.visit_bullet_listcCs"|jj�\|_|_|jjd�dS)Nz</ul>
)rfr�rjrirr^)r,r�rrr�depart_bullet_listsz!HTMLTranslator.depart_bullet_listcCs|jj|j|dddd��dS)Nr�r?�caption)r�)rr^r�)r,r�rrr�
visit_captionszHTMLTranslator.visit_captioncCs|jjd�dS)Nz</p>
)rr^)r,r�rrr�depart_captionszHTMLTranslator.depart_captioncCs|js|jjd�d|_dS)Nz<dl class="citation">
T)rlrr^)r,r�rrr�visit_citationszHTMLTranslator.visit_citationcCs8|jjd�t|jddd�tj�s4|jjd�d|_dS)Nz</dd>
FT)�descend�siblingsz</dl>
)rr^r��	next_noderZcitationrl)r,r�rrr�depart_citation$s
zHTMLTranslator.depart_citationcCsVd}d|kr||d7}nd|kr6||jj|d7}|jj|j|ddd|d��dS)N�#�refid�refname�a�[zcitation-reference)r��href)r-Znameidsrr^r�)r,r�r�rrr�visit_citation_reference+s
z'HTMLTranslator.visit_citation_referencecCs|jjd�dS)Nz]</a>)rr^)r,r�rrr�depart_citation_reference6sz(HTMLTranslator.depart_citation_referencecCs|jj|j|dddd��dS)N�spanr?Z
classifier)r�)rr^r�)r,r�rrr�visit_classifier=szHTMLTranslator.visit_classifiercCs|jjd�dS)Nz</span>)rr^)r,r�rrr�depart_classifier@sz HTMLTranslator.depart_classifiercCs&|jj|�|jjj|jjd��dS)N�stub)rhr^r��stubsr�r�)r,r�rrr�
visit_colspecCszHTMLTranslator.visit_colspeccCs�t|jddd�tj�rdSd|jjdksFd|jjkrJd|jjdkrJdStdd�|jD��}|j	j
|j|d	��xB|jD]8}t|d
d|d�}|j	j
|j
|d
d|d��qzW|j	j
d�dS)NFT)r�r�zcolwidths-autor�zcolwidths-givencss|]}|dVqdS)�colwidthNr)rSr�rrr�	<genexpr>Qsz0HTMLTranslator.depart_colspec.<locals>.<genexpr>Zcolgroupr�gY@g�?�colzwidth: %i%%)�stylez</colgroup>
)r�r�rZcolspecr�r8�table_style�sumrhrr^r�r`r�)r,r�Ztotal_widthr�rrr�depart_colspecHszHTMLTranslator.depart_colspecz-(?=-)cCs$|jjd|d|j���tj�dS)z%Escape double-dashes in comment text.z<!-- %s -->
z- N)rr^rqr�SkipNode)r,r�r{rrr�
visit_commentYszHTMLTranslator.visit_commentcCsp|jj|j|ddd��t|�dkrl|ddjd�|d
djd�x"|dd�D]}|djd	�qVWdS)Nr�Zcompound)r�rVrr�zcompound-firstz
compound-lastzcompound-middle���r�)rr^r��len)r,r�r�rrr�visit_compound`szHTMLTranslator.visit_compoundcCs|jjd�dS)Nz</div>
)rr^)r,r�rrr�depart_compoundhszHTMLTranslator.depart_compoundcCs|jj|j|ddd��dS)Nr�zdocutils container)r�)rr^r�)r,r�rrr�visit_containerkszHTMLTranslator.visit_containercCs|jjd�dS)Nz</div>
)rr^)r,r�rrr�depart_containernszHTMLTranslator.depart_containercCs|j|ddd�dS)NZcontactF)r$)r�)r,r�rrr�
visit_contactqszHTMLTranslator.visit_contactcCs|j�dS)N)r�)r,r�rrr�depart_contacttszHTMLTranslator.depart_contactcCs|j|d�dS)N�	copyright)r�)r,r�rrr�visit_copyrightwszHTMLTranslator.visit_copyrightcCs|j�dS)N)r�)r,r�rrr�depart_copyrightzszHTMLTranslator.depart_copyrightcCs|j|d�dS)NZdate)r�)r,r�rrr�
visit_date}szHTMLTranslator.visit_datecCs|j�dS)N)r�)r,r�rrr�depart_date�szHTMLTranslator.depart_datecCsdS)Nr)r,r�rrr�visit_decoration�szHTMLTranslator.visit_decorationcCsdS)Nr)r,r�rrr�depart_decoration�sz HTMLTranslator.depart_decorationcCs&|jjd�|jj|j|dd��dS)Nz</dt>
�ddr?)rr^r�)r,r�rrr�visit_definition�szHTMLTranslator.visit_definitioncCs|jjd�dS)Nz</dd>
)rr^)r,r�rrr�depart_definition�sz HTMLTranslator.depart_definitioncCs8|jdg�}|j|�r |jd�|jj|j|d��dS)Nr�r��dl)�
setdefaultr�r^rr�)r,r�r�rrr�visit_definition_list�s

z$HTMLTranslator.visit_definition_listcCs|jjd�dS)Nz</dl>
)rr^)r,r�rrr�depart_definition_list�sz%HTMLTranslator.depart_definition_listcCs||jdg�|jdjdg�|jdd<|jdg�|jdjdg�|jdd<|jdg�|jdjdg�|jdd<dS)Nr�rr��names)r�r�)r,r�rrr�visit_definition_list_item�s((z)HTMLTranslator.visit_definition_list_itemcCsdS)Nr)r,r�rrr�depart_definition_list_item�sz*HTMLTranslator.depart_definition_list_itemcCs|jj|j|dd��dS)Nr
r?)rr^r�)r,r�rrr�visit_description�sz HTMLTranslator.visit_descriptioncCs|jjd�dS)Nz</dd>
)rr^)r,r�rrr�depart_description�sz!HTMLTranslator.depart_descriptioncCs2d}|j|�r|d7}|jj|j|d|d��dS)Nrz simpler
)r�)r�rr^r�)r,r�r�rrr�
visit_docinfo�s
zHTMLTranslator.visit_docinfocCs|jjd�dS)Nz</dl>
)rr^)r,r�rrr�depart_docinfo�szHTMLTranslator.depart_docinfoTcCs^|r$d||j|j��f}|j|�|jjd||jj|f�|jj|j|dd|d��dS)Nz <meta name="%s" content="%s" />
z<dt class="%s">%s</dt>
r
r?)r�)r~rq�add_metarr^r[Zlabelsr�)r,r�r�r$Zmeta_tagrrrr��s
z!HTMLTranslator.visit_docinfo_itemcCs|jjd�dS)Nz</dd>
)rr^)r,rrrr��sz"HTMLTranslator.depart_docinfo_itemcCs|jj|j|dddd��dS)Nr�r?zcode python doctest)r�r�)rr^r�)r,r�rrr�visit_doctest_block�sz"HTMLTranslator.visit_doctest_blockcCs|jjd�dS)Nz
</pre>
)rr^)r,r�rrr�depart_doctest_block�sz#HTMLTranslator.depart_doctest_blockcCs:|jdd�ptjj|d�pd}|jjd|j|��dS)Nr r?�sourcezdocutils document without titlez<title>%s</title>
)r��osrT�basenamerr^rt)r,r�r rrr�visit_document�szHTMLTranslator.visit_documentcCs,|jj|j|jd|jjig�|jj|j�|jj	d|j
|jj�|jj	d|j
|jj�|j
r�|jdkr~|jj|j
�n|jj|j
�|jj|jdd��|jj|j|ddd��|jj	dd�|jj|j�|jj|jdd�|j|j|j|jdd
��|j�s(td	t|j���dS)NrLr�mathjaxrVr�r-)r�z</div>
zlen(context) = %sr�)rr��doctype�head_prefix_templater8rYr&r^r$r�rmrErrprbrr'rr�rr%rr*rrrfr�r�)r,r�rrr�depart_document�s"

0zHTMLTranslator.depart_documentcCs|jj|j|dd��dS)NZemr?)rr^r�)r,r�rrr�visit_emphasis�szHTMLTranslator.visit_emphasiscCs|jjd�dS)Nz</em>)rr^)r,r�rrr�depart_emphasis�szHTMLTranslator.depart_emphasiscCs�dgi}t|jjtj�r&|djd�|jjjj|jjrH|djd�|drhd}dj|d�|d<n
d}|d=|jjd7_d|kr�|dd|d	<d
|kr�|d
d|d<|jj|d
7_|jj|j	||df|��|j
jd
|j��dS)Nr�rr�ZthrzZtdrVZmorerowsZrowspanZmorecolsZcolspanr?z</%s>
)r�r�r�theadr^r��columnrCrr�rfre)r,r�r�r�rrr�visit_entry�s$zHTMLTranslator.visit_entrycCs|jj|jj��dS)N)rr^rfr�)r,r�rrr�depart_entryszHTMLTranslator.depart_entrycCsji}d|kr|d|d<d|kr,|d|d<|j|�rN|jdd�dj�|d<|jj|j|df|��dS)N�startZenumtyper�r?z simpleZol)r�r�r�rr^r�)r,r�r�rrr�visit_enumerated_lists
z$HTMLTranslator.visit_enumerated_listcCs|jjd�dS)Nz</ol>
)rr^)r,r�rrr�depart_enumerated_listsz%HTMLTranslator.depart_enumerated_listcCs2d}|j|�r|d7}|jj|j|d|d��dS)Nz
field-listz simpler
)r�)r�rr^r�)r,r�r�rrr�visit_field_lists
zHTMLTranslator.visit_field_listcCs|jjd�dS)Nz</dl>
)rr^)r,r�rrr�depart_field_listsz HTMLTranslator.depart_field_listcCsdS)Nr)r,r�rrr�visit_fieldszHTMLTranslator.visit_fieldcCsdS)Nr)r,r�rrr�depart_fieldszHTMLTranslator.depart_fieldcCs*|jj|j|dddj|jd�d��dS)N�dtr?r�)r�)rr^r�rCr�)r,r�rrr�visit_field_name$szHTMLTranslator.visit_field_namecCs|jjd�dS)Nz</dt>
)rr^)r,r�rrr�depart_field_name(sz HTMLTranslator.depart_field_namecCs<|jj|j|dddj|jd�d��|js8|jjd�dS)Nr
r?r�)r�z<p></p>)rr^r�rCr�r�)r,r�rrr�visit_field_body+szHTMLTranslator.visit_field_bodycCs|jjd�dS)Nz</dd>
)rr^)r,r�rrr�depart_field_body2sz HTMLTranslator.depart_field_bodycCs`ddi}|jd�r"d|d|d<|jd�rD|dd|d7<|jj|j|df|��dS)	Nr�Zfigure�widthz	width: %sr��alignz align-r�)r�rr^r�)r,r�r�rrr�visit_figure5s

zHTMLTranslator.visit_figurecCs|jjd�dS)Nz</div>
)rr^)r,r�rrr�
depart_figure=szHTMLTranslator.depart_figurecCs|jjt|j��dS)N)rfr^r�r)r,r�rrr�visit_footerAszHTMLTranslator.visit_footercCsf|jj�}|j|ddd�dg}|j|j|d��|jd�|jj|�||jdd�<|j|d�=dS)Nr�r#)r�z<hr class="footer" />
z
</div>
r)rfr�r�r�rr^r#r)r,r�r)r#rrr�
depart_footerDs

zHTMLTranslator.depart_footercCs,|js(d|jj}|jjd|�d|_dS)Nz	footnote z<dl class="%s">
T)rlr8�footnote_referencesrr^)r,r�r�rrr�visit_footnoteSszHTMLTranslator.visit_footnotecCs8|jjd�t|jddd�tj�s4|jjd�d|_dS)Nz</dd>
FT)r�r�z</dl>
)rr^r�r�r�footnoterl)r,r�rrr�depart_footnoteYs
zHTMLTranslator.depart_footnotecCs8d|d}d|jj}|jj|j|dd||d��dS)Nr�r�zfootnote-reference r�r?)r�r�)r8r;rr^r�)r,r�r�r�rrr�visit_footnote_reference`sz'HTMLTranslator.visit_footnote_referencecCs|jjd�dS)Nz</a>)rr^)r,r�rrr�depart_footnote_referencefsz(HTMLTranslator.depart_footnote_referencecCs:d|dkr6|j�jd�}|jjd|j|��tj�dS)N�sectnumr�� z <span class="sectnum">%s</span> )rqrDrr^rtrr�)r,r�rArrr�visit_generatedjs
zHTMLTranslator.visit_generatedcCsdS)Nr)r,r�rrr�depart_generatedtszHTMLTranslator.depart_generatedcCs|jjt|j��dS)N)rfr^r�r)r,r�rrr�visit_headerwszHTMLTranslator.visit_headercCsb|jj�}|j|ddd�g}|j|j|d��|jd�|jj|�|jj|�|j|d�=dS)Nr�r")r�z
<hr class="header"/>
</div>
)rfr�r�r�rr^rr")r,r�r)r"rrr�
depart_headerzs

zHTMLTranslator.depart_headerz.swfzapplication/x-shockwave-flashcCs�i}|d}tjj|�dj�}||jkrB||d<|j||d<n||d<|jd|�|d<d|krn|d|d<d|kr�|d|d<d	|k�r�to�d|ko�d|ko�|jj�r<t	j
j|�}ytjj
|jtj���}Wnttfk
r�YnRX|jjj|jd
d��d|k�rd|jd
|d<d|k�r:d|jd|d<~xbdD]Z}||k�rBtjd||�}|�sjt�dt|jd��t|d	�d|jd�f||<�qBWg}	xVd D]N}||k�r�tjd||��r�||d7<|	jd|||f�||=�q�W|	�rdj|	�|d<t|jt j!��sDt|jt j"��rJt|jjt j!��rJd}
nd}
d|k�rhd|d|d<||jk�r�|j#j|j$|d|
f|�|jd|�d|
�n|j#j|j%|d|
f|��dS)!NrvrV�data�type�srcZaltr5�heightZscale�\�/z%dpxrz([0-9.]+)(\S*)$z%s%s�d�z	^[0-9.]+$Zpxz%s: %s;rzr�r?r@r6zalign-%sr��objectz	</object>�img)r5rJ)r5rJ)&rrT�splitextre�object_image_typesr�rr8Zfile_insertion_enabled�urllibZrequestZurl2pathname�Imager7rt�sys�getfilesystemencodingr��UnicodeEncodeErrorr�r�ru�size�re�matchr��float�groupr^rCr�r�r�TextElement�	referencerr�r�)r,r�r�rvZextZ	imagepathrPZatt_namerZr�r�rrr�visit_image�sn










*zHTMLTranslator.visit_imagecCsdS)Nr)r,r�rrr�depart_image�szHTMLTranslator.depart_imagecCs|jj|j|dd��dS)Nr�r?)rr^r�)r,r�rrr�visit_inline�szHTMLTranslator.visit_inlinecCs|jjd�dS)Nz</span>)rr^)r,r�rrr�
depart_inline�szHTMLTranslator.depart_inlinecCs�t|jtj�r|jj}nd}|jj|j|jdddd��|jj|j|dd|d��|jj	r�|jd}t
|�dkr�|jjd	|d
�dS)NZbracketsr0r?Zlabel)r�r��backrefsrVz!<a class="fn-backref" href="#%s">r)r�r�rr=r8r;rr^r��footnote_backlinksr�)r,r�r�rcrrr�visit_label�s

zHTMLTranslator.visit_labelcCs�|jjr*|jd}t|�dkr*|jjd�|jjd�|jjrrt|�dkrrdd�t|�D�}|jjddj|��|jjd	�dS)
NrcrVz</a>z</span>cSs g|]\}}d||df�qS)z<a href="#%s">%s</a>rVr)rS�i�refrrrrU�sz/HTMLTranslator.depart_label.<locals>.<listcomp>z$<span class="fn-backref">(%s)</span>�,z
</dt>
<dd>)r8rdr�r�rr^�	enumeraterC)r,r�rc�	backlinksrrr�depart_label�s
zHTMLTranslator.depart_labelcCs|jj|j|ddd��dS)Nr�Zlegend)r�)rr^r�)r,r�rrr�visit_legend�szHTMLTranslator.visit_legendcCs|jjd�dS)Nz</div>
)rr^)r,r�rrr�
depart_legend�szHTMLTranslator.depart_legendcCs2|jj|j|dddd��t|�s.|jjd�dS)Nr�r?�line)r�r�z<br />)rr^r�r�)r,r�rrr�
visit_line�szHTMLTranslator.visit_linecCs|jjd�dS)Nz</div>
)rr^)r,r�rrr�depart_line�szHTMLTranslator.depart_linecCs|jj|j|ddd��dS)Nr�z
line-block)r�)rr^r�)r,r�rrr�visit_line_block�szHTMLTranslator.visit_line_blockcCs|jjd�dS)Nz</div>
)rr^)r,r�rrr�depart_line_blocksz HTMLTranslator.depart_line_blockcCs|jj|j|dd��dS)NZlir?)rr^r�)r,r�rrr�visit_list_itemszHTMLTranslator.visit_list_itemcCs|jjd�dS)Nz</li>
)rr^)r,r�rrr�depart_list_itemszHTMLTranslator.depart_list_itemcCs�|jdg�}d|kr@dd�|D�|d<|jj|j|dd��dS|jj|j|dddd��|j�}t|jtj�s||j	d	d
�}xR|j
j|�D]B}|j�r�|j
j|�r�|jjd|j|��q�|jj|j|��q�W|jjd�tj�dS)
Nr��codecSsg|]}|dkr|�qS)rur)rSr�rrrrUsz0HTMLTranslator.visit_literal.<locals>.<listcomp>r?r�zdocutils literal)r�r@rzz<span class="pre">%s</span>z</span>)r�rr^r�rqr�r�rZ
literal_blockru�words_and_spaces�findallr��in_word_wrap_point�searchrtr�)r,r�r�rs�tokenrrr�
visit_literal
s"zHTMLTranslator.visit_literalcCs|jjd�dS)Nz</code>)rr^)r,r�rrr�depart_literal$szHTMLTranslator.depart_literalcCs:|jj|j|dddd��d|jdg�kr6|jjd�dS)Nr�r?z
literal-block)r�rur�z<code>)rr^r�r�)r,r�rrr�visit_literal_block(sz"HTMLTranslator.visit_literal_blockcCs,d|jdg�kr|jjd�|jjd�dS)Nrur�z</code>z</pre>
)r�rr^)r,r�rrr�depart_literal_block-sz#HTMLTranslator.depart_literal_blockr�r��formula�mathr��tt)�mathmlrr�latexcs��j�jkr&�jjjd�j�d�_�j�j|dk}�j�jd}d&d'd(d)d�}|�j|dk}�jd	kr��js��jd
dkr�d}|j�jtj	�}|r�y||||f}Wnt
k
r�||}YnX�jd*kr�j|�}�jdk�r`�j�r`y�jd
�_
Wn$tk
�r0�jjjd
�YnXd�j
k�rL�j
d7_
�j�j
g�_�n�jdk�r��j�r��j�r��fdd��jd
jd�D��_|dktj_tj|�}�n��jd	k�rLd�jk�r�j�_�j�_dj�j�j�}y�|dk�rtj|�jj�}nd|dk�r*tj|�jj�}nH|dk�rLtj||�jjd�}n&|�sdtj ||d�}n�jjjd�Wn�t!k
�r�t!d��Yn�t"k
�rJ}	z��jjj|	|d�}
�j#|
��j$j%�j&|d���j$j%dj|	j'���j$j%d��j$j%�j&|dd d!���j$j%�j|���j$j%d"��j(|
�t)j*�WYdd}	~	XnX|�rt�j$j%�j&||d#t+|�|d$���j$j%|�|�r��j$j%d#�|�r��j$j%d%|�|�r��j$j%d#�t)j*�dS)+Nz=math-output format "%s" not supported falling back to "latex"r�r?rN�$%s$�\begin{%s}
%s
\end{%s}�\(%s\))r�rrr�r�r�	blahtexmlrz@No MathJax URL specified, using local fallback (see config.html)�?z?config=TeX-AMS_CHTMLrcs"g|]}�jtj|�jj���qSr)rRr	Zfind_file_in_dirsr8Zstylesheet_dirs)rS�s)r,rrrUjsz-HTMLTranslator.visit_math.<locals>.<listcomp>rhzXHTML 1rz�latexml�ttm)�inlinerZ)r�z3option "%s" not supported with math-output "MathML"zis "latexmlmath" in your PATH?)Z	base_noder�z</p>
r�z
literal-block)r�z
</pre>
r@)r�r�z</%s>)r�r�)r�r�)r�r�)NN)r�r),rb�	math_tagsr-rZr�rdrqr5rZ
uni2tex_table�	TypeErrorrtrp�mathjax_urlr�Zwarning�mathjax_scriptrcrZDocumentParametersZdisplaymoder �doctype_mathmlZcontent_type_mathmlrmrCrerr�r�r�rZ
tex2mathml�OSError�SyntaxError�visit_system_messagerr^r��args�depart_system_messagerr��bool)r,r��math_env�tagZclsargZwrappers�wrapperZ	math_codeZ	converterr�Zerr_noder)r,r�
visit_math>s�











zHTMLTranslator.visit_mathcCsdS)Nr)r,r�rrr�depart_math�szHTMLTranslator.depart_mathcCst|j��}|j||d�dS)N)r�)rrqr�)r,r�r�rrr�visit_math_block�szHTMLTranslator.visit_math_blockcCsdS)Nr)r,r�rrr�depart_math_block�sz HTMLTranslator.depart_math_blockcCs"|j|df|j��}|j|�dS)Nr$)r�Znon_default_attributesr)r,r�r$rrr�
visit_meta�szHTMLTranslator.visit_metacCsdS)Nr)r,r�rrr�depart_meta�szHTMLTranslator.depart_metacCs|jj|�|jj|�dS)N)r$r^r)r,r�rrrr�szHTMLTranslator.add_metacCs|jj|j|dddd��dS)Nr�r?�option)r�)rr^r�)r,r�rrr�visit_option�szHTMLTranslator.visit_optioncCs2|jjd�t|jddd�tj�r.|jjd�dS)Nz</span>FT)r�r�z, )rr^r�r�rr�)r,r�rrr�
depart_option�szHTMLTranslator.depart_optioncCs.|jj|jdd��|jj|j|dd��dS)NZ	delimiterrz�varr?)rr^r�r�)r,r�rrr�visit_option_argument�sz$HTMLTranslator.visit_option_argumentcCs|jjd�dS)Nz</var>)rr^)r,r�rrr�depart_option_argument�sz%HTMLTranslator.depart_option_argumentcCs&|jj|j|dd��|jjd�dS)Nr0r?z<kbd>)rr^r�)r,r�rrr�visit_option_group�sz!HTMLTranslator.visit_option_groupcCs|jjd�dS)Nz</kbd></dt>
)rr^)r,r�rrr�depart_option_group�sz"HTMLTranslator.depart_option_groupcCs|jj|j|ddd��dS)Nr
zoption-list)r�)rr^r�)r,r�rrr�visit_option_list�sz HTMLTranslator.visit_option_listcCs|jjd�dS)Nz</dl>
)rr^)r,r�rrr�depart_option_list�sz!HTMLTranslator.depart_option_listcCsdS)Nr)r,r�rrr�visit_option_list_item�sz%HTMLTranslator.visit_option_list_itemcCsdS)Nr)r,r�rrr�depart_option_list_item�sz&HTMLTranslator.depart_option_list_itemcCsdS)Nr)r,r�rrr�visit_option_string�sz"HTMLTranslator.visit_option_stringcCsdS)Nr)r,r�rrr�depart_option_string�sz#HTMLTranslator.depart_option_stringcCs|j|d�dS)NZorganization)r�)r,r�rrr�visit_organization�sz!HTMLTranslator.visit_organizationcCs|j�dS)N)r�)r,r�rrr�depart_organization�sz"HTMLTranslator.depart_organizationcCs|jj|j|dd��dS)Nr�r?)rr^r�)r,r�rrr�visit_paragraph�szHTMLTranslator.visit_paragraphcCs>|jjd�t|jtjtjf�o,t|j�dks:|jjd�dS)Nz</p>rVr@)rr^r�r�rZ	list_item�entryr�)r,r�rrr�depart_paragraph�szHTMLTranslator.depart_paragraphcCsV|jd�r,|jjd|d�|jjd�n|jjd�|jj|j|dddd��dS)Nr�z<a href="#%s">z</a>r?r�Zproblematic)r�)�hasattrrr^rfr�)r,r�rrr�visit_problematics

z HTMLTranslator.visit_problematiccCs"|jjd�|jj|jj��dS)Nz</span>)rr^rfr�)r,r�rrr�depart_problematicsz!HTMLTranslator.depart_problematiccCs|d|jdd�j�krrt|jtj�r&dp(d}|drJ|jj|j||dd��|jj|j	��|drr|jjd|�tj
�dS)	Nr�formatr?r�r�r�)r�z</%s>)r�rcr�r�rr]rr^r�rqr�)r,r��trrr�	visit_rawszHTMLTranslator.visit_rawcCs�ddi}d|kr\|d|d<|jjrJ|djd�rJ|j|d�|d<d|_|dd7<n0d|ksltd	��d
|d|d<|dd7<t|jtj	�s�t
|�dkr�t|d
tj�s�t�|dd7<|jj
|j|ddf|��dS)Nr�r^�refurir�zmailto:Tz	 externalr�z3References must have "refuri" or "refid" attribute.r�z	 internalrVrz image-referencer�r?)r8r|r�rwror�r�r�rr]r�Zimagerr^r�)r,r�r�rrr�visit_references 
 zHTMLTranslator.visit_referencecCs0|jjd�t|jtj�s&|jjd�d|_dS)Nz</a>r@F)rr^r�r�rr]ro)r,r�rrr�depart_reference-szHTMLTranslator.depart_referencecCs|j|ddd�dS)NZrevisionF)r$)r�)r,r�rrr�visit_revision3szHTMLTranslator.visit_revisioncCs|j�dS)N)r�)r,r�rrr�depart_revision6szHTMLTranslator.depart_revisioncCs |jj|j|dd��d|_dS)NZtrr?r)rr^r�r&)r,r�rrr�	visit_row9szHTMLTranslator.visit_rowcCs|jjd�dS)Nz</tr>
)rr^)r,r�rrr�
depart_row=szHTMLTranslator.depart_rowcCs|jj|j|dddd��dS)Nr�r?Zrubric)r�)rr^r�)r,r�rrr�visit_rubric@szHTMLTranslator.visit_rubriccCs|jjd�dS)Nz</p>
)rr^)r,r�rrr�
depart_rubricCszHTMLTranslator.depart_rubriccCs*|jd7_|jj|j|ddd��dS)NrVr��section)r�)r_rr^r�)r,r�rrr�
visit_sectionGszHTMLTranslator.visit_sectioncCs|jd8_|jjd�dS)NrVz</div>
)r_rr^)r,r�rrr�depart_sectionLszHTMLTranslator.depart_sectioncCs"|jj|j|ddd��d|_dS)Nr��sidebar)r�T)rr^r�rk)r,r�rrr�
visit_sidebarQszHTMLTranslator.visit_sidebarcCs|jjd�d|_dS)Nz</div>
F)rr^rk)r,r�rrr�depart_sidebarVszHTMLTranslator.depart_sidebarcCs|j|ddd�dS)NZstatusF)r$)r�)r,r�rrr�visit_statusZszHTMLTranslator.visit_statuscCs|j�dS)N)r�)r,r�rrr�
depart_status]szHTMLTranslator.depart_statuscCs|jj|j|dd��dS)NZstrongr?)rr^r�)r,r�rrr�visit_strong`szHTMLTranslator.visit_strongcCs|jjd�dS)Nz	</strong>)rr^)r,r�rrr�
depart_strongcszHTMLTranslator.depart_strongcCs|jj|j|dd��dS)Nr{r?)rr^r�)r,r�rrr�visit_subscriptfszHTMLTranslator.visit_subscriptcCs|jjd�dS)Nz</sub>)rr^)r,r�rrr�depart_subscriptiszHTMLTranslator.depart_subscriptcCs
tj�dS)zInternal only.N)rr�)r,r�rrr�visit_substitution_definitionlsz,HTMLTranslator.visit_substitution_definitioncCs|j|�dS)N)�unimplemented_visit)r,r�rrr�visit_substitution_referencepsz+HTMLTranslator.visit_substitution_referencecCsdt|jtj�rd}n2t|jtj�r4d}t|j�|_nt|jtj�rFd}|jj	|j
|dd|d��dS)Nzsidebar-subtitler!zsection-subtitler�r?)r�)r�r�rr�r-r�rrnr�r^r�)r,r�r�rrr�visit_subtitlewszHTMLTranslator.visit_subtitlecCsV|jjd�|jrR|j|jd�|_d|_|jj|j�|jj|j�|jdd�=dS)Nz</p>
rVrr�)rr^rnr!rr�r))r,r�rrr�depart_subtitle�szHTMLTranslator.depart_subtitlecCs|jj|j|dd��dS)NZsupr?)rr^r�)r,r�rrr�visit_superscript�sz HTMLTranslator.visit_superscriptcCs|jjd�dS)Nz</sup>)rr^)r,r�rrr�depart_superscript�sz!HTMLTranslator.depart_superscriptcCs�|jj|j|ddd��|jjd�d}t|d�r�|d}t|�dkrVd|d	}n>d}g}x&|D]}|jd
||f�|d7}qdWddj|�}|jd
�r�d|d
}nd}|jjd|d|d|j|d�||f�dS)Nr�zsystem-message)r�z <p class="system-message-title">r?rcrVz%; <em><a href="#%s">backlink</a></em>rz<a href="#%s">%s</a>z; <em>backlinks: %s</em>z, rnz	, line %szISystem Message: %s/%s (<span class="docutils literal">%s</span>%s)%s</p>
rH�levelr)rr^r�r�rCr�rt)r,r�Zbackref_textrcrfrjZbackrefrnrrrr��s*

z#HTMLTranslator.visit_system_messagecCs|jjd�dS)Nz</div>
)rr^)r,r�rrrr��sz$HTMLTranslator.depart_system_messagecCsXdd�|jjjd�D�}d|kr2|jd|d�|j|ddj|�d�}|jj|�dS)	NcSsg|]}|jd��qS)z 	
)r�)rSr�rrrrU�sz.HTMLTranslator.visit_table.<locals>.<listcomp>rhr6zalign-%sr�rz)r�)r8r�rcr^r�rCr)r,r�r�r�rrr�visit_table�szHTMLTranslator.visit_tablecCs|jjd�dS)Nz	</table>
)rr^)r,r�rrr�depart_table�szHTMLTranslator.depart_tablecCsPd|kpd|kpd|ks@|jj|j|dddd��|jjd�n|jjd�dS)	Nr�r�r�r�r?�target)r�z</span>)rr^r�rf)r,r�rrr�visit_target�s
zHTMLTranslator.visit_targetcCs|jj|jj��dS)N)rr^rfr�)r,r�rrr�
depart_target�szHTMLTranslator.depart_targetcCs|jj|j|d��dS)NZtbody)rr^r�)r,r�rrr�visit_tbody�szHTMLTranslator.visit_tbodycCs|jjd�dS)Nz	</tbody>
)rr^)r,r�rrr�depart_tbody�szHTMLTranslator.depart_tbodycCs|jj|j|dd��dS)Nr0r?)rr^r�)r,r�rrr�
visit_term�szHTMLTranslator.visit_termcCsdS)zg
        Leave the end tag to `self.visit_definition()`, in case there's a
        classifier.
        Nr)r,r�rrr�depart_term�szHTMLTranslator.depart_termcCsg|_g|_dS)N)rhr�)r,r�rrr�visit_tgroup�szHTMLTranslator.visit_tgroupcCsdS)Nr)r,r�rrr�
depart_tgroup�szHTMLTranslator.depart_tgroupcCs|jj|j|d��dS)Nr%)rr^r�)r,r�rrr�visit_thead�szHTMLTranslator.visit_theadcCs|jjd�dS)Nz	</thead>
)rr^)r,r�rrr�depart_thead�szHTMLTranslator.depart_theadcCs�d}d}t|jtj�r4|jj|j|dddd���n�t|jtj�r`|jj|j|dddd���n^t|jtj�r�|jj|j|dddd���n2t|jtj	�r�|jj|j|d	d��d
}�nt|jtj
�r�|jj|j|dddd��d
}t|j�|_n�t|jtj
��st�|j|jd}i}t|j�dk�rFt|jdtj��rFd|d<|jj|j|d|df|��i}|jd��r�d|d<d|d|d<|�r�|jj|jiddf|��d|}nd|}|jj|�dS)z,Only 6 section levels are supported by HTML.rz</p>
r�r?ztopic-title first)r�z
sidebar-titlezadmonition-titler�z</caption>
Zh1r z</h1>
rVrNz
with-subtitler�zh%sr�ztoc-backrefr�r�r�r�z</a></h%s>
z</h%s>
N)r�r�r�topicrr^r�r�Z
Admonitionr�r-r�rnr�r�r_rar!r�rf)r,r�Zcheck_idZ	close_tagZh_levelr�rrr�visit_title�sH
zHTMLTranslator.visit_titlecCs\|jj|jj��|jrX|j|jd�|_d|_|jj|j�|jj|j�|jdd�=dS)NrVrr�)	rr^rfr�rnr rr�r()r,r�rrr�depart_titleszHTMLTranslator.depart_titlecCs|jj|j|dd��dS)NZciter?)rr^r�)r,r�rrr�visit_title_referencesz$HTMLTranslator.visit_title_referencecCs|jjd�dS)Nz</cite>)rr^)r,r�rrr�depart_title_referencesz%HTMLTranslator.depart_title_referencecCs&|jj|j|ddd��|d|_dS)Nr�r�)r�r�)rr^r�rg)r,r�rrr�visit_topicszHTMLTranslator.visit_topiccCs|jjd�g|_dS)Nz</div>
)rr^rg)r,r�rrr�depart_topic$szHTMLTranslator.depart_topiccCs|jj|j|ddd��dS)NZhrrF)r�)rr^r�)r,r�rrr�visit_transition)szHTMLTranslator.visit_transitioncCsdS)Nr)r,r�rrr�depart_transition,sz HTMLTranslator.depart_transitioncCs|j|ddd�dS)NrBF)r$)r�)r,r�rrr�
visit_version/szHTMLTranslator.visit_versioncCs|j�dS)N)r�)r,r�rrr�depart_version2szHTMLTranslator.depart_versioncCstd|jj��dS)Nz$visiting unimplemented node type: %s)�NotImplementedError�	__class__r)r,r�rrrr�5sz"HTMLTranslator.unimplemented_visit)r@F)r@)r)N)r�r?)r�r�)r�r�)r?r?)T)r�r?r?)r�r�r)r�r�r�)r�r�r�)r?)�rrr�__doc__r]r r�r!rmr\r�r�r�r�rY�compilerv�Urxr��ordrrrXrqrtrwryr~rRr�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�rrrrrrrrr	rrrrrrrrrrr�r�rrrr"r#r$r'r(r*r+r,r-r.r/r1r2r3r4r7r8r9r:r<r>r?r@rCrDrErFrRr_r`rarbrerkrlrmrorprqrrrsrtr{r|r}r~r�r�r�r�r�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�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�rrrrrKbs�8
;		D

		


Ae
	)	rKc@s�eZdZdZdd�Zdd�Zdd�Zdd	�ZeZeZ	eZ
eZeZeZ
eZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZ eZ!eZ"d
S)r�a
    Raise `nodes.NodeFound` if non-simple list item is encountered.

    Here "simple" means a list item containing nothing other than a single
    paragraph, a simple list, or a paragraph followed by a simple list.

    This version also checks for simple field lists and docinfo.
    cCs
tj�dS)N)rr�)r,r�rrr�
default_visitEszSimpleListChecker.default_visitcCsvdd�|jD�}|r\t|dtj�r\t|dtj�sTt|dtj�sTt|dtj�r\|j�t|�dkrldStj	�dS)NcSsg|]}t|tj�s|�qSr)r�rr�)rSr�rrrrUJsz5SimpleListChecker.visit_list_item.<locals>.<listcomp>rrVr�r�r�)
r�r�rZ	paragraphr�r�r�r�r�r�)r,r�r�rrrrsHsz!SimpleListChecker.visit_list_itemcCsdS)Nr)r,r�rrr�	pass_nodeYszSimpleListChecker.pass_nodecCs
tj�dS)N)rr�)r,r�rrr�ignore_node\szSimpleListChecker.ignore_nodeN)#rrrr�r�rsr�r�r�r�r�r*rr�r�r�rrrr�r�r�rrr�r�rr,r.r3r1r�r�r�Z
visit_pendingrrrrr�:s@	r�)#r�rUZos.pathrrYZurllib.requestrSZurllib.parseZurllib.errorZ	PIL.Imager�ImportErrorrTrOrFrr	r
rrZdocutils.utils.error_reportingr
Zdocutils.transformsrZdocutils.utils.mathrrrrrrrWrKZGenericNodeVisitorr�rrrr�<module>s@
7c