B “äî\þøã @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ú?/tmp/pip-build-uw_ogi45/docutils/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 \S+| +|\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 Z 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ÚvaluerŒr Ú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)NrŒrZ 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ÚcompactrŒTr6FÚcontents) r›rrŸrr7Zcompact_field_listsržrœZ 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-autorŒzcolwidths-givencss|]}|dVqdS)ÚcolwidthNr)rSr£rrrú Qsz0HTMLTranslator.depart_colspec..ÚcolgrouprÿgY@gà?Úcolz width: %i%%)Ústylez )r›rîrZcolspecrÔr7Ú table_styleÚsumrhrr^r¯r`r°)r+r£Z total_widthrÿrrrÚ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ÆZcompound)rÁrVrrŒzcompound-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)NrŒräÚdl)Ú setdefaultrãr^rr¯)r+r£rŒrrrÚ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)NrŒrrÚ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_descriptioncCs2d}| |¡r|d7}|j |j|d|d¡dS)Nrz simpler)rÁ)rãrr^r¯)r+r£rŒrrrÚ visit_docinfo«s zHTMLTranslator.visit_docinfocCs|j d¡dS)Nz )rr^)r+r£rrrÚdepart_docinfo±szHTMLTranslator.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_documentcCs*|j |j|jd|jjig¡|j |j¡|j  d|j |jj ¡|j   d|j |jj ¡|j rŒ|jdkr~|j  |j ¡n|j |j ¡|j |j dd…¡|j |j|ddd¡|j  dd¡|j |j¡|j |jdd…|j|j|j|jdd …¡|jr&td t|jƒƒ‚dS) NrLrÚmathjaxrVrÆr,)rÁz r zlen(context) = %s)rršÚdoctypeÚhead_prefix_templater7rYr%r^r#rÇrmrDrrprbrr&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)NrrrüÚ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)NÚstartZenumtyperr>z simpleÚol)rãr”r—rr^r¯)r+r£r©rrrÚvisit_enumerated_lists   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£rŒrrrÚvisit_field_lists zHTMLTranslator.visit_field_listcCs|j d¡dS)Nz )rr^)r+r£rrrÚdepart_field_listsz HTMLTranslator.depart_field_listcCsdS)Nr)r+r£rrrÚ visit_fieldszHTMLTranslator.visit_fieldcCsdS)Nr)r+r£rrrÚ depart_fieldszHTMLTranslator.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_body+szHTMLTranslator.visit_field_bodycCs|j d¡dS)Nz )rr^)r+r£rrrÚdepart_field_body2sz 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_figure5s   zHTMLTranslator.visit_figurecCs|j d¡dS)Nz )rr^)r+r£rrrÚ depart_figure=szHTMLTranslator.depart_figurecCs|j t|jƒ¡dS)N)rfr^r r)r+r£rrrÚ visit_footerAszHTMLTranslator.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_footerDs   zHTMLTranslator.depart_footercCs,|js(d|jj}|j d|¡d|_dS)Nz footnote z
T)rlr7Úfootnote_referencesrr^)r+r£rŒrrrÚvisit_footnoteSs 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_footnoteYs   zHTMLTranslator.depart_footnotec Cs8d|d}d|jj}|j |j|dd||d¡dS)Nrðrñzfootnote-reference rór>)rÁrõ)r7rQrr^r¯)r+r£rõrŒrrrÚvisit_footnote_reference`s  z'HTMLTranslator.visit_footnote_referencecCs|j d¡dS)Nz)rr^)r+r£rrrÚdepart_footnote_referencefsz(HTMLTranslator.depart_footnote_referencecCs:d|dkr6| ¡ d¡}|j d| |¡¡tj‚dS)NÚsectnumrŒõ z %s )rqrCrr^rtrr)r+r£rWrrrÚvisit_generatedjs  zHTMLTranslator.visit_generatedcCsdS)Nr)r+r£rrrÚdepart_generatedtszHTMLTranslator.depart_generatedcCs|j t|jƒ¡dS)N)rfr^r r)r+r£rrrÚ visit_headerwszHTMLTranslator.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_headerzs    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?rLzalign-%srÚobjectz Úimg)&r-rTÚ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 imagepathrfZatt_namerrrr¥rrrÚ visit_image†sn                *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) NZbracketsrEr>Úlabel)rÁrøÚbackrefsrVz!r) r›rÔrrSr7rQrr^r¯Úfootnote_backlinksr )r+r£rŒr}rrrÚ visit_labelÒs   zHTMLTranslator.visit_labelcCs‚|jjr*|jd}t|ƒdkr*|j d¡|j d¡|jjrrt|ƒdkrrdd„t|ƒDƒ}|j dd |¡¡|j d ¡dS) Nr}rVzzcSs g|]\}}d||df‘qS)z%srVr)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_lineúszHTMLTranslator.depart_linecCs|j |j|ddd¡dS)NrÆz line-block)rÁ)rr^r¯)r+r£rrrÚvisit_line_blockýszHTMLTranslator.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_itemszHTMLTranslator.visit_list_itemcCs|j d¡dS)Nz )rr^)r+r£rrrÚdepart_list_itemszHTMLTranslator.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)rr)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£rŒrsÚtokenrrrÚ visit_literal s"   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ÁrrŒz)rr^r¯r”)r+r£rrrÚvisit_literal_block(sz"HTMLTranslator.visit_literal_blockcCs,d| dg¡kr|j d¡|j d¡dS)NrrŒzz )r”rr^)r+r£rrrÚdepart_literal_block-s z#HTMLTranslator.depart_literal_block)rÆr>r>)rÆrøZformula)rÆrøÚmath)rÀÚttrš)Úmathmlrr0Ú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"rr>rd)z$%s$z\begin{%s} %s \end{%s})z\(%s\)z\begin{%s} %s \end{%s})NN)rœrr0rrœrÚ blahtexml)rr0r0z@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+rrrUjsz-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 displaymoder1Údoctype_mathmlZcontent_type_mathmlrmrBrerr¡r¢ržrZ tex2mathmlÚOSErrorÚ SyntaxErrorÚvisit_system_messagerr^r¯ÚargsÚdepart_system_messagerrÚbool) r+r£Úmath_envÚtagZclsargZwrappersÚwrapperZ math_codeÚ converterrŠZerr_noder)r+rÚ visit_math>s¦                           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)NrEr>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_paragraphúszHTMLTranslator.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_paragraphýs 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_problematics   z HTMLTranslator.visit_problematiccCs"|j d¡|j |j ¡¡dS)Nz)rr^rfr•)r+r£rrrÚdepart_problematic s 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Ôrrurr^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)NrrvÚrefurirõzmailto:Tz externalrñz3References must have "refuri" or "refid" attribute.rðz internalrVrz image-referencerór>)r7r}r–rwror™r›rÔrrur Úimagerr^r¯)r+r£r©rrrÚvisit_references    zHTMLTranslator.visit_referencecCs0|j d¡t|jtjƒs&|j d¡d|_dS)Nzr?F)rr^r›rÔrruro)r+r£rrrÚdepart_reference-s  zHTMLTranslator.depart_referencecCs|j|ddddS)NÚrevisionF)r#)rÂ)r+r£rrrÚvisit_revision3szHTMLTranslator.visit_revisioncCs | ¡dS)N)rÄ)r+r£rrrÚdepart_revision6szHTMLTranslator.depart_revisioncCs |j | |dd¡¡d|_dS)NÚtrr>r)rr^r¯r:)r+r£rrrÚ visit_row9szHTMLTranslator.visit_rowcCs|j d¡dS)Nz )rr^)r+r£rrrÚ depart_row=szHTMLTranslator.depart_rowcCs|j |j|dddd¡dS)NrÎr>Zrubric)rÁ)rr^r¯)r+r£rrrÚ visit_rubric@szHTMLTranslator.visit_rubriccCs|j d¡dS)Nz

)rr^)r+r£rrrÚ depart_rubricCszHTMLTranslator.depart_rubriccCs*|jd7_|j |j|ddd¡dS)NrVrÆÚsection)rÁ)r_rr^r¯)r+r£rrrÚ visit_sectionGszHTMLTranslator.visit_sectioncCs|jd8_|j d¡dS)NrVz )r_rr^)r+r£rrrÚdepart_sectionLszHTMLTranslator.depart_sectioncCs"|j |j|ddd¡d|_dS)NrÆÚsidebar)rÁT)rr^r¯rk)r+r£rrrÚ visit_sidebarQszHTMLTranslator.visit_sidebarcCs|j d¡d|_dS)Nz F)rr^rk)r+r£rrrÚdepart_sidebarVs zHTMLTranslator.depart_sidebarcCs|j|ddddS)NÚstatusF)r#)rÂ)r+r£rrrÚ visit_statusZszHTMLTranslator.visit_statuscCs | ¡dS)N)rÄ)r+r£rrrÚ depart_status]szHTMLTranslator.depart_statuscCs|j | |dd¡¡dS)NÚstrongr>)rr^r¯)r+r£rrrÚ visit_strong`szHTMLTranslator.visit_strongcCs|j d¡dS)Nz )rr^)r+r£rrrÚ depart_strongcszHTMLTranslator.depart_strongcCs|j | |dd¡¡dS)Nr|r>)rr^r¯)r+r£rrrÚvisit_subscriptfszHTMLTranslator.visit_subscriptcCs|j d¡dS)Nz)rr^)r+r£rrrÚdepart_subscriptiszHTMLTranslator.depart_subscriptcCs tj‚dS)zInternal only.N)rr)r+r£rrrÚvisit_substitution_definitionlsz,HTMLTranslator.visit_substitution_definitioncCs| |¡dS)N)Úunimplemented_visit)r+r£rrrÚvisit_substitution_referencepsz+HTMLTranslator.visit_substitution_referencecCsdt|jtjƒrd}n2t|jtjƒr4d}t|jƒ|_nt|jtjƒrFd}|j  |j |dd|d¡dS)Nzsidebar-subtitler zsection-subtitlerÎr>)rÁ) r›rÔrrãr,r rrnràr^r¯)r+r£rŒrrrÚvisit_subtitlewszHTMLTranslator.visit_subtitlecCsV|j d¡|jrR|j|jd…|_d|_|j |j¡|j |j¡|jdd…=dS)Nz

