403Webshell
Server IP : 172.67.201.108  /  Your IP : 216.73.216.55
Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.7
System : Linux ip-172-31-69-123.ec2.internal 6.1.177-224.371.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Jul 27 20:28:29 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.24
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3.9/site-packages/docutils/writers/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3.9/site-packages/docutils/writers/__pycache__/_html_base.cpython-39.pyc
a

���c*��@s<dZddlZddlZddlZzddlZWnLeytz"ddlZGdd�de	�Zee_WneyndZYn0Yn0ddl
Z
ddl
mZmZm
Z
mZmZddlmZddlmZddlmZmZmZmZmZejd	kr�dd
lmZndd
lmZejd	k�reZGdd�de
j �Z Gd
d�dej!�Z"Gdd�dej#�Z$dS)z,common definitions for Docutils HTML writers�Nc@seZdZdS)�PILN)�__name__�
__module__�__qualname__�rr�?/usr/lib/python3.9/site-packages/docutils/writers/_html_base.pyr�r)�nodes�utils�writers�	languages�io)�
SafeString)�
writer_aux)�unichar2tex�pick_math_environment�	math2html�latex2mathml�tex2mathml_extern)�r)�url2pathnamec@sLeZdZdZdZddiZdZdZdd�Zd	d
�Z	dd�Z
d
d�Zdd�ZdS)�Writer)�htmlZxhtmlztemplate.txtZoutput_encoding_error_handler�xmlcharrefreplace)rz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_bodycCstj�|�tjgS�N)rr�get_transformsrZAdmonitions��selfrrrr.HszWriter.get_transformscCsJ|�|j�|_}|j�|�|jD]}t||t||��q$|��|_dSr-)	Ztranslator_class�document�visitorZ	walkabout�visitor_attributes�setattr�getattr�apply_template�output)r0r2�attrrrr�	translateKs

zWriter.translatecCs6t|jjjd�}t|��d�}|��|��}||S)N�rb�utf-8)�openr1�settings�template�unicode�read�close�interpolation_dict)r0Z
template_filer>�subsrrrr6Rs
zWriter.apply_templatecCsJi}|jj}|jD]}d�t||���d�||<q|j|d<tj|d<|S)N��
�encoding�version)	r1r=r3�joinr5�rstrip�output_encoding�docutils�__version__)r0rCr=r8rrrrBYs


zWriter.interpolation_dictcCs2tj�|�|jD]}d�t||��|j|<qdS�NrD)rr�assemble_partsr3rHr5�parts)r0�partrrrrNbs
zWriter.assemble_partsN)
rrrZ	supportedZdefault_templateZsettings_defaultsZconfig_section_dependenciesr3r.r9r6rBrNrrrrr1s	rc
@seZdZdZdZdZeZdZdZdZ	dZ
dZd	Zd
Z
e�d�Ze�dej�Zd
Zed�ded�ded�ded�ded�diZdd�Zdd�Zdd�Zdd�Zd d!�Ze�d"�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)dEdFdFdGdH�Z*dIdJ�Z+dKdL�Z,dMdN�Z-dOdP�Z.dQdR�Z/dSdT�Z0dUdV�Z1dWdX�Z2dYdZ�Z3d[d\�Z4d]d^�Z5d_d`�Z6dadb�Z7dcdd�Z8dedf�Z9dgdh�Z:didj�Z;dkdl�Z<dmdn�Z=dodp�Z>dqdr�Z?dsdt�Z@e�du�jAfdvdw�ZBdxdy�ZCdzd{�ZDd|d}�ZEd~d�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�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�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-�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�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
[^ \n]+| +|\nz.+\W\W.+|[-?].+�lang�&z&amp;�<z&lt;�"z&quot;�>z&gt;�@�&#64;cs�tj��|�|j�_}|j}t�||j��_�j	t
jg�_g�_
g�_|jrt�j
��j|j��j��j��jdd��_�fdd�t�|�D��_dg�_g�_g�_g�_g�_dg�_d�_t|j��_|j� ��_�jdd��_!�jd�"��_g�_#g�_$g�_%d�_&d�_'d�_(d�_)d�_*d�_+g�_,g�_-g�_.g�_/�j0g�_1g�_2g�_3g�_4d�_5d�_6d�_7g�_8dS)	Ncsg|]}��|��qSr)�stylesheet_call)�.0�pathr/rr�
<listcomp>�s�z+HTMLTranslator.__init__.<locals>.<listcomp>z</head>
<body>
z</body>
</html>
r�TF)9r	�NodeVisitor�__init__r=�
language_coderZget_language�reporter�language�	generatorrKrLr&rr(�xml_declaration�appendrJrr
Zget_stylesheet_listrrrrr r'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)r0r1r=Zlcoderr/rr_�s`
�
�
zHTMLTranslator.__init__cCs6d�|j|j|j|j|j|j|j|j�SrM)	rHrrrrrrr r!r/rrr�astext	s������zHTMLTranslator.astextcCst|�}|�|j�S)z-Encode special characters in `text` & return.)r?r9�special_characters)r0�textrrr�encodeszHTMLTranslator.encodecCs|�dd�S)z*Try to hide a mailto: URL from harvesters.rW�%40��replace)r0�urirrr�cloak_mailtoszHTMLTranslator.cloak_mailtocCs|�dd�}|�dd�}|S)z;Try to hide the link text of a email link from harversters.rXz<span>&#64;</span>�.z<span>&#46;</span>r})r0Zaddrrrr�cloak_emailszHTMLTranslator.cloak_emailz[

	]cCs<|�|�d|��}|jr8|jjr8|�dd�}|�dd�}|S)z6Cleanse, HTML encode, and return attribute value text.� r|z&#37;&#52;&#48;r�z&#46;)r{�subrvr=�cloak_email_addressesr~)r0rzZ
