U 5_h @sdZddlZddlmZmZddlmZddlmZddl m Z m Z m Z m Z mZmZmZmZmZddlmZmZmZmZmZmZmZmZmZmZddlmZm Z d d d d d dddddddg Z!Gdd d e Z"Gdd d e Z#Gdd d e Z$Gdd d e Z%Gdd d e Z&Gddde Z'Gddde'Z(Gddde Z)Gddde Z*Gddde Z+Gddde Z,Gd dde Z-dS)!z pygments.lexers.markup ~~~~~~~~~~~~~~~~~~~~~~ Lexers for non-HTML markup languages. :copyright: Copyright 2006-2020 by the Pygments team, see AUTHORS. :license: BSD, see LICENSE for details. N) HtmlLexerXmlLexer)JavascriptLexer)CssLexer) RegexLexerDelegatingLexerincludebygroupsusingthis do_insertionsdefaultwords) TextCommentOperatorKeywordNameStringNumber PunctuationGenericOther) get_bool_opt ClassNotFound BBCodeLexer MoinWikiLexerRstLexerTexLexer GroffLexerMozPreprocHashLexerMozPreprocPercentLexerMozPreprocXulLexerMozPreprocJavascriptLexerMozPreprocCssLexer MarkdownLexerTiddlyWiki5Lexerc@sheZdZdZdZdgZdgZdefdedfdefgd efd e e j e e fd e e e fd ed fgdZdS)rzR A lexer that highlights BBCode(-like) syntax. .. versionadded:: 0.6 ZBBCodeZbbcodez text/x-bbcodez[^[]+z\[/?\w+tagz\[\s+z(\w+)(=)("?[^\s"\]]+"?)z(=)("?[^\s"\]]+"?)z\]#pop)rootr'N)__name__ __module__ __qualname____doc__namealiases mimetypesrrr r Attributerrtokensr4r4@/usr/local/lib/python3.8/site-packages/pygments/lexers/markup.pyrs$ c@seZdZdZdZddgZgZdgZej ej BZ de fde eefde ejeeejefd e ejejd fd e fd e eejefd e eejefdefde eeefdefdefdefdefg dejdfdedfde jfde jfgdZdS)rzI For MoinMoin (and Trac) Wiki markup. .. versionadded:: 0.7 zMoinMoin/Trac Wiki markupz trac-wikiZmoinztext/x-trac-wikiz^#.*$z(!)(\S+)z^(=+)([^=]+)(=+)(\s*#.+)?$z(\{\{\{)(\n#!.+)? codeblockz(\'\'\'?|\|\||`|__|~~|\^|,,|::)z^( +)([.*-])( )z^( +)([a-z]{1,5}\.)( )z\[\[\w+.*?\]\]z(\[[^\s\]]+)(\s+[^\]]+?)?(\])z^----+$z[^\n\'\[{!_~^,|]+\n.z\}\}\}r)z\{\{\{z#pushz[^{}]+)r*r6N)r+r,r-r.r/r0 filenamesr1re MULTILINE IGNORECASEflagsrr rrrHeadingr r rrBuiltinZ NamespacePreprocr3r4r4r4r5r?s<    c@s|eZdZdZdZdddgZddgZdd gZej Z d d Z d Z d Z dee ee fZdeejeejeejefdeejeejefdeeeeeddfdeeeeeddfdeeeeeddfdeeeeeddfdeeeeeddfdeeeeeddfde fdeeeejeeeeddfdeeeejeeddfdeeeejeeddfdeeeejeejeeeeddfdejfdeeejefd eeeddeeddfd!eej eeeeefe!dgd"efd#ed$fd%eeej"efd&efd'eej#ej$fd(eej$ej#fd)ej%fd*ej&fd+efd,ejfd-efd.efg d/efd#eed0fd1efgd2Z'd3d4Z(d5d6Z)d7S)8ra For `reStructuredText `_ markup. .. versionadded:: 0.7 Additional options accepted: `handlecodeblocks` Highlight the contents of ``.. sourcecode:: language``, ``.. code:: language`` and ``.. code-block:: language`` directives with a lexer for the given language (default: ``True``). .. versionadded:: 0.8 ZreStructuredTextZrstrestZrestructuredtextz*.rstz*.restz text/x-rstztext/prs.fallenstein.rstc csddlm}|dt|dfV|dt|dfV|dtj|dfV|dt|dfV|dt|dfV|dt|dfV|d t|d fVd}|j rz||d }Wnt k rYnX|d }t |}||d |d |d }|dkr@|d t |fVdSg}|d}d}|D]P} t | |kr|t |dt| d|fgf|| |d7}n|| 7}qVt|||EdHdS)Nrget_lexer_by_name T)pygments.lexersrCstartrgrouprrWordrhandlecodeblocksstriprlenr splitlinesappendr get_tokens_unprocessed) selfmatchrClexerZ indentionZindention_sizecodeZinsZ codelinesliner4r4r5_handle_sourcecodes:  "  " zRstLexer._handle_sourcecodeu'")]}>’”»!?u‐‑‒–— z((?=$)|(?=[-/:.,; \n\x00%s%s]))zH^(=+|-+|`+|:+|\.+|\'+|"+|~+|\^+|_+|\*+|\++|#+)([ \t]*\n)(.+)(\n)(\1)(\n)zc^(\S.*)(\n)(={3,}|-{3,}|`{3,}|:{3,}|\.{3,}|\'{3,}|"{3,}|~{3,}|\^{3,}|_{3,}|\*{3,}|\+{3,}|#{3,})(\n)z!^(\s*)([-*+])( .+\n(?:\1 .+\n)*)inlinestatez1^(\s*)([0-9#ivxlcmIVXLCM]+\.)( .+\n(?:\1 .+\n)*)z4^(\s*)(\(?[0-9#ivxlcmIVXLCM]+\))( .+\n(?:\1 .+\n)*)z$^(\s*)([A-Z]+\.)( .+\n(?:\1 .+\n)+)z*^(\s*)(\(?[A-Za-z]+\))( .+\n(?:\1 .+\n)+)z^(\s*)(\|)( .+\n(?:\| .+\n)*)zl^( *\.\.)(\s*)((?:source)?code(?:-block)?)(::)([ \t]*)([^\n]+)(\n[ \t]*\n)([ \t]+)(.*)(\n)((?:(?:\8.*)?\n)+)z,^( *\.\.)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))z'^( *\.\.)(\s*)(_(?:[^:\\]|\\.)+:)(.*?)$z^( *\.\.)(\s*)(\[.+\])(.*?)$z9^( *\.\.)(\s*)(\|.+\|)(\s*)([\w:-]+?)(::)(?:([ \t]*)(.*))z^ *\.\..*(\n( +.*\n|\n)+)?z+^( *)(:(?:\\\\|\\:|[^:\n])+:(?=\s))([ \t]*)z!^(\S.*(?)(`__?)z`.+?`__?z(`.+?`)(:[a-zA-Z0-9:-]+?:)?z(:[a-zA-Z0-9:-]+?:)(`.+?`)z \*\*.+?\*\*z\*.+?\*z\[.*?\]_z<.+?>z [^\\\n\[*`:]+r8z[^`]+r)`)r*r`rdcKs t|dd|_tj|f|dSNrTTrrTr__init__rZoptionsr4r4r5rhszRstLexer.__init__cCs|dddkr$|dddkr$dS|d}|d|d}|dkr|dd|kr||dd kr||d||dkrd SdS) NrEz..rFr8g333333? rDz-=g?)find)textZp1Zp2r4r4r5 analyse_texts  zRstLexer.analyse_textN)*r+r,r-r.r/r0r9r1r:r;r=r_ZclosersZunicode_delimitersescapeZend_string_suffixr rr>rrr r rrrSrTagrr@ClassrEscaperZInterpolVariabler2StrongEmphr3rhror4r4r4r5rls )    :    Rc @seZdZdZdZddgZdddgZdd gZd efd e j fd e j fgd e j dfde dfde j dfde dfde dfde feddefgde jfeddefdefde j fgde dfde dfedgde dfde dfde j fedgde jfd e fedgd!Zd"d#Zd$S)%rz< Lexer for the TeX and LaTeX typesetting languages. ZTeXZtexZlatexz*.texz*.auxz*.tocz text/x-texz text/x-latexz%.*?\nz[{}]z[&_^]z\\\[ displaymathz\\\( inlinemathz\$\$z\$z\\([a-zA-Z]+|.)commandz\\$generalz [^\\$%&_^{}]+[0-9]+z[-=!+*/()\[\]]z[^=!+*/()\[\]\\$%&_^{}0-9-]+z\\\)r)mathz\\\]z\[.*?\]z\*)rzr*r|rxrwrycCs(dD]}|dt||krdSqdS)N)z\documentclassz\inputz\documentstylez\relaxT)rV)rnrQr4r4r5roFszTexLexer.analyse_textN)r+r,r-r.r/r0r9r1rrr?rBacktickrrrrtrrr2r r3ror4r4r4r5rsN    )c @seZdZdZdZdddgZddgZdd gZd ee e d fd e d fd e dfe dge dd e fde dfgdefdejfdejfdejfdejfde d fgde dfe ddejfdefdefde fgdZddZdS) rz Lexer for the (g)roff typesetting language, supporting groff extensions. Mainly useful for highlighting manpage sources. .. versionadded:: 0.6 ZGroffZgroffZnroffZmanz *.[1234567]z*.manzapplication/x-troffz text/troffz (\.)(\w+)requestz\.z[^\\\n]+textlineescapesr7r)z \\"[^\n]*z\\[fn]\wz\\\(.{2}z \\.\[.*\]rcz\\\nz "[^\n"]+"z\d+z\S+r()r*rrr~cCs`|dddkrdS|dddkr(dS|dddkr`_ markup. .. versionadded:: 2.2 ZmarkdownZmdz*.mdz *.markdownztext/x-markdownccsddlm}|dtj|dfV|dtj|dfV|dt|dfVd}|jrz||d}Wnt k rYnX|d}|dkr|dt|fVnt g| |EdH|dtj|dfVdS zV match args: 1:backticks, 2:lang_name, 3:newline, 4:code, 5:backticks rrBrDrErFNrGrH) rPrCrQrr}rRrrTrUrr rYrZr[rCr\r]r4r4r5_handle_codeblocks  zMarkdownLexer._handle_codeblockz(^#[^#].+)(\n)z(^#{2,6}[^#].+)(\n)z^(.+)(\n)(=+)(\n)z^(.+)(\n)(-+)(\n)z^(\s*)([*-] )(\[[ xX]\])( .+\n)r`raz^(\s*)([*-])(\s)(.+\n)z^(\s*)([0-9]+\.)( .+\n)z^(\s*>\s)(.+\n)z^(\s*```\n(.+\n)+\s*```$)z&^(\s*```)(\w+)(\n)([\w\W]*?)(^\s*```$)z(\n\n)((\ {4}|\t)(.+\n)+)rcz([^`])(`[^`\n]+`)z(\*\*[^* \n][^*\n]*\*\*)z(\_\_[^_ \n][^_\n]*\_\_)z(\*[^* \n][^*\n]*\*)z(\_[^_ \n][^_\n]*\_)z([^~]*)(~~[^~]+~~)z [@#][\w/:]+z (!?\[)([^]]+)(\])(\()([^)]+)(\))z(\[)([^]]+)(\])(\[)([^]]*)(\])z^(\s*\[)([^]]*)(\]:\s*)(.+)z[^\\\s]+r8)r*r`cKs t|dd|_tj|f|dSrfrgrir4r4r5rh]szMarkdownLexer.__init__N)!r+r,r-r.r/r0r9r1r:r;r=rr rr>r Subheadingrr r rvrr}rruDeletedrZEntityrqr2ZLabelr3rhr4r4r4r5r%s`    Bc@seZdZdZdZdgZdgZdgZej Z ddZ dd Z d e eeejfd e ejefd e ejefd e eeeeeddfde eeefde ejfde ejfde ejfde ejfde eeefde fde fededgeddddefgdefdejfde eejefd e eejfd!e eejfd"e eejfd#e eejefd$e eejefd%ejfd&ejfd'ejfd(ejfd)ejfd*ejfd+ej fd,e eejefd-e eejeej!efd.e eejefd/e ej!fd0efd1efgd2Z"d3d4Z#d5S)6r&zf For `TiddlyWiki5 `_ markup. .. versionadded:: 2.7 Ztiddlertidz*.tidztext/vnd.tiddlywikiccsddlm}|dt|dfV|dt|dfV|dt|dfVd}|jrz||d}Wntk rYnX|d}|dkr|dt|fVdSt g| |EdH|dt|dfVdSr) rPrCrQrrRrrTrUrr rYrr4r4r5rns   z"TiddlyWiki5Lexer._handle_codeblockccsddlm}|dt|dfV|dt|dfVd}|jrhz |d}Wntk rfYnX|d}|dkr|dt|fVdStg||EdH|dt|dfVdS) zP match args: 1:style tag 2:newline, 3:code, 4:closing style tag rrBrDrENZcssrFrG) rPrCrQrrRrTrr rYrr4r4r5_handle_cssblocks   z!TiddlyWiki5Lexer._handle_cssblockz^(title)(:\s)(.+\n)z^(!)([^!].+\n)z^(!{2,6})(.+\n)z^(\s*)([*#>]+)(\s*)(.+\n)r`raz^(<<<.*\n)([\w\W]*?)(^<<<.*$)z ^(\|.*?\|h)$z^(\|.*?\|[cf])$z ^(\|.*?\|k)$z^(;.*)$z^(```\n)([\w\W]*?)(^```$)z ^(```)(\w+)(\n)([\w\W]*?)(^```$)z$^($)keywords)z\definez\endZcaptionZcreatedZmodifiedZtagstitletype^z\b)prefixsuffixrcz\d{17}z(\s)(//[^/]+//)((?=\W|\n))z(\s)(\^\^[^\^]+\^\^)z(\s)(,,[^,]+,,)z(\s)(__[^_]+__)z(\s)(''[^']+'')((?=\W|\n))z(\s)(~~[^~]+~~)((?=\W|\n))z <<[^>]+>>z \$\$[^$]+\$\$z \$\([^)]+\)\$z^@@.*$z ]+>z`[^`]+`z&\S*?;z(\[{2})([^]\|]+)(\]{2})z$(\[{2})([^]\|]+)(\|)([^]\|]+)(\]{2})z(\{{2})([^}]+)(\}{2})z(\b.?.?tps?://[^\s"]+)z[\w]+r8)r*rr`cKs t|dd|_tj|f|dSrfrgrir4r4r5rhszTiddlyWiki5Lexer.__init__N)$r+r,r-r.r/r0r9r1r:r;r=rrr rrrr>rr r rrurvrrqrrrZIntegerrr}ZRegexr2r3rhr4r4r4r5r&bs        U).r.r:Zpygments.lexers.htmlrrZpygments.lexers.javascriptrZpygments.lexers.cssrZpygments.lexerrrrr r r r r rZpygments.tokenrrrrrrrrrrZ pygments.utilrr__all__rrrrrr r!r"r#r$r%r&r4r4r4r5s:   ,0 !-(:8)o