U n‰^$úã @s$dZddlZddlZddlZddlZddlZddlZz ddl Z WnPe k rz"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úu/private/var/folders/sd/whlwsn6x1_qgglc0mjv25_695qk2gl/T/pip-install-4zq3fp6i/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_transformscCsJ| |j¡|_}|j |¡|jD]}t||t||ƒƒq$| ¡|_dSr*) Ztranslator_classÚdocumentÚvisitorZ walkaboutÚvisitor_attributesÚsetattrÚgetattrÚapply_templateÚoutput)r-r/ÚattrrrrÚ translateEs   zWriter.translatecCs6t|jjjdƒ}t| ¡dƒ}| ¡| ¡}||S)NÚrbúutf-8)Úopenr.ÚsettingsÚtemplateÚstrÚreadÚcloseÚinterpolation_dict)r-Z template_filer;Úsubsrrrr3Ls zWriter.apply_templatecCsJi}|jj}|jD]}d t||ƒ¡ d¡||<q|j|d<tj|d<|S)NÚÚ ÚencodingÚversion) r.r:r0Újoinr2ÚrstripÚoutput_encodingÚdocutilsÚ __version__)r-r@r:r5rrrr?Ss   zWriter.interpolation_dictcCs2tj |¡|jD]}d t||ƒ¡|j|<qdS©NrA)r rÚassemble_partsr0rEr2Úparts)r-ÚpartrrrrK\s  zWriter.assemble_partsN) rrrÚ supportedZdefault_templateZsettings_defaultsZconfig_section_dependenciesr0r+r6r3r?rKrrrrr+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>ú@ú@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Úpathr,rrÚ ×sÿz+HTMLTranslator.__init__..z z réTF)9rÚ NodeVisitorÚ__init__r:Ú language_coder Z get_languageÚreporterÚlanguageÚ generatorrHrIr#rr%Úxml_declarationÚappendrGrr 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.r:Zlcoderr,rr]Ès`  ÿ ÿ   zHTMLTranslator.__init__cCs6d |j|j|j|j|j|j|j|j¡SrJ) rErrrrrrrrr,rrrÚastextsÿÿþþýýzHTMLTranslator.astextcCst|ƒ}| |j¡S)z-Encode special characters in `text` & return.)r<r6Úspecial_characters)r-ÚtextrrrÚencode szHTMLTranslator.encodecCs | dd¡S)z*Try to hide a mailto: URL from harvesters.rUú%40©Úreplace)r-ÚurirrrÚ cloak_mailtoszHTMLTranslator.cloak_mailtocCs| dd¡}| dd¡}|S)z;Try to hide the link text of a email link from harversters.rVz@Ú.z.r{)r-ÚaddrrrrÚ cloak_emails  zHTMLTranslator.cloak_emailz[ ]cCs<| | d|¡¡}|jr8|jjr8| dd¡}| dd¡}|S)z6Cleanse, HTML encode, and return attribute value text.ú rzz%40rz.)ryÚsubrtr:Úcloak_email_addressesr|)r-rxÚ whitespaceÚencodedrrrÚattval s   zHTMLTranslator.attvalc Cs®|jjr†z$tj|dd ¡}|jj |¡WnNtk rz}z0d|t|j ƒf}|j j   |¡d|WY¢Sd}~XYnX|j |S|jjržt |jj|¡}|j| |¡S)z8Return code to reference or embed stylesheet file `path`r8)Ú source_pathrCz!Cannot embed stylesheet '%s': %s.z <--- %s ---> N)r:Zembed_stylesheetr Z FileInputr=Úrecord_dependenciesÚaddÚIOErrorr Ústrerrorr.r_ÚerrorÚembedded_stylesheetZstylesheet_pathr Ú relative_pathZ _destinationÚstylesheet_linkry)r-rYÚcontentÚerrÚmsgrrrrW*s"ÿ ÿ zHTMLTranslator.stylesheet_callrBFc Ks,| ¡}g}i}g}t| ¡ƒD]\} } | ||  ¡<q g} g} | dg¡| dd¡ ¡D]<} |  d¡r||  | dd…¡qZ|  ¡rZ| | krZ|  | ¡qZ| rª| d||j <| r¼d  | ¡|d<d |ksÈt ‚|  | d g¡¡d |krö|  |d ¡|d =|rf|d|d <|d d…D]P}|sFt |tjtjtjtjtjtjtjfƒrV| d |¡n |d |7}qt| ¡ƒ}| ¡|g}|D]v\} } | dk sšt ‚t | tƒrØd d„| Dƒ}| d|  ¡| d  |¡¡f¡n | d|  ¡| t| ƒ¡f¡q„|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ÚclassrAz language-é Nrr‚ÚidÚidsr[zcSsg|] }t|ƒ‘qSr)r<)rXÚvrrrrZusz+HTMLTranslator.starttag..z%s="%s"z /z<%s%s>)rjÚlistÚitemsÚgetÚpoprhÚ startswithrcÚstripÚlang_attributerEÚAssertionErrorÚextendÚ isinstancerÚ bullet_listrÚdefinition_listÚenumerated_listÚ field_listÚ option_listÚtableÚsortr‡r<)r-ÚnodeÚtagnameÚsuffixÚemptyÚ attributesÚprefixÚattsr˜ÚnameÚvaluer”r Úclsr—ÚattlistrLÚvaluesZinfixrrrÚstarttag=sj      ýÿ    ÿ   ÿ zHTMLTranslator.starttagcKs|j|||fddi|—ŽS)z1Construct and return an XML-compatible empty tag.r®T)r·)r-r«r¬r­r¯rrrÚemptytagszHTMLTranslator.emptytagrcCsDdd„|Dƒ}z ||}Wntk r0YdSX|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£rZ Invisible)rXÚnrrrrZŠs z5HTMLTranslator.set_class_on_child..Nr”)Ú IndexErrorrc)r-r«Úclass_ÚindexÚchildrenÚchildrrrÚset_class_on_child…s  z!HTMLTranslator.set_class_on_childcCs:| ¡}| |¡}|jr*|jjr*| |¡}|j |¡dSr*)rvryrtr:r„rrrc)r-r«rxr†rrrÚ visit_Text‘s   zHTMLTranslator.visit_TextcCsdSr*r©r-r«rrrÚ depart_Text˜szHTMLTranslator.depart_TextcCs|j | |dd¡¡dS)NZabbrrA©rrcr·rÂrrrÚvisit_abbreviation›sz!HTMLTranslator.visit_abbreviationcCs|j d¡dS)Nz©rrcrÂrrrÚdepart_abbreviationŸsz"HTMLTranslator.depart_abbreviationcCs|j | |dd¡¡dS)NZacronymrArÄrÂrrrÚ visit_acronym¢szHTMLTranslator.visit_acronymcCs|j d¡dS)Nz rÆrÂrrrÚdepart_acronym¦szHTMLTranslator.depart_acronymcCs.|j|ddd|j |j|dddd¡dS)NÚaddressF©r#ÚprerA©r­ÚCLASS)Úvisit_docinfo_itemrrcr·rÂrrrÚ visit_address©s ÿzHTMLTranslator.visit_addresscCs|j d¡| ¡dS©Nú )rrcÚdepart_docinfo_itemrÂrrrÚdepart_address®s zHTMLTranslator.depart_addresscCs(|d dd¡|j | |d¡¡dS)Nr”rZ admonitionÚdiv)Úinsertrrcr·rÂrrrÚvisit_admonition²szHTMLTranslator.visit_admonitionNcCs|j d¡dS©Nú rÆrÂrrrÚdepart_admonition¶sz HTMLTranslator.depart_admonition)u—rA)ú(ú))rArA)ZdashZ parenthesesÚparensÚnonecCs<|j|jj\}}|j |¡|j |j|d|dd¡dS)NÚpÚ attribution©rÎ)Úattribution_formatsr:ràrkrcrr·)r-r«r°r­rrrÚvisit_attribution¾s  ÿz HTMLTranslator.visit_attributioncCs|j |j ¡d¡dS©Nú

