B ç0œ`$úã @s$dZddlZddlZddlZddlZddlZddlZy ddl Z WnPe k ry"ddl Z Gdd„de ƒZ e e _ Wne k rŠdZ YnXYnXddlZddlmZmZmZmZmZddlmZddlmZddlmZmZmZmZmZGd d „d ejƒZGd d „d ejƒZ Gd d„dej!ƒZ"dS)z,common definitions for Docutils HTML writerséNc@s eZdZdS)ÚPILN)Ú__name__Ú __module__Ú __qualname__©rrúv/private/var/folders/sf/wxz_36012wxg_prv29r6623x5vlqx8/T/pip-target-tft40_m7/lib/python/docutils/writers/_html_base.pyrsr)ÚnodesÚutilsÚwritersÚ languagesÚio)Ú SafeString)Ú writer_aux)Ú unichar2texÚpick_math_environmentÚ math2htmlÚ latex2mathmlÚtex2mathml_externc@sPeZdZdZdZddiZddgZdZdd „Zd d „Z d d „Z dd„Z dd„Z dS)ÚWriter)ÚhtmlZxhtmlz template.txtZoutput_encoding_error_handlerÚxmlcharrefreplacer z html writers)Ú head_prefixÚheadÚ stylesheetÚ body_prefixÚbody_pre_docinfoÚdocinfoÚbodyÚ body_suffixÚtitleÚsubtitleÚheaderÚfooterÚmetaÚfragmentÚ html_prologÚ html_headÚ html_titleÚ html_subtitleÚ html_bodycCstj |¡tjgS)N)r rÚget_transformsrZ Admonitions)Úselfrrrr*BszWriter.get_transformscCsN| |j¡|_}|j |¡x |jD]}t||t||ƒƒq&W| ¡|_dS)N) Ztranslator_classÚdocumentÚvisitorZ walkaboutÚvisitor_attributesÚsetattrÚgetattrÚapply_templateÚoutput)r+r-ÚattrrrrÚ translateEs   zWriter.translatecCs6t|jjjdƒ}t| ¡dƒ}| ¡| ¡}||S)NÚrbzutf-8)Úopenr,ÚsettingsÚtemplateÚstrÚreadÚcloseÚinterpolation_dict)r+Z template_filer8Úsubsrrrr1Ls zWriter.apply_templatecCsNi}|jj}x(|jD]}d t||ƒ¡ d¡||<qW|j|d<tj|d<|S)NÚÚ ÚencodingÚversion) r,r7r.Újoinr0ÚrstripÚoutput_encodingÚdocutilsÚ __version__)r+r=r7r3rrrr<Ss   zWriter.interpolation_dictcCs6tj |¡x$|jD]}d t||ƒ¡|j|<qWdS)Nr>)r rÚassemble_partsr.rBr0Úparts)r+ÚpartrrrrG\s  zWriter.assemble_partsN) rrrÚ supportedZdefault_templateZsettings_defaultsZconfig_section_dependenciesr.r*r4r1r<rGrrrrr+s rc @seZdZdZdZdZeZdZdZdZ dZ dZ d 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&„Zd§d)d*„Zd¨d+d,„Zd©d.d/„Zd0d1„Z d2d3„Z!d4d5„Z"d6d7„Z#d8d9„Z$d:d;„Z%dd?„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„Zdqdr„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„ZNdd‘„ZOd’d“„ZPd”d•„ZQd–d—„ZRd˜d™„ZSdšd›„ZTdœd„ZUdždŸ„ZVd d¡„ZWd¢d£„ZXd«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ö„Zd÷dø„Z‚dùdú„Zƒdûdü„Z„dýdþ„Z…dÿd„Z†dd„Z‡dd„Zˆdd„Z‰dd„ZŠd d „Z‹d d d ddœZŒd¬dd„Zdd„ZŽdd„Zdd„Zdd„Z‘dd„Z’dd„Z“dd „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œd1d2„Zd3d4„Zžd5d6„ZŸd7d8„Z d9d:„Z¡d;d<„Z¢d=d>„Z£d?d@„Z¤dAdB„Z¥dCdD„Z¦dEdF„Z§dGdH„Z¨dIdJ„Z©dKdL„ZªdMdN„Z«dOdP„Z¬dQdR„Z­dSdT„Z®dUdV„Z¯dWdX„Z°dYdZ„Z±d[d\„Z²d]d^„Z³d_d`„Z´dadb„Zµdcdd„Z¶dedf„Z·dgdh„Z¸didj„Z¹dkdl„Zºdmdn„Z»dodp„Z¼dqdr„Z½dsdt„Z¾dudv„Z¿dwdx„ZÀdydz„ZÁd{d|„ZÂd}d~„ZÃdd€„ZÄdd‚„ZÅdƒd„„ZÆd…d†„ZÇd‡dˆ„ZÈd‰dŠ„ZÉd‹dŒ„ZÊddŽ„ZËdd„ZÌd‘d’„ZÍd“d”„ZÎd•d–„ZÏd—d˜„ZÐd™dš„ZÑd›dœ„ZÒddž„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('
') html4css1.HTMLTranslator.visit_example(self, node) def depart_example(self, node): html4css1.HTMLTranslator.depart_example(self, node) if foo: self.body.append('
') c) Extend both, calling the parent functions under the same conditions:: def visit_example(self, node): if foo: self.body.append('
') else: # call the parent method _html_base.HTMLTranslator.visit_example(self, node) def depart_example(self, node): if foo: self.body.append('
') 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(' ') This way, changes in stack use will not bite you. z% z zW z zR z2 z-file:/usr/share/javascript/mathjax/MathJax.jsz4 z% z [^ \n]+| +|\nz.+\W\W.+|[-?].+Úlangú&z&úz>ú@z@csŠtj ˆ|¡|jˆ_}|j}t ||j¡ˆ_ˆj t j gˆ_ 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Úpath)r+rrú ×sz+HTMLTranslator.__init__..z z réTF)9rÚ NodeVisitorÚ__init__r7Ú language_coder Z get_languageÚreporterÚlanguageÚ generatorrErFr#rr%Úxml_declarationÚappendrDrr Zget_stylesheet_listrrrrrr$rÚ section_levelÚintÚinitial_header_levelÚ math_outputÚsplitÚmath_output_optionsÚlowerÚcontextÚ topic_classesÚcolspecsÚ compact_pÚcompact_simpleZcompact_field_listZ in_docinfoÚ in_sidebarÚin_footnote_listrr r!r"Ú content_typer&r'r(r)Úin_document_titleÚ in_mailtoZauthor_in_authorsÚ math_header)r+r,r7Zlcoder)r+rrXÈs\       zHTMLTranslator.__init__cCs6d |j|j|j|j|j|j|j|j¡S)Nr>) rBrrrrrrrr)r+rrrÚastextszHTMLTranslator.astextcCst|ƒ}| |j¡S)z-Encode special characters in `text` & return.)r9r4Úspecial_characters)r+ÚtextrrrÚencode szHTMLTranslator.encodecCs | dd¡S)z*Try to hide a mailto: URL from harvesters.rQz%40)Úreplace)r+ÚurirrrÚ cloak_mailtoszHTMLTranslator.cloak_mailtocCs| dd¡}| dd¡}|S)z;Try to hide the link text of a email link from harversters.z@z@Ú.z.)ru)r+ÚaddrrrrÚ cloak_emails  zHTMLTranslator.cloak_emailz[ ]cCs<| | d|¡¡}|jr8|jjr8| dd¡}| dd¡}|S)z6Cleanse, HTML encode, and return attribute value text.ú z%40z%40rxz.)rtÚsubror7Úcloak_email_addressesru)r+rsÚ whitespaceÚencodedrrrÚattval s   zHTMLTranslator.attvalc Cs¦|jjr~y$tj|dd ¡}|jj |¡WnFtk rr}z(d|t|j ƒf}|j j   |¡d|Sd}~XYnX|j |S|jjr–t |jj|¡}|j| |¡S)z8Return code to reference or embed stylesheet file `path`zutf-8)Ú source_pathr@z!Cannot embed stylesheet '%s': %s.z <--- %s ---> N)r7Zembed_stylesheetr Z FileInputr:Úrecord_dependenciesÚaddÚIOErrorr Ústrerrorr,rZÚerrorÚembedded_stylesheetZstylesheet_pathr Ú relative_pathZ _destinationÚstylesheet_linkrt)r+rTÚcontentÚerrÚmsgrrrrR*s  zHTMLTranslator.stylesheet_callr?Fc Ks<| ¡}g}i}g}x$t| ¡ƒD]\} } | ||  ¡<q"Wg} g} x\| dg¡| dd¡ ¡D]<} |  d¡r‚|  | dd…¡q`|  ¡r`| | kr`|  | ¡q`W| r²| d||j <| rÄd  | ¡|d<d |ksÐt ‚|  | d g¡¡d |krþ|  |d ¡|d =|rr|d|d <x`|d d…D]P}|sPt |tjtjtjtjtjtjtjfƒr`| d |¡n |d |7}qWt| ¡ƒ}| ¡|g}x~|D]v\} } | dk s¨t ‚t | tƒræd d„| Dƒ}| d|  ¡| d  |¡¡f¡n | d|  ¡| t| ƒ¡f¡q’W|rd}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Úclassr>z language-é Nrr{ÚidÚidsrVzcSsg|] }t|ƒ‘qSr)r9)rSÚvrrrrUusz+HTMLTranslator.starttag..z%s="%s"z /z<%s%s>)reÚlistÚitemsÚgetÚpoprcÚ startswithr^ÚstripÚlang_attributerBÚAssertionErrorÚextendÚ isinstancerÚ bullet_listrÚdefinition_listÚenumerated_listÚ field_listÚ option_listÚtableÚsortr€r9)r+ÚnodeÚtagnameÚsuffixÚemptyÚ attributesÚprefixÚattsr‘ÚnameÚvaluerr ÚclsrÚattlistrHÚvaluesZinfixrrrÚstarttag=s^"         zHTMLTranslator.starttagcKs|j|||fddi|—ŽS)z1Construct and return an XML-compatible empty tag.r§T)r°)r+r¤r¥r¦r¨rrrÚemptytagszHTMLTranslator.emptytagrcCsBdd„|Dƒ}y ||}Wntk r.dSX|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Ú Invisible)rSÚnrrrrUŠsz5HTMLTranslator.set_class_on_child..Nr)Ú IndexErrorr^)r+r¤Úclass_ÚindexÚchildrenÚchildrrrÚset_class_on_child…s  z!HTMLTranslator.set_class_on_childcCs:| ¡}| |¡}|jr*|jjr*| |¡}|j |¡dS)N)rqrtror7r}rzrr^)r+r¤rsrrrrÚ visit_Text‘s   zHTMLTranslator.visit_TextcCsdS)Nr)r+r¤rrrÚ depart_Text˜szHTMLTranslator.depart_TextcCs|j | |dd¡¡dS)NZabbrr>)rr^r°)r+r¤rrrÚvisit_abbreviation›sz!HTMLTranslator.visit_abbreviationcCs|j d¡dS)Nz)rr^)r+r¤rrrÚdepart_abbreviationŸsz"HTMLTranslator.depart_abbreviationcCs|j | |dd¡¡dS)NZacronymr>)rr^r°)r+r¤rrrÚ visit_acronym¢szHTMLTranslator.visit_acronymcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_acronym¦szHTMLTranslator.depart_acronymcCs.|j|ddd|j |j|dddd¡dS)NÚaddressF)r#Úprer>)r¦ÚCLASS)Úvisit_docinfo_itemrr^r°)r+r¤rrrÚ visit_address©szHTMLTranslator.visit_addresscCs|j d¡| ¡dS)Nz )rr^Údepart_docinfo_item)r+r¤rrrÚdepart_address®s zHTMLTranslator.depart_addresscCs(|d dd¡|j | |d¡¡dS)NrrZ admonitionÚdiv)Úinsertrr^r°)r+r¤rrrÚvisit_admonition²szHTMLTranslator.visit_admonitionNcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_admonition¶sz HTMLTranslator.depart_admonition)u—r>)ú(ú))r>r>)ZdashZ parenthesesÚparensÚnonecCs<|j|jj\}}|j |¡|j |j|d|dd¡dS)NÚpÚ attribution)rÂ)Úattribution_formatsr7rÐrfr^rr°)r+r¤r©r¦rrrÚvisit_attribution¾s z HTMLTranslator.visit_attributioncCs|j |j ¡d¡dS)Nz

)rr^rfr–)r+r¤rrrÚdepart_attributionÄsz!HTMLTranslator.depart_attributioncCs*t|jtjƒs| |d¡|j d¡dS)NÚauthorz

)rœÚparentrÚauthorsrÃrr^)r+r¤rrrÚ visit_authorÇs zHTMLTranslator.visit_authorcCs4|j d¡t|jtjƒr(|j d¡n| ¡dS)Nz