whitespace�encodedrrr�attval&s
zHTMLTranslator.attvalc
Cs�|jjr�z$tj|dd���}|jj�|�WnLtyx}z4d|t|j	�f}|j
j�|�d|WYd}~Sd}~00|j
|S|jjr�t�|jj|�}|j|�|�S)z8Return code to reference or embed stylesheet file `path`r;)�source_pathrFz!Cannot embed stylesheet '%s': %s.z
<--- %s --->
N)r=Zembed_stylesheetr
Z	FileInputr@�record_dependencies�add�IOErrorr�strerrorr1ra�error�embedded_stylesheetZstylesheet_pathr
�
relative_pathZ_destination�stylesheet_linkr{)r0r[Zcontent�err�msgrrrrY0s �

�
zHTMLTranslator.stylesheet_callrEFc
Ks |��}g}i}g}|��D]\}	}
|
||	��<qg}g}|�dg�|�dd���D]<}
|
�d�rx|�|
dd��qV|
��rV|
|vrV|�|
�qV|r�|d||j<|r�d�	|�|d<d	|vs�J�|�
|�d
g��d
|vr�|�
|d
�|d
=|�rb|d|d	<|dd�D]P}|�sBt|tj
tjtjtjtjtjtjf��rR|�d|�n|d|7}�qt|���}|g}|D]v\}	}
|
du�s�J�t|
t��r�d
d�|
D�}|�d|	��|�d�	|��f�n |�d|	��|�t|
��f��qx|�r�d}nd}d�	|�dd�	|�|f|S)z�
        Construct and return a start tag given a node (id & class attributes
        are extracted), tag name, and optional attributes.
        �classes�classrDz	language-�	Nrr��id�idsr]z<span id="%s"></span>cSsg|]}t|��qSr)r?)rZ�vrrrr\zrz+HTMLTranslator.starttag.<locals>.<listcomp>z%s="%s"z /z<%s%s>)rl�items�get�poprj�
startswithre�strip�lang_attributerH�extend�
isinstancer	�bullet_listr�definition_list�enumerated_list�
field_listZoption_list�table�sorted�listr�r?)r0�node�tagname�suffix�empty�
attributes�prefix�attsr��name�valuer�r�clsr�ZattlistrO�valuesZinfixrrr�starttagCsd 

���
�zHTMLTranslator.starttagcKs|j|||fddi|��S)z1Construct and return an XML-compatible empty tag.r�T)r�)r0r�r�r�r�rrr�emptytag�szHTMLTranslator.emptytagrcCsBdd�|D�}z||}Wnty.YdS0|d�|�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	Z	Invisible)rZ�nrrrr\�rz5HTMLTranslator.set_class_on_child.<locals>.<listcomp>Nr�)�
IndexErrorre)r0r�Zclass_�index�children�childrrr�set_class_on_child�sz!HTMLTranslator.set_class_on_childcCs:|��}|�|�}|jr*|jjr*|�|�}|j�|�dSr-)rxr{rvr=r�r�r re)r0r�rzr�rrr�
visit_Text�s


zHTMLTranslator.visit_TextcCsdSr-r�r0r�rrr�depart_Text�szHTMLTranslator.depart_TextcCs|j�|�|dd��dS)NZabbrrD�r rer�r�rrr�visit_abbreviation�sz!HTMLTranslator.visit_abbreviationcCs|j�d�dS)Nz</abbr>�r rer�rrr�depart_abbreviation�sz"HTMLTranslator.depart_abbreviationcCs|j�|�|dd��dS)NZacronymrDr�r�rrr�
visit_acronym�szHTMLTranslator.visit_acronymcCs|j�d�dS)Nz
</acronym>r�r�rrr�depart_acronym�szHTMLTranslator.depart_acronymcCs.|j|ddd�|j�|j|dddd��dS)NZaddressF�r&�prerD�r��CLASS)�visit_docinfo_itemr rer�r�rrr�
visit_address�s�zHTMLTranslator.visit_addresscCs|j�d�|��dS�N�
</pre>
)r re�depart_docinfo_itemr�rrr�depart_address�szHTMLTranslator.depart_addresscCs(|d�dd�|j�|�|d��dS)Nr�rZ
admonition�div)�insertr rer�r�rrr�visit_admonition�szHTMLTranslator.visit_admonitionNcCs|j�d�dS�N�</div>
r�r�rrr�depart_admonition�sz HTMLTranslator.depart_admonition)u—rD)�(�))rDrD)ZdashZparenthesesZparensZnonecCs<|j|jj\}}|j�|�|j�|j|d|dd��dS)N�p�attribution�r�)�attribution_formatsr=r�rmrer r�)r0r�r�r�rrr�visit_attribution�s
�z HTMLTranslator.visit_attributioncCs|j�|j��d�dS�N�</p>
�r rermr�r�rrr�depart_attribution�sz!HTMLTranslator.depart_attributioncCs*t|jtj�s|�|d�|j�d�dS)NZauthorz<p>)r��parentr	�authorsr�r rer�rrr�visit_author�szHTMLTranslator.visit_authorcCs4|j�d�t|jtj�r(|j�d�n|��dS)N�</p>rE)r rer�r�r	r�r�r�rrr�
depart_author�szHTMLTranslator.depart_authorcCs|�|d�dS)Nr��r�r�rrr�
visit_authors�szHTMLTranslator.visit_authorscCs|��dSr-�r�r�rrr�depart_authors�szHTMLTranslator.depart_authorscCs|j�|�|d��dS)NZ
blockquoter�r�rrr�visit_block_quote�sz HTMLTranslator.visit_block_quotecCs|j�d�dS)Nz</blockquote>
r�r�rrr�depart_block_quote�sz!HTMLTranslator.depart_block_quotecCs8t|j�}z|�|�Wntjy.YdS0dSdS)z7Check for a simple list that can be rendered compactly.FTN)�SimpleListCheckerr1�walkr	�	NodeFound)r0r�r2rrr�check_simple_list�s
z HTMLTranslator.check_simple_listcCsvd|dvrdSd|dvr dSt|tjtjf�r>|jjs>dSt|tjtjf�r\|jjs\dS|j	dgkrldS|�
|�S)NZcompactr�Tr<F�contents)r�r	r�r�r=Zcompact_field_listsr�r�Z
compact_listsrnr�r�rrr�is_compactable�s��zHTMLTranslator.is_compactablecCsbi}|j}|j�|j|jf�d|_|�|�|_|jrB|sBd|d<|j�|j|dfi|���dS)N�simpler�Zul)rqrmrerpr�r r�)r0r�r�Zold_compact_simplerrr�visit_bullet_lists
z HTMLTranslator.visit_bullet_listcCs"|j��\|_|_|j�d�dS)Nz</ul>
)rmr�rqrpr rer�rrr�depart_bullet_listsz!HTMLTranslator.depart_bullet_listcCs|j�|j|dddd��dS)Nr�rD�captionr�r�r�rrr�
visit_captionszHTMLTranslator.visit_captioncCs|j�d�dSr�r�r�rrr�depart_captionszHTMLTranslator.depart_captioncCs|js|j�d�d|_dS)Nz<dl class="citation">
T)rsr rer�rrr�visit_citation!szHTMLTranslator.visit_citationcCs8|j�d�t|jddd�tj�s4|j�d�d|_dS�N�</dd>
FT�ZdescendZsiblings�</dl>
)r rer��	next_noder	Zcitationrsr�rrr�depart_citation&s�zHTMLTranslator.depart_citationc	CsVd}d|vr||d7}nd|vr6||jj|d7}|j�|j|ddd|d��dS)N�#�refid�refname�a�[zcitation-reference�r��href)r1Znameidsr rer�)r0r�rrrr�visit_citation_reference-s

