o f'ha[M@sdZdZddlZddlZddlZddlmZmZmZm Z ddl m Z ddl m Z ddlmZmZGdd d ej jZGd d d ej jZdS) z Plain HyperText Markup Language document tree Writer. The output conforms to the `HTML 5` specification. The cascading style sheet "minimal.css" is required for proper viewing, the style sheet "plain.css" improves reading experience. reStructuredTextN)frontendnodeswritersio) writer_aux) _html_base)PIL url2pathnamec@seZdZdZ ddgZdeej e gZ dZ ej eej e e Zddded ged d fd d gddejdfdd edgddejedfddgddejdfddgddd fd!e d"gd#eje d$fd%d&gd'd(d)d*fd+d,gd-d.gd.d/d0d1fd2d3ggd4d5d/d*fd6d7gd8dejdfd9d:gd;dd fdd?gd@dd fdAdBgdCdejdfdDdEgdFdd fdGdHgdIdJifdKdLgdIdMifdNdOgdPdejdfdQdRgdSdd fdTdUgdejdVfffZdWZdXdYZdS)ZWriter)htmlhtml5html4xhtmlxhtml10z minimal.cssz plain.css.z template.txtzHTML-Specific OptionsNz)defaultmetavarzhComma separated list of stylesheet URLs. Overrides previous --stylesheet and --stylesheet-path settings.z --stylesheetzstylesheet_path)r overrides validatorzComma separated list of stylesheet paths. Relative paths are expanded if a matching file is found in the --stylesheet-dirs. With --link-stylesheet, the path is rewritten relative to the output HTML file. Default: "%s",z--stylesheet-pathz stylesheet)rrrrzEmbed the stylesheet(s) in the output HTML file. The stylesheet files must be accessible during processing. This is the default.z--embed-stylesheet store_true)ractionrzNLink to the stylesheet(s) in the output HTML file. Default: embed stylesheets.z--link-stylesheetembed_stylesheet store_false)destrzComma-separated list of directories where stylesheets are found. Used by --stylesheet-path when expanding relative path arguments. Default: "%s"z--stylesheet-dirsz)rrrz|Specify the initial header level. Default is 2 for "

". Does not affect document title & subtitle (see --no-doc-title).z--initial-header-levelz 1 2 3 4 5 62z)choicesrrz[Format for footnote references: one of "superscript" or "brackets". Default is "brackets".z--footnote-references superscriptbracketsztrim_footnote_reference_space)r rrrz{Format for block quote attributions: one of "dash" (em-dash prefix), "parentheses"/"parens", or "none". Default is "dash".z --attribution)dash parenthesesparensnoner$zpRemove extra vertical whitespace between items of "simple" bullet lists and enumerated lists. Default: enabled.z--compact-listsTz3Disable compact simple bullet and enumerated lists.z--no-compact-lists compact_listszXRemove extra vertical whitespace between items of simple field lists. Default: enabled.z--compact-field-listsz#Disable compact simple field lists.z--no-compact-field-listscompact_field_listszZEmbed images in the output HTML file, if the image files are accessible during processing.z--embed-imagesrzd?Z%d@dAZ&dBdCZ'dDdEZ(dFdGZ)dHdIZ*dJdKZ+dLdMZ,dNdOZ-dPdQZ.Z/S)Rr/a> This writer generates `polyglot markup`: HTML5 that is also valid XML. Safe subclassing: when overriding, treat ``visit_*`` and ``depart_*`` methods as a unit to prevent breaks due to internal changes. See the docstring of docutils.writers._html_base.HTMLTranslator for details and examples. zG cCs|j||dddS)Nabbrr+)bodyappendstarttagr2noder3r3r4 visit_acronymszHTMLTranslator.visit_acronymcC|jddS)NzrKrLrNr3r3r4depart_acronymzHTMLTranslator.depart_acronymcCs6|j|ddd|D]}|d||q dS)NauthorsFmetaz$ visit_docinfo_itemadd_metaattvalastext)r2rOsubnoder3r3r4 visit_authorss  zHTMLTranslator.visit_authorscC |dSr-depart_docinfo_itemrNr3r3r4depart_authors zHTMLTranslator.depart_authorscCs4t|jtjr |jd|j||dddS)N
pr+) isinstanceparentrfigurerKrLrMrNr3r3r4 visit_captions zHTMLTranslator.visit_captioncCrQ)Nz

