
\c           @   s  d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z d d l m Z	 d d l
 m Z d d l m Z d d l m Z d d l m Z m Z m Z d d	 l m Z d d
 l m Z e r d d l m Z d d l m Z n  e j e  Z d e	 f d     YZ  d S(   s   
    sphinx.writers.html5
    ~~~~~~~~~~~~~~~~~~~~

    Experimental docutils writers for HTML5 handling Sphinx' custom nodes.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iN(   t   nodes(   t   HTMLTranslator(   t   string_types(   t   addnodes(   t   RemovedInSphinx30Warning(   t   admonitionlabelst   _t   __(   t   logging(   t   get_image_size(   t   Any(   t   StandaloneHTMLBuildert   HTML5Translatorc           B   s@  e  Z d  Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d    Z" d!   Z# d" d#  Z$ d$   Z% d%   Z& d&   Z' d'   Z( d(   Z) d)   Z* d*   Z+ d+   Z, d,   Z- d-   Z. d.   Z/ d/   Z0 d0   Z1 d1   Z2 d2   Z3 d3   Z4 d4   Z5 d5   Z6 d6   Z7 d7   Z8 d8   Z9 d9   Z: d:   Z; d;   Z< d<   Z= d=   Z> d>   Z? d?   Z@ d@   ZA dA   ZB dB   ZC dC   ZD dD   ZE dE   ZF dF   ZG dG   ZH dH   ZI dI   ZJ dJ   ZK dK   ZL dL   ZM dM   ZN dN   ZO dO   ZP dP   ZQ dQ   ZR dR   ZS dS   ZT dT   ZU dU   ZV dV   ZW dW   ZX dX   ZY dY   ZZ dZ   Z[ d[   Z\ d\   Z] d]   Z^ d^   Z_ d_   Z` d`   Za da   Zb db   Zc dc   Zd dd   Ze de   Zf df   Zg dg   Zh dh   Zi di   Zj dj   Zk dk   Zl d" dl  Zm d" dm  Zn d" dn  Zo d" do  Zp dp   Zq er dq    Zs er dr    Zt er ds    Zu er dt    Zv RS(u   s%   
    Our custom HTML translator.
    c         O   s   t  j |  | |  | j |  _ | |  _ | j g |  _ | j j |  _ d |  _ | j j	 |  _
 t |  j
 t  s |  j
 r d p d |  _
 n  |  j |  j
  |  _
 | j j |  _ d |  _ d |  _ d |  _ d |  _ d  S(   Ni    u   ¶t    (   t   BaseTranslatort   __init__t   highlightert   buildert   current_docnamet   docnamest   configt   manpages_urlt   protect_literal_textt   html_add_permalinkst   permalink_textt
   isinstanceR   t   encodet   html_secnumber_suffixt   secnumber_suffixt   param_separatort   optional_param_levelt   _table_row_indext   required_params_left(   t   selfR   t   argst   kwds(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR   ,   s    					c         C   s0   |  j  j | d  |  j j d | d  d  S(   Nt   docnames   <span id="document-%s"></span>(   R   t   appendt   body(   R!   t   node(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_start_of_file?   s    c         C   s   |  j  j   d  S(   N(   R   t   pop(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_start_of_fileE   s    c         C   s*   |  j  j |  j | d d | d  d  S(   Nt   dlt   CLASSt   objtype(   R&   R%   t   starttag(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt
   visit_descI   s    c         C   s   |  j  j d  d  S(   Ns   </dl>

(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_descM   s    c         C   sf   |  j  j |  j | d   | j d d k rb | d rb | d rb |  j  j d | d d  n  d  S(   Nt   dtR-   t   describet   idst   firsts   <!--[%s]-->i    (   R&   R%   R.   t   parent(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_signatureQ   s    c         C   s<   | j  d  s( |  j | t d   n  |  j j d  d  S(   Nt   is_multilines   Permalink to this definitions   </dt>
(   t   gett   add_permalink_refR   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_signatureZ   s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_signature_line`   s    c         C   s?   | j  d  r+ |  j | j t d   n  |  j j d  d  S(   Nt   add_permalinks   Permalink to this definitions   <br />(   R8   R9   R5   R   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_signature_lined   s    c         C   s)   |  j  j |  j | d d d d  d  S(   Nt   codeR   R,   t   descclassname(   R&   R%   R.   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_addnamek   s    c         C   s   |  j  j d  d  S(   Ns   </code>(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_addnameo   s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_types   s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_typew   s    c         C   s   |  j  j d  d  S(   Ns
    &#x2192; (   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_returns{   s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_returns   s    c         C   s)   |  j  j |  j | d d d d  d  S(   NR>   R   R,   t   descname(   R&   R%   R.   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_name   s    c         C   s   |  j  j d  d  S(   Ns   </code>(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_name   s    c         C   sc   |  j  j d  d |  _ d |  _ t g  | j D] } t | t j  ^ q/  |  _	 | j
 |  _ d  S(   Ns    <span class="sig-paren">(</span>i   i    (   R&   R%   t   first_paramR   t   sumt   childrenR   R   t   desc_parameterR    t   child_text_separatorR   (   R!   R'   t   c(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_parameterlist   s    		+c         C   s   |  j  j d  d  S(   Ns    <span class="sig-paren">)</span>(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_parameterlist   s    c         C   s{   |  j  r d |  _  n |  j s4 |  j j |  j  n  |  j d k rU |  j d 8_ n  | j d  sw |  j j d  n  d  S(   Ni    i   t   noemphs   <em>(   RI   R    R&   R%   R   R   t   hasattr(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_parameter   s    		c         C   sE   | j  d  s" |  j j d  n  |  j rA |  j j |  j  n  d  S(   NRQ   s   </em>(   RR   R&   R%   R    R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_parameter   s    	c         C   s#   |  j  d 7_  |  j j d  d  S(   Ni   s   <span class="optional">[</span>(   R   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_optional   s    c         C   s#   |  j  d 8_  |  j j d  d  S(   Ni   s   <span class="optional">]</span>(   R   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_optional   s    c         C   s)   |  j  j |  j | d d d d  d  S(   Nt   emR   R,   t   property(   R&   R%   R.   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_annotation   s    c         C   s   |  j  j d  d  S(   Ns   </em>(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_annotation   s    c         C   s#   |  j  j |  j | d d   d  S(   Nt   ddR   (   R&   R%   R.   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_desc_content   s    c         C   s   |  j  j d  d  S(   Ns   </dd>(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_desc_content   s    c         C   s*   |  j  j |  j | d d | d  d  S(   Nt   divR,   t   type(   R&   R%   R.   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_versionmodified   s    c         C   s   |  j  j d  d  S(   Ns   </div>
(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_versionmodified   s    c         C   s  i d d 6} | j  d  s( d | k r; | d c d 7<n | d c d 7<d | k r | d pd d | d <|  j j r | d j d	  r |  j | d  | d <d
 |  _ q n* d | k s t d   d | d | d <t | j t	 j
  s0t |  d
 k rt | d t	 j  st  | d c d 7<n  d | k rM| d | d <n  d | k rj| d | d <n  |  j j |  j | d d |   | j  d  r|  j j d |  j d j t t | d    n  d  S(   Nt	   referencet   classt   internalt   refuris	    internals	    externalt   #t   hrefs   mailto:i   t   refids3   References must have "refuri" or "refid" attribute.i    s    image-referencet   reftitlet   titlet   targett   aR   t	   secnumbers   %st   .(   R8   t   settingst   cloak_email_addressest
   startswitht   cloak_mailtot	   in_mailtot   AssertionErrorR   R5   R    t   TextElementt   lent   imageR&   R%   R.   R   t   joint   mapt   str(   R!   R'   t   atts(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_reference   s0    	."c         C   s   |  j  |  d  S(   N(   R|   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_number_reference   s    c         C   s   |  j  |  d  S(   N(   t   depart_reference(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_number_reference   s    c         C   s   t  j  d  S(   N(   R    t   SkipNode(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_comment   s    R   c         C   sS   |  j  j |  j | d d d |  | rO | j d t j | t |   n  d  S(   NR^   R,   s   admonition i    (   R&   R%   R.   t   insertR    Rj   R   (   R!   R'   t   name(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_admonition   s    c         C   s   |  j  | d  d  S(   Nt   seealso(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_seealso  s    c         C   s   |  j  |  d  S(   N(   t   depart_admonition(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_seealso  s    c         C   s8  | j  d  r? |  j j d j t t | d   |  j  n t | j t	 j
  r4|  j j d k r |  j d } d | | j d d f } | |  j j k r d | } q n0 d	 | j d d } | |  j j k r d
 } n  |  j j j  |  r4|  j j | } |  j j d j t t |   |  j  q4n  d  S(   NRm   Rn   t
   singlehtmlis   %s/#%sR3   i    s   %s/Rf   R   (   R8   R&   R%   Rx   Ry   Rz   R   R   R5   R    t   sectionR   R   R   t
   secnumbers(   R!   R'   R$   t
   anchornamet   numbers(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   add_secnumber  s     "	c            s     f d   }   j  j j d j |  } | r t | d  d k rp t d  | j } t j | d | q | | | d d  n  d  S(   Nc            s     j  j d k r, d   j d |  f } n |  } |   j  j j | i   k r   j j d    j  j j j |   } | d  k r t
 d  |  } t j |  q   j  j | | }   j j | d j t t |   d    j j d  n  d  S(	   NR   u   %s/%sis   <span class="caption-number">s#   numfig_format is not defined for %sRn   t    s   </span>(   R   R   R   t
   fignumbersR8   R&   R%   R   t   numfig_formatt   NoneR   t   loggert   warningRx   Ry   Rz   (   t   figtypet	   figure_idt   keyt   prefixt   msgR   (   R!   (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   append_fignumber%  s    *t   stdR3   i    s    Any IDs not assigned for %s nodet   location(	   R   t   envt   domainst   get_enumerable_node_typeRv   R   t   tagnameR   R   (   R!   R'   R   R   R   (    (   R!   s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   add_fignumber#  s    c         C   sT   | d rP |  j  rP |  j j rP d } |  j j | | d d | |  j  f  n  d  S(   NR3   u2   <a class="headerlink" href="#%s" title="%s">%s</a>i    (   R   R   t   add_permalinksR&   R%   (   R!   R'   Rj   t   format(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR9   ?  s    c         C   sE   t  |  d k r1 | d j d k r1 t j  n  t j |  |  d  S(   Ni   i    t   toctree(   Rv   R   R    R   R   t   visit_bullet_list(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR   F  s    %c         C   sY   t  j |  |  |  j |  |  j | j  t | j t j  rU |  j j	 d  n  d  S(   Ns   <span class="caption-text">(
   R   t   visit_titleR   R   R5   R   R    t   tableR&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR   N  s
    c         C   s4  |  j  d } |  j r |  j j r | j j d  r | j d r | j d  rl |  j | j t d   q | j d  r |  j	 j
 d | j d d d t d  |  j f  q t | j t j  r |  j	 j
 d	  |  j | j t d
   q n( t | j t j  r |  j	 j
 d	  n  t j |  |  d  S(   NiR3   s   </hs   Permalink to this headlines   </a></hu%   </a><a class="headerlink" href="#%s" i    u   title="%s">%ss   </span>s   Permalink to this table(   t   contextR   R   R   R5   RR   Rq   R9   R   R&   R%   R   R    R   R   t   depart_title(   R!   R'   t	   close_tag(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR   V  s"    	c      
   C   s!  | j  | j   k r% t j |  |  S| j d d  } | j d t  } | j d i   } | j d t  | d <| |  j j j k r |  j j j	 } n i  } |  j
 j | j  | d | d | d |  j j | j f | } |  j | d	 d
 d d d | } |  j j | | d  t j  d  S(   Nt   languaget   defaultt   linenost   highlight_argst   force_highlightingt   forcet   optsR   R^   t   suffixR   R,   s   highlight-%s notranslates   </div>
(   t	   rawsourcet   astextR   t   visit_literal_blockR8   t   FalseR   R   t   highlight_languaget   highlight_optionsR   t   highlight_blockR   t   lineR.   R&   R%   R    R   (   R!   R'   t   langR   R   R   t   highlightedR.   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR   m  s     	c         C   s   t  | j t j  r: | j j d  r: |  j j d  n t j |  |  |  j	 | j  |  j j |  j
 | d d d d  d  S(   Nt   literal_blocks    <div class="code-block-caption">t   spanR   R,   s   caption-text(   R   R5   R    t	   containerR8   R&   R%   R   t   visit_captionR   R.   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR     s
    'c         C   s.  |  j  j d  t | j t j  rS | j j d  rS |  j | j t d   n t | j t j	  r | j j
 t j  } | r | d p | j } |  j | t d   n1 | j j d  r |  j | j j t d   n  t | j t j  r| j j d  r|  j  j d  n t j |  |  d  S(	   Ns   </span>R   s   Permalink to this codei    s   Permalink to this imageR   s   Permalink to this toctrees   </div>
(   R&   R%   R   R5   R    R   R8   R9   R   t   figuret   traverseRw   R   t   depart_caption(   R!   R'   t   image_nodest   target_node(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR     s    ''c         C   s   |  j  |  d  S(   N(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_doctest_block  s    c         C   s$   |  j  j |  j | d  d  d  S(   Nt
   blockquotes   <div>(   R&   R%   R.   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_block_quote  s    c         C   s   |  j  j d  d  S(   Ns   </div></blockquote>
(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_block_quote  s    c         C   sp   d | d k r8 |  j  j |  j | d d d d  n4 |  j  j |  j | d d d d  |  j d 7_ d  S(   Nt   kbdt   classesR   R,   s   docutils literal notranslateR>   i   (   R&   R%   R.   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_literal  s    
c         C   sF   d | d k r# |  j  j d  n |  j d 8_ |  j  j d  d  S(   NR   R   s   </kbd>i   s   </code>(   R&   R%   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_literal  s    c         C   s+  |  j  j |  j | d   g  } x | D] } | j | d  q) Wt d   | D  } d  } x | D] } | d r | d j |  } |  j  j |  j | d d   |  j  j | d  n- | d  k	 r |  j  j d d t |   n  | j |   |  j  j d	  qg W|  j  j d
  t j	  d  S(   Nt   pret	   tokennamec         s   s   |  ] } t  |  Vq d  S(   N(   Rv   (   t   .0R   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pys	   <genexpr>  s    t   strongR   s   </strong> ::= s   %s     R   s   
s   </pre>
(
   R&   R%   R.   t   maxR   t   ljustRv   t	   walkaboutR    R   (   R!   R'   t   namest
   productiont   maxlent   lastname(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_productionlist  s"    
!c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_productionlist  s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_production  s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_production  s    c         C   s*   |  j  j |  j | d d d d  d  S(   Nt   pR,   t   centereds   <strong>(   R&   R%   R.   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_centered  s    c         C   s   |  j  j d  d  S(   Ns   </strong></p>(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_centered  s    c         C   sB   t  | j t j  r t St  | j t j  r2 t St j |  |  S(   s:   Determine if the <p> tags around paragraph can be omitted.(   R   R5   R   t   desc_contentR   t   versionmodifiedR   t   should_be_compact_paragraph(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR     s
    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_compact_paragraph  s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_compact_paragraph  s    c         C   s  i d d 6d d 6} |  j  j s3 |  j j d  n d | k r | d c d 7<| d | d <|  j j |  j | d d |   |  j j d	  n d
 | k r| d c d 7<t j |  j  j | d
  | d <|  j j |  j | d d |   |  j j d	  n |  j j d  d  S(   Ns   reference downloadRc   R   t   downloadRe   s	    externalRg   Rl   s   </a>t   filenames	    internal(	   R   t   download_supportR   R%   R&   R.   t	   posixpathRx   t   dlpath(   R!   R'   R{   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_download_reference  s    

" "c         C   s   |  j  j |  j j    d  S(   N(   R&   R%   R   R)   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_download_reference  s    c         C   s  | d } | |  j  j k rE t j |  j  j |  j  j |  | d <n  | d } | j   j d  r8i | d 6} d | k r | d | d <n  d | k r | d | d <n  | j d |  | d <d | k r|  j j	 d	 | d | d f  |  j
 j	 d
  n |  j
 j	 d  |  j j	 |  j | d d |   d  Sd | k rd | k oYd | k st t j j |  j  j |   } | d  k rt j t d  d | qd | k rt | d  | d <n  d | k rt | d  | d <qqn  t j |  |  d  S(   Nt   urit   svgt   svgzt   srct   widtht   heightt   altt   aligns!   <div align="%s" class="align-%s">s   </div>
R   t   imgt   scales7   Could not obtain image size. :scale: option is ignored.R   i    i   (   R   R   (   R   t   imagesR   Rx   t   imgpatht   lowert   endswithR8   R&   R%   R   t   emptytagR	   t   ost   patht   srcdirR   R   R   R   Rz   R   t   visit_image(   R!   R'   t   olduriR   R{   t   size(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR     s<    

"!
c         C   sI   | d j    j d  r5 |  j j |  j j    n t j |  |  d  S(   NR   R   R   (   R   R   (   R   R   R&   R%   R   R)   R   t   depart_image(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR  B  s    c         C   s   t  j  d  S(   N(   R    R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_toctreeI  s    c         C   s   t  j  d  S(   N(   R    R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_indexO  s    c         C   s   t  j  d  S(   N(   R    R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_tabular_col_specS  s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_glossaryW  s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_glossary[  s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt
   visit_acks_  s    c         C   s   d  S(   N(    (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_acksc  s    c         C   s   |  j  j d  d  S(   Ns   <table class="hlist"><tr>(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_hlistg  s    c         C   s   |  j  j d  d  S(   Ns   </tr></table>
(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_hlistk  s    c         C   s   |  j  j d  d  S(   Ns   <td>(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_hlistcolo  s    c         C   s   |  j  j d  d  S(   Ns   </td>(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_hlistcols  s    c         C   s   | j    } |  j |  } |  j r x |  j j |  D]j } | j   r` |  j j d |  q7 | d k r |  j j |  q7 |  j j d t |  d d  q7 Wn7 |  j	 r |  j
 j r |  j |  } n  |  j j |  d  S(   Ns   <span class="pre">%s</span>s    
s   &#160;i   R   (   R   R   R   t   words_and_spacest   findallt   stripR&   R%   Rv   Rs   Ro   Rp   t   cloak_email(   R!   R'   t   textt   encodedt   token(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt
   visit_Textx  s    	)c         C   s   |  j  | d  d  S(   Nt   note(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt
   visit_note  s    c         C   s   |  j  |  d  S(   N(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_note  s    c         C   s   |  j  | d  d  S(   NR   (   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_warning  s    c         C   s   |  j  |  d  S(   N(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_warning  s    c         C   s   |  j  | d  d  S(   Nt	   attention(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_attention  s    c         C   s   |  j  |  d  S(   N(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_attention  s    c         C   s   |  j  | d  d  S(   Nt   caution(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_caution  s    c         C   s   |  j  |  d  S(   N(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_caution  s    c         C   s   |  j  | d  d  S(   Nt   danger(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_danger  s    c         C   s   |  j  |  d  S(   N(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_danger  s    c         C   s   |  j  | d  d  S(   Nt   error(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_error  s    c         C   s   |  j  |  d  S(   N(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_error  s    c         C   s   |  j  | d  d  S(   Nt   hint(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt
   visit_hint  s    c         C   s   |  j  |  d  S(   N(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_hint  s    c         C   s   |  j  | d  d  S(   Nt	   important(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_important  s    c         C   s   |  j  |  d  S(   N(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_important  s    c         C   s   |  j  | d  d  S(   Nt   tip(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt	   visit_tip  s    c         C   s   |  j  |  d  S(   N(   R   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt
   depart_tip  s    c         C   s   |  j  |  S(   N(   t   visit_emphasis(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_literal_emphasis  s    c         C   s   |  j  |  S(   N(   t   depart_emphasis(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_literal_emphasis  s    c         C   s   |  j  |  S(   N(   t   visit_strong(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_literal_strong  s    c         C   s   |  j  |  S(   N(   t   depart_strong(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_literal_strong  s    c         C   sL   i  } | j  d  r& | d | d <n  |  j j |  j | d d |   d  S(   Nt   explanationRj   t   abbrR   (   RR   R&   R%   R.   (   R!   R'   t   attrs(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_abbreviation  s    c         C   s   |  j  j d  d  S(   Ns   </abbr>(   R&   R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_abbreviation  s    c         C   sF   |  j  |  |  j rB |  j j t |    | d <|  j |  n  d  S(   NRe   (   R1  R   R   t   dictR|   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_manpage  s    	c         C   s*   |  j  r |  j |  n  |  j |  d  S(   N(   R   R~   R3  (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_manpage  s    	c         C   sB   x; | d d D]+ } |  j  j d |  | d j |  q Wd S(   sZ  Generate 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.
        R3   i   s   <span id="%s"></span>N(   R&   R%   t   remove(   R!   R'   t   id(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   generate_targets_for_table   s    
c         C   s   |  j  |  d |  _ g  |  j j j d  D] } | j d  ^ q, } | j d d  d | k r{ | j d | d  n  |  j | d d d	 j	 |  } |  j
 j |  d  S(
   Ni    t   ,u    	
t   docutilsR   s   align-%sR   R,   R   (   RB  R   Ro   t   table_stylet   splitR  R   R%   R.   Rx   R&   (   R!   R'   t   clsR   t   tag(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_table  s    	.!c         C   ss   |  j  d 7_  |  j  d d k r6 | d j d  n | d j d  |  j j |  j | d d   d | _ d  S(	   Ni   i   i    R   s   row-evens   row-oddt   trR   (   R   R%   R&   R.   t   column(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt	   visit_row  s    c         C   s   d |  _  t j |  |  S(   Ni    (   t   _fieldlist_row_indexR   t   visit_field_list(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyRN  &  s    	c         C   sK   |  j  d 7_  |  j  d d k r6 | d j d  n | d j d  | S(   Ni   i   i    R   s
   field-evens	   field-odd(   RM  R%   (   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_field+  s
    c         C   s9   |  j  j } |  j  j j j | \ } } | |  |  d  S(   N(   R   t   math_renderer_namet   appt   registryt   html_inline_math_renderers(   R!   R'   t   math_envR   t   visitR   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt
   visit_math4  s    c         C   sB   |  j  j } |  j  j j j | \ } } | r> | |  |  n  d  S(   N(   R   RP  RQ  RR  RS  (   R!   R'   RT  R   R   t   depart(    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_math:  s    c         C   s9   |  j  j } |  j  j j j | \ } } | |  |  d  S(   N(   R   RP  RQ  RR  t   html_block_math_renderers(   R!   R'   RT  R   RU  R   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   visit_math_blockA  s    c         C   sB   |  j  j } |  j  j j j | \ } } | r> | |  |  n  d  S(   N(   R   RP  RQ  RR  RY  (   R!   R'   RT  R   R   RW  (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   depart_math_blockG  s    c         C   s   t  d | j j   d  S(   Ns   Unknown node: (   t   NotImplementedErrort	   __class__t   __name__(   R!   R'   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   unknown_visitN  s    c         C   s#   t  j d t d d |  j j j S(   Ns+   HTMLTranslator.highlightlang is deprecated.t
   stackleveli   (   t   warningst   warnR   R   R   R   (   R!   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   highlightlangT  s    	c         C   s#   t  j d t d d |  j j j S(   Ns0   HTMLTranslator.highlightlang_base is deprecated.R`  i   (   Ra  Rb  R   R   R   R   (   R!   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   highlightlang_base[  s    	c         C   s#   t  j d t d d |  j j j S(   Ns+   HTMLTranslator.highlightopts is deprecated.R`  i   (   Ra  Rb  R   R   R   R   (   R!   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   highlightoptsb  s    	c         C   s   t  j d t d d t j S(   Ns6   HTMLTranslator.highlightlinenothreshold is deprecated.R`  i   (   Ra  Rb  R   t   syst   maxsize(   R!   (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   highlightlinenothresholdi  s    	(w   R^  t
   __module__t   __doc__R   R(   R*   R/   R0   R6   R:   R;   R=   R@   RA   RB   RC   RD   RE   RG   RH   RO   RP   RS   RT   RU   RV   RY   RZ   R\   R]   R`   Ra   R|   R}   R   R   R   R   R   R   R   R9   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/  R1  R3  R5  R7  R;  R<  R>  R?  RB  RI  RL  RN  RO  RV  RX  RZ  R[  R_  RX   Rc  Rd  Re  Rh  (    (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyR   '   s   																			
	
																														
													*																																										
				(!   Rj  R   R   Rf  Ra  RD  R    t   docutils.writers.html5_polyglotR   R   t   sixR   t   sphinxR   t   sphinx.deprecationR   t   sphinx.localeR   R   R   t   sphinx.utilR   t   sphinx.util.imagesR	   R   t   typingR
   t   sphinx.builders.htmlR   t	   getLoggerR^  R   R   (    (    (    s3   lib/python2.7/site-packages/sphinx/writers/html5.pyt   <module>
   s"   