�z'HTMLTranslator.visit_citation_referencecCs|j�d�dS)Nz]</a>r�r�rrr�depart_citation_reference8sz(HTMLTranslator.depart_citation_referencecCs|j�|j|dddd��dS)N�spanrDZ
classifierr�r�r�rrr�visit_classifier?szHTMLTranslator.visit_classifiercCs|j�d�dS�N�</span>r�r�rrr�depart_classifierBsz HTMLTranslator.depart_classifiercCs&|j�|�|jj�|j�d��dS)N�stub)rorer��stubsr�r�r�rrr�
visit_colspecEszHTMLTranslator.visit_colspeccCs�t|jddd�tj�rdSd|jjdvsFd|jjvrJd|jjdvrJdStdd�|jD��}|j	�
|�|d	��|jD]8}t|d
d|d�}|j	�
|j
|d
d|d��qx|j	�
d�dS)NFTr�zcolwidths-autor�zcolwidths-givencss|]}|dVqdS)�colwidthNr)rZr�rrr�	<genexpr>Srz0HTMLTranslator.depart_colspec.<locals>.<genexpr>ZcolgrouprgY@g�?�colzwidth: %i%%)�stylez</colgroup>
)r�r�r	Zcolspecr�r=�table_style�sumror rer�rgr�)r0r�Ztotal_widthrrrr�depart_colspecJs$�
��
�
zHTMLTranslator.depart_colspecz-(?=-)cCs$|j�d|d|����tj�dS)z%Escape double-dashes in comment text.z<!-- %s -->
z- N)r rerxr	�SkipNode)r0r�r�rrr�
visit_comment[szHTMLTranslator.visit_commentcCsl|j�|j|ddd��t|�dkrh|dd�d�|dd�d	�|dd�D]}|d�d
�qTdS)Nr�Zcompoundr�r]rr�zcompound-first���z
compound-lastzcompound-middle�r rer��len)r0r�r�rrr�visit_compoundbszHTMLTranslator.visit_compoundcCs|j�d�dSr�r�r�rrr�depart_compoundjszHTMLTranslator.depart_compoundcCs|j�|j|ddd��dS)Nr�zdocutils containerr�r�r�rrr�visit_containermszHTMLTranslator.visit_containercCs|j�d�dSr�r�r�rrr�depart_containerpszHTMLTranslator.depart_containercCs|j|ddd�dS)NZcontactFr�r�r�rrr�
visit_contactsszHTMLTranslator.visit_contactcCs|��dSr-r�r�rrr�depart_contactvszHTMLTranslator.depart_contactcCs|�|d�dS)N�	copyrightr�r�rrr�visit_copyrightyszHTMLTranslator.visit_copyrightcCs|��dSr-r�r�rrr�depart_copyright|szHTMLTranslator.depart_copyrightcCs|�|d�dS)N�dater�r�rrr�
visit_dateszHTMLTranslator.visit_datecCs|��dSr-r�r�rrr�depart_date�szHTMLTranslator.depart_datecCsdSr-rr�rrr�visit_decoration�szHTMLTranslator.visit_decorationcCsdSr-rr�rrr�depart_decoration�sz HTMLTranslator.depart_decorationcCs&|j�d�|j�|�|dd��dS)N�</dt>
�ddrDr�r�rrr�visit_definition�szHTMLTranslator.visit_definitioncCs|j�d�dS�Nr�r�r�rrr�depart_definition�sz HTMLTranslator.depart_definitioncCs8|�dg�}|�|�r |�d�|j�|�|d��dS)Nr�r��dl)�
setdefaultr�rer r��r0r�r�rrr�visit_definition_list�s

z$HTMLTranslator.visit_definition_listcCs|j�d�dS�Nr�r�r�rrr�depart_definition_list�sz%HTMLTranslator.depart_definition_listcCs||�dg�|jd�dg�|jdd<|�dg�|jd�dg�|jdd<|�dg�|jd�dg�|jdd<dS)Nr�rr��names)r�r�r�rrr�visit_definition_list_item�s���z)HTMLTranslator.visit_definition_list_itemcCsdSr-rr�rrr�depart_definition_list_item�sz*HTMLTranslator.depart_definition_list_itemcCs|j�|�|dd��dS)Nr*rDr�r�rrr�visit_description�sz HTMLTranslator.visit_descriptioncCs|j�d�dSr,r�r�rrr�depart_description�sz!HTMLTranslator.depart_descriptioncCsD|j�t|j��d}|�|�r(|d7}|j�|j|d|d��dS)Nr� simpler.r�)rmrerr r�r�r0rrr�
visit_docinfo�s

