o k`,@sdZz&ddlmZddlmZddlmZddlmZddl m Z ddlm Z Wn e y3dZ Ynwd Z dd lmZdd lTdd lmZmZdd lmZmZmZmZmZddlmZddlmZddlmZm Z m!Z!e rddZ"ddZ#igfddZ$de#_%de#_&de#_'ej()de#ej*+de$ddZ,igfddZ-ddZ.d e._%d!ej(j/ie-_&e._&d"e._'ej()d#e.ej*0d#e-Gd$d%d%e1Z2dS)&reStructuredText)nodes) publish_parts)rst) standalone) html4css1) __version__FT)ISystemInfoProvider)*)IHTMLPreviewRenderercontent_to_unicode)ElementFragmentMarkupescape find_element)_) WikiSystem) WikiProcessor Formatter extract_linkc Cs|r|d|n|}t|||}d}d}t|ttfrKt|} | ddd|kr.| }t|dd} | durJ| j dd}d| j dd v}n|j |}t|| }|s]|rtt||pc|} || d<|rr| d d| SdS) N F?hrefmissingclassrefuriclasses)r isinstancer rr striptagsrstripreplacerattribgetsplitrwikirhas_pager referenceappend) envcontextrawtexttargettextfulltextlinkurirlinktexteltr(r43/usr/lib/python3/dist-packages/trac/mimeview/rst.pytrac_get_reference3s,    r6c Cst|jdrE|jj\} } |d} t|dkr|d} nd} t| | || | } | rr7r%r@r6rrrErF) rGr,r.rKr?rIrJr*r+argsr0r(rQr4r4r5 trac_rolews      rT)r9r9r9Nr7cCs.tt|||}||}tjd|dd}|S)Nrhtml)format)rrprocessrraw)r*r+languager. processorrUrXr4r4r5code_formatters r[c Cslt|ds ggfS|j\}}|d} | s,|dd} | d} t| dkr*| d}nd}t||| |ggfS)Nr7rY:r9rr8r)r>r7r$r%r@r[) rGr,r.rKr?rIrJr*r+rYrSr4r4r5code_block_roles      r]c Cs>t|jdsgS|jj\} } |d} d|} t| | | | gS)z Create a code-block directive for docutils. Usage: .. code-block:: language If the language can be syntax highlighted it will be. r7r )r>r?r7joinr[) rGrHrIrJrKrLrMrNrOr*r+rYr.r4r4r5code_block_directives   r`)r9rrrYr9z code-blockc@s4eZdZdZeeeddZddZd ddZ dS) ReStructuredTextRendererz8HTML renderer for plain text in reStructuredText format.ccstr dtfVdSdS)NDocutils) has_docutilsr)selfr4r4r5get_system_infosz(ReStructuredTextRenderer.get_system_infocCstr|dvrdSdS)N)z text/x-rstztext/prs.fallenstein.rstr)rc)rdmimetyper4r4r5get_quality_ratiosz*ReStructuredTextRenderer.get_quality_ratioNc sGfdddtj}t|jt}||_tj}|jf|_ tj |d} t |j||}t ||| t | dddddd} | d S) NcsReZdZdZfddZddZddZfdd Zd d Zd d Z ddZ dS)z;ReStructuredTextRenderer.render..TracHTMLTranslatorzrSpecialized translator with unobtrusive error reporting and some extra security features. cs2j|_tj|_tjj|g|Ri|dSN)render_unsafe_content_render_unsafe_contentset safe_schemes _safe_schemesrHTMLTranslator__init__)rdrSkwargs)wikisysr4r5rps zDReStructuredTextRenderer.render..TracHTMLTranslator.__init__csb|jd}|rt|nd|d}|r%ddfdd|D}nd}|j|dS)Nrrbackrefsz&%sc3s|] }d|fVqdS)z?Nr4).0backrefmessager4r5 s  zcReStructuredTextRenderer.render..TracHTMLTranslator.visit_system_message..z0?)childrenpoprastextr_bodyr))rdnoderCrsspanr4rvr5visit_system_messages zPReStructuredTextRenderer.render..TracHTMLTranslator.visit_system_messagecSsdSrir4rdr}r4r4r5depart_system_messageszQReStructuredTextRenderer.render..TracHTMLTranslator.depart_system_messagecsHtj|||jd}|js"|jddd|jd<dSdS)Nr1z.TracHTMLTranslator.visit_imagecS&||drtj||dSdSNr) _is_safe_urir$rrovisit_referencerr4r4r5rzKReStructuredTextRenderer.render..TracHTMLTranslator.visit_referencecSrr)rr$rrodepart_referencerr4r4r5rrzLReStructuredTextRenderer.render..TracHTMLTranslator.depart_referencecSs2|js|sdS|d}|dkp|d||jvS)NTr\r)rkfindrn)rdr1posr4r4r5rs  zHReStructuredTextRenderer.render..TracHTMLTranslator._is_safe_uriN) __name__ __module__ __qualname____doc__rprrrrrrr4rr4r5TracHTMLTranslators  r)r?rF) halt_levelfile_insertion_enabled raw_enabledwarning_stream)writerparserreadersettings_overrides html_body)rrorr*Writertranslator_classrrAInlinerr7Parserr rrReader) rdr+rgrJfilenamerevrrr?rpartsr4rr5renders" 1   zReStructuredTextRenderer.render)NN) rrrr implementsr r rerhrr4r4r4r5ras  ra)3 __docformat__docutilsr docutils.corerdocutils.parsersrdocutils.readersrdocutils.writersrr ImportErrorrctrac.apir trac.coretrac.mimeview.apir r trac.util.htmlr rrrrtrac.util.translationr trac.wiki.apirtrac.wiki.formatterrrrr6rRrTrHrIrJ directivesregister_directiverolesregister_canonical_roler[r]r` unchangedregister_local_role Componentrar4r4r4r5sV         *