r r)rr^rnr rršr()r+r£rrrÚdepart_subtitles zHTMLTranslator.depart_subtitlecCs|j | |dd¡¡dS)NÚsupr>)rr^r¯)r+r£rrrÚvisit_superscriptŠsz HTMLTranslator.visit_superscriptcCs|j d¡dS)Nz)rr^)r+r£rrrÚdepart_superscriptsz!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>r}rVz%; 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_textr}r€r„Zbackrefrˆrrrr¬s*         z#HTMLTranslator.visit_system_messagecCs|j d¡dS)Nz )rr^)r+r£rrrr®ªsz$HTMLTranslator.depart_system_messagecCsXdd„|jj d¡Dƒ}d|kr2| d|d¡|j|dd |¡d}|j |¡dS) NcSsg|]}| d¡‘qS)z )r—)rSr¬rrrrU²sz.HTMLTranslator.visit_table..r‚rLzalign-%sr¡r{)rÁ)r7rrcr^r¯rBr)r+r£rŒr±rrrÚ visit_table±s zHTMLTranslator.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)NrEr>)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)Nr9)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 rVrdz with-subtitlerÁzh%srñz toc-backrefrrð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_topicszHTMLTranslator.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_transition,sz HTMLTranslator.depart_transitioncCs|j|ddddS)NrAF)r#)rÂ)r+r£rrrÚ visit_version/szHTMLTranslator.visit_versioncCs | ¡dS)N)rÄ)r+r£rrrÚdepart_version2szHTMLTranslator.depart_versioncCstd|jjƒ‚dS)Nz$visiting unimplemented node type: %s)ÚNotImplementedErrorÚ __class__r)r+r£rrrrï5sz"HTMLTranslator.unimplemented_visit)r?F)r?)r)N)T)r>)ØrrrÚ__doc__r]r1r©r2rmr\r¨r¦rˆr‡rqÚ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|rr r r rrrrrrrrrrrrr r"r#r$r%r&r'rÂrÄr*r+r/r3r5r6r;r<r?r@rArBrCrDrFrGrHrIrMrNrOrPrRrTrUrVrYrZr[r\rhrxryrzr{rr…r†r‡r‰rŠr‹rŒrŽ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ýrþrÿrrrrrrrr r r r rrrrrï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_visitEszSimpleListChecker.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·rrrrUJsz5SimpleListChecker.visit_list_item..rr rV) r¶r›rZ paragraphrœržrŸr•r rß)r+r£r¶rrrrŽHs z!SimpleListChecker.visit_list_itemcCsdS)Nr)r+r£rrrÚ pass_nodeYszSimpleListChecker.pass_nodecCs tj‚dS)N)rr)r+r£rrrÚ ignore_node\szSimpleListChecker.ignore_nodeN)#rrrrrrŽrrr¹rËrær?r&rÖrØrÃrrrrÉrçrrr"rÿrúrrArCrHrFrrîrúZ visit_pendingrrrrrÝ:s@ rÝ)#rrmÚos.pathr-rqÚurllib.requestriÚ urllib.parseÚ urllib.errorZ PIL.ImagerÚ ImportErrorrlrerErr r r r Zdocutils.utils.error_reportingr Zdocutils.transformsrZdocutils.utils.mathrrrrrrrWrKZGenericNodeVisitorrÝrrrrÚs@    7c