zHTMLTranslator.visit_docinfocCs0|j�d�|j��}|j|d�|_g|_dSr2)r rermr�r)r0r��startrrr�depart_docinfo�s
zHTMLTranslator.depart_docinfoTcCs^|r$d||�|���f}|�|�|j�d||jj|f�|j�|j|dd|d��dS)Nz <meta name="%s" content="%s" />
z<dt class="%s">%s</dt>
r*rDr�)r�rx�add_metar rerb�labelsr�)r0r�r�r&Zmeta_tagrrrr��s�
�z!HTMLTranslator.visit_docinfo_itemcCs|j�d�dSr,r�r/rrrr��sz"HTMLTranslator.depart_docinfo_itemcCs|j�|j|dddd��dS)Nr�rDzcode python doctestr�r�r�rrr�visit_doctest_block�s�z"HTMLTranslator.visit_doctest_blockcCs|j�d�dSr�r�r�rrr�depart_doctest_block�sz#HTMLTranslator.depart_doctest_blockcCs:|�dd�ptj�|d�pd}|j�d|�|��dS)Nr"rD�sourcezdocutils document without titlez<title>%s</title>
)r��osr[�basenamerrer{)r0r�r"rrr�visit_document�s�zHTMLTranslator.visit_documentcCsF|j�|j|jd|jjig�|j�|j�|j�	d|j
|jj�|j�	d|j
|jj�dd�
|j�vrz|j�d�|jr�|jdkr�|j�|j�n|j�|j�|j�|jdd��|j�|j|dd	d
��|j�	dd�|j�|j�|j�|jdd�|j|j|j|jdd��|j�rBJd
t|j���dS)NrRrzname="dcterms.rDz<<link rel="schema.dcterms" href="http://purl.org/dc/terms/">�mathjaxr]r�r1r�r�rzlen(context) = %s)rr��doctype�head_prefix_templater=r`r(rer&r�rtrJrrHrwrirr)rr�r!r'r r,rrrmrr�rrr�depart_document�s8

���
���zHTMLTranslator.depart_documentcCs|j�|�|dd��dS)NZemrDr�r�rrr�visit_emphasis�szHTMLTranslator.visit_emphasiscCs|j�d�dS)Nz</em>r�r�rrr�depart_emphasis�szHTMLTranslator.depart_emphasiscCs�dgi}t|jjtj�r&|d�d�|jjjj|jjrH|d�d�|drhd}d�|d�|d<n
d}|d=|jjd7_d|vr�|dd|d	<d
|vr�|d
d|d<|jj|d
7_|j�|j	||dfi|���|j
�d
|���dS)Nr�rrZthr�Ztdr]ZmorerowsZrowspanZmorecolsZcolspanrDz</%s>
)r�r�r	�theadrer
�columnrHr r�rmrl)r0r�r�r�rrr�visit_entry�s$zHTMLTranslator.visit_entrycCs|j�|j���dSr-r�r�rrr�depart_entry
szHTMLTranslator.depart_entrycCsni}d|vr|d|d<d|vr,|d|d<|�|�rN|�dd�d��|d<|j�|j|dfi|���dS)Nr;Zenumtyper�rDr9Zol)r�r�r�r rer��r0r�r�rrr�visit_enumerated_list
s
z$HTMLTranslator.visit_enumerated_listcCs|j�d�dS)Nz</ol>
r�r�rrr�depart_enumerated_listsz%HTMLTranslator.depart_enumerated_listcCs2d}|�|�r|d7}|j�|j|d|d��dS)Nz
field-listr9r.r�)r�r rer�r0rrr�visit_field_lists
zHTMLTranslator.visit_field_listcCs|j�d�dSr2r�r�rrr�depart_field_list"sz HTMLTranslator.depart_field_listcCsdSr-rr�rrr�visit_field%szHTMLTranslator.visit_fieldcCsdSr-rr�rrr�depart_field(szHTMLTranslator.depart_fieldc
Cs*|j�|j|ddd�|jd�d��dS)N�dtrDr�r�)r rer�rHr�r�rrr�visit_field_name-s�zHTMLTranslator.visit_field_namecCs|j�d�dS)Nr)r�r�rrr�depart_field_name1sz HTMLTranslator.depart_field_namec
Cs<|j�|j|ddd�|jd�d��|js8|j�d�dS)Nr*rDr�r�z<p></p>)r rer�rHr�r�r�rrr�visit_field_body4s
�zHTMLTranslator.visit_field_bodycCs|j�d�dSr,r�r�rrr�depart_field_body;sz HTMLTranslator.depart_field_bodycCsdddi}|�d�r"d|d|d<|�d�rD|dd|d7<|j�|j|dfi|���dS)	Nr�Zfigure�width�	width: %sr�alignz align-r�)r�r rer�rOrrr�visit_figure>s

zHTMLTranslator.visit_figurecCs|j�d�dSr�r�r�rrr�
depart_figureFszHTMLTranslator.depart_figurecCs|j�t|j��dSr-�rmrerr r�rrr�visit_footerJszHTMLTranslator.visit_footercCsf|j��}|j|ddd�dg}|�|j|d��|�d�|j�|�||jdd�<|j|d�=dS)Nr�r%r�z<hr class="footer" />
z
</div>
r)rmr�r�r�r rer%r!)r0r�r;r%rrr�
depart_footerMs
�
zHTMLTranslator.depart_footercCs,|js(d|jj}|j�d|�d|_dS)Nz	footnote z<dl class="%s">
T)rsr=�footnote_referencesr rer0rrr�visit_footnote\szHTMLTranslator.visit_footnotecCs8|j�d�t|jddd�tj�s4|j�d�d|_dSr�)r rer�r�r	�footnotersr�rrr�depart_footnotebs�zHTMLTranslator.depart_footnotec	Cs8d|d}d|jj}|j�|j|dd||d��dS)Nr�r�zfootnote-reference rrDr)r=rcr rer�)r0r�rr�rrr�visit_footnote_referenceis
�z'HTMLTranslator.visit_footnote_referencecCs|j�d�dS)N�</a>r�r�rrr�depart_footnote_referenceosz(HTMLTranslator.depart_footnote_referencecCs:d|dvr6|���d�}|j�d|�|��tj�dS)N�sectnumr�� z <span class="sectnum">%s</span> )rxrIr rer{r	r)r0r�rjrrr�visit_generatedss�zHTMLTranslator.visit_generatedcCsdSr-rr�rrr�depart_generated|szHTMLTranslator.depart_generatedcCs|j�t|j��dSr-r`r�rrr�visit_headerszHTMLTranslator.visit_headercCsb|j��}|j|ddd�g}|�|j|d��|�d�|j�|�|j�|�|j|d�=dS)Nr�r$r�z
<hr class="header"/>
</div>
)rmr�r�r�r rerr$)r0r�r;r$rrr�
depart_header�s

