gdSc@s*dZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z ddl mZmZddlmZyddlmZWn;ek ryddlZWnek reZnXnXd efd YZd e fd YZ d e fdYZdS(s sphinx.writers.html ~~~~~~~~~~~~~~~~~~~ docutils writers handling Sphinx' custom nodes. :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. iN(tnodes(tWritertHTMLTranslator(taddnodes(tadmonitionlabelst_(tsphinx_smarty_pants(tImaget HTMLWritercBsbeZejejZx3edD]'Zdedkr#deddd>Z?d?Z@d@ZAdAZBdBZCdCZDdDZEdEZFdFZGdGZHdHZIdIZJdJZKdKZLdLZMdMZNdNZOdOZPdPZQdQZRdRZSdSZTdTZUdUZVdVZWdWZXdXZYdYZZdZZ[d[Z\d\Z]d]Z^d^Z_d_Z`d`ZadaZbddbZcdcZdRS(ds% Our custom HTML translator. cOstj||||j|_d|_||_|jj|_tj |_ d|_ |jj |_ t|j ts|j rdpd|_ n|j|j |_ |jj|_d|_d|_d|_dS(Niu¶R (tBaseTranslatorR t highlightert no_smartyR tconfigthighlight_languaget highlightlangtsystmaxintthighlightlinenothresholdtprotect_literal_textthtml_add_permalinkstpermalink_textt isinstancet basestringtencodethtml_secnumber_suffixtsecnumber_suffixtparam_separatortoptional_param_levelt_table_row_index(R R targstkwds((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyR Cs       cCs|jjd|ddS(Nstdocname(Rtappend(R tnode((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_start_of_fileUscCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_start_of_fileXscCs*|jj|j|dd|ddS(NtdltCLASStobjtype(RRKtstarttag(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_desc[scCs|jjddS(Ns (RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt depart_desc]scCsf|jj|j|d|jddkrb|drb|drb|jjd|ddndS(NtdtRQtdescribetidstfirsts i(RRKRRtparent(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_desc_signature`scCsi|drU|jrU|jjrU|jjd|dddtd|jfn|jjddS(NRWu!%ssPermalink to this definitions (R?R tadd_permalinksRRKR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_desc_signaturegs   cCs)|jj|j|dddddS(NtttR RPt descclassname(RRKRR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_desc_addnamepscCs|jjddS(Ns(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_desc_addnamerscCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_desc_typeuscCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_desc_typewscCs|jjddS(Ns → (RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_desc_returnszscCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_desc_returns|scCs)|jj|j|dddddS(NR]R RPtdescname(RRKRR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_desc_namescCs|jjddS(Ns(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_desc_namescCsc|jjdd|_d|_tg|jD]}t|tj^q/|_ |j |_ dS(Ns (ii( RRKt first_paramRFtsumtchildrenR@Rtdesc_parametertrequired_params_lefttchild_text_separatorRE(R RLtc((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_desc_parameterlists   +cCs|jjddS(Ns )(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_desc_parameterlistscCs{|jrd|_n|js4|jj|jn|jdkrU|jd8_n|jdsw|jjdndS(Niitnoemphs(RhRlRRKRERFthasattr(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_desc_parameters   cCsE|jds"|jjdn|jrA|jj|jndS(NRqs(RrRRKRlRE(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_desc_parameters cCs#|jd7_|jjddS(Nis[(RFRRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_desc_optionalscCs#|jd8_|jjddS(Nis](RFRRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_desc_optionalscCs)|jj|j|dddddS(NtemR RPtproperty(RRKRR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_desc_annotationscCs|jjddS(Ns(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_desc_annotationscCs#|jj|j|dddS(NtddR (RRKRR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_desc_contentscCs|jjddS(Ns(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_desc_contentscCs*|jj|j|dd|ddS(NtdivRPttype(RRKRR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_versionmodifiedscCs|jjddS(Ns (RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_versionmodifiedscCsidd6}|jds(d|kr;|dcd7 (t rawsourceR%R4tvisit_literal_blockR9tcountR<Rthas_keytTrueR5thighlight_blockRRRRKRR(R RLtlangRRRt highlightedRR((RLR s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRs&       cCs|j|dS(N(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_doctest_blockscCs$|jj|j|dddS(Nt blockquotes
(RRKRR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_block_quotescCs|jjddS(Ns
(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_block_quotescCs8|jj|j|dddd|jd7_dS(NR]R RPsdocutils literali(RRKRRR=(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_literal"s cCs#|jd8_|jjddS(Nis(R=RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_literal&scCs+|jj|j|dg}x|D]}|j|dq)Wtd|D}d}x|D]}|dr|dj|}|jj|j|dd|jj|dn-|dk r|jjddt|n|j||jjd qgW|jjd tj dS( Ntpret tokennamecss|]}t|VqdS(N(R(t.0R((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pys /ststrongR s ::= s%s t s s ( RRKRRtmaxR)tljustRR$RR(R RLtnamest productiontmaxlentlastname((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_productionlist*s"    ! cCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_productionlist<scCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_production?scCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_productionAscCs*|jj|j|dddddS(NtpRPtcentereds(RRKRR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_centeredDscCs|jjddS(Ns

(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_centeredGscCsBt|jtjrtSt|jtjr2tStj||S(s:Determine if the

tags around paragraph can be omitted.(R@RYRt desc_contenttFalsetversionmodifiedR4tshould_be_compact_paragraph(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRKs cCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_compact_paragraphUscCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_compact_paragraphWscCs|d|_|d|_dS(NRtlinenothreshold(R9R<(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_highlightlangZs cCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_highlightlang]scCs`|jdrL|jjdtj|jj|d|jjdn|jjddS(Ntfilenames1sR (RrRRKt posixpathR*R tdlpathtcontext(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_download_reference`s  cCs|jj|jjdS(N(RRKRtpop(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_download_referencehscCsi|d}||jjkrEtj|jj|jj||ds R timgtscaleii(R timagesRR*timgpathtlowertendswithRRRKRtemptytagRtopentostpathtsrcdirtIOErrort UnicodeErrorRtsizetfptcloset ExceptionR4t visit_image(R RLtolduriRtim((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRlsJ  "(  cCs tjdS(N(RR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_toctreescCs tjdS(N(RR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_indexscCs tjdS(N(RR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_tabular_col_specscCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_glossaryscCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_glossaryscCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_acksscCsdS(N((R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt depart_acksscCs|jjddS(Ns(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_hlistscCs|jjddS(Ns
(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt depart_hlistscCs|jjddS(Ns(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_hlistcolscCs|jjddS(Ns(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_hlistcolscCs|S(N((R ttext((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytbulk_text_processorscCs|j}|j|}|jrx|jj|D]j}|jr`|jjd|q7|dkr|jj|q7|jjdt|ddq7WnF|j r|j j r|j |}n|j |}|jj|dS(Ns%ss s iR(R%RBR=twords_and_spacestfindalltstripRRKRRRRt cloak_emailR(R RLRtencodedttoken((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_Texts    )cCs|j|ddS(Ntnote(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_notescCs|j|dS(N(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt depart_notescCs|j|ddS(Ntwarning(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_warningscCs|j|dS(N(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_warningscCs|j|ddS(Nt attention(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_attentionscCs|jdS(N(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_attentionscCs|j|ddS(Ntcaution(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_cautionscCs|jdS(N(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_cautionscCs|j|ddS(Ntdanger(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_dangerscCs|jdS(N(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt depart_dangerscCs|j|ddS(Nterror(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_errorscCs|jdS(N(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt depart_errorscCs|j|ddS(Nthint(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_hintscCs|jdS(N(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt depart_hintscCs|j|ddS(Nt important(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_importantscCs|jdS(N(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_importantscCs|j|ddS(Nttip(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_tipscCs|jdS(N(R(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt depart_tipscCs |j|S(N(tvisit_emphasis(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytvisit_literal_emphasisscCs |j|S(N(tdepart_emphasis(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_literal_emphasisscCsLi}|jdr&|d|d(RRK(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pytdepart_abbreviationscCs|jjdtjdS(Ns
(RRKRR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_termsepscCs|jd}|jr|jjr|jjdr|jdr|jdd}|jdr|jjd|dt d|jfq|jdr|jjd |d t d|jfqnt j ||dS( NiRWis%ssPermalink to this headlines%s( RR?R R[RYRrRRRKRR4t depart_title(R RLt close_tagtaname((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyR>s     cCsd|_tj||S(Ni(RGR4t visit_table(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRA+s cCss|jd7_|jddkr6|djdn|djd|jj|j|ddd|_dS( Niiitclassessrow-evensrow-oddttrR (RGRKRRRtcolumn(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_row/s cCsd|_tj||S(Ni(t_fieldlist_row_indexR4tvisit_field_list(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRG8s cCsp|jd7_|jddkr6|djdn|djd|jj|j|ddd d dS( NiiiRBs field-evens field-oddRCR RPtfield(RFRKRRR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_field<s cCs/|jjd|jj|jftjdS(Nsusing "math" markup without a Sphinx math extension active, please use one of the math extensions described at http://sphinx-doc.org/ext/math.html(R RRRRR(R RLtmath_env((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt visit_mathDs cCstd|jjdS(NsUnknown node: (tNotImplementedErrort __class__R.(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt unknown_visitKs(eR.R/t__doc__R RMRNRSRTRZR\R_R`RaRbRcRdRfRgRoRpRsRtRuRvRyRzR|R}RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR R R R R RRRRRRRRR R!R#R$R&R'R)R*R,R-R/R0R2R3R5R7R;R<R=R>RARERGRIRKRN(((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyR>s                                                   /                                         tSmartyPantsHTMLTranslatorcBszeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z d ZRS( si Handle ordinary text via smartypants, converting quotes and dashes to the correct entities. cOs d|_tj|||dS(Ni(R6RR (R RHRI((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyR Us cCs:|jd7_ztj||Wd|jd8_XdS(Ni(R6RR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRYscCsP|jd7_ytj||Wn&tjk rK|jd8_nXdS(Ni(R6RRRR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRas cCs#tj|||jd8_dS(Ni(Rtdepart_literal_blockR6(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRQkscCs |jd7_|j|dS(Ni(R6R4(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyR5oscCs |j||jd8_dS(Ni(R6R6(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyR7ss cCs#|jd7_tj||dS(Ni(R6RRZ(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRZwscCs#|jd8_tj||dS(Ni(R6RR\(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyR\{scCs:|jd7_ztj||Wd|jd8_XdS(Ni(R6RR(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRscCs#|jd7_tj||dS(Ni(R6Rt visit_option(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRRscCs#|jd8_tj||dS(Ni(R6Rt depart_option(R RL((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRSscCs|jdkrt|S|S(Ni(R6R(R R((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRs (R.R/ROR RRRQR5R7RZR\RRRRSR(((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyRPOs          (ROR:RRR0tdocutilsRtdocutils.writers.html4css1RRR4tsphinxRt sphinx.localeRRtsphinx.util.smartypantsRtPILRt ImportErrorR)RRP(((s=/usr/local/lib/python2.7/site-packages/sphinx/writers/html.pyt s*