UNPKG

reprism

Version:

Modular Syntax highlighting for the web

6 lines 10.2 kB
/*! * reprism v0.0.11 - https://github.com/tannerlinsley/reprism * MIT Licensed */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ReactSyntax=t():e.ReactSyntax=t()}("undefined"!=typeof self?self:this,function(){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var r=t[a]={i:a,l:!1,exports:{}};return e[a].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:a})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){e.exports=n(1)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var a=n(2),r=n(3),i=n(4),s=n(5),o=n(6);n.d(t,"highlight",function(){return o.b}),n.d(t,"loadLanguages",function(){return o.c}),Object(o.c)([a.a,r.a,i.a,s.a]),t.default=o.a},function(e,t,n){"use strict";t.a={language:"markup",init:function(e){e.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},e.languages.markup.tag.inside["attr-value"].inside.entity=e.languages.markup.entity,e.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&amp;/,"&"))}),e.languages.xml=e.languages.markup,e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup}}},function(e,t,n){"use strict";t.a={language:"css",init:function(e){e.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:/[(){};:]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup&&(e.languages.insertBefore("markup","tag",{style:{pattern:/(<style[\s\S]*?>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:e.languages.css,alias:"language-css",greedy:!0}}),e.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:e.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:e.languages.css}},alias:"language-css"}},e.languages.markup.tag))}}},function(e,t,n){"use strict";t.a={language:"clike",init:function(e){e.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:/[{}[\];(),.:]/}}}},function(e,t,n){"use strict";t.a={language:"javascript",init:function(e){e.languages.javascript=e.languages.extend("clike",{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)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),e.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/}),e.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:e.languages.javascript}},string:/[\s\S]+/}}}),e.languages.markup&&e.languages.insertBefore("markup","tag",{script:{pattern:/(<script[\s\S]*?>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:e.languages.javascript,alias:"language-javascript",greedy:!0}}),e.languages.js=e.languages.javascript}}},function(e,t,n){"use strict";var a,r;t.b=function(e,t){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).component,a=void 0===n?"pre":n;if(!s[t]){if(!t)throw new Error("A language is required!");throw new Error("The language: "+t+" hasn't been loaded yet!")}var r={code:e,grammar:s[t],language:t};return o.run("before-tokenize",r),r.tokens=b(r.code,r.grammar),o.run("after-tokenize",r),(a?"<"+a+" class='reprism "+t+" language-"+t+"'>":"")+u.stringify(l(r.tokens),r.language)+(a?"</"+a+">":"")},t.c=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];t.forEach(function(e){"Array"===g(e)?e.forEach(function(e){e.init(c)}):e.init(c)})};var i=0,s={extend:function(e,t){var n=p(s[e]);return Object.keys(t).forEach(function(e){n[e]=t[e]}),n},insertBefore:d,DFS:y},o={all:{},add:function(e,t){var n=o.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=o.all[e];if(!n||!n.length)return;n.forEach(function(e){return e(t)})}},u=(r=a=function e(t,n,a,r,i){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.type=t,this.content=n,this.alias=a,this.length=0|(r||"").length,this.greedy=!!i},a.stringify=function(e,t,n){if("String"===g(e))return e;if("Array"===g(e))return e.map(function(n){return u.stringify(n,t,e)}).join("");var a={type:e.type,content:u.stringify(e.content,t,n),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:n};if(e.alias){var r=Array.isArray(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(a.classes,r)}o.run("wrap",a);var i=Object.keys(a.attributes).map(function(e){return e+'="'+(a.attributes[e]||"").replace(/"/g,"&quot;")+'"'}).join(" ");return"<"+a.tag+' class="'+a.classes.join(" ")+'"'+(i?" "+i:"")+">"+a.content+"</"+a.tag+">"},r),c={languages:s,plugins:{},insertBefore:d,matchGrammar:h,tokenize:b,hooks:o,util:{encode:l,type:g,objId:f,clone:p},Token:u};function l(e){return e instanceof u?new u(e.type,l(e.content),e.alias):"Array"===g(e)?e.map(l):e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")}function g(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]}function f(e){return e.__id||(i+=1,Object.defineProperty(e,"__id",{value:i})),e.__id}function p(e,t){if(t=t||{},"Array"===g(e)){if(t[f(e)])return t[f(e)];var n=[];return t[f(e)]=n,e.forEach(function(e,a){n[a]=p(e,t)}),n}if("Object"===g(e)){if(t[f(e)])return t[f(e)];var a={};return t[f(e)]=a,Object.keys(e).forEach(function(n){a[n]=p(e[n],t)}),a}return e}function d(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];var a=t[0],r=t[1],i=t[2],o=t[3],u=void 0===o?s:o,c=u[a],l=i;if(2===t.length)return l=t[1],Object.keys(l).forEach(function(e){c[e]=l[e]}),c;var g={};return Object.keys(c).forEach(function(e){e===r&&Object.keys(i).forEach(function(e){g[e]=i[e]}),g[e]=c[e]}),y(s,function(e,t){t===u[a]&&e!==a&&(this[e]=g)}),u[a]=g,u[a]}function y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],n=arguments[2],a=arguments[3];a=a||{},Object.keys(e).forEach(function(r){t.call(e,r,e[r],n||r),"Object"!==g(e[r])||a[f(e[r])]?"Array"!==g(e[r])||a[f(e[r])]||(a[f(e[r])]=!0,y(e[r],t,null,a)):(a[f(e[r])]=!0,y(e[r],t,r,a))})}function h(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},a=arguments[3],r=arguments[4],i=arguments[5],s=arguments[6];Object.keys(n).forEach(function(o){if(n[o]&&o!==s){var c=n[o];(c=Array.isArray(c)?c:[c]).forEach(function(s){var c=s.inside,l=!!s.lookbehind,g=!!s.greedy,f=0,p=s.alias;if(g&&!s.pattern.global){var d=s.pattern.toString().match(/[imuy]*$/)[0];s.pattern=RegExp(s.pattern.source,d+"g")}s=s.pattern||s;for(var y=a,m=r;y<t.length;m+=t[y].length,y+=1){var v=t[y];if(t.length>e.length)return;if(!(v instanceof u)){var k=0,x=void 0;if(g&&y!==t.length-1){if(s.lastIndex=m,!(x=s.exec(e)))break;for(var F=x.index+(l?x[1].length:0),j=x.index+x[0].length,w=y,A=m,S=t.length;w<S&&(A<j||!t[w].type&&!t[w-1].greedy);++w)F>=(A+=t[w].length)&&(y+=1,m=A);if(t[y]instanceof u)continue;k=w-y,v=e.slice(m,A),x.index-=m}else s.lastIndex=0,x=s.exec(v),k=1;if(x){l&&(f=x[1]?x[1].length:0);var O=x.index+f,E=O+(x=x[0].slice(f)).length,_=v.slice(0,O),$=v.slice(E),B=[y,k];_&&(y+=1,m+=_.length,B.push(_));var z=new u(o,c?b(x,c):x,p,x,g);if(B.push(z),$&&B.push($),Array.prototype.splice.apply(t,B),1!==k&&h(e,t,n,y,m,!0,o),i)break}else if(i)break}}})}})}function b(e,t){var n=[e],a=t.rest;return a&&(Object.keys(a).forEach(function(e){t[e]=a[e]}),delete t.rest),h(e,n,t,0,0,!1),n}t.a=c}]).default}); //# sourceMappingURL=reprism.min.js.map