r?)rr^rœrÕrrÖrÅ)r+r¤rrrÚ depart_authorÌs zHTMLTranslator.depart_authorcCs| |d¡dS)NrÖ)rÃ)r+r¤rrrÚ visit_authorsÓszHTMLTranslator.visit_authorscCs | ¡dS)N)rÅ)r+r¤rrrÚdepart_authorsÖszHTMLTranslator.depart_authorscCs|j | |d¡¡dS)NÚ blockquote)rr^r°)r+r¤rrrÚvisit_block_quoteÙsz HTMLTranslator.visit_block_quotecCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_block_quoteÜsz!HTMLTranslator.depart_block_quotecCs8t|jƒ}y| |¡Wntjk r.dSXdSdS)z7Check for a simple list that can be rendered compactly.FTN)ÚSimpleListCheckerr,ÚwalkrÚ NodeFound)r+r¤r-rrrÚcheck_simple_listßs  z HTMLTranslator.check_simple_listcCsvd|dkrdSd|dkr dSt|tjtjfƒr>|jjs>dSt|tjtjfƒr\|jjs\dS|j dgkrldS|  |¡S)NÚcompactrTr6FÚcontents) rœrr ržr7Zcompact_field_listsrŸrZ compact_listsrgrá)r+r¤rrrÚis_compactableðs   zHTMLTranslator.is_compactablecCs^i}|j}|j |j|jf¡d|_| |¡|_|jrB|sBd|d<|j |j|df|Ž¡dS)NÚsimplerŽÚul)rjrfr^rirärr°)r+r¤rªZold_compact_simplerrrÚvisit_bullet_lists  z HTMLTranslator.visit_bullet_listcCs"|j ¡\|_|_|j d¡dS)Nz )rfr–rjrirr^)r+r¤rrrÚdepart_bullet_listsz!HTMLTranslator.depart_bullet_listcCs|j |j|dddd¡dS)NrÏr>Úcaption)rÂ)rr^r°)r+r¤rrrÚ visit_captionszHTMLTranslator.visit_captioncCs|j d¡dS)Nz

)rr^)r+r¤rrrÚdepart_captionszHTMLTranslator.depart_captioncCs|js|j d¡d|_dS)Nz
T)rlrr^)r+r¤rrrÚvisit_citations zHTMLTranslator.visit_citationcCs8|j d¡t|jdddtjƒs4|j d¡d|_dS)Nz FT)ÚdescendÚsiblingsz
)rr^rœÚ next_noderZcitationrl)r+r¤rrrÚdepart_citation$s   zHTMLTranslator.depart_citationc CsVd}d|kr||d7}nd|kr6||jj|d7}|j |j|ddd|d¡dS)Nú#ÚrefidÚrefnameÚaú[zcitation-reference)rÂÚhref)r,Znameidsrr^r°)r+r¤rörrrÚvisit_citation_reference+s z'HTMLTranslator.visit_citation_referencecCs|j d¡dS)Nz])rr^)r+r¤rrrÚdepart_citation_reference6sz(HTMLTranslator.depart_citation_referencecCs|j |j|dddd¡dS)NÚspanr>Ú classifier)rÂ)rr^r°)r+r¤rrrÚvisit_classifier=szHTMLTranslator.visit_classifiercCs|j d¡dS)Nz)rr^)r+r¤rrrÚdepart_classifier@sz HTMLTranslator.depart_classifiercCs&|j |¡|jj |j d¡¡dS)NÚstub)rhr^rÕÚstubsr¨r•)r+r¤rrrÚ visit_colspecCs zHTMLTranslator.visit_colspeccCsÆt|jdddtjƒrdSd|jjdksFd|jjkrJd|jjdkrJdStdd„|jDƒƒ}|j   |  |d ¡¡xB|jD]8}t |d d |d ƒ}|j   |j |d d|d¡qzW|j   d¡dS)NFT)rírîzcolwidths-autorzcolwidths-givencss|]}|dVqdS)ÚcolwidthNr)rSr¤rrrú Qsz0HTMLTranslator.depart_colspec..ÚcolgrouprgY@gà?Úcolz width: %i%%)Ústylez )rœrïrZcolspecrÕr7Ú table_styleÚsumrhrr^r°r`r±)r+r¤Z total_widthrrrrÚdepart_colspecHs  zHTMLTranslator.depart_colspecz-(?=-)cCs$|j d|d| ¡ƒ¡tj‚dS)z%Escape double-dashes in comment text.z z- N)rr^rqrÚSkipNode)r+r¤r|rrrÚ visit_commentYszHTMLTranslator.visit_commentcCsp|j |j|ddd¡t|ƒdkrl|dd d¡|dd d ¡x"|dd…D]}|d d ¡qVWdS) NrÇÚcompound)rÂrVrrzcompound-firstéÿÿÿÿz compound-lastzcompound-middle)rr^r°Úlen)r+r¤r¸rrrÚvisit_compound`s  zHTMLTranslator.visit_compoundcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_compoundhszHTMLTranslator.depart_compoundcCs|j |j|ddd¡dS)NrÇzdocutils container)rÂ)rr^r°)r+r¤rrrÚvisit_containerkszHTMLTranslator.visit_containercCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_containernszHTMLTranslator.depart_containercCs|j|ddddS)NÚcontactF)r#)rÃ)r+r¤rrrÚ visit_contactqszHTMLTranslator.visit_contactcCs | ¡dS)N)rÅ)r+r¤rrrÚdepart_contacttszHTMLTranslator.depart_contactcCs| |d¡dS)NÚ copyright)rÃ)r+r¤rrrÚvisit_copyrightwszHTMLTranslator.visit_copyrightcCs | ¡dS)N)rÅ)r+r¤rrrÚdepart_copyrightzszHTMLTranslator.depart_copyrightcCs| |d¡dS)NÚdate)rÃ)r+r¤rrrÚ visit_date}szHTMLTranslator.visit_datecCs | ¡dS)N)rÅ)r+r¤rrrÚ depart_date€szHTMLTranslator.depart_datecCsdS)Nr)r+r¤rrrÚvisit_decorationƒszHTMLTranslator.visit_decorationcCsdS)Nr)r+r¤rrrÚdepart_decoration†sz HTMLTranslator.depart_decorationcCs&|j d¡|j | |dd¡¡dS)Nz Úddr>)rr^r°)r+r¤rrrÚvisit_definition‰s zHTMLTranslator.visit_definitioncCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_definitionsz HTMLTranslator.depart_definitioncCs8| dg¡}| |¡r | d¡|j | |d¡¡dS)NrråÚdl)Ú setdefaulträr^rr°)r+r¤rrrrÚvisit_definition_lists   z$HTMLTranslator.visit_definition_listcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_definition_list–sz%HTMLTranslator.depart_definition_listcCs|| dg¡|jd dg¡|jdd<| dg¡|jd dg¡|jdd<| dg¡|jd dg¡|jdd<dS)Nrrr‘Únames)r•r·)r+r¤rrrÚvisit_definition_list_item™s((z)HTMLTranslator.visit_definition_list_itemcCsdS)Nr)r+r¤rrrÚdepart_definition_list_item¢sz*HTMLTranslator.depart_definition_list_itemcCs|j | |dd¡¡dS)Nrr>)rr^r°)r+r¤rrrÚvisit_description¥sz HTMLTranslator.visit_descriptioncCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_description¨sz!HTMLTranslator.depart_descriptioncCsD|j t|jƒ¡d}| |¡r(|d7}|j |j|d|d¡dS)Nrz simpler)rÂ)rfr^r rrär°)r+r¤rrrrÚ visit_docinfo«s  zHTMLTranslator.visit_docinfocCs0|j d¡|j ¡}|j|d…|_g|_dS)Nz )rr^rfr–r)r+r¤ÚstartrrrÚdepart_docinfo²s  zHTMLTranslator.depart_docinfoTcCs^|r$d|| | ¡¡f}| |¡|j d||jj|f¡|j |j|dd|d¡dS)Nz z
%s
rr>)rÂ)r€rqÚadd_metarr^r[Úlabelsr°)r+r¤r«r#Zmeta_tagrrrrøs z!HTMLTranslator.visit_docinfo_itemcCs|j d¡dS)Nz )rr^)r+rrrrÅÁsz"HTMLTranslator.depart_docinfo_itemcCs|j |j|dddd¡dS)NrÁr>zcode python doctest)r¦rÂ)rr^r°)r+r¤rrrÚvisit_doctest_blockÄsz"HTMLTranslator.visit_doctest_blockcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_doctest_blockÈsz#HTMLTranslator.depart_doctest_blockcCs:| dd¡ptj |d¡pd}|j d| |¡¡dS)Nrr>Úsourcezdocutils document without titlez%s )r•ÚosrTÚbasenamerr^rt)r+r¤rrrrÚvisit_documentËszHTMLTranslator.visit_documentcCsF|j |j|jd|jjig¡|j |j¡|j  d|j |jj ¡|j   d|j |jj ¡dd  |j¡krz|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 …¡|jrBtd t|jƒƒ‚dS)NrLrzname="dcterms.r>z<ÚmathjaxrVrÇr,)rÂz r zlen(context) = %s)rr›ÚdoctypeÚhead_prefix_templater7rYr%r^r#rÈrmrDrrBrprbrr&rr°rr$rr)rrrfršr )r+r¤rrrÚdepart_documentÐs(  0zHTMLTranslator.depart_documentcCs|j | |dd¡¡dS)NÚemr>)rr^r°)r+r¤rrrÚvisit_emphasisészHTMLTranslator.visit_emphasiscCs|j d¡dS)Nz)rr^)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|krš|dd|d <d |krÆ|d d|d <|jj|d 7_|j |j ||d f|Ž¡|j  d |  ¡¡dS)NrŽrrýÚthr{ÚtdrVZmorerowsZrowspanZmorecolsZcolspanr>z ) rœrÕrÚtheadr^rþÚcolumnrBrr°rfre)r+r¤rªr¥rrrÚ visit_entryïs$zHTMLTranslator.visit_entrycCs|j |j ¡¡dS)N)rr^rfr–)r+r¤rrrÚ depart_entryszHTMLTranslator.depart_entrycCsji}d|kr|d|d<d|kr,|d|d<| |¡rN| dd¡d ¡|d<|j |j|df|Ž¡dS)Nr)ZenumtyperŽr>z simpleÚol)rär•r˜rr^r°)r+r¤rªrrrÚvisit_enumerated_list s   z$HTMLTranslator.visit_enumerated_listcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_enumerated_listsz%HTMLTranslator.depart_enumerated_listcCs2d}| |¡r|d7}|j |j|d|d¡dS)Nz field-listz simpler)rÂ)rärr^r°)r+r¤rrrrÚvisit_field_lists zHTMLTranslator.visit_field_listcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_field_list sz HTMLTranslator.depart_field_listcCsdS)Nr)r+r¤rrrÚ visit_field#szHTMLTranslator.visit_fieldcCsdS)Nr)r+r¤rrrÚ depart_field&szHTMLTranslator.depart_fieldc Cs*|j |j|ddd |jd¡d¡dS)NÚdtr>r)rÂ)rr^r°rBrÕ)r+r¤rrrÚvisit_field_name+szHTMLTranslator.visit_field_namecCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_field_name/sz HTMLTranslator.depart_field_namec Cs<|j |j|ddd |jd¡d¡|js8|j d¡dS)Nrr>r)rÂz

)rr^r°rBrÕr·)r+r¤rrrÚvisit_field_body2szHTMLTranslator.visit_field_bodycCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_field_body9sz HTMLTranslator.depart_field_bodycCs`ddi}| d¡r"d|d|d<| d¡rD|dd|d7<|j |j|df|Ž¡dS) NrŽÚfigureÚwidthz width: %srÚalignz align-rÇ)r•rr^r°)r+r¤rªrrrÚ visit_figure<s   zHTMLTranslator.visit_figurecCs|j d¡dS)Nz )rr^)r+r¤rrrÚ depart_figureDszHTMLTranslator.depart_figurecCs|j t|jƒ¡dS)N)rfr^r r)r+r¤rrrÚ visit_footerHszHTMLTranslator.visit_footercCsf|j ¡}|j|ddddg}| |j|d…¡| d¡|j |¡||jdd…<|j|d…=dS)NrÇr")rÂz z r)rfr–r°r›rr^r"r)r+r¤r)r"rrrÚ depart_footerKs   zHTMLTranslator.depart_footercCs,|js(d|jj}|j d|¡d|_dS)Nz footnote z
T)rlr7Úfootnote_referencesrr^)r+r¤rrrrÚvisit_footnoteZs zHTMLTranslator.visit_footnotecCs8|j d¡t|jdddtjƒs4|j d¡d|_dS)Nz FT)rírîz
)rr^rœrïrÚfootnoterl)r+r¤rrrÚdepart_footnote`s   zHTMLTranslator.depart_footnotec Cs8d|d}d|jj}|j |j|dd||d¡dS)Nrñròzfootnote-reference rôr>)rÂrö)r7rSrr^r°)r+r¤rörrrrÚvisit_footnote_referencegs  z'HTMLTranslator.visit_footnote_referencecCs|j d¡dS)Nz)rr^)r+r¤rrrÚdepart_footnote_referencemsz(HTMLTranslator.depart_footnote_referencecCs:d|dkr6| ¡ d¡}|j d| |¡¡tj‚dS)NÚsectnumrõ z %s )rqrCrr^rtrr)r+r¤rYrrrÚvisit_generatedqs  zHTMLTranslator.visit_generatedcCsdS)Nr)r+r¤rrrÚdepart_generated{szHTMLTranslator.depart_generatedcCs|j t|jƒ¡dS)N)rfr^r r)r+r¤rrrÚ visit_header~szHTMLTranslator.visit_headercCsb|j ¡}|j|dddg}| |j|d…¡| d¡|j |¡|j |¡|j|d…=dS)NrÇr!)rÂz
)rfr–r°r›rr^rr!)r+r¤r)r!rrrÚ depart_headers    zHTMLTranslator.depart_headerz.swfzapplication/x-shockwave-flashc CsÂi}|d}tj |¡d ¡}||jkrB||d<|j||d<n||d<| d|¡|d<d|krn|d|d<d|kr‚|d|d<d |kr¢tr>d|kr¤d|ks>|jjr>t j   |¡}ytj   | t ¡¡¡}Wnttfk rìYnRX|jj | d d ¡¡d|kr d |jd |d<d|krr?rNzalign-%srŽÚobjectz Úimg)&r0rTÚsplitextreÚobject_image_typesr•rr7Zfile_insertion_enabledÚurllibÚrequestÚ url2pathnameÚImager6rtÚsysÚgetfilesystemencodingr„ÚUnicodeEncodeErrorr‚rƒruÚsizeÚreÚmatchršÚfloatÚgroupr^rBrœrÕrÚ TextElementÚ referencerr°r±) r+r¤rªrvÚextZ imagepathrhZatt_namertrr¦rrrÚ visit_imagesn                *zHTMLTranslator.visit_imagecCsdS)Nr)r+r¤rrrÚ depart_imageÎszHTMLTranslator.depart_imagecCs|j | |dd¡¡dS)Nrùr>)rr^r°)r+r¤rrrÚ visit_inlineÒszHTMLTranslator.visit_inlinecCs|j d¡dS)Nz)rr^)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) NZbracketsrGr>Úlabel)rÂrùÚbackrefsrVz!r) rœrÕrrUr7rSrr^r°Úfootnote_backlinksr )r+r¤rrrrrÚ visit_labelÙs   zHTMLTranslator.visit_labelcCs„|jjr*|jd}t|ƒdkr*|j d¡|j d¡|jjrtt|ƒdkrtdd„t|dƒDƒ}|j dd |¡¡|j d ¡dS) NrrVzzcSsg|]\}}d||f‘qS)z%sr)rSÚiÚrefrrrrUïsz/HTMLTranslator.depart_label..z$(%s)ú,z
)r7r€rÕr rr^Ú enumeraterB)r+r¤rÚ backlinksrrrÚ depart_labelès    zHTMLTranslator.depart_labelcCs|j |j|ddd¡dS)NrÇZlegend)rÂ)rr^r°)r+r¤rrrÚ visit_legendõszHTMLTranslator.visit_legendcCs|j d¡dS)Nz )rr^)r+r¤rrrÚ depart_legendøszHTMLTranslator.depart_legendcCs2|j |j|dddd¡t|ƒs.|j d¡dS)NrÇr>Úline)r¦rÂz
)rr^r°r )r+r¤rrrÚ visit_lineûszHTMLTranslator.visit_linecCs|j d¡dS)Nz )rr^)r+r¤rrrÚ depart_lineszHTMLTranslator.depart_linecCs|j |j|ddd¡dS)NrÇz line-block)rÂ)rr^r°)r+r¤rrrÚvisit_line_blockszHTMLTranslator.visit_line_blockcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_line_blocksz HTMLTranslator.depart_line_blockcCs|j | |dd¡¡dS)NÚlir>)rr^r°)r+r¤rrrÚvisit_list_item szHTMLTranslator.visit_list_itemcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_list_item szHTMLTranslator.depart_list_itemcCsæ| dg¡}d|kr@dd„|Dƒ|d<|j | |dd¡¡dS|j |j|dddd¡| ¡}t|jtjƒs||  d d ¡}xR|j   |¡D]B}|  ¡rº|j  |¡rº|j d | |¡¡qŠ|j | |¡¡qŠW|j d ¡tj‚dS) NrÚcodecSsg|]}|dkr|‘qS)r’r)rSr­rrrrUsz0HTMLTranslator.visit_literal..r>rùzdocutils literal)rÂr?r{z%sz)r•rr^r°rqrœrÕrZ literal_blockruÚwords_and_spacesÚfindallr˜Úin_word_wrap_pointÚsearchrtr)r+r¤rrsÚtokenrrrÚ visit_literals"   zHTMLTranslator.visit_literalcCs|j d¡dS)Nz)rr^)r+r¤rrrÚdepart_literal*szHTMLTranslator.depart_literalcCs:|j |j|dddd¡d| dg¡kr6|j d¡dS)NrÁr>z literal-block)rÂr’rz)rr^r°r•)r+r¤rrrÚvisit_literal_block.sz"HTMLTranslator.visit_literal_blockcCs,d| dg¡kr|j d¡|j d¡dS)Nr’rzz )r•rr^)r+r¤rrrÚdepart_literal_block3s z#HTMLTranslator.depart_literal_block)rÇr>r>)rÇrùZformula)rÇrùÚmath)rÁÚttrœ)Úmathmlrr3Úlatexr>c s¾ˆjˆjkr&ˆjj dˆj¡dˆ_ˆjˆj|dk}ˆjˆjd}dddddœ}|ˆj|dk}ˆjd krŒˆjrˆˆjd d krŒd}| ¡ tj ¡}|rÐy||||f}Wnt k rÎ||}YnXˆjd kr䈠 |¡}ˆjd kr\ˆj s\yˆjd ˆ_ Wn$tk r,ˆjj d¡YnXdˆj krHˆj d7_ ˆjˆj gˆ_ nêˆjdkr²ˆjr˜ˆj s˜‡fdd„ˆjd  d¡Dƒˆ_ |dktj_t |¡}n”ˆjd krFdˆjkrÚˆjˆ_ˆjˆ_d ˆj¡ ¡}y„|dkrt |ˆjj¡}nd|dkr$t |ˆjj¡}nH|d krFtj|| ˆjjd}n&|s^tj || d}nˆjj d¡WnÖt!k rŒt!dƒ‚Ynºt"k rD} zšˆjjj| |d} ˆ #| ¡ˆj$ %ˆ &|d¡¡ˆj$ %d | j'¡¡ˆj$ %d¡ˆj$ %ˆj&|d d!d"¡ˆj$ %ˆ  |¡¡ˆj$ %d#¡ˆ (| ¡t)j*‚Wdd} ~ XYnX|rnˆ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Ÿr>rf)z$%s$z\begin{%s} %s \end{%s})z\(%s\)z\begin{%s} %s \end{%s})NN)ržrr3rŸržrÚ blahtexml)rŸr3r3z@No MathJax URL specified, using local fallback (see config.html)ú?z?config=TeX-AMS_CHTMLrcs"g|]}ˆ t |ˆjj¡¡‘qSr)rRr Zfind_file_in_dirsr7Zstylesheet_dirs)rSÚs)r+rrrUpsz-HTMLTranslator.visit_math..r„zXHTML 1r{ÚlatexmlÚttm)ÚinlinerZ)r¥z3option "%s" not supported with math-output "MathML"zis "latexmlmath" in your PATH?)Z base_noderÏz