zHTMLTranslator.depart_headerz.swfzapplication/x-shockwave-flashc	Cs�i}|d}tj�|�d��}||jvrB||d<|j||d<n||d<|�d|�|d<d|vrn|d|d<d|vr�|d|d<d	|v�r�t�r8d|vr�d|v�s8|jj�r8t	|�}ztj
�|�t
����}Wnttfy�YnR0|jj�|�d
d��d|v�rd|jd
|d<d|v�r6d|jd|d<~dD]Z}||v�r<t�d||�}|�sdJ�dt|�d��t|d	�d|�d�f||<�q<g}	dD]N}||v�r�t�d||��r�||d7<|	�d|||f�||=�q�|	�rd�|	�|d<t|jtj��s6t|jtj��r<t|jjtj��s<d}
nd}
d|v�rZd|d|d<||jv�r�|j �|j!|d|
fi|��|�d|�d|
�n|j �|j"|d|
fi|���dS) Nrr]�data�type�srcZaltr[�heightZscale�\�/z%dpxr)r[rsz([0-9.]+)(\S*)$z%s%s�d�z	^[0-9.]+$Zpxz%s: %s;r�rrDrEr]�align-%sr��objectz	</object>�img)#rBr[�splitextrl�object_image_typesr�rr=Zfile_insertion_enabledr�Imager<r{�sys�getfilesystemencodingr��UnicodeEncodeErrorr�r�r~�size�re�match�float�grouprerHr�r�r	�TextElement�	referencer r�r�)r0r�r�rZextZ	imagepathrzZatt_namer�rr�rrr�visit_image�s�

��
�



�

��

���zHTMLTranslator.visit_imagecCsdSr-rr�rrr�depart_image�szHTMLTranslator.depart_imagecCs|j�|�|dd��dS)NrrDr�r�rrr�visit_inline�szHTMLTranslator.visit_inlinecCs|j�d�dSr	r�r�rrr�
depart_inline�szHTMLTranslator.depart_inlinecCs�t|jtj�r|jj}nd}|j�|j|jdddd��|j�|j|dd|d��|jj	r�|jd}t
|�dkr�|j�d	|d
�dS)NZbracketsrVrDZlabelr�r�backrefsr]z!<a class="fn-backref" href="#%s">r)r�r�r	rer=rcr rer��footnote_backlinksr)r0r�r�r�rrr�visit_label�s