©rrcrkrrÂrrrÚdepart_attributionÄsz!HTMLTranslator.depart_attributioncCs*t|jtjƒs| |d¡|j d¡dS)NÚauthorz

)r£ÚparentrÚauthorsrÏrrcrÂrrrÚ visit_authorÇs zHTMLTranslator.visit_authorcCs4|j d¡t|jtjƒr(|j d¡n| ¡dS)Nú

rB)rrcr£rérrêrÓrÂrrrÚ depart_authorÌs zHTMLTranslator.depart_authorcCs| |d¡dS)Nrê©rÏrÂrrrÚ visit_authorsÓszHTMLTranslator.visit_authorscCs | ¡dSr*©rÓrÂrrrÚdepart_authorsÖszHTMLTranslator.depart_authorscCs|j | |d¡¡dS)NÚ blockquoterÄrÂrrrÚvisit_block_quoteÙsz HTMLTranslator.visit_block_quotecCs|j d¡dS)Nz rÆrÂrrrÚdepart_block_quoteÜsz!HTMLTranslator.depart_block_quotecCs:t|jƒ}z| |¡Wntjk r0YdSXdSdS)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”Tr9FÚcontents) r£rr§r¥r:Zcompact_field_listsr¦r¤Z compact_listsrlrørÂrrrÚis_compactableðs  ÿÿ zHTMLTranslator.is_compactablecCs^i}|j}|j |j|jf¡d|_| |¡|_|jrB|sBd|d<|j |j|df|Ž¡dS)NÚsimpler•Úul)rorkrcrnrûrr·)r-r«r±Zold_compact_simplerrrÚvisit_bullet_lists  z HTMLTranslator.visit_bullet_listcCs"|j ¡\|_|_|j d¡dS)Nz )rkrrornrrcrÂrrrÚdepart_bullet_listsz!HTMLTranslator.depart_bullet_listcCs|j |j|dddd¡dS)NrßrAÚcaptionrárÄrÂrrrÚ visit_captionszHTMLTranslator.visit_captioncCs|j d¡dSrärÆrÂrrrÚdepart_captionszHTMLTranslator.depart_captioncCs|js|j d¡d|_dS)Nz
T)rqrrcrÂrrrÚvisit_citations zHTMLTranslator.visit_citationcCs8|j d¡t|jdddtjƒs4|j d¡d|_dS©Nú FT©ZdescendZsiblingsú
)rrcr£Ú next_noderZcitationrqrÂ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.Znameidsrrcr·)r-r«rrrrÚvisit_citation_reference+s ÿz'HTMLTranslator.visit_citation_referencecCs|j d¡dS)Nz]rÆrÂrrrÚdepart_citation_reference6sz(HTMLTranslator.depart_citation_referencecCs|j |j|dddd¡dS)NÚspanrAÚ classifierrárÄrÂrrrÚvisit_classifier=szHTMLTranslator.visit_classifiercCs|j d¡dS©NúrÆrÂrrrÚdepart_classifier@sz HTMLTranslator.depart_classifiercCs&|j |¡|jj |j d¡¡dS)NÚstub)rmrcréÚstubsr¯rœrÂrrrÚ visit_colspecCs zHTMLTranslator.visit_colspeccCsÂt|jdddtjƒrdSd|jjdksFd|jjkrJd|jjdkrJdStdd„|jDƒƒ}|j   |  |d ¡¡|jD]8}t |d d |d ƒ}|j   |j |d d|d¡qx|j   d¡dS)NFTrzcolwidths-autor”zcolwidths-givencss|]}|dVqdS)ÚcolwidthNr)rXr«rrrÚ Qsz0HTMLTranslator.depart_colspec..ÚcolgrouprgY@gà?Úcolz width: %i%%)Ústylez )r£rrZcolspecrér:Ú table_styleÚsumrmrrcr·rer¸)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)rrcrvrÚSkipNode)r-r«rƒrrrÚ visit_commentYszHTMLTranslator.visit_commentcCsl|j |j|ddd¡t|ƒdkrh|dd d¡|dd d ¡|dd…D]}|d d ¡qTdS) NrÕZcompoundrár[rr”zcompound-firstéÿÿÿÿz compound-lastzcompound-middle©rrcr·Úlen)r-r«r¿rrrÚvisit_compound`s  zHTMLTranslator.visit_compoundcCs|j d¡dSrØrÆrÂrrrÚdepart_compoundhszHTMLTranslator.depart_compoundcCs|j |j|ddd¡dS)NrÕzdocutils containerrárÄrÂrrrÚvisit_containerkszHTMLTranslator.visit_containercCs|j d¡dSrØrÆrÂrrrÚdepart_containernszHTMLTranslator.depart_containercCs|j|ddddS)NÚcontactFrËrîrÂrrrÚ visit_contactqszHTMLTranslator.visit_contactcCs | ¡dSr*rðrÂrrrÚdepart_contacttszHTMLTranslator.depart_contactcCs| |d¡dS)NÚ copyrightrîrÂrrrÚvisit_copyrightwszHTMLTranslator.visit_copyrightcCs | ¡dSr*rðrÂrrrÚdepart_copyrightzszHTMLTranslator.depart_copyrightcCs| |d¡dS)NÚdaterîrÂrrrÚ visit_date}szHTMLTranslator.visit_datecCs | ¡dSr*rðrÂrrrÚ depart_date€szHTMLTranslator.depart_datecCsdSr*rrÂrrrÚvisit_decorationƒszHTMLTranslator.visit_decorationcCsdSr*rrÂrrrÚdepart_decoration†sz HTMLTranslator.depart_decorationcCs&|j d¡|j | |dd¡¡dS)Nú ÚddrArÄrÂrrrÚvisit_definition‰s zHTMLTranslator.visit_definitioncCs|j d¡dS©NrrÆrÂrrrÚdepart_definitionsz HTMLTranslator.depart_definitioncCs8| dg¡}| |¡r | d¡|j | |d¡¡dS)Nr”rüÚdl)Ú setdefaultrûrcrr·©r-r«r”rrrÚvisit_definition_lists   z$HTMLTranslator.visit_definition_listcCs|j d¡dS©NrrÆ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ÂrrrÚvisit_definition_list_item™s ÿ ÿ ÿz)HTMLTranslator.visit_definition_list_itemcCsdSr*rrÂrrrÚdepart_definition_list_item¢sz*HTMLTranslator.depart_definition_list_itemcCs|j | |dd¡¡dS)Nr9rArÄrÂrrrÚvisit_description¥sz HTMLTranslator.visit_descriptioncCs|j d¡dSr;rÆrÂrrrÚdepart_description¨sz!HTMLTranslator.depart_descriptioncCsD|j t|jƒ¡d}| |¡r(|d7}|j |j|d|d¡dS)Nrú simpler=rá)rkrcr(rrûr·r?rrrÚ visit_docinfo«s  zHTMLTranslator.visit_docinfocCs0|j d¡|j ¡}|j|d…|_g|_dSrA)rrcrkrr)r-r«ÚstartrrrÚdepart_docinfo²s  zHTMLTranslator.depart_docinfoTcCs^|r$d|| | ¡¡f}| |¡|j d||jj|f¡|j |j|dd|d¡dS)Nz z
%s
r9rArá)r‡rvÚadd_metarrcr`Úlabelsr·)r-r«r²r#Zmeta_tagrrrrϸsÿ ÿz!HTMLTranslator.visit_docinfo_itemcCs|j d¡dSr;rÆr,rrrrÓÁsz"HTMLTranslator.depart_docinfo_itemcCs|j |j|dddd¡dS)NrÌrAzcode python doctestrÍrÄrÂrrrÚvisit_doctest_blockÄsÿz"HTMLTranslator.visit_doctest_blockcCs|j d¡dSrÑrÆrÂrrrÚdepart_doctest_blockÈsz#HTMLTranslator.depart_doctest_blockcCs:| dd¡ptj |d¡pd}|j d| |¡¡dS)NrrAÚsourcezdocutils document without titlez%s )rœÚosrYÚbasenamerrcry)r-r«rrrrÚvisit_documentËsÿzHTMLTranslator.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)NrPrzname="dcterms.rAz<Úmathjaxr[rÕr.rárÙr&zlen(context) = %s)rr¢ÚdoctypeÚhead_prefix_templater:r^r%rcr#rÖrrrGrrErurgrr&rr·rr$rr)rrrkr¡r(rÂrrrÚdepart_documentÐs8  ÿÿÿ ÿÿ þzHTMLTranslator.depart_documentcCs|j | |dd¡¡dS)NÚemrArÄrÂrrrÚvisit_emphasisészHTMLTranslator.visit_emphasiscCs|j d¡dS)NzrÆ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‚Útdr[ZmorerowsZrowspanZmorecolsZcolspanrAz ) r£rérÚtheadrcrÚcolumnrErr·rkrj)r-r«r±r¬rrrÚ visit_entryïs$zHTMLTranslator.visit_entrycCs|j |j ¡¡dSr*rærÂrrrÚ depart_entryszHTMLTranslator.depart_entrycCsji}d|kr|d|d<d|kr,|d|d<| |¡rN| dd¡d ¡|d<|j |j|df|Ž¡dS)NrJZenumtyper•rArHÚol)rûrœrŸrrcr·©r-r«r±rrrÚvisit_enumerated_list s   z$HTMLTranslator.visit_enumerated_listcCs|j d¡dS)Nz rÆrÂrrrÚdepart_enumerated_listsz%HTMLTranslator.depart_enumerated_listcCs2d}| |¡r|d7}|j |j|d|d¡dS)Nz field-listrHr=rá)rûrrcr·r?rrrÚvisit_field_lists zHTMLTranslator.visit_field_listcCs|j d¡dSrArÆrÂrrrÚdepart_field_list sz HTMLTranslator.depart_field_listcCsdSr*rrÂrrrÚ visit_field#szHTMLTranslator.visit_fieldcCsdSr*rrÂrrrÚ depart_field&szHTMLTranslator.depart_fieldc Cs*|j |j|ddd |jd¡d¡dS)NÚdtrAr”rá)rrcr·rErérÂrrrÚvisit_field_name+sÿzHTMLTranslator.visit_field_namecCs|j d¡dS)Nr8rÆrÂrrrÚdepart_field_name/sz HTMLTranslator.depart_field_namec Cs<|j |j|ddd |jd¡d¡|js8|j d¡dS)Nr9rAr”ráz

)rrcr·rErér¾rÂrrrÚvisit_field_body2s ÿzHTMLTranslator.visit_field_bodycCs|j d¡dSr;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Úwidthú width: %sr Úalignz align-rÕ)rœrrcr·rbrrrÚ visit_figure<s   zHTMLTranslator.visit_figurecCs|j d¡dSrØrÆrÂrrrÚ depart_figureDszHTMLTranslator.depart_figurecCs|j t|jƒ¡dSr*©rkrcr(rrÂrrrÚ visit_footerHszHTMLTranslator.visit_footercCsf|j ¡}|j|ddddg}| |j|d…¡| d¡|j |¡||jdd…<|j|d…=dS)NrÕr"ráz z r)rkrr·r¢rrcr"r)r-r«rJr"rrrÚ depart_footerKs ÿ  zHTMLTranslator.depart_footercCs,|js(d|jj}|j d|¡d|_dS)Nz footnote z
T)rqr:Úfootnote_referencesrrcr?rrrÚvisit_footnoteZs zHTMLTranslator.visit_footnotecCs8|j d¡t|jdddtjƒs4|j d¡d|_dSr)rrcr£rrÚfootnoterqrÂrrrÚdepart_footnote`s  ÿ zHTMLTranslator.depart_footnotec Cs8d|d}d|jj}|j |j|dd||d¡dS)Nr r zfootnote-reference r rAr)r:rwrrcr·)r-r«rr”rrrÚvisit_footnote_referencegs   ÿz'HTMLTranslator.visit_footnote_referencecCs|j d¡dS)NúrÆrÂrrrÚdepart_footnote_referencemsz(HTMLTranslator.depart_footnote_referencecCs:d|dkr6| ¡ d¡}|j d| |¡¡tj‚dS)NÚsectnumr”õ z %s )rvrFrrcryrr$)r-r«r~rrrÚvisit_generatedqs  ÿzHTMLTranslator.visit_generatedcCsdSr*rrÂrrrÚdepart_generated{szHTMLTranslator.depart_generatedcCs|j t|jƒ¡dSr*rtrÂrrrÚ visit_header~szHTMLTranslator.visit_headercCsb|j ¡}|j|dddg}| |j|d…¡| d¡|j |¡|j |¡|j|d…=dS)NrÕr!ráz
)rkrr·r¢rrcrr!)r-r«rJr!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   |¡}ztj   | t ¡¡¡}Wnttfk rìYnRX|jj | d d ¡¡d|kr d |jd |d<d|krÚimg)&rQrYÚsplitextrjÚobject_image_typesrœrr:Zfile_insertion_enabledÚurllibÚrequestÚ url2pathnameÚImager9ryÚsysÚgetfilesystemencodingr‹ÚUnicodeEncodeErrorr‰rŠr|ÚsizeÚreÚmatchr¡ÚfloatÚgrouprcrEr£rérÚ TextElementÚ referencerr·r¸) r-r«r±r}ÚextZ imagepathrŽZatt_nameršr r­rrrÚ visit_images„    ÿ  ÿ ÿ    þ   ÿþ   ÿÿÿzHTMLTranslator.visit_imagecCsdSr*rrÂrrrÚ depart_imageÎszHTMLTranslator.depart_imagecCs|j | |dd¡¡dS)NrrArÄrÂrrrÚ visit_inlineÒszHTMLTranslator.visit_inlinecCs|j d¡dSrrÆ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) NZbracketsrirAÚlabelrárÚbackrefsr[z!r) r£rérryr:rwrrcr·Úfootnote_backlinksr()r-r«r”r¥rrrÚ visit_labelÙs   ÿzHTMLTranslator.visit_labelcCs„|jjr*|jd}t|ƒdkr*|j d¡|j d¡|jjrtt|ƒdkrtdd„t|dƒDƒ}|j dd |¡¡|j d ¡dS) Nr¥r[r|rcSsg|]\}}d||f‘qS)ú%sr)rXÚiÚrefrrrrZïsÿz/HTMLTranslator.depart_label..z$(%s)ú,z
)r:r¦rér(rrcÚ enumeraterE)r-r«r¥Ú backlinksrrrÚ depart_labelès    ÿÿzHTMLTranslator.depart_labelcCs|j |j|ddd¡dS)NrÕZlegendrárÄrÂrrrÚ visit_legendõszHTMLTranslator.visit_legendcCs|j d¡dSrØrÆrÂrrrÚ depart_legendøszHTMLTranslator.depart_legendcCs2|j |j|dddd¡t|ƒs.|j d¡dS)NrÕrAÚlinerÍz
r'rÂrrrÚ visit_lineûszHTMLTranslator.visit_linecCs|j d¡dSrØrÆrÂrrrÚ depart_lineszHTMLTranslator.depart_linecCs|j |j|ddd¡dS)NrÕz line-blockrárÄrÂrrrÚvisit_line_blockszHTMLTranslator.visit_line_blockcCs|j d¡dSrØrÆrÂrrrÚdepart_line_blocksz HTMLTranslator.depart_line_blockcCs|j | |dd¡¡dS)NÚlirArÄrÂrrrÚvisit_list_item szHTMLTranslator.visit_list_itemcCs|j d¡dS)Nz 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 ¡}|j   |¡D]B}|  ¡r¸|j  |¡r¸|j d | |¡¡qˆ|j | |¡¡qˆ|j d ¡tj‚dS) Nr”ÚcodecSsg|]}|dkr|‘qS)r¹r©rXr´rrrrZsz0HTMLTranslator.visit_literal..rArzdocutils literalrárBr‚z%sr)rœrrcr·rvr£rérZ literal_blockr|Úwords_and_spacesÚfindallrŸÚin_word_wrap_pointÚsearchryr$)r-r«r”rxÚtokenrrrÚ visit_literals& ÿ ÿ zHTMLTranslator.visit_literalcCs|j d¡dS)NúrÆrÂrrrÚdepart_literal*szHTMLTranslator.depart_literalcCs:|j |j|dddd¡d| dg¡kr6|j d¡dS)NrÌrAú literal-blockrár¹r”z)rrcr·rœrÂrrrÚvisit_literal_block.sz"HTMLTranslator.visit_literal_blockcCs,d| dg¡kr|j d¡|j d¡dS)Nr¹r”rÁz )rœrrcrÂrrrÚdepart_literal_block3s z#HTMLTranslator.depart_literal_block)rÕrArA)rÕrZformula)rÕrÚmath)rÌÚttrÆ©ÚmathmlrrTÚlatexrAc s¾ˆjˆjkr&ˆjj dˆj¡dˆ_ˆjˆj|dk}ˆjˆjd}dddddœ}|ˆj|dk}ˆjd krŒˆjrˆˆjd d krŒd}| ¡ tj ¡}|rÐz||||f}Wnt k rÎ||}YnXˆjd kr䈠 |¡}ˆjd kr\ˆj s\zˆ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¡ ¡}z„|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*‚W5d} ~ 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ÊrAr‹)z$%s$ú\begin{%s} %s \end{%s})z\(%s\)rË)NNrÈrÉrÚ blahtexml)rÊrTrTz@No MathJax URL specified, using local fallback (see config.html)ú?z?config=TeX-AMS_CHTMLrcs"g|]}ˆ t |ˆjj¡¡‘qSr)rWr Zfind_file_in_dirsr:Zstylesheet_dirs)rXÚsr,rrrZpsþÿz-HTMLTranslator.visit_math..r«zXHTML 1r‚ÚlatexmlÚttm)Úinliner_)rÑz3option "%s" not supported with math-output "MathML"zis "latexmlmath" in your PATH?)Z base_noderßrårÌrÃrárÒrBrÍú),rgÚ math_tagsr.r_rrirvr6rZ uni2tex_tableÚ TypeErrorryruÚ mathjax_urlr»ÚwarningÚmathjax_scriptrhrZDocumentParametersZ displaymoderUÚdoctype_mathmlZcontent_type_mathmlrrrErjrrÏrÐrÌrZ tex2mathmlÚOSErrorÚ SyntaxErrorÚvisit_system_messagerrcr·ÚargsÚdepart_system_messagerr$Úbool) r-r«Úmath_envÚtagZclsargÚwrappersÚwrapperZ math_codeÚ converterr’Zerr_noderr,rÚ visit_mathDs¼ ÿÿü ÿ     þ    ÿ ÿ þÿ   ÿ   þ   zHTMLTranslator.visit_mathcCsdSr*rrÂrrrÚ depart_math©szHTMLTranslator.depart_mathcCst| ¡ƒ}|j||ddS)N)rß)rrvrä)r-r«rßrrrÚvisit_math_block¬s zHTMLTranslator.visit_math_blockcCsdSr*rrÂrrrÚdepart_math_block±sz HTMLTranslator.depart_math_blockcCs"|j|df| ¡Ž}| |¡dS)Nr#)r¸Znon_default_attributesrL)r-r«r#rrrÚ visit_meta¶szHTMLTranslator.visit_metacCsdSr*rrÂrrrÚ depart_metaºszHTMLTranslator.depart_metacCs|j |¡|j |¡dSr*)r#rcr)r-ràrrrrL½s zHTMLTranslator.add_metacCs|j |j|dddd¡dS)NrrAÚoptionrárÄrÂrrrÚ visit_optionÁszHTMLTranslator.visit_optioncCs2|j d¡t|jdddtjƒr.|j d¡dS)NrFTrú, )rrcr£rrrêrÂrrrÚ depart_optionÄs  ÿzHTMLTranslator.depart_optioncCs.|j | dd¡¡|j | |dd¡¡dS)NÚ delimiterr‚ÚvarrA)rrcrœr·rÂrrrÚvisit_option_argumentÊsz$HTMLTranslator.visit_option_argumentcCs|j d¡dS)NzrÆrÂrrrÚdepart_option_argumentÎsz%HTMLTranslator.depart_option_argumentcCs&|j | |dd¡¡|j d¡dS)NrirAzrÄrÂrrrÚvisit_option_groupÑsz!HTMLTranslator.visit_option_groupcCs|j d¡dS)Nz rÆrÂrrrÚdepart_option_groupÕsz"HTMLTranslator.depart_option_groupcCs|j |j|ddd¡dS)Nr=z option-listrárÄrÂrrrÚvisit_option_listØsÿz HTMLTranslator.visit_option_listcCs|j d¡dSrArÆrÂrrrÚdepart_option_listÜsz!HTMLTranslator.depart_option_listcCsdSr*rrÂrrrÚvisit_option_list_itemßsz%HTMLTranslator.visit_option_list_itemcCsdSr*rrÂrrrÚdepart_option_list_itemâsz&HTMLTranslator.depart_option_list_itemcCsdSr*rrÂrrrÚvisit_option_stringåsz"HTMLTranslator.visit_option_stringcCsdSr*rrÂrrrÚdepart_option_stringèsz#HTMLTranslator.depart_option_stringcCs| |d¡dS)NZ organizationrîrÂrrrÚvisit_organizationësz!HTMLTranslator.visit_organizationcCs | ¡dSr*rðrÂrrrÚdepart_organizationîsz"HTMLTranslator.depart_organizationcCs|j | |dd¡¡dS)NrßrArÄrÂrrrÚvisit_paragraphszHTMLTranslator.visit_paragraphcCs>|j d¡t|jtjtjfƒr.t|jƒdks:|j d¡dS)Nrìr[rB)rrcr£rérZ list_itemÚentryr(rÂrrrÚdepart_paragraphs   ÿzHTMLTranslator.depart_paragraphcCsV| d¡r,|j d|d¡|j d¡n |j d¡|j |j|dddd¡dS)Nr zr|rArZ problematicrá)Úhasattrrrcrkr·rÂrrrÚvisit_problematic s   z HTMLTranslator.visit_problematiccCs"|j d¡|j |j ¡¡dSrræ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ÚformatrArrÕr”)r­rÒ) rœrhr£rérrrrcr·rvr$)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•ržÚrefurirzmailto:Tz externalr z3References must have "refuri" or "refid" attribute.r z internalr[rz image-referencer rA)r:r„ržr~rtr¡r£rérrr(Úimagerrcr·rbrrrÚvisit_reference s$  ÿ ÿ zHTMLTranslator.visit_referencecCs0|j d¡t|jtjƒs&|j d¡d|_dS)Nr|rBF)rrcr£rérrrtrÂrrrÚdepart_reference3s  zHTMLTranslator.depart_referencecCs|j|ddddS)NÚrevisionFrËrîrÂrrrÚvisit_revision9szHTMLTranslator.visit_revisioncCs | ¡dSr*rðrÂrrrÚdepart_revision<szHTMLTranslator.depart_revisioncCs |j | |dd¡¡d|_dS)NÚtrrAr)rrcr·r^rÂrrrÚ visit_row?szHTMLTranslator.visit_rowcCs|j d¡dS)Nz rÆrÂrrrÚ depart_rowCszHTMLTranslator.depart_rowcCs|j |j|dddd¡dS)NrßrAZrubricrárÄrÂrrrÚ visit_rubricFszHTMLTranslator.visit_rubriccCs|j d¡dSrärÆrÂrrrÚ depart_rubricIszHTMLTranslator.depart_rubriccCs*|jd7_|j |j|ddd¡dS)Nr[rÕÚsectionrá)rdrrcr·rÂrrrÚ visit_sectionMsÿzHTMLTranslator.visit_sectioncCs|jd8_|j d¡dS)Nr[rÙ)rdrrcrÂrrrÚdepart_sectionRszHTMLTranslator.depart_sectioncCs"|j |j|ddd¡d|_dS)NrÕÚsidebarráT)rrcr·rprÂrrrÚ visit_sidebarWsÿzHTMLTranslator.visit_sidebarcCs|j d¡d|_dS)NrÙF)rrcrprÂrrrÚdepart_sidebar\s zHTMLTranslator.depart_sidebarcCs|j|ddddS)NÚstatusFrËrîrÂrrrÚ visit_status`szHTMLTranslator.visit_statuscCs | ¡dSr*rðrÂrrrÚ depart_statuscszHTMLTranslator.depart_statuscCs|j | |dd¡¡dS)NÚstrongrArÄrÂrrrÚ visit_strongfszHTMLTranslator.visit_strongcCs|j d¡dS)Nz rÆrÂrrrÚ depart_strongiszHTMLTranslator.depart_strongcCs|j | |dd¡¡dS)NrƒrArÄrÂrrrÚvisit_subscriptlszHTMLTranslator.visit_subscriptcCs|j d¡dS)NzrÆrÂrrrÚdepart_subscriptoszHTMLTranslator.depart_subscriptcCs tj‚dS)zInternal only.N©rr$rÂrrrÚvisit_substitution_definitionrsz,HTMLTranslator.visit_substitution_definitioncCs| |¡dSr*)Úunimplemented_visitrÂ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 r[zsection-subtitlerßrArá) r£rérrr.r(rrsrrcr·r?rrrÚvisit_subtitle}szHTMLTranslator.visit_subtitlecCs^|j d¡t|jtjƒrZ|j|jd…|_d|_|j  |j¡|j   |j¡|jdd…=dS)Nrår&r) rrcr£rérr.rsr rr¢r(rÂrrrÚdepart_subtitle‡s zHTMLTranslator.depart_subtitlecCs|j | |dd¡¡dS)NÚsuprArÄrÂrrrÚvisit_superscriptsz HTMLTranslator.visit_superscriptcCs|j d¡dS)NzrÆ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}|D]}| d ||f¡|d7}qbd d  |¡}| d ¡r¨d|d }nd}|j d|d|d| |d¡||f¡dS)NrÕzsystem-messageráz