rÁz literal-block)rÂz r?)r¦rÂz),rbÚ math_tagsr,rZr†rdrqr4rZ uni2tex_tableÚ TypeErrorrtrpÚ mathjax_urlr´ÚwarningÚmathjax_scriptrcrZDocumentParametersZ displaymoder4Údoctype_mathmlZcontent_type_mathmlrmrBrerr£r¤r rZ tex2mathmlÚOSErrorÚ SyntaxErrorÚvisit_system_messagerr^r°ÚargsÚdepart_system_messagerrÚbool) r+r¤Úmath_envÚtagZclsargÚwrappersÚwrapperZ math_codeÚ converterr‹Zerr_noder)r+rÚ visit_mathDs¦                           zHTMLTranslator.visit_mathcCsdS)Nr)r+r¤rrrÚ depart_math©szHTMLTranslator.depart_mathcCst| ¡ƒ}|j||ddS)N)r²)rrqr·)r+r¤r²rrrÚvisit_math_block¬s zHTMLTranslator.visit_math_blockcCsdS)Nr)r+r¤rrrÚdepart_math_block±sz HTMLTranslator.depart_math_blockcCs"|j|df| ¡Ž}| |¡dS)Nr#)r±Znon_default_attributesr+)r+r¤r#rrrÚ visit_meta¶szHTMLTranslator.visit_metacCsdS)Nr)r+r¤rrrÚ depart_metaºszHTMLTranslator.depart_metacCs|j |¡|j |¡dS)N)r#r^r)r+r³rrrr+½s zHTMLTranslator.add_metacCs|j |j|dddd¡dS)Nrùr>Úoption)rÂ)rr^r°)r+r¤rrrÚ visit_optionÁszHTMLTranslator.visit_optioncCs2|j d¡t|jdddtjƒr.|j d¡dS)NzFT)rírîz, )rr^rœrïrr½)r+r¤rrrÚ depart_optionÄs zHTMLTranslator.depart_optioncCs.|j | dd¡¡|j | |dd¡¡dS)NÚ delimiterr{Úvarr>)rr^r•r°)r+r¤rrrÚvisit_option_argumentÊsz$HTMLTranslator.visit_option_argumentcCs|j d¡dS)Nz)rr^)r+r¤rrrÚdepart_option_argumentÎsz%HTMLTranslator.depart_option_argumentcCs&|j | |dd¡¡|j d¡dS)NrGr>z)rr^r°)r+r¤rrrÚvisit_option_groupÑsz!HTMLTranslator.visit_option_groupcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_option_groupÕsz"HTMLTranslator.depart_option_groupcCs|j |j|ddd¡dS)Nrz option-list)rÂ)rr^r°)r+r¤rrrÚvisit_option_listØsz HTMLTranslator.visit_option_listcCs|j d¡dS)Nz )rr^)r+r¤rrrÚdepart_option_listÜsz!HTMLTranslator.depart_option_listcCsdS)Nr)r+r¤rrrÚvisit_option_list_itemßsz%HTMLTranslator.visit_option_list_itemcCsdS)Nr)r+r¤rrrÚdepart_option_list_itemâsz&HTMLTranslator.depart_option_list_itemcCsdS)Nr)r+r¤rrrÚvisit_option_stringåsz"HTMLTranslator.visit_option_stringcCsdS)Nr)r+r¤rrrÚdepart_option_stringèsz#HTMLTranslator.depart_option_stringcCs| |d¡dS)NZ organization)rÃ)r+r¤rrrÚvisit_organizationësz!HTMLTranslator.visit_organizationcCs | ¡dS)N)rÅ)r+r¤rrrÚdepart_organizationîsz"HTMLTranslator.depart_organizationcCs|j | |dd¡¡dS)NrÏr>)rr^r°)r+r¤rrrÚvisit_paragraphszHTMLTranslator.visit_paragraphcCs>|j d¡t|jtjtjfƒr.t|jƒdks:|j d¡dS)Nz