�zHTMLTranslator.visit_labelcCs�|jjr*|jd}t|�dkr*|j�d�|j�d�|jjrtt|�dkrtdd�t|d�D�}|j�dd�|��|j�d	�dS)
Nr�r]rhr
cSsg|]\}}d||f�qS)�<a href="#%s">%s</a>r)rZ�i�refrrrr\�s�z/HTMLTranslator.depart_label.<locals>.<listcomp>z$<span class="fn-backref">(%s)</span>�,z
</dt>
<dd>)r=r�r�rr re�	enumeraterH)r0r�r��	backlinksrrr�depart_label�s
��zHTMLTranslator.depart_labelcCs|j�|j|ddd��dS)Nr�Zlegendr�r�r�rrr�visit_legend�szHTMLTranslator.visit_legendcCs|j�d�dSr�r�r�rrr�
depart_legend�szHTMLTranslator.depart_legendcCs2|j�|j|dddd��t|�s.|j�d�dS)Nr�rD�liner�z<br />rr�rrr�
visit_line�szHTMLTranslator.visit_linecCs|j�d�dSr�r�r�rrr�depart_lineszHTMLTranslator.depart_linecCs|j�|j|ddd��dS)Nr�z
line-blockr�r�r�rrr�visit_line_blockszHTMLTranslator.visit_line_blockcCs|j�d�dSr�r�r�rrr�depart_line_blocksz HTMLTranslator.depart_line_blockcCs|j�|�|dd��dS)NZlirDr�r�rrr�visit_list_item	szHTMLTranslator.visit_list_itemcCs|j�d�dS)Nz</li>
r�r�rrr�depart_list_itemszHTMLTranslator.depart_list_itemcCs�|�dg�}d|vr@dd�|D�|d<|j�|�|dd��dS|j�|j|dddd��|��}t|jtj�s||�	d	d
�}|j
�|�D]B}|��r�|j
�|�r�|j�d|�|��q�|j�|�|��q�|j�d�tj�dS)
Nr��codecSsg|]}|dkr|�qS)r�r�rZr�rrrr\rz0HTMLTranslator.visit_literal.<locals>.<listcomp>rDrzdocutils literalr�rEr�z<span class="pre">%s</span>r
)r�r rer�rxr�r�r	Z
literal_blockr~�words_and_spaces�findallr��in_word_wrap_point�searchr{r)r0r�r�rz�tokenrrr�
visit_literals&��zHTMLTranslator.visit_literalcCs|j�d�dS)N�</code>r�r�rrr�depart_literal*szHTMLTranslator.depart_literalcCs:|j�|j|dddd��d|�dg�vr6|j�d�dS)Nr�rD�
literal-blockr�r�r�z<code>)r rer�r�r�rrr�visit_literal_block.sz"HTMLTranslator.visit_literal_blockcCs,d|�dg�vr|j�d�|j�d�dS)Nr�r�r�z</pre>
)r�r rer�rrr�depart_literal_block3sz#HTMLTranslator.depart_literal_block)r�rDrD)r�rZformula)r�r�math)r�Zttr���mathmlrrE�latexrDc
s��j�jvr&�jj�d�j�d�_�j�j|dk}�j�jd}ddddd�}|�j|dk}�jd	kr��jr��jd
dkr�d}|���tj	�}|r�z||||f}Wnt
y�||}Yn0�jdvr��|�}�jd
k�rX�j�sXz�jd
�_
Wn"t�y(�jj�d�Yn0d�j
v�rD�j
d7_
�j�j
g�_�n�jdk�r��j�r��j�s��fdd��jd
�d�D��_|dktj_t�|�}�n��jd	k�rBd�jv�rֈj�_�j�_d��j���}z�|dk�rt�|�jj�}nd|dk�r t�|�jj�}nH|dk�rBtj||�jjd�}n&|�sZtj ||d�}n�jj�d�Wn�t!�y�t!d��Yn�t"�y@}	z��jjj|	|d�}
��#|
��j$�%��&|d���j$�%d�|	j'���j$�%d��j$�%�j&|d d!d"���j$�%��|���j$�%d#���(|
�t)j*�WYd}	~	n
d}	~	00|�rj�j$�%�j&||d$t+|�|d%���j$�%|�|�r��j$�%d$�|�r��j$�%d&|�|�r��j$�%d$�t)j*�dS)'Nz=math-output format "%s" not supported falling back to "latex"r�rDrw)z$%s$�\begin{%s}
%s
\end{%s})z\(%s\)r�)NNr�r�r�	blahtexml)r�rErEz@No MathJax URL specified, using local fallback (see config.html)�?z?config=TeX-AMS_CHTMLrcs"g|]}��t�|�jj���qSr)rYr
Zfind_file_in_dirsr=Zstylesheet_dirs)rZ�sr/rrr\ps��z-HTMLTranslator.visit_math.<locals>.<listcomp>r�zXHTML 1r��latexml�ttm)�inlinera)r�z3option "%s" not supported with math-output "MathML"zis "latexmlmath" in your PATH?)Z	base_noder�r�r�r�r�r�rEr��</%s>),ri�	math_tagsr1rar�rkrxr9rZ
uni2tex_table�	TypeErrorr{rw�mathjax_urlr�Zwarning�mathjax_scriptrjrZDocumentParametersZdisplaymoderF�doctype_mathmlZcontent_type_mathmlrtrHrlrr�r�r�rZ
tex2mathml�OSError�SyntaxError�visit_system_messager rer��args�depart_system_messager	r�bool)r0r��math_env�tagZclsargZwrappers�wrapperZ	math_codeZ	converterr�Zerr_noderr/r�
visit_mathDs�����


�
�
�
��
�

�zHTMLTranslator.visit_mathcCsdSr-rr�rrr�depart_math�szHTMLTranslator.depart_mathcCst|���}|j||d�dS)N)r�)rrxr�)r0r�r�rrr�visit_math_block�szHTMLTranslator.visit_math_blockcCsdSr-rr�rrr�depart_math_block�sz HTMLTranslator.depart_math_blockcCs&|j|dfi|����}|�|�dS)Nr&)r�Znon_default_attributesr=)r0r�r&rrr�
visit_meta�szHTMLTranslator.visit_metacCsdSr-rr�rrr�depart_meta�szHTMLTranslator.depart_metacCs|j�|�|j�|�dSr-)r&rer)r0r�rrrr=�szHTMLTranslator.add_metacCs|j�|j|dddd��dS)NrrD�optionr�r�r�rrr�visit_option�szHTMLTranslator.visit_optioncCs2|j�d�t|jddd�tj�r.|j�d�dS)Nr
FTr��, )r rer�r�r	r�r�rrr�
depart_option�s
�zHTMLTranslator.depart_optioncCs.|j�|�dd��|j�|�|dd��dS)NZ	delimiterr��varrD)r rer�r�r�rrr�visit_option_argument�sz$HTMLTranslator.visit_option_argumentcCs|j�d�dS)Nz</var>r�r�rrr�depart_option_argument�sz%HTMLTranslator.depart_option_argumentcCs&|j�|�|dd��|j�d�dS)NrVrDz<kbd>r�r�rrr�visit_option_group�sz!HTMLTranslator.visit_option_groupcCs|j�d�dS)Nz</kbd></dt>
r�r�rrr�depart_option_group�sz"HTMLTranslator.depart_option_groupcCs|j�|j|ddd��dS)Nr.zoption-listr�r�r�rrr�visit_option_list�s�z HTMLTranslator.visit_option_listcCs|j�d�dSr2r�r�rrr�depart_option_list�sz!HTMLTranslator.depart_option_listcCsdSr-rr�rrr�visit_option_list_item�sz%HTMLTranslator.visit_option_list_itemcCsdSr-rr�rrr�depart_option_list_item�sz&HTMLTranslator.depart_option_list_itemcCsdSr-rr�rrr�visit_option_string�sz"HTMLTranslator.visit_option_stringcCsdSr-rr�rrr�depart_option_string�sz#HTMLTranslator.depart_option_stringcCs|�|d�dS)NZorganizationr�r�rrr�visit_organization�sz!HTMLTranslator.visit_organizationcCs|��dSr-r�r�rrr�depart_organization�sz"HTMLTranslator.depart_organizationcCs|j�|�|dd��dS)Nr�rDr�r�rrr�visit_paragraph�szHTMLTranslator.visit_paragraphcCs>|j�d�t|jtjtjf�r.t|j�dks:|j�d�dS)Nr�r]rE)r rer�r�r	Z	list_item�entryrr�rrr�depart_paragraphs
�zHTMLTranslator.depart_paragraphcCsV|�d�r,|j�d|d�|j�d�n|j�d�|j�|j|dddd��dS)Nr�z<a href="#%s">rhrDrZproblematicr�)�hasattrr rermr�r�rrr�visit_problematics