rRrNr3r3r4depart_captionrTzHTMLTranslator.depart_caption)insdelcsh|dg}fdd|D}t|dkr"|d|_||dnd|_jj||jdddS) Nclassescsg|] }|jvr|qSr3)supported_block_tags.0clsr1r3r4 s z2HTMLTranslator.visit_container..rrdivzdocutils containerCLASS)getlen html5tagnameremoverKrLrM)r2rOrmtagsr3r1r4visit_containers    zHTMLTranslator.visit_containercCs|jd|jdS)Nz )rKrLrxrNr3r3r4depart_containerzHTMLTranslator.depart_containercC,|j|ddd|d||dS)N copyrightFrVz, rXrNr3r3r4visit_copyright  zHTMLTranslator.visit_copyrightcCr_r-r`rNr3r3r4depart_copyrightrczHTMLTranslator.depart_copyrightcCr~)NdateFrVz* rXrNr3r3r4 visit_daterzHTMLTranslator.visit_datecCr_r-r`rNr3r3r4 depart_daterczHTMLTranslator.depart_datecCs:|ddptj|dpd}|jd||dS)Ntitler+sourcezuntitled Docutils documentz%s )rvr=r>basenameheadrLencode)r2rOrr3r3r4visit_documentszHTMLTranslator.visit_documentcCs`|j|j|jd|jjig|j|j|j d|j |j d|j |j d|j |jj |j d|j |jj dd|jvrM|j d|jrd|jdkr]|j |jn|j|j|j|j dd|j||d|j dd |j|j|j|jdd|j|j|j|jdd |jrJd t|jdS) Nlangrzname="dcterms.r+z=mathjaxrmainz zlen(context) = %s) head_prefixextenddoctypehead_prefix_templatesettings language_code html_prologrLrWinsertviewportr content_typeoutput_encodingrC math_header math_outputr html_head body_prefixrM body_suffixfragmentrK html_bodybody_pre_docinfodocinfocontextrwrNr3r3r4depart_documents<    zHTMLTranslator.depart_documentcCsXi}|drd|d|d<|drd|d|d<|j|j|dfi|dS)Nwidthz width: %sstylealignzalign-classrh)rvrKrLrM)r2rOattsr3r3r4 visit_figures    zHTMLTranslator.visit_figurecCs(t|dkr |jd|jddS)Nrz
z )rwrKrLrNr3r3r4 depart_figures  zHTMLTranslator.depart_figurecC|jt|jdSr-rrLrwrKrNr3r3r4 visit_footer!r}zHTMLTranslator.visit_footercCs`|j}||dg}||j|d|d|j|||jdd<|j|d=dS)Nfooterz r)rpoprMrrKrLrr)r2rOstartrr3r3r4 depart_footer$s   zHTMLTranslator.depart_footercCrr-rrNr3r3r4 visit_header.r}zHTMLTranslator.visit_headercCs^|j}||dg}||j|d|d|j||j||j|d=dS)Nheaderz )rrrMrrKrLrr)r2rOrrr3r3r4 depart_header1s    zHTMLTranslator.depart_header)z video/mp4z video/webmz video/oggc si}|d}t|d}||jvrtt||Sd|vr(|ddd|d<d|vr6|ddd|d<d|vrBd|d|d <d |d gvrNd |d <|d ||d <t|j t j slt|j t j rot|j j t j sod}nd}|j d|j|d|fd|i|||d |||fdS)Nurirrpxr+heightrzalign-%srcontrolsrmaltr z!%s%s%s%svideosrc) mimetypes guess_type videotypessuperr/ visit_imagereplacervrfrgr TextElement referencerKrLrM)r2rOrrmimetypesuffix __class__r3r4r=s4   zHTMLTranslator.visit_imagecCdSr-r3rNr3r3r4 depart_imageYzHTMLTranslator.depart_image)codekbddfnsampvarbdirlrkmarksmallbiqsucs|dgfdd|jD}t|r!|d|_|dn-dgkrKt|jtjrKd|jdvrK|j ddkrA|j d=n|j d d |_nd |_|j | ||jd dS) Nrmcg|]}|vr|qSr3r3rormr3r4rrcz/HTMLTranslator.visit_inline..rlnrrzrspanr+) rvsupported_inline_tagsrwrxryrfrgr literal_blockrKrLrM)r2rOrzr3rr4 visit_inline`s    zHTMLTranslator.visit_inlinecCsV|jd|j|jdkr'|ddgkr't|jtjr'|jd||`dS)Nrrmrz) rKrLrxrvrfrgrrr\rNr3r3r4 depart_inliness  zHTMLTranslator.depart_inlinecCs:t|jdtjs|jd|j|j|ddddS)Nrrdrslegendrt)rfrgrcaptionrKrLrMrNr3r3r4 visit_legend{s zHTMLTranslator.visit_legendcCrQNz rRrNr3r3r4 depart_legendrTzHTMLTranslator.depart_legendcs|dgfdd|jD}t|r |d}|dnd}|dkr3|j||dddS|j|j||ddd |}t|j t j sQ| d d }|j |D]!}|ro|j|ro|jd ||qW|j||qW|jd |t j)Nrmcrr3r3rorr3r4rrrz0HTMLTranslator.visit_literal..rrrr+zdocutils literalrtr z%sr)rvrrwryrKrLrMr\rfrgrrrwords_and_spacesfindallstripin_word_wrap_pointsearchrSkipNode)r2rOrztagnametexttokenr3rr4 visit_literals.  zHTMLTranslator.visit_literalcCrQ)NrrRrNr3r3r4depart_literalszHTMLTranslator.depart_literalcCs<|dr |d|d<|j|dfi|}||dS)Nrzxml:langrW)hasattremptytagnon_default_attributesrZ)r2rOrWr3r3r4 visit_metas  zHTMLTranslator.visit_metacCrr-r3rNr3r3r4 depart_metarzHTMLTranslator.depart_metacCs|j|ddddS)N organizationFrV)rYrNr3r3r4visit_organizationsz!HTMLTranslator.visit_organizationcCr_r-r`rNr3r3r4depart_organizationrcz"HTMLTranslator.depart_organizationcCs&|jd7_|j||ddS)Nrsection) section_levelrKrLrMrNr3r3r4 visit_sections zHTMLTranslator.visit_sectioncCs|jd8_|jddS)Nrz )rrKrLrNr3r3r4depart_sectionszHTMLTranslator.depart_sectioncCs"|j|j|dddd|_dS)NasidesidebarrtT)rKrLrM in_sidebarrNr3r3r4 visit_sidebars zHTMLTranslator.visit_sidebarcCs|jdd|_dS)Nz F)rKrLrrNr3r3r4depart_sidebar  zHTMLTranslator.depart_sidebarcCsJd|dvrt|jtjrd|jd<|j|j|ddd|d|_dS)Ncontentsrmz rrstopicrt) rfrgrdocumentrrKrLrM topic_classesrNr3r3r4 visit_topics   zHTMLTranslator.visit_topiccCs|jdg|_dSr)rKrLr rNr3r3r4 depart_topicrzHTMLTranslator.depart_topic)0r6r7r8__doc__rrPrSr^rbrirjsetrnr{r|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r __classcell__r3r3rr4r/sX   r/)r __docformat__ros.pathr=r;rrrrdocutils.transformsrdocutils.writersrdocutils.writers._html_baser r r r/r3r3r3r4s  y