rVr?)rr^rœrÕrZ list_itemÚentryr )r+r¤rrrÚdepart_paragraphs zHTMLTranslator.depart_paragraphcCsV| d¡r,|j d|d¡|j d¡n |j d¡|j |j|dddd¡dS)Nròzzr>rùZ problematic)rÂ)Úhasattrrr^rfr°)r+r¤rrrÚvisit_problematic s   z HTMLTranslator.visit_problematiccCs"|j d¡|j |j ¡¡dS)Nz)rr^rfr–)r+r¤rrrÚdepart_problematics z!HTMLTranslator.depart_problematiccCs|d| dd¡ ¡krrt|jtjƒr&dp(d}|drJ|j |j||dd¡|j |  ¡¡|drr|j d|¡tj ‚dS) NrÚformatr>rùrÇr)r¦z) r•rcrœrÕrrwrr^r°rqr)r+r¤ÚtrrrÚ visit_rawszHTMLTranslator.visit_rawcCsèddi}d|kr\|d|d<|jjrJ|d d¡rJ| |d¡|d<d|_|dd7<n0d|ksltd ƒ‚d |d|d<|dd 7<t|jtj ƒsÊt |ƒd kr¶t|d tj ƒsºt‚|dd7<|j   |j|ddf|Ž¡dS)NrŽrxÚrefurirözmailto:Tz externalròz3References must have "refuri" or "refid" attribute.rñz internalrVrz image-referencerôr>)r7r}r—rwroršrœrÕrrwr Úimagerr^r°)r+r¤rªrrrÚvisit_reference s    zHTMLTranslator.visit_referencecCs0|j d¡t|jtjƒs&|j d¡d|_dS)Nzr?F)rr^rœrÕrrwro)r+r¤rrrÚdepart_reference3s  zHTMLTranslator.depart_referencecCs|j|ddddS)NÚrevisionF)r#)rÃ)r+r¤rrrÚvisit_revision9szHTMLTranslator.visit_revisioncCs | ¡dS)N)rÅ)r+r¤rrrÚdepart_revision<szHTMLTranslator.depart_revisioncCs |j | |dd¡¡d|_dS)NÚtrr>r)rr^r°r=)r+r¤rrrÚ visit_row?szHTMLTranslator.visit_rowcCs|j d¡dS)Nz )rr^)r+r¤rrrÚ depart_rowCszHTMLTranslator.depart_rowcCs|j |j|dddd¡dS)NrÏr>Zrubric)rÂ)rr^r°)r+r¤rrrÚ visit_rubricFszHTMLTranslator.visit_rubriccCs|j d¡dS)Nz

)rr^)r+r¤rrrÚ depart_rubricIszHTMLTranslator.depart_rubriccCs*|jd7_|j |j|ddd¡dS)NrVrÇÚsection)rÂ)r_rr^r°)r+r¤rrrÚ visit_sectionMszHTMLTranslator.visit_sectioncCs|jd8_|j d¡dS)NrVz )r_rr^)r+r¤rrrÚdepart_sectionRszHTMLTranslator.depart_sectioncCs"|j |j|ddd¡d|_dS)NrÇÚsidebar)rÂT)rr^r°rk)r+r¤rrrÚ visit_sidebarWszHTMLTranslator.visit_sidebarcCs|j d¡d|_dS)Nz F)rr^rk)r+r¤rrrÚdepart_sidebar\s zHTMLTranslator.depart_sidebarcCs|j|ddddS)NÚstatusF)r#)rÃ)r+r¤rrrÚ visit_status`szHTMLTranslator.visit_statuscCs | ¡dS)N)rÅ)r+r¤rrrÚ depart_statuscszHTMLTranslator.depart_statuscCs|j | |dd¡¡dS)NÚstrongr>)rr^r°)r+r¤rrrÚ visit_strongfszHTMLTranslator.visit_strongcCs|j d¡dS)Nz )rr^)r+r¤rrrÚ depart_strongiszHTMLTranslator.depart_strongcCs|j | |dd¡¡dS)Nr|r>)rr^r°)r+r¤rrrÚvisit_subscriptlszHTMLTranslator.visit_subscriptcCs|j d¡dS)Nz)rr^)r+r¤rrrÚdepart_subscriptoszHTMLTranslator.depart_subscriptcCs tj‚dS)zInternal only.N)rr)r+r¤rrrÚvisit_substitution_definitionrsz,HTMLTranslator.visit_substitution_definitioncCs| |¡dS)N)Úunimplemented_visit)r+r¤rrrÚvisit_substitution_referencevsz+HTMLTranslator.visit_substitution_referencecCsht|jtjƒrd}n6t|jtjƒr8d}t|jƒd|_nt|jtjƒrJd}|j  |j |dd|d¡dS)Nzsidebar-subtitler rVzsection-subtitlerÏr>)rÂ) rœrÕrrær,r rrnrãr^r°)r+r¤rrrrÚvisit_subtitle}szHTMLTranslator.visit_subtitlecCs^|j d¡t|jtjƒrZ|j|jd…|_d|_|j  |j¡|j   |j¡|jdd…=dS)Nz