z HTMLTranslator.visit_problematiccCs"|j�d�|j�|j���dSr	r�r�rrr�depart_problematicsz!HTMLTranslator.depart_problematiccCs|d|�dd���vrrt|jtj�r&dp(d}|drJ|j�|j||dd��|j�|�	��|drr|j�d|�tj
�dS)	Nr�formatrDrr�r�)r�r�)r�rjr�r�r	r�r rer�rxr)r0r��trrr�	visit_rawszHTMLTranslator.visit_rawcCs�ddi}d|vr\|d|d<|jjrJ|d�d�rJ|�|d�|d<d|_|dd7<n0d|vslJd	��d
|d|d<|dd7<t|jtj�s�t	|�dkr�t|d
tj
�s�J�|dd7<|j�|j
|ddfi|���dS)Nr�r��refurirzmailto:Tz	 externalr�z3References must have "refuri" or "refid" attribute.r�z	 internalr]rz image-referencerrD)r=r�r�r�rvr�r�r	r�rZimager rer�rOrrr�visit_references$�
� zHTMLTranslator.visit_referencecCs0|j�d�t|jtj�s&|j�d�d|_dS)NrhrEF)r rer�r�r	r�rvr�rrr�depart_reference2szHTMLTranslator.depart_referencecCs|j|ddd�dS)NZrevisionFr�r�r�rrr�visit_revision8szHTMLTranslator.visit_revisioncCs|��dSr-r�r�rrr�depart_revision;szHTMLTranslator.depart_revisioncCs |j�|�|dd��d|_dS)NZtrrDr)r rer�rLr�rrr�	visit_row>szHTMLTranslator.visit_rowcCs|j�d�dS)Nz</tr>
r�r�rrr�
depart_rowBszHTMLTranslator.depart_rowcCs|j�|j|dddd��dS)Nr�rDZrubricr�r�r�rrr�visit_rubricEszHTMLTranslator.visit_rubriccCs|j�d�dSr�r�r�rrr�
depart_rubricHszHTMLTranslator.depart_rubriccCs*|jd7_|j�|j|ddd��dS)Nr]r��sectionr�)rfr rer�r�rrr�
visit_sectionLs�zHTMLTranslator.visit_sectioncCs|jd8_|j�d�dS)Nr]r�)rfr rer�rrr�depart_sectionQszHTMLTranslator.depart_sectioncCs"|j�|j|ddd��d|_dS)Nr��sidebarr�T)r rer�rrr�rrr�
visit_sidebarVs�zHTMLTranslator.visit_sidebarcCs|j�d�d|_dS)Nr�F)r rerrr�rrr�depart_sidebar[szHTMLTranslator.depart_sidebarcCs|j|ddd�dS)NZstatusFr�r�r�rrr�visit_status_szHTMLTranslator.visit_statuscCs|��dSr-r�r�rrr�
depart_statusbszHTMLTranslator.depart_statuscCs|j�|�|dd��dS)NZstrongrDr�r�rrr�visit_strongeszHTMLTranslator.visit_strongcCs|j�d�dS)Nz	</strong>r�r�rrr�
depart_stronghszHTMLTranslator.depart_strongcCs|j�|�|dd��dS)Nr�rDr�r�rrr�visit_subscriptkszHTMLTranslator.visit_subscriptcCs|j�d�dS)Nz</sub>r�r�rrr�depart_subscriptnszHTMLTranslator.depart_subscriptcCs
tj�dS)zInternal only.N�r	rr�rrr�visit_substitution_definitionqsz,HTMLTranslator.visit_substitution_definitioncCs|�|�dSr-)�unimplemented_visitr�rrr�visit_substitution_referenceusz+HTMLTranslator.visit_substitution_referencecCsht|jtj�rd}n6t|jtj�r8d}t|j�d|_nt|jtj�rJd}|j�	|j
|dd|d��dS)Nzsidebar-subtitler#r]zsection-subtitler�rDr�)r�r�r	r�r1rr rur�rer�r0rrr�visit_subtitle|szHTMLTranslator.visit_subtitlecCs^|j�d�t|jtj�rZ|j|jd�|_d|_|j�	|j�|j
�	|j�|jdd�=dS)Nr�rr)r rer�r�r	r1rur#rr�r+r�rrr�depart_subtitle�szHTMLTranslator.depart_subtitlecCs|j�|�|dd��dS)NZsuprDr�r�rrr�visit_superscript�sz HTMLTranslator.visit_superscriptcCs|j�d�dS)Nz</sup>r�r�rrr�depart_superscript�sz!HTMLTranslator.depart_superscriptc	Cs�|j�|j|ddd��|j�d�d}t|d�r�|d}t|�dkrVd|d	}n:d}g}|D]}|�d
||f�|d7}qbdd�|�}|�d
�r�d|d
}nd}|j�d|d|d|�|d�||f�dS)Nr�zsystem-messager�z <p class="system-message-title">rDr�r]z%; <em><a href="#%s">backlink</a></em>rr�z; <em>backlinks: %s</em>r�r�z	, line %szISystem Message: %s/%s (<span class="docutils literal">%s</span>%s)%s</p>
rq�levelrA)r rer�rrHr�r{)r0r�Zbackref_textr�r�r�Zbackrefr�rrrr��s2�
�
��z#HTMLTranslator.visit_system_messagecCs|j�d�dSr�r�r�rrrr��sz$HTMLTranslator.depart_system_messagecCs|i}dd�|jj�d�D�}d|vr6|�d|d�d|vrNd|d|d<|j|d	fd
d�|�i|��}|j�|�dS)NcSsg|]}|�d��qS)z 	
)r�r�rrrr\�s�z.HTMLTranslator.visit_table.<locals>.<listcomp>r�r]rxr[r\rr�r�r�)r=rrjrer�rHr )r0r�r�r�r�rrr�visit_table�s�zHTMLTranslator.visit_tablecCs|j�d�dS)Nz	</table>
r�r�rrr�depart_table�szHTMLTranslator.depart_tablecCsPd|vs@d|vs@d|vs@|j�|j|dddd��|j�d�n|j�d�dS)	Nr�r�rrrD�targetr�r
)r rer�rmr�rrr�visit_target�s�zHTMLTranslator.visit_targetcCs|j�|j���dSr-r�r�rrr�
depart_target�szHTMLTranslator.depart_targetcCs|j�|�|d��dS)NZtbodyr�r�rrr�visit_tbody�szHTMLTranslator.visit_tbodycCs|j�d�dS)Nz	</tbody>
r�r�rrr�depart_tbody�szHTMLTranslator.depart_tbodycCs|j�|�|dd��dS)NrVrDr�r�rrr�
visit_term�szHTMLTranslator.visit_termcCsdS)zg
        Leave the end tag to `self.visit_definition()`, in case there's a
        classifier.
        Nrr�rrr�depart_term�szHTMLTranslator.depart_termcCsg|_g|_dSr-)ror