rAr¥r[z%; backlinkrr¨z; backlinks: %srìr±z , line %szISystem Message: %s/%s (%s%s)%s

r…ÚlevelrP)rrcr·r(rErÿry)r-r«Z backref_textr¥r©r­Zbackrefr±rrrrÛ–s6   ÿ ÿ   ÿþz#HTMLTranslator.visit_system_messagecCs|j d¡dSrØ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ŸrºrrrrZµsÿz.HTMLTranslator.visit_table..r«rqrŒrorpr r©rÎr‚)r:r!rhrcr·rEr)r-r«r±r”ràrrrÚ visit_table³s ÿzHTMLTranslator.visit_tablecCs|j d¡dS)Nz rÆrÂrrrÚ depart_table¾szHTMLTranslator.depart_tablecCsPd|ks@d|ks@d|ks@|j |j|dddd¡|j d¡n |j d¡dS) Nrr r rrAÚtargetrár)rrcr·rkrÂrrrÚ visit_targetÁs ÿzHTMLTranslator.visit_targetcCs|j |j ¡¡dSr*rærÂrrrÚ depart_targetÉszHTMLTranslator.depart_targetcCs|j | |d¡¡dS)NÚtbodyrÄrÂrrrÚ visit_tbodyÍszHTMLTranslator.visit_tbodycCs|j d¡dS)Nz rÆrÂrrrÚ depart_tbodyÐszHTMLTranslator.depart_tbodycCs|j | |dd¡¡dS)NrirArÄrÂrrrÚ visit_termÓszHTMLTranslator.visit_termcCsdS)zg Leave the end tag to `self.visit_definition()`, in case there's a classifier. NrrÂrrrÚ depart_termÖszHTMLTranslator.depart_termcCsg|_g|_dSr*)rmrrÂrrrÚ visit_tgroupÝszHTMLTranslator.visit_tgroupcCsdSr*rrÂrrrÚ depart_tgroupászHTMLTranslator.depart_tgroupcCs|j | |d¡¡dS)Nr]rÄrÂrrrÚ visit_theadäszHTMLTranslator.visit_theadcCs|j d¡dS)Nz 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.rrårßrAztopic-title firstráz sidebar-titlezadmonition-titlerz Úh1rz r[r‹z with-subtitlerÎzh%sr z toc-backrefr•r rr z z N)r£rérÚtopicrrcr·rZ Admonitionr©r.r(rsrr¡rdrfr rÿrk)r-r«Zcheck_idZ close_tagZh_levelr±rrrÚ visit_titleêsTÿÿÿ ÿÿÿ  zHTMLTranslator.visit_titlecCs\|j |j ¡¡|jrX|j|jd…|_d|_|j |j¡|j |j¡|jdd…=dS)Nr&r) rrcrkrrsrrr¢r'rÂrrrÚ depart_titleszHTMLTranslator.depart_titlecCs|j | |dd¡¡dS)NZciterArÄrÂrrrÚvisit_title_referencesz$HTMLTranslator.visit_title_referencecCs|j d¡dS)NzrÆrÂrrrÚdepart_title_referencesz%HTMLTranslator.depart_title_referencecCs&|j |j|ddd¡|d|_dS)NrÕr8rár”)rrcr·rlrÂrrrÚ visit_topic#szHTMLTranslator.visit_topiccCs|j d¡g|_dSrØ)rrcrlrÂrrrÚ depart_topic)s zHTMLTranslator.depart_topiccCs|j |j|ddd¡dS)NÚhrrHrá)rrcr¸rÂrrrÚvisit_transition.szHTMLTranslator.visit_transitioncCsdSr*rrÂrrrÚdepart_transition1sz HTMLTranslator.depart_transitioncCs|j|ddddS)NrDFrËrîrÂrrrÚ visit_version4szHTMLTranslator.visit_versioncCs | ¡dSr*rðrÂrrrÚdepart_version7szHTMLTranslator.depart_versioncCstd|jjƒ‚dS)Nz$visiting unimplemented node type: %s)ÚNotImplementedErrorÚ __class__rrÂrrrr!:sÿz"HTMLTranslator.unimplemented_visit)rBF)rB)r)N)T)rA)ØrrrÚ__doc__rbrUrØrVrrrar×rÕrrŽr™Úcompiler»ÚUr½r Úordrwr]rvryr~rr‡rWr·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ÿrrrr rrrrrr#rƒr%r)r*r+r,r.r/r1r2r4r5r6r7r:r<r@rBrDrErFrGrIrKrÏrÓrNrOrSrWrYrZr_r`rcrdrerfrgrhrjrkrlrmrrrsrurvrxrzr{r}r€rr‚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érLrërírðrñròrórôrõrör÷rørùrúrûrürþrrrrrr r r rrrrrrrrrrrrrr r"r#r$r&r'rÛrÝr)r*r,r-r/r0r1r2r3r4r5r6r9r:r;r<r=r>r@rArBrCr!rrrrrObsÆ8 ü ; ÿ  D   ý   ÿ      A       üe                                                            )        rOc@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‚dSr*)rr÷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|‘qSrr¹)rXr¿rrrrZOs ÿz5SimpleListChecker.visit_list_item..rr&r[) r¾r£rZ paragraphr¤r¦r§rr(r÷)r-r«r¾rrrr·Msÿþý z!SimpleListChecker.visit_list_itemcCsdSr*rrÂrrrÚ pass_node^szSimpleListChecker.pass_nodecCs tj‚dSr*rrÂrrrÚ ignore_nodeaszSimpleListChecker.ignore_nodeN)#rrrrFrJr·rKrLrÁrürþrcrIrërïrÐr.r1r4rúrrBr@rDr1rr:rergrlrjr%r r,Z visit_pendingrrrrrõ?s@ rõ)#rFr•Úos.pathrQr™Úurllib.requestr‘Ú urllib.parseÚ urllib.errorZ PIL.ImagerÚ ImportErrorr”rrHrr r r r Zdocutils.utils.error_reportingr Zdocutils.transformsrZdocutils.utils.mathrrrrrrr\rOZGenericNodeVisitorrõrrrrÚs@    7h