r r) rr^rœrÕrr,rnr rr›r()r+r¤rrrÚdepart_subtitle‡s zHTMLTranslator.depart_subtitlecCs|j | |dd¡¡dS)NÚsupr>)rr^r°)r+r¤rrrÚvisit_superscriptsz HTMLTranslator.visit_superscriptcCs|j d¡dS)Nz)rr^)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}x&|D]}| d ||f¡|d7}qdWd d  |¡}| d ¡r¬d|d }nd}|j d|d|d| |d¡||f¡dS)NrÇzsystem-message)rÂz

r>rrVz%; backlinkrz%sz; backlinks: %sz, rŠz , line %szISystem Message: %s/%s (%s%s)%s

r`Úlevelr/)rr^r°r rBrÑrt)r+r¤Z backref_textrr‚r†ZbackrefrŠrrrr®–s*         z#HTMLTranslator.visit_system_messagecCs|j d¡dS)Nz )rr^)r+r¤rrrr°°sz$HTMLTranslator.depart_system_messagecCs|i}dd„|jj d¡Dƒ}d|kr6| d|d¡d|krNd|d|d<|j|d fd d  |¡i|—Ž}|j |¡dS) NcSsg|]}| d¡‘qS)z )r˜)rSr­rrrrUµsz.HTMLTranslator.visit_table..r„rNzalign-%srMz width: %srr¢rÂr{)r7rrcr^r°rBr)r+r¤rªrr³rrrÚ visit_table³szHTMLTranslator.visit_tablecCs|j d¡dS)Nz )rr^)r+r¤rrrÚ depart_table¾szHTMLTranslator.depart_tablecCsPd|ks@d|ks@d|ks@|j |j|dddd¡|j d¡n |j d¡dS) Nr×ròrórùr>Útarget)rÂz)rr^r°rf)r+r¤rrrÚ visit_targetÁs zHTMLTranslator.visit_targetcCs|j |j ¡¡dS)N)rr^rfr–)r+r¤rrrÚ depart_targetÉszHTMLTranslator.depart_targetcCs|j | |d¡¡dS)NÚtbody)rr^r°)r+r¤rrrÚ visit_tbodyÍszHTMLTranslator.visit_tbodycCs|j d¡dS)Nz )rr^)r+r¤rrrÚ depart_tbodyÐszHTMLTranslator.depart_tbodycCs|j | |dd¡¡dS)NrGr>)rr^r°)r+r¤rrrÚ visit_termÓszHTMLTranslator.visit_termcCsdS)zg Leave the end tag to `self.visit_definition()`, in case there's a classifier. Nr)r+r¤rrrÚ depart_termÖszHTMLTranslator.depart_termcCsg|_g|_dS)N)rhrþ)r+r¤rrrÚ visit_tgroupÝszHTMLTranslator.visit_tgroupcCsdS)Nr)r+r¤rrrÚ depart_tgroupászHTMLTranslator.depart_tgroupcCs|j | |d¡¡dS)Nr<)rr^r°)r+r¤rrrÚ visit_theadäszHTMLTranslator.visit_theadcCs|j d¡dS)Nz )rr^)r+r¤rrrÚ depart_theadçszHTMLTranslator.depart_theadcCsÎd}d}t|jtjƒr4|j |j|dddd¡nŠt|jtjƒr`|j |j|dddd¡n^t|jtjƒrŒ|j |j|dddd¡n2t|jtj ƒr¸|j | |d d¡¡d }nt|jtj ƒrò|j |j|d dd d¡d }t |jƒ|_ nÌt|jtj ƒst‚|j|jd}i}t |jƒdkrFt|jdtjƒrFd|d<|j |j|d|df|Ž¡i}| d¡rŒd|d<d|d|d<|r¶|j |jiddf|Ž¡d|}nd|}|j |¡dS)z,Only 6 section levels are supported by HTML.rz