r�rrr�visit_tgroup�szHTMLTranslator.visit_tgroupcCsdSr-rr�rrr�
depart_tgroup�szHTMLTranslator.depart_tgroupcCs|j�|�|d��dS)NrKr�r�rrr�visit_thead�szHTMLTranslator.visit_theadcCs|j�d�dS)Nz	</thead>
r�r�rrr�depart_thead�szHTMLTranslator.depart_theadcCs�d}t|jtj�r0|j�|j|dddd���n�t|jtj�r\|j�|j|dddd���nft|jtj�r�|j�|j|dddd���n:t|jtj	�r�|j�|�|dd��d	}�nt|jtj
�r�|j�|j|d
ddd��d}t|j�|_n�t|jtj
��sJ�|j|jd
}i}t|j�dk�rBt|jd
tj��rBd|d<|j�|j|d|dfi|���i}|�d��r�d|d<d|d|d<|�r�|j�|jiddfi|���d|}nd|}|j�|�dS)z,Only 6 section levels are supported by HTML.r�r�rDztopic-titler�z
sidebar-titlezadmonition-titler�z</caption>
Zh1r"z</h1>
r]rwz
with-subtitler�zh%sr�ztoc-backrefr�r�rrz</a></h%s>
z</h%s>
N)r�r�r	�topicr rer�r�Z
Admonitionr�r1rrur�rfrhr#r�rm)r0r�Z	close_tagZh_levelr�rrr�visit_title�sR������
zHTMLTranslator.visit_titlecCs\|j�|j���|jrX|j|jd�|_d|_|j�|j�|j�|j�|jdd�=dS)Nrr)	r rermr�rur"rr�r*r�rrr�depart_titleszHTMLTranslator.depart_titlecCs|j�|�|dd��dS)NZciterDr�r�rrr�visit_title_referencesz$HTMLTranslator.visit_title_referencecCs|j�d�dS)Nz</cite>r�r�rrr�depart_title_referencesz%HTMLTranslator.depart_title_referencecCs&|j�|j|ddd��|d|_dS)Nr�rr�r�)r rer�rnr�rrr�visit_topic!szHTMLTranslator.visit_topiccCs|j�d�g|_dSr�)r rernr�rrr�depart_topic'szHTMLTranslator.depart_topiccCs|j�|j|ddd��dS)NZhrrKr�)r rer�r�rrr�visit_transition,szHTMLTranslator.visit_transitioncCsdSr-rr�rrr�depart_transition/sz HTMLTranslator.depart_transitioncCs|j|ddd�dS)NrGFr�r�r�rrr�
visit_version2szHTMLTranslator.visit_versioncCs|��dSr-r�r�rrr�depart_version5szHTMLTranslator.depart_versioncCstd|jj��dS)Nz$visiting unimplemented node type: %s)�NotImplementedError�	__class__rr�rrrr�8s�z"HTMLTranslator.unimplemented_visit)rEF)rE)r)N)T)rD)�rrr�__doc__rdrFr�rGrtrcr�r�r�r�r��compiler��Ur�r��ordryr_rxr{r�r�r�rYr�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�rrrrrrr�rrrrrrr r"r#r%r&r'r(r+r-r1r3r5r6r7r8r:r<r�r�r?r@rDrHrIrJrMrNrPrQrRrSrTrUrWrXrYrZr^r_rarbrdrfrgrirlrmrnror|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�rrrr�r�rrrrr	r
rrr
rrrrrrrrrrrrrr�rrrrrQhs�8
�	;	�

C�

�
		
	
A

�e
	(	rQc@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�dSr-)r	r�r�rrr�
default_visitHszSimpleListChecker.default_visitcCsvdd�|jD�}|r\t|dtj�r\t|dtj�sTt|dtj�sTt|dtj�r\|��t|�dkrldStj	�dS)NcSsg|]}t|tj�s|�qSrr�)rZr�rrrr\Ls�z5SimpleListChecker.visit_list_item.<locals>.<listcomp>rrr])
r�r�r	Z	paragraphr�r�r�r�rr�)r0r�r�rrrr�Ks���z!SimpleListChecker.visit_list_itemcCsdSr-rr�rrr�	pass_nodeXszSimpleListChecker.pass_nodecCs
tj�dSr-r�r�rrr�ignore_node[szSimpleListChecker.ignore_nodeN)#rrrrr"r�r#r$r�r�r�rPr:r�r�r�rr"r%r�r�rr1r5rrr+rRrTrYrWrr�rZ
visit_pendingrrrrr�=s@	
r�)%rr~Zos.pathrBr�Z	PIL.Imager�ImportErrorr}ryrKr	r
rrr
Zdocutils.utils.error_reportingrZdocutils.transformsrZdocutils.utils.mathrrrrr�version_infoZurllib.requestrZurllib�strr?rr^rQZGenericNodeVisitorr�rrrr�<module>sH

7`

Youez - 2016 - github.com/yon3zu
LinuXploit