
\c           @   s<  d  Z  d d l 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	 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 e f d     YZ
 d S(   s   
    sphinx.writers.html
    ~~~~~~~~~~~~~~~~~~~

    docutils writers handling Sphinx' custom nodes.

    :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS.
    :license: BSD, see LICENSE for details.
iN(   t   nodes(   t   Writert   HTMLTranslator(   t   string_types(   t   addnodes(   t   RemovedInSphinx30Warning(   t   admonitionlabelst   _t   __(   t   logging(   t   get_image_size(   t   Any(   t   StandaloneHTMLBuildert
   HTMLWriterc           B   sb   e  Z e j e j  Z x3 e d  D]' Z d e d k r# d e d  d <q# q# Wd   Z d   Z RS(   i   s   --embed-stylesheeti   i    t   defaultc         C   s   t  j |   | |  _ d  S(   N(   R   t   __init__t   builder(   t   selfR   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR   0   s    c         C   s   |  j  j |  j  |  j  |  _ } |  j j |  | j   |  _ x* d D]" } t |  | t | | d    qH Wd j
 | j d  |  _ d  S(   Nt   head_prefixt
   stylesheett   headt   body_prefixt   body_pre_docinfot   docinfot   bodyt   fragmentt   body_suffixt   metat   titlet   subtitlet   headert   footert   html_prologt	   html_headt
   html_titlet   html_subtitlet	   html_bodyt    i   (   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   (   R   t   create_translatort   documentt   visitort	   walkaboutt   astextt   outputt   setattrt   getattrt   Nonet   joinR   t
   clean_meta(   R   R(   t   attr(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt	   translate5   s       
 (	   t   __name__t
   __module__t   copyt   deepcopyR   t   settings_spect   _settingR   R2   (    (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR   (   s   	R   c           B   sd  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 dl   Zm dm   Zn dn   Zo do   Zp d" dp  Zq d" dq  Zr d" dr  Zs d" ds  Zt dt   Zu ev du    Zw ev dv    Zx ev dw    Zy ev dx    Zz RS(y   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 |  _ d  S(   Ni    u   ¶R%   (   t   BaseTranslatorR   t   highlighterR   t   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   _fieldlist_row_indext   required_params_left(   R   R   t   argst   kwds(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR   J   s     						c         C   s0   |  j  j | d  |  j j d | d  d  S(   Nt   docnames   <span id="document-%s"></span>(   R<   t   appendR   (   R   t   node(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_start_of_file^   s    c         C   s   |  j  j   d  S(   N(   R<   t   pop(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_start_of_filed   s    c         C   s*   |  j  j |  j | d d | d  d  S(   Nt   dlt   CLASSt   objtype(   R   RN   t   starttag(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt
   visit_desch   s    c         C   s   |  j  j d  d  S(   Ns   </dl>

(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_descl   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   dtRU   t   describet   idst   firsts   <!--[%s]-->i    (   R   RN   RV   t   parent(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_desc_signaturep   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   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_desc_signaturey   s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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 />(   R`   Ra   R]   R   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_desc_signature_line   s    c         C   s)   |  j  j |  j | d d d d  d  S(   Nt   codeR%   RT   t   descclassname(   R   RN   RV   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_desc_addname   s    c         C   s   |  j  j d  d  S(   Ns   </code>(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_desc_addname   s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_desc_type   s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_desc_type   s    c         C   s   |  j  j d  d  S(   Ns
    &#x2192; (   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_desc_returns   s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_desc_returns   s    c         C   s)   |  j  j |  j | d d d d  d  S(   NRf   R%   RT   t   descname(   R   RN   RV   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_desc_name   s    c         C   s   |  j  j d  d  S(   Ns   </code>(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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   RN   t   first_paramRG   t   sumt   childrenRB   R   t   desc_parameterRJ   t   child_text_separatorRF   (   R   RO   t   c(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_desc_parameterlist   s    		+c         C   s   |  j  j d  d  S(   Ns    <span class="sig-paren">)</span>(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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>(   Rq   RJ   R   RN   RF   RG   t   hasattr(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_desc_parameter   s    		c         C   sE   | j  d  s" |  j j d  n  |  j rA |  j j |  j  n  d  S(   NRy   s   </em>(   Rz   R   RN   RJ   RF   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_desc_parameter   s    	c         C   s#   |  j  d 7_  |  j j d  d  S(   Ni   s   <span class="optional">[</span>(   RG   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_desc_optional   s    c         C   s#   |  j  d 8_  |  j j d  d  S(   Ni   s   <span class="optional">]</span>(   RG   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_desc_optional   s    c         C   s)   |  j  j |  j | d d d d  d  S(   Nt   emR%   RT   t   property(   R   RN   RV   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_desc_annotation   s    c         C   s   |  j  j d  d  S(   Ns   </em>(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_desc_annotation   s    c         C   s#   |  j  j |  j | d d   d  S(   Nt   ddR%   (   R   RN   RV   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_desc_content   s    c         C   s   |  j  j d  d  S(   Ns   </dd>(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_desc_content   s    c         C   s*   |  j  j |  j | d d | d  d  S(   Nt   divRT   t   type(   R   RN   RV   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_versionmodified   s    c         C   s   |  j  j d  d  S(   Ns   </div>
(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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   reftitleR   t   targett   aR%   t	   secnumbers   %st   .(   R`   t   settingst   cloak_email_addressest
   startswitht   cloak_mailtot	   in_mailtot   AssertionErrorRB   R]   R    t   TextElementt   lent   imageR   RN   RV   RE   R/   t   mapt   str(   R   RO   t   atts(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_reference   s0    	."c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_number_reference  s    c         C   s   |  j  |  d  S(   N(   t   depart_reference(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_number_reference  s    c         C   s   t  j  d  S(   N(   R    t   SkipNode(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_comment  s    R%   c         C   s`   |  j  j |  j | d d d |  | rO | j d t j | t |   n  |  j |  d  S(   NR   RT   s   admonition i    (   R   RN   RV   t   insertR    R   R   t   set_first_last(   R   RO   t   name(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_admonition  s
    #c         C   s   |  j  | d  d  S(   Nt   seealso(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_seealso'  s    c         C   s   |  j  |  d  S(   N(   t   depart_admonition(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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(   NR   R   t
   singlehtmlis   %s/#%sR[   i    s   %s/R   R%   (   R`   R   RN   R/   R   R   RE   RB   R]   R    t   sectionR   R   R<   t
   secnumbers(   R   RO   RM   t
   anchornamet   numbers(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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 %sR   t    s   </span>(   R   R   R<   t
   fignumbersR`   R   RN   R=   t   numfig_formatR.   R   t   loggert   warningR/   R   R   (   t   figtypet	   figure_idt   keyt   prefixt   msgR   (   R   (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   append_fignumberE  s    *t   stdR[   i    s    Any IDs not assigned for %s nodet   location(	   R   t   envt   domainst   get_enumerable_node_typeR   R   t   tagnameR   R   (   R   RO   R   R   R   (    (   R   s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   add_fignumberC  s    c         C   sT   | d rP |  j  rP |  j j rP d } |  j j | | d d | |  j  f  n  d  S(   NR[   u2   <a class="headerlink" href="#%s" title="%s">%s</a>i    (   RA   R   t   add_permalinksR   RN   (   R   RO   R   t   format(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyRa   _  s    c         C   sB   x; | d d D]+ } |  j  j d |  | d j |  q Wd S(   s  Generate hyperlink targets for listings.

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

        This exports hyperlink targets before listings to make valid DOM structure.
        R[   i   s   <span id="%s"></span>N(   R   RN   t   remove(   R   RO   t   id(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   generate_targets_for_listinge  s    c         C   sR   t  |  d k r1 | d j d k r1 t j  n  |  j |  t j |  |  d  S(   Ni   i    t   toctree(   R   R   R    R   R   R9   t   visit_bullet_list(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR   u  s    %c         C   s!   |  j  |  t j |  |  d  S(   N(   R   R9   t   visit_enumerated_list(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR   ~  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">(
   R9   t   visit_titleR   R   R]   RB   R    t   tableR   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR     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(   NiR[   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   contextRA   R   R   R]   Rz   R   Ra   R   R   RN   RB   R    R   R9   t   depart_title(   R   RO   t	   close_tag(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR     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   languageR   t   linenost   highlight_argst   force_highlightingt   forcet   optsR   R   t   suffixR%   RT   s   highlight-%s notranslates   </div>
(   t	   rawsourceR*   R9   t   visit_literal_blockR`   t   FalseR   R=   t   highlight_languaget   highlight_optionsR:   t   highlight_blockR;   t   lineRV   R   RN   R    R   (   R   RO   t   langR   R   R   t   highlightedRV   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR     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%   RT   s   caption-text(   RB   R]   R    t	   containerR`   R   RN   R9   t   visit_captionR   RV   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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   RN   RB   R]   R    R   R`   Ra   R   t   figuret   traverseR   R9   t   depart_caption(   R   RO   t   image_nodest   target_node(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR     s    ''c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_doctest_block  s    c         C   s$   |  j  j |  j | d  d  d  S(   Nt
   blockquotes   <div>(   R   RN   RV   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_block_quote  s    c         C   s   |  j  j d  d  S(   Ns   </div></blockquote>
(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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%   RT   s   docutils literal notranslateRf   i   (   R   RN   RV   R?   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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   RN   R?   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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(   R   (   t   .0R   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pys	   <genexpr>  s    t   strongR%   s   </strong> ::= s   %s     R   s   
s   </pre>
(
   R   RN   RV   t   maxR.   t   ljustR   R)   R    R   (   R   RO   t   namest
   productiont   maxlent   lastname(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_productionlist  s"    
!c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_productionlist  s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_production  s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_production  s    c         C   s*   |  j  j |  j | d d d d  d  S(   Nt   pRT   t   centereds   <strong>(   R   RN   RV   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_centered  s    c         C   s   |  j  j d  d  S(   Ns   </strong></p>(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.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.(   RB   R]   R   t   desc_contentR   t   versionmodifiedR9   t   should_be_compact_paragraph(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR
  "  s
    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_compact_paragraph-  s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_compact_paragraph1  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 downloadR   R%   t   downloadR   s	    externalR   R   s   </a>t   filenames	    internal(	   R   t   download_supportR   RN   R   RV   t	   posixpathR/   t   dlpath(   R   RO   R   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_download_reference5  s    

" "c         C   s   |  j  j |  j j    d  S(   N(   R   RN   R   RQ   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_download_referenceI  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  R/   t   imgpatht   lowert   endswithR`   R   RN   R   t   emptytagR
   t   ost   patht   srcdirR.   R   R   R   R   R9   t   visit_image(   R   RO   t   olduriR  R   t   size(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR&  N  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   RN   R   RQ   R9   t   depart_image(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR)  x  s    c         C   s   t  j  d  S(   N(   R    R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_toctree  s    c         C   s   t  j  d  S(   N(   R    R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_index  s    c         C   s   t  j  d  S(   N(   R    R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_tabular_col_spec  s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_glossary  s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_glossary  s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt
   visit_acks  s    c         C   s   d  S(   N(    (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_acks  s    c         C   s   |  j  j d  d  S(   Ns   <table class="hlist"><tr>(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_hlist  s    c         C   s   |  j  j d  d  S(   Ns   </tr></table>
(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_hlist  s    c         C   s   |  j  j d  d  S(   Ns   <td>(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_hlistcol  s    c         C   s   |  j  j d  d  S(   Ns   </td>(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_hlistcol  s    c         C   s4   t  j |  |  |  j d j d d  |  j d <d  S(   Nis   &nbsp;s   &#160;(   R9   t   visit_option_groupR   t   replace(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR5    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*   RC   R?   t   words_and_spacest   findallt   stripR   RN   R   R   R   R   t   cloak_email(   R   RO   t   textt   encodedt   token(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt
   visit_Text  s    	)c         C   s   |  j  | d  d  S(   Nt   note(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt
   visit_note  s    c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_note  s    c         C   s   |  j  | d  d  S(   NR   (   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_warning  s    c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_warning  s    c         C   s   |  j  | d  d  S(   Nt	   attention(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_attention  s    c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_attention  s    c         C   s   |  j  | d  d  S(   Nt   caution(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_caution  s    c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_caution  s    c         C   s   |  j  | d  d  S(   Nt   danger(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_danger  s    c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_danger  s    c         C   s   |  j  | d  d  S(   Nt   error(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_error  s    c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_error  s    c         C   s   |  j  | d  d  S(   Nt   hint(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt
   visit_hint  s    c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_hint  s    c         C   s   |  j  | d  d  S(   Nt	   important(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_important  s    c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_important  s    c         C   s   |  j  | d  d  S(   Nt   tip(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt	   visit_tip	  s    c         C   s   |  j  |  d  S(   N(   R   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt
   depart_tip  s    c         C   s   |  j  |  S(   N(   t   visit_emphasis(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_literal_emphasis  s    c         C   s   |  j  |  S(   N(   t   depart_emphasis(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_literal_emphasis  s    c         C   s   |  j  |  S(   N(   t   visit_strong(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_literal_strong  s    c         C   s   |  j  |  S(   N(   t   depart_strong(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_literal_strong  s    c         C   sL   i  } | j  d  r& | d | d <n  |  j j |  j | d d |   d  S(   Nt   explanationR   t   abbrR%   (   Rz   R   RN   RV   (   R   RO   t   attrs(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_abbreviation!  s    c         C   s   |  j  j d  d  S(   Ns   </abbr>(   R   RN   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_abbreviation(  s    c         C   sC   |  j  |  |  j r? |  j j | j   | d <|  j |  n  d  S(   NR   (   RZ  R>   R   t
   attributesR   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_manpage,  s    	c         C   s*   |  j  r |  j |  n  |  j |  d  S(   N(   R>   R   R\  (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_manpage3  s    	c         C   s   d |  _  t j |  |  S(   Ni    (   RH   R9   t   visit_table(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyRi  ;  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%   (   RH   RN   R   RV   t   column(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt	   visit_row@  s    c         C   s7   t  j |  |  |  j d d k r3 d |  j d <n  d  S(   Nis   &nbsp;s   &#160;(   R9   t   visit_entryR   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyRm  J  s    c         C   s   d |  _  t j |  |  S(   Ni    (   RI   R9   t   visit_field_list(   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyRn  P  s    	c         C   sp   |  j  d 7_  |  j  d d k r6 | d j d  n | d j d  |  j j |  j | d d d	 d
  d  S(   Ni   i   i    R   s
   field-evens	   field-oddRj  R%   RT   t   field(   RI   RN   R   RV   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_fieldU  s
    c         C   s[   t  |  j  } t j |  |  | t  |  j  k rW |  j d j d d  |  j d <n  d  S(   Nis   &nbsp;s   &#160;(   R   R   R9   t   visit_field_nameR6  (   R   RO   t   context_count(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyRq  ^  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   RO   t   math_envR   t   visitR   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt
   visit_mathe  s    c         C   sB   |  j  j } |  j  j j j | \ } } | r> | |  |  n  d  S(   N(   R   Rs  Rt  Ru  Rv  (   R   RO   Rw  R   R   t   depart(    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_mathk  s    c         C   s9   |  j  j } |  j  j j j | \ } } | |  |  d  S(   N(   R   Rs  Rt  Ru  t   html_block_math_renderers(   R   RO   Rw  R   Rx  R   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   visit_math_blockr  s    c         C   sB   |  j  j } |  j  j j j | \ } } | r> | |  |  n  d  S(   N(   R   Rs  Rt  Ru  R|  (   R   RO   Rw  R   R   Rz  (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   depart_math_blockx  s    c         C   s   t  d | j j   d  S(   Ns   Unknown node: (   t   NotImplementedErrort	   __class__R3   (   R   RO   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   unknown_visit  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   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   highlightlang  s    	c         C   s   t  j d t  |  j j j S(   Ns0   HTMLTranslator.highlightlang_base is deprecated.(   R  R  R   R   R=   R   (   R   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   highlightlang_base  s    	c         C   s#   t  j d t d d |  j j j S(   Ns+   HTMLTranslator.highlightopts is deprecated.R  i   (   R  R  R   R   R=   R   (   R   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   highlightopts  s    	c         C   s   t  j d t d d t j S(   Ns6   HTMLTranslator.highlightlinenothreshold is deprecated.R  i   (   R  R  R   t   syst   maxsize(   R   (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   highlightlinenothreshold  s    	({   R3   R4   t   __doc__R   RP   RR   RW   RX   R^   Rb   Rc   Re   Rh   Ri   Rj   Rk   Rl   Rm   Ro   Rp   Rw   Rx   R{   R|   R}   R~   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   Ra   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/  R0  R1  R2  R3  R4  R5  R>  R@  RA  RB  RC  RE  RF  RH  RI  RK  RL  RN  RO  RQ  RR  RT  RU  RW  RX  RZ  R\  R^  R`  Rd  Re  Rg  Rh  Ri  Rl  Rm  Rn  Rp  Rq  Ry  R{  R}  R~  R  R   R  R  R  R  (    (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyR   E   s   																			
	
																																	
													*																																										
						(#   R  R5   R#  R  R  R  t   docutilsR    t   docutils.writers.html4css1R   R   R9   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	   getLoggerR3   R   R   (    (    (    s2   lib/python2.7/site-packages/sphinx/writers/html.pyt   <module>
   s&   