rÏr>ztopic-title first)rÂz sidebar-titlezadmonition-titleréz Úh1rz rVrfz with-subtitlerÂzh%sròz toc-backrefrŽrñrörôz z N)rœrÕrÚtopicrr^r°ræZ Admonitionr¢r,r rnrãršr_rar rÑrf)r+r¤Zcheck_idZ close_tagZh_levelrªrrrÚ visit_titleêsH  zHTMLTranslator.visit_titlecCs\|j |j ¡¡|jrX|j|jd…|_d|_|j |j¡|j |j¡|jdd…=dS)Nr r) rr^rfr–rnrrr›r')r+r¤rrrÚ depart_titleszHTMLTranslator.depart_titlecCs|j | |dd¡¡dS)NZciter>)rr^r°)r+r¤rrrÚvisit_title_referencesz$HTMLTranslator.visit_title_referencecCs|j d¡dS)Nz)rr^)r+r¤rrrÚdepart_title_referencesz%HTMLTranslator.depart_title_referencecCs&|j |j|ddd¡|d|_dS)NrÇr )rÂr)rr^r°rg)r+r¤rrrÚ visit_topic#szHTMLTranslator.visit_topiccCs|j d¡g|_dS)Nz )rr^rg)r+r¤rrrÚ depart_topic)s zHTMLTranslator.depart_topiccCs|j |j|ddd¡dS)NÚhrrE)rÂ)rr^r±)r+r¤rrrÚvisit_transition.szHTMLTranslator.visit_transitioncCsdS)Nr)r+r¤rrrÚdepart_transition1sz HTMLTranslator.depart_transitioncCs|j|ddddS)NrAF)r#)rÃ)r+r¤rrrÚ visit_version4szHTMLTranslator.visit_versioncCs | ¡dS)N)rÅ)r+r¤rrrÚdepart_version7szHTMLTranslator.depart_versioncCstd|jjƒ‚dS)Nz$visiting unimplemented node type: %s)ÚNotImplementedErrorÚ __class__r)r+r¤rrrrò:sz"HTMLTranslator.unimplemented_visit)r?F)r?)r)N)T)r>)ØrrrÚ__doc__r]r4r«r5rmr\rªr¨r‰r‡rsÚcompiler“ÚUr•r™ÚordrrrXrqrtrwrzr€rRr°r±r¹rºr»r¼r½r¾r¿rÄrÆrÉrÊrÑrÒrÓr×rØrÙrÚrÜrÝrárärçrèrêrërìrðr÷rørûrürÿrr|r r rrrrrrrrrrrrrr!r"r$r%r&r'r(r*rÃrÅr-r.r2r6r8r9r>r?rArBrCrDrErFrHrIrJrKrOrPrQrRrTrVrWrXr[r\r]r^rjrzr{r|r}rr‡rˆr‰r‹rŒrrŽrr‘r˜r™ršr›r¦r·r¸r¹rºr»r¼r+r¾r¿rÂrÃrÄrÅrÆrÇrÈrÉrÊrËrÌrÍrÎrÐrÒrÓrÖrÙrÚrÜrÝrßràrárârärårçrèrêrërírîrïrðrñrórôrõr÷rør®r°rúrûrýrþrrrrrrrrr r r r rrrrrrròrrrrrKbs´8  ;   D          A        e                                                            )        rKc@sœeZdZdZdd„Zdd„Zdd„Zdd „ZeZeZ eZ eZ eZ eZ eZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZ eZ!eZ"d S) rÞa Raise `nodes.NodeFound` if non-simple list item is encountered. Here "simple" means a list item containing nothing other than a single paragraph, a simple list, or a paragraph followed by a simple list. This version also checks for simple field lists and docinfo. cCs tj‚dS)N)rrà)r+r¤rrrÚ default_visitJszSimpleListChecker.default_visitcCsvdd„|jDƒ}|r\t|dtjƒr\t|dtjƒsTt|dtjƒsTt|dtjƒr\| ¡t|ƒdkrldStj ‚dS)NcSsg|]}t|tjƒs|‘qSr)rœrr²)rSr¸rrrrUOsz5SimpleListChecker.visit_list_item..rr rV) r·rœrZ paragraphrrŸr r–r rà)r+r¤r·rrrrMs z!SimpleListChecker.visit_list_itemcCsdS)Nr)r+r¤rrrÚ pass_node^szSimpleListChecker.pass_nodecCs tj‚dS)N)rr)r+r¤rrrÚ ignore_nodeaszSimpleListChecker.ignore_nodeN)#rrrrrrrrrºrÎrçrAr(r×rÙrÄrrrrÌrêrr!r$rrûrrCrErJrHr rñrýZ visit_pendingrrrrrÞ?s@ rÞ)#rroÚos.pathr0rsÚurllib.requestrkÚ urllib.parseÚ urllib.errorZ PIL.ImagerÚ ImportErrorrnrgrErr r r r Zdocutils.utils.error_reportingr Zdocutils.transformsrZdocutils.utils.mathrrrrrrrWrKZGenericNodeVisitorrÞrrrrÚs@    7h