2018-07-20 19:14:22 +02:00
/ * P r i s m J S 1 . 1 5 . 0
2018-08-30 23:28:52 +02:00
https : //prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+c+csharp+cpp+coffeescript+ruby+css-extras+diff+docker+elixir+elm+markup-templating+erlang+fsharp+flow+git+go+graphql+less+handlebars+java+json+kotlin+latex+markdown+makefile+objectivec+ocaml+perl+php+php-extras+sql+scss+python+jsx+typescript+reason+rust+sass+pug+swift+yaml+haml+tsx&plugins=line-numbers+toolbar+copy-to-clipboard */
var _self = "undefined" != typeof window ? window : "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope ? self : { } , Prism = function ( ) { var e = /\blang(?:uage)?-([\w-]+)\b/i , t = 0 , n = _self . Prism = { manual : _self . Prism && _self . Prism . manual , disableWorkerMessageHandler : _self . Prism && _self . Prism . disableWorkerMessageHandler , util : { encode : function ( e ) { return e instanceof r ? new r ( e . type , n . util . encode ( e . content ) , e . alias ) : "Array" === n . util . type ( e ) ? e . map ( n . util . encode ) : e . replace ( /&/g , "&" ) . replace ( /</g , "<" ) . replace ( /\u00a0/g , " " ) } , type : function ( e ) { return Object . prototype . toString . call ( e ) . match ( /\[object (\w+)\]/ ) [ 1 ] } , objId : function ( e ) { return e . _ _id || Object . defineProperty ( e , "__id" , { value : ++ t } ) , e . _ _id } , clone : function ( e , t ) { var r = n . util . type ( e ) ; switch ( t = t || { } , r ) { case "Object" : if ( t [ n . util . objId ( e ) ] ) return t [ n . util . objId ( e ) ] ; var a = { } ; t [ n . util . objId ( e ) ] = a ; for ( var l in e ) e . hasOwnProperty ( l ) && ( a [ l ] = n . util . clone ( e [ l ] , t ) ) ; return a ; case "Array" : if ( t [ n . util . objId ( e ) ] ) return t [ n . util . objId ( e ) ] ; var a = [ ] ; return t [ n . util . objId ( e ) ] = a , e . forEach ( function ( e , r ) { a [ r ] = n . util . clone ( e , t ) } ) , a } return e } } , languages : { extend : function ( e , t ) { var r = n . util . clone ( n . languages [ e ] ) ; for ( var a in t ) r [ a ] = t [ a ] ; return r } , insertBefore : function ( e , t , r , a ) { a = a || n . languages ; var l = a [ e ] ; if ( 2 == arguments . length ) { r = arguments [ 1 ] ; for ( var i in r ) r . hasOwnProperty ( i ) && ( l [ i ] = r [ i ] ) ; return l } var o = { } ; for ( var s in l ) if ( l . hasOwnProperty ( s ) ) { if ( s == t ) for ( var i in r ) r . hasOwnProperty ( i ) && ( o [ i ] = r [ i ] ) ; o [ s ] = l [ s ] } var u = a [ e ] ; return a [ e ] = o , n . languages . DFS ( n . languages , function ( t , n ) { n === u && t != e && ( this [ t ] = o ) } ) , o } , DFS : function ( e , t , r , a ) { a = a || { } ; for ( var l in e ) e . hasOwnProperty ( l ) && ( t . call ( e , l , e [ l ] , r || l ) , "Object" !== n . util . type ( e [ l ] ) || a [ n . util . objId ( e [ l ] ) ] ? "Array" !== n . util . type ( e [ l ] ) || a [ n . util . objId ( e [ l ] ) ] || ( a [ n . util . objId ( e [ l ] ) ] = ! 0 , n . languages . DFS ( e [ l ] , t , l , a ) ) : ( a [ n . util . objId ( e [ l ] ) ] = ! 0 , n . languages . DFS ( e [ l ] , t , null , a ) ) ) } } , plugins : { } , highlightAll : function ( e , t ) { n . highlightAllUnder ( document , e , t ) } , highlightAllUnder : function ( e , t , r ) { var a = { callback : r , selector : 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code' } ; n . hooks . run ( "before-highlightall" , a ) ; for ( var l , i = a . elements || e . querySelectorAll ( a . selector ) , o = 0 ; l = i [ o ++ ] ; ) n . highlightElement ( l , t === ! 0 , a . callback ) } , highlightElement : function ( t , r , a ) { for ( var l , i , o = t ; o && ! e . test ( o . className ) ; ) o = o . parentNode ; o && ( l = ( o . className . match ( e ) || [ , "" ] ) [ 1 ] . toLowerCase ( ) , i = n . languages [ l ] ) , t . className = t . className . replace ( e , "" ) . replace ( /\s+/g , " " ) + " language-" + l , t . parentNode && ( o = t . parentNode , /pre/i . test ( o . nodeName ) && ( o . className = o . className . replace ( e , "" ) . replace ( /\s+/g , " " ) + " language-" + l ) ) ; var s = t . textContent , u = { element : t , language : l , grammar : i , code : s } ; if ( n . hooks . run ( "before-sanity-check" , u ) , ! u . code || ! u . grammar ) return u . code && ( n . hooks . run ( "before-highlight" , u ) , u . element . textContent = u . code , n . hooks . run ( "after-highlight" , u ) ) , n . hooks . run ( "complete" , u ) , void 0 ; if ( n . hooks . run ( "before-highlight" , u ) , r && _self . Worker ) { var g = new Worker ( n . filename ) ; g . onmessage = function ( e ) { u . highlightedCode = e . data , n . hooks . run ( "before-insert" , u ) , u . element . innerHTML = u . highlightedCode , a && a . call ( u . element ) , n . hooks . run ( "after-highlight" , u ) , n . hooks . run ( "complete" , u ) } , g . postMessage ( JSON . stringify ( { language : u . language , code : u . code , immediateClose : ! 0 } ) ) } else u . highlightedCode = n . highlight ( u . code , u . grammar , u . language ) , n . hooks . run ( "before-insert" , u ) , u . element . innerHTML = u . highlightedCode , a && a . call ( t ) , n . hooks . run ( "after-highlight" , u ) , n . hooks . run ( "complete" , u ) } , highlight : function ( e , t , a ) { var l = { code : e , grammar : t , language : a } ; return n . hooks . run ( "before-tokenize" , l ) , l . tokens = n . tokenize ( l . code , l . grammar ) , n . hooks . run ( "after-tokenize" , l ) , r . stringify ( n . util . encode ( l . tokens ) , l . language ) } , matchGrammar : function ( e , t , r , a , l , i , o ) { var s = n . Token ; for ( var u in r ) if ( r . hasOwnProperty ( u ) && r [ u ] ) { if ( u == o ) return ; var g = r [ u ] ; g = "Array" === n . util . type ( g ) ? g : [ g ] ; for ( var c = 0 ; c < g . length ; ++ c ) { var h = g [ c ] , f = h . inside , d = ! ! h . lookbehind , m = ! ! h . greedy , p = 0 , y = h . alias ; if ( m && ! h . pattern . global ) { var v = h . pattern . toString ( ) . match ( /[imuy]*$/ ) [ 0 ] ; h . pattern = RegExp ( h . pattern . source , v + "g" ) } h = h . pattern || h ; for ( var b = a , k = l ; b < t . length ; k += t [ b ] . length , ++ b ) { var w = t
2018-07-20 19:14:22 +02:00
Prism . languages . markup = { comment : /<!--[\s\S]*?-->/ , prolog : /<\?[\s\S]+?\?>/ , doctype : /<!DOCTYPE[\s\S]+?>/i , cdata : /<!\[CDATA\[[\s\S]*?]]>/i , tag : { pattern : /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i , greedy : ! 0 , inside : { tag : { pattern : /^<\/?[^\s>\/]+/i , inside : { punctuation : /^<\/?/ , namespace : /^[^\s>\/:]+:/ } } , "attr-value" : { pattern : /=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i , inside : { punctuation : [ /^=/ , { pattern : /(^|[^\\])["']/ , lookbehind : ! 0 } ] } } , punctuation : /\/?>/ , "attr-name" : { pattern : /[^\s>\/]+/ , inside : { namespace : /^[^\s>\/:]+:/ } } } } , entity : /&#?[\da-z]{1,8};/i } , Prism . languages . markup . tag . inside [ "attr-value" ] . inside . entity = Prism . languages . markup . entity , Prism . hooks . add ( "wrap" , function ( a ) { "entity" === a . type && ( a . attributes . title = a . content . replace ( /&/ , "&" ) ) } ) , Prism . languages . xml = Prism . languages . markup , Prism . languages . html = Prism . languages . markup , Prism . languages . mathml = Prism . languages . markup , Prism . languages . svg = Prism . languages . markup ;
Prism . languages . css = { comment : /\/\*[\s\S]*?\*\// , atrule : { pattern : /@[\w-]+?.*?(?:;|(?=\s*\{))/i , inside : { rule : /@[\w-]+/ } } , url : /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i , selector : /[^{}\s][^{};]*?(?=\s*\{)/ , string : { pattern : /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/ , greedy : ! 0 } , property : /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i , important : /\B!important\b/i , "function" : /[-a-z0-9]+(?=\()/i , punctuation : /[(){};:]/ } , Prism . languages . css . atrule . inside . rest = Prism . languages . css , Prism . languages . markup && ( Prism . languages . insertBefore ( "markup" , "tag" , { style : { pattern : /(<style[\s\S]*?>)[\s\S]*?(?=<\/style>)/i , lookbehind : ! 0 , inside : Prism . languages . css , alias : "language-css" , greedy : ! 0 } } ) , Prism . languages . insertBefore ( "inside" , "attr-value" , { "style-attr" : { pattern : /\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i , inside : { "attr-name" : { pattern : /^\s*style/i , inside : Prism . languages . markup . tag . inside } , punctuation : /^\s*=\s*['"]|['"]\s*$/ , "attr-value" : { pattern : /.+/i , inside : Prism . languages . css } } , alias : "language-css" } } , Prism . languages . markup . tag ) ) ;
Prism . languages . clike = { comment : [ { pattern : /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/ , lookbehind : ! 0 } , { pattern : /(^|[^\\:])\/\/.*/ , lookbehind : ! 0 , greedy : ! 0 } ] , string : { pattern : /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/ , greedy : ! 0 } , "class-name" : { pattern : /((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i , lookbehind : ! 0 , inside : { punctuation : /[.\\]/ } } , keyword : /\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/ , "boolean" : /\b(?:true|false)\b/ , "function" : /[a-z0-9_]+(?=\()/i , number : /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i , operator : /--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/ , punctuation : /[{}[\];(),.:]/ } ;
2018-08-30 23:28:52 +02:00
Prism . languages . javascript = Prism . languages . extend ( "clike" , { "class-name" : [ Prism . languages . clike [ "class-name" ] , { pattern : /(^|[^$\w\xA0-\uFFFF])[_$A-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\.(?:prototype|constructor))/ , lookbehind : ! 0 } ] , keyword : [ { pattern : /((?:^|})\s*)(?:catch|finally)\b/ , lookbehind : ! 0 } , /\b(?:as|async|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/ ] , number : /\b(?:(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+)n?|\d+n|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/ , "function" : /[_$a-zA-Z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\(|\.(?:apply|bind|call)\()/ , operator : /-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/ } ) , Prism . languages . javascript [ "class-name" ] [ 0 ] . pattern = /(\b(?:class|interface|extends|implements|instanceof|new)\s+)[\w.\\]+/ , Prism . languages . insertBefore ( "javascript" , "keyword" , { regex : { pattern : /((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^\/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/ , lookbehind : ! 0 , greedy : ! 0 } , "function-variable" : { pattern : /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*[=:]\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i , alias : "function" } , constant : /\b[A-Z][A-Z\d_]*\b/ } ) , Prism . languages . insertBefore ( "javascript" , "string" , { "template-string" : { pattern : /`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/ , greedy : ! 0 , inside : { interpolation : { pattern : /\${[^}]+}/ , inside : { "interpolation-punctuation" : { pattern : /^\${|}$/ , alias : "punctuation" } , rest : Prism . languages . javascript } } , string : /[\s\S]+/ } } } ) , Prism . languages . markup && Prism . languages . insertBefore ( "markup" , "tag" , { script : { pattern : /(<script[\s\S]*?>)[\s\S]*?(?=<\/script>)/i , lookbehind : ! 0 , inside : Prism . languages . javascript , alias : "language-javascript" , greedy : ! 0 } } ) , Prism . languages . js = Prism . languages . javascript ;
Prism . languages . c = Prism . languages . extend ( "clike" , { keyword : /\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/ , operator : />>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*\/%&|^!=<>]=?/ , number : /(?:\b0x[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i } ) , Prism . languages . insertBefore ( "c" , "string" , { macro : { pattern : /(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im , lookbehind : ! 0 , alias : "property" , inside : { string : { pattern : /(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/ , lookbehind : ! 0 } , directive : { pattern : /(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/ , lookbehind : ! 0 , alias : "keyword" } } } , constant : /\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/ } ) , delete Prism . languages . c [ "class-name" ] , delete Prism . languages . c [ "boolean" ] ;
Prism . languages . csharp = Prism . languages . extend ( "clike" , { keyword : /\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\b/ , string : [ { pattern : /@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/ , greedy : ! 0 } , { pattern : /("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/ , greedy : ! 0 } ] , "class-name" : [ { pattern : /\b[A-Z]\w*(?:\.\w+)*\b(?=\s+\w+)/ , inside : { punctuation : /\./ } } , { pattern : /(\[)[A-Z]\w*(?:\.\w+)*\b/ , lookbehind : ! 0 , inside : { punctuation : /\./ } } , { pattern : /(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/ , lookbehind : ! 0 , inside : { punctuation : /\./ } } , { pattern : /((?:\b(?:class|interface|new)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/ , lookbehind : ! 0 , inside : { punctuation : /\./ } } ] , number : /\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)f?/i } ) , Prism . languages . insertBefore ( "csharp" , "class-name" , { "generic-method" : { pattern : /\w+\s*<[^>\r\n]+?>\s*(?=\()/ , inside : { "function" : /^\w+/ , "class-name" : { pattern : /\b[A-Z]\w*(?:\.\w+)*\b/ , inside : { punctuation : /\./ } } , keyword : Prism . languages . csharp . keyword , punctuation : /[<>(),.:]/ } } , preprocessor : { pattern : /(^\s*)#.*/m , lookbehind : ! 0 , alias : "property" , inside : { directive : { pattern : /(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/ , lookbehind : ! 0 , alias : "keyword" } } } } ) , Prism . languages . dotnet = Prism . languages . csharp ;
Prism . languages . cpp = Prism . languages . extend ( "c" , { keyword : /\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/ , "boolean" : /\b(?:true|false)\b/ , operator : />>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*\/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/ } ) , Prism . languages . insertBefore ( "cpp" , "keyword" , { "class-name" : { pattern : /(class\s+)\w+/i , lookbehind : ! 0 } } ) , Prism . languages . insertBefore ( "cpp" , "string" , { "raw-string" : { pattern : /R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/ , alias : "string" , greedy : ! 0 } } ) ;
! function ( e ) { var t = /#(?!\{).+/ , n = { pattern : /#\{[^}]+\}/ , alias : "variable" } ; e . languages . coffeescript = e . languages . extend ( "javascript" , { comment : t , string : [ { pattern : /'(?:\\[\s\S]|[^\\'])*'/ , greedy : ! 0 } , { pattern : /"(?:\\[\s\S]|[^\\"])*"/ , greedy : ! 0 , inside : { interpolation : n } } ] , keyword : /\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/ , "class-member" : { pattern : /@(?!\d)\w+/ , alias : "variable" } } ) , e . languages . insertBefore ( "coffeescript" , "comment" , { "multiline-comment" : { pattern : /###[\s\S]+?###/ , alias : "comment" } , "block-regex" : { pattern : /\/{3}[\s\S]*?\/{3}/ , alias : "regex" , inside : { comment : t , interpolation : n } } } ) , e . languages . insertBefore ( "coffeescript" , "string" , { "inline-javascript" : { pattern : /`(?:\\[\s\S]|[^\\`])*`/ , inside : { delimiter : { pattern : /^`|`$/ , alias : "punctuation" } , rest : e . languages . javascript } } , "multiline-string" : [ { pattern : /'''[\s\S]*?'''/ , greedy : ! 0 , alias : "string" } , { pattern : /"""[\s\S]*?"""/ , greedy : ! 0 , alias : "string" , inside : { interpolation : n } } ] } ) , e . languages . insertBefore ( "coffeescript" , "keyword" , { property : /(?!\d)\w+(?=\s*:(?!:))/ } ) , delete e . languages . coffeescript [ "template-string" ] } ( Prism ) ;
! function ( e ) { e . languages . ruby = e . languages . extend ( "clike" , { comment : [ /#.*/ , { pattern : /^=begin(?:\r?\n|\r)(?:.*(?:\r?\n|\r))*?=end/m , greedy : ! 0 } ] , keyword : /\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/ } ) ; var n = { pattern : /#\{[^}]+\}/ , inside : { delimiter : { pattern : /^#\{|\}$/ , alias : "tag" } , rest : e . languages . ruby } } ; e . languages . insertBefore ( "ruby" , "keyword" , { regex : [ { pattern : /%r([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/ , greedy : ! 0 , inside : { interpolation : n } } , { pattern : /%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/ , greedy : ! 0 , inside : { interpolation : n } } , { pattern : /%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/ , greedy : ! 0 , inside : { interpolation : n } } , { pattern : /%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/ , greedy : ! 0 , inside : { interpolation : n } } , { pattern : /%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/ , greedy : ! 0 , inside : { interpolation : n } } , { pattern : /(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/ , lookbehind : ! 0 , greedy : ! 0 } ] , variable : /[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/ , symbol : { pattern : /(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/ , lookbehind : ! 0 } } ) , e . languages . insertBefore ( "ruby" , "number" , { builtin : /\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/ , constant : /\b[A-Z]\w*(?:[?!]|\b)/ } ) , e . languages . ruby . string = [ { pattern : /%[qQiIwWxs]?([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/ , greedy : ! 0 , inside : { interpolation : n } } , { pattern : /%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/ , greedy : ! 0 , inside : { interpolation : n } } , { pattern : /%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/ , greedy : ! 0 , inside : { interpolation : n } } , { pattern : /%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/ , greedy : ! 0 , inside : { interpolation : n } } , { pattern : /%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/ , greedy : ! 0 , inside : { interpolation : n } } , { pattern : /("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/ , greedy : ! 0 , inside : { interpolation : n } } ] } ( Prism ) ;
Prism . languages . css . selector = { pattern : /[^{}\s][^{}]*(?=\s*\{)/ , inside : { "pseudo-element" : /:(?:after|before|first-letter|first-line|selection)|::[-\w]+/ , "pseudo-class" : /:[-\w]+(?:\(.*\))?/ , "class" : /\.[-:.\w]+/ , id : /#[-:.\w]+/ , attribute : /\[[^\]]+\]/ } } , Prism . languages . insertBefore ( "css" , "function" , { hexcode : /#[\da-f]{3,8}/i , entity : /\\[\da-f]{1,8}/i , number : /[\d%.]+/ } ) ;
Prism . languages . diff = { coord : [ /^(?:\*{3}|-{3}|\+{3}).*$/m , /^@@.*@@$/m , /^\d+.*$/m ] , deleted : /^[-<].*$/m , inserted : /^[+>].*$/m , diff : { pattern : /^!(?!!).+$/m , alias : "important" } } ;
Prism . languages . docker = { keyword : { pattern : /(^\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)/im , lookbehind : ! 0 } , string : /("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/ , comment : /#.*/ , punctuation : /---|\.\.\.|[:[\]{}\-,|>?]/ } , Prism . languages . dockerfile = Prism . languages . docker ;
Prism . languages . elixir = { comment : { pattern : /#.*/m , lookbehind : ! 0 } , regex : { pattern : /~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/ , greedy : ! 0 } , string : [ { pattern : /~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/ , greedy : ! 0 , inside : { } } , { pattern : /("""|''')[\s\S]*?\1/ , greedy : ! 0 , inside : { } } , { pattern : /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/ , greedy : ! 0 , inside : { } } ] , atom : { pattern : /(^|[^:]):\w+/ , lookbehind : ! 0 , alias : "symbol" } , "attr-name" : /\w+:(?!:)/ , capture : { pattern : /(^|[^&])&(?:[^&\s\d()][^\s()]*|(?=\())/ , lookbehind : ! 0 , alias : "function" } , argument : { pattern : /(^|[^&])&\d+/ , lookbehind : ! 0 , alias : "variable" } , attribute : { pattern : /@\w+/ , alias : "variable" } , number : /\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i , keyword : /\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\b/ , "boolean" : /\b(?:true|false|nil)\b/ , operator : [ /\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/ , { pattern : /([^<])<(?!<)/ , lookbehind : ! 0 } , { pattern : /([^>])>(?!>)/ , lookbehind : ! 0 } ] , punctuation : /<<|>>|[.,%\[\]{}()]/ } , Prism . languages . elixir . string . forEach ( function ( e ) { e . inside = { interpolation : { pattern : /#\{[^}]+\}/ , inside : { delimiter : { pattern : /^#\{|\}$/ , alias : "punctuation" } , rest : Prism . languages . elixir } } } } ) ;
Prism . languages . elm = { comment : /--.*|{-[\s\S]*?-}/ , "char" : { pattern : /'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+))'/ , greedy : ! 0 } , string : [ { pattern : /"""[\s\S]*?"""/ , greedy : ! 0 } , { pattern : /"(?:[^\\"\r\n]|\\(?:[abfnrtv\\"]|\d+|x[0-9a-fA-F]+))*"/ , greedy : ! 0 } ] , import _statement : { pattern : /^\s*import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+([A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m , inside : { keyword : /\b(?:import|as|exposing)\b/ } } , keyword : /\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/ , builtin : /\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/ , number : /\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i , operator : /\s\.\s|[+\-\/*=.$<>:&|^?%#@~!]{2,}|[+\-\/*=$<>:&|^?%#@~!]/ , hvariable : /\b(?:[A-Z]\w*\.)*[a-z]\w*\b/ , constant : /\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/ , punctuation : /[{}[\]|(),.:]/ } ;
2018-07-20 19:14:22 +02:00
Prism . languages [ "markup-templating" ] = { } , Object . defineProperties ( Prism . languages [ "markup-templating" ] , { buildPlaceholders : { value : function ( e , t , n , a ) { e . language === t && ( e . tokenStack = [ ] , e . code = e . code . replace ( n , function ( n ) { if ( "function" == typeof a && ! a ( n ) ) return n ; for ( var r = e . tokenStack . length ; - 1 !== e . code . indexOf ( "___" + t . toUpperCase ( ) + r + "___" ) ; ) ++ r ; return e . tokenStack [ r ] = n , "___" + t . toUpperCase ( ) + r + "___" } ) , e . grammar = Prism . languages . markup ) } } , tokenizePlaceholders : { value : function ( e , t ) { if ( e . language === t && e . tokenStack ) { e . grammar = Prism . languages [ t ] ; var n = 0 , a = Object . keys ( e . tokenStack ) , r = function ( o ) { if ( ! ( n >= a . length ) ) for ( var i = 0 ; i < o . length ; i ++ ) { var g = o [ i ] ; if ( "string" == typeof g || g . content && "string" == typeof g . content ) { var c = a [ n ] , s = e . tokenStack [ c ] , l = "string" == typeof g ? g : g . content , p = l . indexOf ( "___" + t . toUpperCase ( ) + c + "___" ) ; if ( p > - 1 ) { ++ n ; var f , u = l . substring ( 0 , p ) , _ = new Prism . Token ( t , Prism . tokenize ( s , e . grammar , t ) , "language-" + t , s ) , k = l . substring ( p + ( "___" + t . toUpperCase ( ) + c + "___" ) . length ) ; if ( u || k ? ( f = [ u , _ , k ] . filter ( function ( e ) { return ! ! e } ) , r ( f ) ) : f = _ , "string" == typeof g ? Array . prototype . splice . apply ( o , [ i , 1 ] . concat ( f ) ) : g . content = f , n >= a . length ) break } } else g . content && "string" != typeof g . content && r ( g . content ) } } ; r ( e . tokens ) } } } } ) ;
2018-08-30 23:28:52 +02:00
Prism . languages . erlang = { comment : /%.+/ , string : { pattern : /"(?:\\.|[^\\"\r\n])*"/ , greedy : ! 0 } , "quoted-function" : { pattern : /'(?:\\.|[^\\'\r\n])+'(?=\()/ , alias : "function" } , "quoted-atom" : { pattern : /'(?:\\.|[^\\'\r\n])+'/ , alias : "atom" } , "boolean" : /\b(?:true|false)\b/ , keyword : /\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/ , number : [ /\$\\?./ , /\d+#[a-z0-9]+/i , /(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i ] , "function" : /\b[a-z][\w@]*(?=\()/ , variable : { pattern : /(^|[^@])(?:\b|\?)[A-Z_][\w@]*/ , lookbehind : ! 0 } , operator : [ /[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/ , { pattern : /(^|[^<])<(?!<)/ , lookbehind : ! 0 } , { pattern : /(^|[^>])>(?!>)/ , lookbehind : ! 0 } ] , atom : /\b[a-z][\w@]*/ , punctuation : /[()[\]{}:;,.#|]|<<|>>/ } ;
Prism . languages . fsharp = Prism . languages . extend ( "clike" , { comment : [ { pattern : /(^|[^\\])\(\*[\s\S]*?\*\)/ , lookbehind : ! 0 } , { pattern : /(^|[^\\:])\/\/.*/ , lookbehind : ! 0 } ] , keyword : /\b(?:let|return|use|yield)(?:!\B|\b)|\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/ , string : { pattern : /(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1)B?/ , greedy : ! 0 } , number : [ /\b0x[\da-fA-F]+(?:un|lf|LF)?\b/ , /\b0b[01]+(?:y|uy)?\b/ , /(?:\b\d+\.?\d*|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i , /\b\d+(?:[IlLsy]|u[lsy]?|UL)?\b/ ] } ) , Prism . languages . insertBefore ( "fsharp" , "keyword" , { preprocessor : { pattern : /^[^\r\n\S]*#.*/m , alias : "property" , inside : { directive : { pattern : /(\s*#)\b(?:else|endif|if|light|line|nowarn)\b/ , lookbehind : ! 0 , alias : "keyword" } } } } ) ;
! function ( a ) { a . languages . flow = a . languages . extend ( "javascript" , { } ) , a . languages . insertBefore ( "flow" , "keyword" , { type : [ { pattern : /\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/ , alias : "tag" } ] } ) , a . languages . flow [ "function-variable" ] . pattern = /[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i , a . languages . insertBefore ( "flow" , "operator" , { "flow-punctuation" : { pattern : /\{\||\|\}/ , alias : "punctuation" } } ) , "Array" !== a . util . type ( a . languages . flow . keyword ) && ( a . languages . flow . keyword = [ a . languages . flow . keyword ] ) , a . languages . flow . keyword . unshift ( { pattern : /(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/ , lookbehind : ! 0 } , { pattern : /(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/ , lookbehind : ! 0 } ) } ( Prism ) ;
Prism . languages . git = { comment : /^#.*/m , deleted : /^[-– ].*/m , inserted : /^\+.*/m , string : /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m , command : { pattern : /^.*\$ git .*$/m , inside : { parameter : /\s--?\w+/m } } , coord : /^@@.*@@$/m , commit _sha1 : /^commit \w{40}$/m } ;
2018-07-20 19:14:22 +02:00
Prism . languages . go = Prism . languages . extend ( "clike" , { keyword : /\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/ , builtin : /\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/ , "boolean" : /\b(?:_|iota|nil|true|false)\b/ , operator : /[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./ , number : /(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i , string : { pattern : /(["'`])(\\[\s\S]|(?!\1)[^\\])*\1/ , greedy : ! 0 } } ) , delete Prism . languages . go [ "class-name" ] ;
2018-08-30 23:28:52 +02:00
Prism . languages . graphql = { comment : /#.*/ , string : { pattern : /"(?:\\.|[^\\"\r\n])*"/ , greedy : ! 0 } , number : /(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i , "boolean" : /\b(?:true|false)\b/ , variable : /\$[a-z_]\w*/i , directive : { pattern : /@[a-z_]\w*/i , alias : "function" } , "attr-name" : /[a-z_]\w*(?=\s*:)/i , keyword : [ { pattern : /(fragment\s+(?!on)[a-z_]\w*\s+|\.{3}\s*)on\b/ , lookbehind : ! 0 } , /\b(?:query|fragment|mutation)\b/ ] , operator : /!|=|\.{3}/ , punctuation : /[!(){}\[\]:=,]/ } ;
Prism . languages . less = Prism . languages . extend ( "css" , { comment : [ /\/\*[\s\S]*?\*\// , { pattern : /(^|[^\\])\/\/.*/ , lookbehind : ! 0 } ] , atrule : { pattern : /@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i , inside : { punctuation : /[:()]/ } } , selector : { pattern : /(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/ , inside : { variable : /@+[\w-]+/ } } , property : /(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i , punctuation : /[{}();:,]/ , operator : /[+\-*\/]/ } ) , Prism . languages . insertBefore ( "less" , "punctuation" , { "function" : Prism . languages . less . function } ) , Prism . languages . insertBefore ( "less" , "property" , { variable : [ { pattern : /@[\w-]+\s*:/ , inside : { punctuation : /:/ } } , /@@?[\w-]+/ ] , "mixin-usage" : { pattern : /([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/ , lookbehind : ! 0 , alias : "function" } } ) ;
2018-07-20 19:14:22 +02:00
! function ( a ) { a . languages . handlebars = { comment : /\{\{![\s\S]*?\}\}/ , delimiter : { pattern : /^\{\{\{?|\}\}\}?$/i , alias : "punctuation" } , string : /(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/ , number : /\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/ , "boolean" : /\b(?:true|false)\b/ , block : { pattern : /^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i , lookbehind : ! 0 , alias : "keyword" } , brackets : { pattern : /\[[^\]]+\]/ , inside : { punctuation : /\[|\]/ , variable : /[\s\S]+/ } } , punctuation : /[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/ , variable : /[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/ } , a . hooks . add ( "before-tokenize" , function ( e ) { var n = /\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g ; a . languages [ "markup-templating" ] . buildPlaceholders ( e , "handlebars" , n ) } ) , a . hooks . add ( "after-tokenize" , function ( e ) { a . languages [ "markup-templating" ] . tokenizePlaceholders ( e , "handlebars" ) } ) } ( Prism ) ;
2018-08-30 23:28:52 +02:00
Prism . languages . java = Prism . languages . extend ( "clike" , { keyword : /\b(?:abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/ , number : /\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp-]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?[df]?/i , operator : { pattern : /(^|[^.])(?:<<=?|>>>?=?|->|([-+&|])\2|[?:~]|[-+*\/%&|^!=<>]=?)/m , lookbehind : ! 0 } } ) , Prism . languages . insertBefore ( "java" , "function" , { annotation : { alias : "punctuation" , pattern : /(^|[^.])@\w+/ , lookbehind : ! 0 } } ) , Prism . languages . insertBefore ( "java" , "class-name" , { generics : { pattern : /<\s*\w+(?:\.\w+)?(?:\s*,\s*\w+(?:\.\w+)?)*>/i , alias : "function" , inside : { keyword : Prism . languages . java . keyword , punctuation : /[<>(),.:]/ } } } ) ;
Prism . languages . json = { property : /"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i , string : { pattern : /"(?:\\.|[^\\"\r\n])*"(?!\s*:)/ , greedy : ! 0 } , number : /-?\d+\.?\d*([Ee][+-]?\d+)?/ , punctuation : /[{}[\],]/ , operator : /:/g , "boolean" : /\b(?:true|false)\b/i , "null" : /\bnull\b/i } , Prism . languages . jsonp = Prism . languages . json ;
! function ( e ) { e . languages . kotlin = e . languages . extend ( "clike" , { keyword : { pattern : /(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/ , lookbehind : ! 0 } , "function" : [ /\w+(?=\s*\()/ , { pattern : /(\.)\w+(?=\s*\{)/ , lookbehind : ! 0 } ] , number : /\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/ , operator : /\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/ } ) , delete e . languages . kotlin [ "class-name" ] , e . languages . insertBefore ( "kotlin" , "string" , { "raw-string" : { pattern : /("""|''')[\s\S]*?\1/ , alias : "string" } } ) , e . languages . insertBefore ( "kotlin" , "keyword" , { annotation : { pattern : /\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/ , alias : "builtin" } } ) , e . languages . insertBefore ( "kotlin" , "function" , { label : { pattern : /\w+@|@\w+/ , alias : "symbol" } } ) ; var n = [ { pattern : /\$\{[^}]+\}/ , inside : { delimiter : { pattern : /^\$\{|\}$/ , alias : "variable" } , rest : e . languages . kotlin } } , { pattern : /\$\w+/ , alias : "variable" } ] ; e . languages . kotlin . string . inside = e . languages . kotlin [ "raw-string" ] . inside = { interpolation : n } } ( Prism ) ;
! function ( a ) { var e = /\\(?:[^a-z()[\]]|[a-z*]+)/i , n = { "equation-command" : { pattern : e , alias : "regex" } } ; a . languages . latex = { comment : /%.*/m , cdata : { pattern : /(\\begin\{((?:verbatim|lstlisting)\*?)\})[\s\S]*?(?=\\end\{\2\})/ , lookbehind : ! 0 } , equation : [ { pattern : /\$(?:\\[\s\S]|[^\\$])*\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/ , inside : n , alias : "string" } , { pattern : /(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})[\s\S]*?(?=\\end\{\2\})/ , lookbehind : ! 0 , inside : n , alias : "string" } ] , keyword : { pattern : /(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/ , lookbehind : ! 0 } , url : { pattern : /(\\url\{)[^}]+(?=\})/ , lookbehind : ! 0 } , headline : { pattern : /(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\}(?:\[[^\]]+\])?)/ , lookbehind : ! 0 , alias : "class-name" } , "function" : { pattern : e , alias : "selector" } , punctuation : /[[\]{}&]/ } } ( Prism ) ;
2018-07-20 19:14:22 +02:00
Prism . languages . markdown = Prism . languages . extend ( "markup" , { } ) , Prism . languages . insertBefore ( "markdown" , "prolog" , { blockquote : { pattern : /^>(?:[\t ]*>)*/m , alias : "punctuation" } , code : [ { pattern : /^(?: {4}|\t).+/m , alias : "keyword" } , { pattern : /``.+?``|`[^`\n]+`/ , alias : "keyword" } ] , title : [ { pattern : /\w+.*(?:\r?\n|\r)(?:==+|--+)/ , alias : "important" , inside : { punctuation : /==+$|--+$/ } } , { pattern : /(^\s*)#+.+/m , lookbehind : ! 0 , alias : "important" , inside : { punctuation : /^#+|#+$/ } } ] , hr : { pattern : /(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m , lookbehind : ! 0 , alias : "punctuation" } , list : { pattern : /(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m , lookbehind : ! 0 , alias : "punctuation" } , "url-reference" : { pattern : /!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/ , inside : { variable : { pattern : /^(!?\[)[^\]]+/ , lookbehind : ! 0 } , string : /(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/ , punctuation : /^[\[\]!:]|[<>]/ } , alias : "url" } , bold : { pattern : /(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/ , lookbehind : ! 0 , inside : { punctuation : /^\*\*|^__|\*\*$|__$/ } } , italic : { pattern : /(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/ , lookbehind : ! 0 , inside : { punctuation : /^[*_]|[*_]$/ } } , url : { pattern : /!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[[^\]\n]*\])/ , inside : { variable : { pattern : /(!?\[)[^\]]+(?=\]$)/ , lookbehind : ! 0 } , string : { pattern : /"(?:\\.|[^"\\])*"(?=\)$)/ } } } } ) , Prism . languages . markdown . bold . inside . url = Prism . languages . markdown . url , Prism . languages . markdown . italic . inside . url = Prism . languages . markdown . url , Prism . languages . markdown . bold . inside . italic = Prism . languages . markdown . italic , Prism . languages . markdown . italic . inside . bold = Prism . languages . markdown . bold ;
2018-08-30 23:28:52 +02:00
Prism . languages . makefile = { comment : { pattern : /(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/ , lookbehind : ! 0 } , string : { pattern : /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/ , greedy : ! 0 } , builtin : /\.[A-Z][^:#=\s]+(?=\s*:(?!=))/ , symbol : { pattern : /^[^:=\r\n]+(?=\s*:(?!=))/m , inside : { variable : /\$+(?:[^(){}:#=\s]+|(?=[({]))/ } } , variable : /\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/ , keyword : [ /-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/ , { pattern : /(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/ , lookbehind : ! 0 } ] , operator : /(?:::|[?:+!])?=|[|@]/ , punctuation : /[:;(){}]/ } ;
Prism . languages . objectivec = Prism . languages . extend ( "c" , { keyword : /\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/ , string : /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/ , operator : /-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/ } ) ;
2018-07-20 19:14:22 +02:00
Prism . languages . ocaml = { comment : /\(\*[\s\S]*?\*\)/ , string : [ { pattern : /"(?:\\.|[^\\\r\n"])*"/ , greedy : ! 0 } , { pattern : /(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i , greedy : ! 0 } ] , number : /\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i , type : { pattern : /\B['`]\w*/ , alias : "variable" } , directive : { pattern : /\B#\w+/ , alias : "function" } , keyword : /\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/ , "boolean" : /\b(?:false|true)\b/ , operator : /:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/ , punctuation : /[(){}\[\]|_.,:;]/ } ;
2018-08-30 23:28:52 +02:00
Prism . languages . perl = { comment : [ { pattern : /(^\s*)=\w+[\s\S]*?=cut.*/m , lookbehind : ! 0 } , { pattern : /(^|[^\\$])#.*/ , lookbehind : ! 0 } ] , string : [ { pattern : /\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/ , greedy : ! 0 } , { pattern : /\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/ , greedy : ! 0 } , { pattern : /\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/ , greedy : ! 0 } , { pattern : /\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/ , greedy : ! 0 } , { pattern : /\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/ , greedy : ! 0 } , { pattern : /\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/ , greedy : ! 0 } , { pattern : /("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/ , greedy : ! 0 } , { pattern : /'(?:[^'\\\r\n]|\\.)*'/ , greedy : ! 0 } ] , regex : [ { pattern : /\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/ , greedy : ! 0 } , { pattern : /\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/ , greedy : ! 0 } , { pattern : /\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/ , greedy : ! 0 } , { pattern : /\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/ , greedy : ! 0 } , { pattern : /\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/ , greedy : ! 0 } , { pattern : /\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/ , greedy : ! 0 } , { pattern : /(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/ , lookbehind : ! 0 , greedy : ! 0 } , { pattern : /(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/ , lookbehind : ! 0 , greedy : ! 0 } , { pattern : /(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/ , lookbehind : ! 0 , greedy : ! 0 } , { pattern : /(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/ , lookbehind : ! 0 , greedy : ! 0 } , { pattern : /(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/ , lookbehind : ! 0 , greedy : ! 0 } , { pattern : /(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/ , lookbehind : ! 0 , greedy : ! 0 } , { pattern : /\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/ , greedy : ! 0 } ] , variable : [ /[&*$@%]\{\^[A-Z]+\}/ , /[&*$@%]\^[A-Z_]/ , /[&*$@%]#?(?=\{)/ , /[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+)+(?:::)*/i , /[&*$@%]\d+/ , /(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/ ] , filehandle : { pattern : /<(?![<=])\S*>|\b_\b/ , alias : "symbol" } , vstring : { pattern : /v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/ , alias : "string" } , "function" : { pattern : /sub [a-z0-9_]+/i , inside : { keyword : /sub/ } } , keyword : /\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|say|state|sub|switch|undef|unless|until|use|when|while)\b/ , number : /\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/ , operator : /-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/ , punctuation : /[{}[\];(),:]/ } ;
! function ( e ) { e . languages . php = e . languages . extend ( "clike" , { keyword : /\b(?:and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i , constant : /\b[A-Z0-9_]{2,}\b/ , comment : { pattern : /(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/ , lookbehind : ! 0 } } ) , e . languages . insertBefore ( "php" , "string" , { "shell-comment" : { pattern : /(^|[^\\])#.*/ , lookbehind : ! 0 , alias : "comment" } } ) , e . languages . insertBefore ( "php" , "keyword" , { delimiter : { pattern : /\?>|<\?(?:php|=)?/i , alias : "important" } , variable : /\$+(?:\w+\b|(?={))/i , "package" : { pattern : /(\\|namespace\s+|use\s+)[\w\\]+/ , lookbehind : ! 0 , inside : { punctuation : /\\/ } } } ) , e . languages . insertBefore ( "php" , "operator" , { property : { pattern : /(->)[\w]+/ , lookbehind : ! 0 } } ) ; var n = { pattern : /{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/ , lookbehind : ! 0 , inside : { rest : e . languages . php } } ; e . languages . insertBefore ( "php" , "string" , { "nowdoc-string" : { pattern : /<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/ , greedy : ! 0 , alias : "string" , inside : { delimiter : { pattern : /^<<<'[^']+'|[a-z_]\w*;$/i , alias : "symbol" , inside : { punctuation : /^<<<'?|[';]$/ } } } } , "heredoc-string" : { pattern : /<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i , greedy : ! 0 , alias : "string" , inside : { delimiter : { pattern : /^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i , alias : "symbol" , inside : { punctuation : /^<<<"?|[";]$/ } } , interpolation : n } } , "single-quoted-string" : { pattern : /'(?:\\[\s\S]|[^\\'])*'/ , greedy : ! 0 , alias : "string" } , "double-quoted-string" : { pattern : /"(?:\\[\s\S]|[^\\"])*"/ , greedy : ! 0 , alias : "string" , inside : { interpolation : n } } } ) , delete e . languages . php . string , e . hooks . add ( "before-tokenize" , function ( n ) { if ( /(?:<\?php|<\?)/gi . test ( n . code ) ) { var t = /(?:<\?php|<\?)[\s\S]*?(?:\?>|$)/gi ; e . languages [ "markup-templating" ] . buildPlaceholders ( n , "php" , t ) } } ) , e . hooks . add ( "after-tokenize" , function ( n ) { e . languages [ "markup-templating" ] . tokenizePlaceholders ( n , "php" ) } ) } ( Prism ) ;
Prism . languages . insertBefore ( "php" , "variable" , { "this" : /\$this\b/ , global : /\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\b/ , scope : { pattern : /\b[\w\\]+::/ , inside : { keyword : /static|self|parent/ , punctuation : /::|\\/ } } } ) ;
Prism . languages . sql = { comment : { pattern : /(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/ , lookbehind : ! 0 } , variable : [ { pattern : /@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/ , greedy : ! 0 } , /@[\w.$]+/ ] , string : { pattern : /(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/ , greedy : ! 0 , lookbehind : ! 0 } , "function" : /\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i , keyword : /\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i , "boolean" : /\b(?:TRUE|FALSE|NULL)\b/i , number : /\b0x[\da-f]+\b|\b\d+\.?\d*|\B\.\d+\b/i , operator : /[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i , punctuation : /[;[\]()`,.]/ } ;
Prism . languages . scss = Prism . languages . extend ( "css" , { comment : { pattern : /(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/ , lookbehind : ! 0 } , atrule : { pattern : /@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/ , inside : { rule : /@[\w-]+/ } } , url : /(?:[-a-z]+-)*url(?=\()/i , selector : { pattern : /(?=\S)[^@;{}()]?(?:[^@;{}()]|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}]+[:{][^}]+))/m , inside : { parent : { pattern : /&/ , alias : "important" } , placeholder : /%[-\w]+/ , variable : /\$[-\w]+|#\{\$[-\w]+\}/ } } } ) , Prism . languages . insertBefore ( "scss" , "atrule" , { keyword : [ /@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i , { pattern : /( +)(?:from|through)(?= )/ , lookbehind : ! 0 } ] } ) , Prism . languages . scss . property = { pattern : /(?:[\w-]|\$[-\w]+|#\{\$[-\w]+\})+(?=\s*:)/i , inside : { variable : /\$[-\w]+|#\{\$[-\w]+\}/ } } , Prism . languages . insertBefore ( "scss" , "important" , { variable : /\$[-\w]+|#\{\$[-\w]+\}/ } ) , Prism . languages . insertBefore ( "scss" , "function" , { placeholder : { pattern : /%[-\w]+/ , alias : "selector" } , statement : { pattern : /\B!(?:default|optional)\b/i , alias : "keyword" } , "boolean" : /\b(?:true|false)\b/ , "null" : /\bnull\b/ , operator : { pattern : /(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/ , lookbehind : ! 0 } } ) , Prism . languages . scss . atrule . inside . rest = Prism . languages . scss ;
2018-07-20 19:14:22 +02:00
Prism . languages . python = { comment : { pattern : /(^|[^\\])#.*/ , lookbehind : ! 0 } , "triple-quoted-string" : { pattern : /("""|''')[\s\S]+?\1/ , greedy : ! 0 , alias : "string" } , string : { pattern : /("|')(?:\\.|(?!\1)[^\\\r\n])*\1/ , greedy : ! 0 } , "function" : { pattern : /((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g , lookbehind : ! 0 } , "class-name" : { pattern : /(\bclass\s+)\w+/i , lookbehind : ! 0 } , keyword : /\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|pass|print|raise|return|try|while|with|yield)\b/ , builtin : /\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/ , "boolean" : /\b(?:True|False|None)\b/ , number : /(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i , operator : /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/ , punctuation : /[{}[\];(),.:]/ } ;
2018-08-30 23:28:52 +02:00
! function ( t ) { var n = t . util . clone ( t . languages . javascript ) ; t . languages . jsx = t . languages . extend ( "markup" , n ) , t . languages . jsx . tag . pattern = /<\/?(?:[\w.:-]+\s*(?:\s+(?:[\w.:-]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s{'">=]+|\{(?:\{(?:\{[^}]*\}|[^{}])*\}|[^{}])+\}))?|\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}))*\s*\/?)?>/i , t . languages . jsx . tag . inside . tag . pattern = /^<\/?[^\s>\/]*/i , t . languages . jsx . tag . inside [ "attr-value" ] . pattern = /=(?!\{)(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">]+)/i , t . languages . jsx . tag . inside . tag . inside [ "class-name" ] = /^[A-Z]\w*$/ , t . languages . insertBefore ( "inside" , "attr-name" , { spread : { pattern : /\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}/ , inside : { punctuation : /\.{3}|[{}.]/ , "attr-value" : /\w+/ } } } , t . languages . jsx . tag ) , t . languages . insertBefore ( "inside" , "attr-value" , { script : { pattern : /=(\{(?:\{(?:\{[^}]*\}|[^}])*\}|[^}])+\})/i , inside : { "script-punctuation" : { pattern : /^=(?={)/ , alias : "punctuation" } , rest : t . languages . jsx } , alias : "language-javascript" } } , t . languages . jsx . tag ) ; var e = function ( t ) { return t ? "string" == typeof t ? t : "string" == typeof t . content ? t . content : t . content . map ( e ) . join ( "" ) : "" } , a = function ( n ) { for ( var s = [ ] , g = 0 ; g < n . length ; g ++ ) { var i = n [ g ] , o = ! 1 ; if ( "string" != typeof i && ( "tag" === i . type && i . content [ 0 ] && "tag" === i . content [ 0 ] . type ? "</" === i . content [ 0 ] . content [ 0 ] . content ? s . length > 0 && s [ s . length - 1 ] . tagName === e ( i . content [ 0 ] . content [ 1 ] ) && s . pop ( ) : "/>" === i . content [ i . content . length - 1 ] . content || s . push ( { tagName : e ( i . content [ 0 ] . content [ 1 ] ) , openedBraces : 0 } ) : s . length > 0 && "punctuation" === i . type && "{" === i . content ? s [ s . length - 1 ] . openedBraces ++ : s . length > 0 && s [ s . length - 1 ] . openedBraces > 0 && "punctuation" === i . type && "}" === i . content ? s [ s . length - 1 ] . openedBraces -- : o = ! 0 ) , ( o || "string" == typeof i ) && s . length > 0 && 0 === s [ s . length - 1 ] . openedBraces ) { var p = e ( i ) ; g < n . length - 1 && ( "string" == typeof n [ g + 1 ] || "plain-text" === n [ g + 1 ] . type ) && ( p += e ( n [ g + 1 ] ) , n . splice ( g + 1 , 1 ) ) , g > 0 && ( "string" == typeof n [ g - 1 ] || "plain-text" === n [ g - 1 ] . type ) && ( p = e ( n [ g - 1 ] ) + p , n . splice ( g - 1 , 1 ) , g -- ) , n [ g ] = new t . Token ( "plain-text" , p , null , p ) } i . content && "string" != typeof i . content && a ( i . content ) } } ; t . hooks . add ( "after-tokenize" , function ( t ) { ( "jsx" === t . language || "tsx" === t . language ) && a ( t . tokens ) } ) } ( Prism ) ;
Prism . languages . typescript = Prism . languages . extend ( "javascript" , { keyword : /\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield|module|declare|constructor|namespace|abstract|require|type)\b/ , builtin : /\b(?:string|Function|any|number|boolean|Array|symbol|console)\b/ } ) , Prism . languages . ts = Prism . languages . typescript ;
Prism . languages . reason = Prism . languages . extend ( "clike" , { comment : { pattern : /(^|[^\\])\/\*[\s\S]*?\*\// , lookbehind : ! 0 } , string : { pattern : /"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/ , greedy : ! 0 } , "class-name" : /\b[A-Z]\w*/ , keyword : /\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/ , operator : /\.{3}|:[:=]|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/ } ) , Prism . languages . insertBefore ( "reason" , "class-name" , { character : { pattern : /'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/ , alias : "string" } , constructor : { pattern : /\b[A-Z]\w*\b(?!\s*\.)/ , alias : "variable" } , label : { pattern : /\b[a-z]\w*(?=::)/ , alias : "symbol" } } ) , delete Prism . languages . reason . function ;
2018-07-20 19:14:22 +02:00
Prism . languages . rust = { comment : [ { pattern : /(^|[^\\])\/\*[\s\S]*?\*\// , lookbehind : ! 0 } , { pattern : /(^|[^\\:])\/\/.*/ , lookbehind : ! 0 } ] , string : [ { pattern : /b?r(#*)"(?:\\.|(?!"\1)[^\\\r\n])*"\1/ , greedy : ! 0 } , { pattern : /b?"(?:\\.|[^\\\r\n"])*"/ , greedy : ! 0 } ] , "char" : { pattern : /b?'(?:\\(?:x[0-7][\da-fA-F]|u{(?:[\da-fA-F]_*){1,6}|.)|[^\\\r\n\t'])'/ , alias : "string" } , "lifetime-annotation" : { pattern : /'[^\s>']+/ , alias : "symbol" } , keyword : /\b(?:abstract|alignof|as|be|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|match|mod|move|mut|offsetof|once|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/ , attribute : { pattern : /#!?\[.+?\]/ , greedy : ! 0 , alias : "attr-name" } , "function" : [ /\w+(?=\s*\()/ , /\w+!(?=\s*\(|\[)/ ] , "macro-rules" : { pattern : /\w+!/ , alias : "function" } , number : /\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64)?|f32|f64))?\b/ , "closure-params" : { pattern : /\|[^|]*\|(?=\s*[{-])/ , inside : { punctuation : /[|:,]/ , operator : /[&*]/ } } , punctuation : /[{}[\];(),:]|\.+|->/ , operator : /[-+*\/%!^]=?|=[=>]?|@|&[&=]?|\|[|=]?|<<?=?|>>?=?/ } ;
2018-08-30 23:28:52 +02:00
! function ( e ) { e . languages . sass = e . languages . extend ( "css" , { comment : { pattern : /^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t]+.+)*/m , lookbehind : ! 0 } } ) , e . languages . insertBefore ( "sass" , "atrule" , { "atrule-line" : { pattern : /^(?:[ \t]*)[@+=].+/m , inside : { atrule : /(?:@[\w-]+|[+=])/m } } } ) , delete e . languages . sass . atrule ; var a = /\$[-\w]+|#\{\$[-\w]+\}/ , t = [ /[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/ , { pattern : /(\s+)-(?=\s)/ , lookbehind : ! 0 } ] ; e . languages . insertBefore ( "sass" , "property" , { "variable-line" : { pattern : /^[ \t]*\$.+/m , inside : { punctuation : /:/ , variable : a , operator : t } } , "property-line" : { pattern : /^[ \t]*(?:[^:\s]+ *:.*|:[^:\s]+.*)/m , inside : { property : [ /[^:\s]+(?=\s*:)/ , { pattern : /(:)[^:\s]+/ , lookbehind : ! 0 } ] , punctuation : /:/ , variable : a , operator : t , important : e . languages . sass . important } } } ) , delete e . languages . sass . property , delete e . languages . sass . important , delete e . languages . sass . selector , e . languages . insertBefore ( "sass" , "punctuation" , { selector : { pattern : /([ \t]*)\S(?:,?[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,?[^,\r\n]+)*)*/ , lookbehind : ! 0 } } ) } ( Prism ) ;
! function ( e ) { e . languages . pug = { comment : { pattern : /(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ]+.+)*/m , lookbehind : ! 0 } , "multiline-script" : { pattern : /(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m , lookbehind : ! 0 , inside : { rest : e . languages . javascript } } , filter : { pattern : /(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m , lookbehind : ! 0 , inside : { "filter-name" : { pattern : /^:[\w-]+/ , alias : "variable" } } } , "multiline-plain-text" : { pattern : /(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m , lookbehind : ! 0 } , markup : { pattern : /(^[\t ]*)<.+/m , lookbehind : ! 0 , inside : { rest : e . languages . markup } } , doctype : { pattern : /((?:^|\n)[\t ]*)doctype(?: .+)?/ , lookbehind : ! 0 } , "flow-control" : { pattern : /(^[\t ]*)(?:if|unless|else|case|when|default|each|while)\b(?: .+)?/m , lookbehind : ! 0 , inside : { each : { pattern : /^each .+? in\b/ , inside : { keyword : /\b(?:each|in)\b/ , punctuation : /,/ } } , branch : { pattern : /^(?:if|unless|else|case|when|default|while)\b/ , alias : "keyword" } , rest : e . languages . javascript } } , keyword : { pattern : /(^[\t ]*)(?:block|extends|include|append|prepend)\b.+/m , lookbehind : ! 0 } , mixin : [ { pattern : /(^[\t ]*)mixin .+/m , lookbehind : ! 0 , inside : { keyword : /^mixin/ , "function" : /\w+(?=\s*\(|\s*$)/ , punctuation : /[(),.]/ } } , { pattern : /(^[\t ]*)\+.+/m , lookbehind : ! 0 , inside : { name : { pattern : /^\+\w+/ , alias : "function" } , rest : e . languages . javascript } } ] , script : { pattern : /(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]+).+/m , lookbehind : ! 0 , inside : { rest : e . languages . javascript } } , "plain-text" : { pattern : /(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]+).+/m , lookbehind : ! 0 } , tag : { pattern : /(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m , lookbehind : ! 0 , inside : { attributes : [ { pattern : /&[^(]+\([^)]+\)/ , inside : { rest : e . languages . javascript } } , { pattern : /\([^)]+\)/ , inside : { "attr-value" : { pattern : /(=\s*)(?:\{[^}]*\}|[^,)\r\n]+)/ , lookbehind : ! 0 , inside : { rest : e . languages . javascript } } , "attr-name" : /[\w-]+(?=\s*!?=|\s*[,)])/ , punctuation : /[!=(),]+/ } } ] , punctuation : /:/ } } , code : [ { pattern : /(^[\t ]*(?:-|!?=)).+/m , lookbehind : ! 0 , inside : { rest : e . languages . javascript } } ] , punctuation : /[.\-!=|]+/ } ; for ( var t = "(^([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+" , n = [ { filter : "atpl" , language : "twig" } , { filter : "coffee" , language : "coffeescript" } , "ejs" , "handlebars" , "hogan" , "less" , "livescript" , "markdown" , "mustache" , "plates" , { filter : "sass" , language : "scss" } , "stylus" , "swig" ] , a = { } , i = 0 , r = n . length ; r > i ; i ++ ) { var s = n [ i ] ; s = "string" == typeof s ? { filter : s , language : s } : s , e . languages [ s . language ] && ( a [ "filter-" + s . filter ] = { pattern : RegExp ( t . replace ( "{{filter_name}}" , s . filter ) , "m" ) , lookbehind : ! 0 , inside : { "filter-name" : { pattern : /^:[\w-]+/ , alias : "variable" } , rest : e . languages [ s . language ] } } ) } e . languages . insertBefore ( "pug" , "filter" , a ) } ( Prism ) ;
Prism . languages . swift = Prism . languages . extend ( "clike" , { string : { pattern : /("|')(\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/ , greedy : ! 0 , inside : { interpolation : { pattern : /\\\((?:[^()]|\([^)]+\))+\)/ , inside : { delimiter : { pattern : /^\\\(|\)$/ , alias : "variable" } } } } } , keyword : /\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/ , number : /\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i , constant : /\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/ , atrule : /@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/ , builtin : /\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/ } ) , Prism . languages . swift . string . inside . interpolation . inside . rest = Prism . languages . swift ;
Prism . languages . yaml = { scalar : { pattern : /([\-:]\s*(?:![^\s]+)?[ \t]*[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\2[^\r\n]+)*)/ , lookbehind : ! 0 , alias : "string" } , comment : /#.*/ , key : { pattern : /(\s*(?:^|[:\-,[{\r\n?])[ \t]*(?:![^\s]+)?[ \t]*)[^\r\n{[\]},#\s]+?(?=\s*:\s)/ , lookbehind : ! 0 , alias : "atrule" } , directive : { pattern : /(^[ \t]*)%.+/m , lookbehind : ! 0 , alias : "important" } , datetime : { pattern : /([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?)?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?)(?=[ \t]*(?:$|,|]|}))/m , lookbehind : ! 0 , alias : "number" } , "boolean" : { pattern : /([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:true|false)[ \t]*(?=$|,|]|})/im , lookbehind : ! 0 , alias : "important" } , "null" : { pattern : /([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:null|~)[ \t]*(?=$|,|]|})/im , lookbehind : ! 0 , alias : "important" } , string : { pattern : /([:\-,[{]\s*(?:![^\s]+)?[ \t]*)("|')(?:(?!\2)[^\\\r\n]|\\.)*\2(?=[ \t]*(?:$|,|]|}))/m , lookbehind : ! 0 , greedy : ! 0 } , number : { pattern : /([:\-,[{]\s*(?:![^\s]+)?[ \t]*)[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+\.?\d*|\.?\d+)(?:e[+-]?\d+)?|\.inf|\.nan)[ \t]*(?=$|,|]|})/im , lookbehind : ! 0 } , tag : /![^\s]+/ , important : /[&*][\w]+/ , punctuation : /---|[:[\]{}\-,|>?]|\.\.\./ } ;
! function ( e ) { e . languages . haml = { "multiline-comment" : { pattern : /((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ]+.+)*/ , lookbehind : ! 0 , alias : "comment" } , "multiline-code" : [ { pattern : /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ]+.*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ]+.+)/ , lookbehind : ! 0 , inside : { rest : e . languages . ruby } } , { pattern : /((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ]+.*\|[\t ]*)*/ , lookbehind : ! 0 , inside : { rest : e . languages . ruby } } ] , filter : { pattern : /((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/ , lookbehind : ! 0 , inside : { "filter-name" : { pattern : /^:[\w-]+/ , alias : "variable" } } } , markup : { pattern : /((?:^|\r?\n|\r)[\t ]*)<.+/ , lookbehind : ! 0 , inside : { rest : e . languages . markup } } , doctype : { pattern : /((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/ , lookbehind : ! 0 } , tag : { pattern : /((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/ , lookbehind : ! 0 , inside : { attributes : [ { pattern : /(^|[^#])\{(?:\{[^}]+\}|[^}])+\}/ , lookbehind : ! 0 , inside : { rest : e . languages . ruby } } , { pattern : /\([^)]+\)/ , inside : { "attr-value" : { pattern : /(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/ , lookbehind : ! 0 } , "attr-name" : /[\w:-]+(?=\s*!?=|\s*[,)])/ , punctuation : /[=(),]/ } } , { pattern : /\[[^\]]+\]/ , inside : { rest : e . languages . ruby } } ] , punctuation : /[<>]/ } } , code : { pattern : /((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/ , lookbehind : ! 0 , inside : { rest : e . languages . ruby } } , interpolation : { pattern : /#\{[^}]+\}/ , inside : { delimiter : { pattern : /^#\{|\}$/ , alias : "punctuation" } , rest : e . languages . ruby } } , punctuation : { pattern : /((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/ , lookbehind : ! 0 } } ; for ( var t = "((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+" , r = [ "css" , { filter : "coffee" , language : "coffeescript" } , "erb" , "javascript" , "less" , "markdown" , "ruby" , "scss" , "textile" ] , n = { } , a = 0 , i = r . length ; i > a ; a ++ ) { var l = r [ a ] ; l = "string" == typeof l ? { filter : l , language : l } : l , e . languages [ l . language ] && ( n [ "filter-" + l . filter ] = { pattern : RegExp ( t . replace ( "{{filter_name}}" , l . filter ) ) , lookbehind : ! 0 , inside : { "filter-name" : { pattern : /^:[\w-]+/ , alias : "variable" } , rest : e . languages [ l . language ] } } ) } e . languages . insertBefore ( "haml" , "filter" , n ) } ( Prism ) ;
var typescript = Prism . util . clone ( Prism . languages . typescript ) ; Prism . languages . tsx = Prism . languages . extend ( "jsx" , typescript ) ;
! function ( ) { if ( "undefined" != typeof self && self . Prism && self . document ) { var e = "line-numbers" , t = /\n(?!$)/g , n = function ( e ) { var n = r ( e ) , s = n [ "white-space" ] ; if ( "pre-wrap" === s || "pre-line" === s ) { var l = e . querySelector ( "code" ) , i = e . querySelector ( ".line-numbers-rows" ) , a = e . querySelector ( ".line-numbers-sizer" ) , o = l . textContent . split ( t ) ; a || ( a = document . createElement ( "span" ) , a . className = "line-numbers-sizer" , l . appendChild ( a ) ) , a . style . display = "block" , o . forEach ( function ( e , t ) { a . textContent = e || "\n" ; var n = a . getBoundingClientRect ( ) . height ; i . children [ t ] . style . height = n + "px" } ) , a . textContent = "" , a . style . display = "none" } } , r = function ( e ) { return e ? window . getComputedStyle ? getComputedStyle ( e ) : e . currentStyle || null : null } ; window . addEventListener ( "resize" , function ( ) { Array . prototype . forEach . call ( document . querySelectorAll ( "pre." + e ) , n ) } ) , Prism . hooks . add ( "complete" , function ( e ) { if ( e . code ) { var r = e . element . parentNode , s = /\s*\bline-numbers\b\s*/ ; if ( r && /pre/i . test ( r . nodeName ) && ( s . test ( r . className ) || s . test ( e . element . className ) ) && ! e . element . querySelector ( ".line-numbers-rows" ) ) { s . test ( e . element . className ) && ( e . element . className = e . element . className . replace ( s , " " ) ) , s . test ( r . className ) || ( r . className += " line-numbers" ) ; var l , i = e . code . match ( t ) , a = i ? i . length + 1 : 1 , o = new Array ( a + 1 ) ; o = o . join ( "<span></span>" ) , l = document . createElement ( "span" ) , l . setAttribute ( "aria-hidden" , "true" ) , l . className = "line-numbers-rows" , l . innerHTML = o , r . hasAttribute ( "data-start" ) && ( r . style . counterReset = "linenumber " + ( parseInt ( r . getAttribute ( "data-start" ) , 10 ) - 1 ) ) , e . element . appendChild ( l ) , n ( r ) , Prism . hooks . run ( "line-numbers" , e ) } } } ) , Prism . hooks . add ( "line-numbers" , function ( e ) { e . plugins = e . plugins || { } , e . plugins . lineNumbers = ! 0 } ) , Prism . plugins . lineNumbers = { getLine : function ( t , n ) { if ( "PRE" === t . tagName && t . classList . contains ( e ) ) { var r = t . querySelector ( ".line-numbers-rows" ) , s = parseInt ( t . getAttribute ( "data-start" ) , 10 ) || 1 , l = s + ( r . children . length - 1 ) ; s > n && ( n = s ) , n > l && ( n = l ) ; var i = n - s ; return r . children [ i ] } } } } } ( ) ;
! function ( ) { if ( "undefined" != typeof self && self . Prism && self . document ) { var t = [ ] , e = { } , n = function ( ) { } ; Prism . plugins . toolbar = { } ; var a = Prism . plugins . toolbar . registerButton = function ( n , a ) { var o ; o = "function" == typeof a ? a : function ( t ) { var e ; return "function" == typeof a . onClick ? ( e = document . createElement ( "button" ) , e . type = "button" , e . addEventListener ( "click" , function ( ) { a . onClick . call ( this , t ) } ) ) : "string" == typeof a . url ? ( e = document . createElement ( "a" ) , e . href = a . url ) : e = document . createElement ( "span" ) , e . textContent = a . text , e } , t . push ( e [ n ] = o ) } , o = Prism . plugins . toolbar . hook = function ( a ) { var o = a . element . parentNode ; if ( o && /pre/i . test ( o . nodeName ) && ! o . parentNode . classList . contains ( "code-toolbar" ) ) { var r = document . createElement ( "div" ) ; r . classList . add ( "code-toolbar" ) , o . parentNode . insertBefore ( r , o ) , r . appendChild ( o ) ; var i = document . createElement ( "div" ) ; i . classList . add ( "toolbar" ) , document . body . hasAttribute ( "data-toolbar-order" ) && ( t = document . body . getAttribute ( "data-toolbar-order" ) . split ( "," ) . map ( function ( t ) { return e [ t ] || n } ) ) , t . forEach ( function ( t ) { var e = t ( a ) ; if ( e ) { var n = document . createElement ( "div" ) ; n . classList . add ( "toolbar-item" ) , n . appendChild ( e ) , i . appendChild ( n ) } } ) , r . appendChild ( i ) } } ; a ( "label" , function ( t ) { var e = t . element . parentNode ; if ( e && /pre/i . test ( e . nodeName ) && e . hasAttribute ( "data-label" ) ) { var n , a , o = e . getAttribute ( "data-label" ) ; try { a = document . querySelector ( "template#" + o ) } catch ( r ) { } return a ? n = a . content : ( e . hasAttribute ( "data-url" ) ? ( n = document . createElement ( "a" ) , n . href = e . getAttribute ( "data-url" ) ) : n = document . createElement ( "span" ) , n . textContent = o ) , n } } ) , Prism . hooks . add ( "complete" , o ) } } ( ) ;
! function ( ) { if ( "undefined" != typeof self && self . Prism && self . document ) { if ( ! Prism . plugins . toolbar ) return console . warn ( "Copy to Clipboard plugin loaded before Toolbar plugin." ) , void 0 ; var o = window . ClipboardJS || void 0 ; o || "function" != typeof require || ( o = require ( "clipboard" ) ) ; var e = [ ] ; if ( ! o ) { var t = document . createElement ( "script" ) , n = document . querySelector ( "head" ) ; t . onload = function ( ) { if ( o = window . ClipboardJS ) for ( ; e . length ; ) e . pop ( ) ( ) } , t . src = "https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.0/clipboard.min.js" , n . appendChild ( t ) } Prism . plugins . toolbar . registerButton ( "copy-to-clipboard" , function ( t ) { function n ( ) { var e = new o ( i , { text : function ( ) { return t . code } } ) ; e . on ( "success" , function ( ) { i . textContent = "Copied!" , r ( ) } ) , e . on ( "error" , function ( ) { i . textContent = "Press Ctrl+C to copy" , r ( ) } ) } function r ( ) { setTimeout ( function ( ) { i . textContent = "Copy" } , 5e3 ) } var i = document . createElement ( "a" ) ; return i . textContent = "Copy" , o ? n ( ) : e . push ( n ) , i } ) } } ( ) ;