forked from PrismJS/prism
/
prism-normalize-whitespace.min.js
1 lines (1 loc) · 2.85 KB
/
prism-normalize-whitespace.min.js
1
!function(){if("undefined"!=typeof Prism){var e=Object.assign||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t]);return e},n={"remove-trailing":"boolean","remove-indent":"boolean","left-trim":"boolean","right-trim":"boolean","break-lines":"number",indent:"number","remove-initial-line-feed":"boolean","tabs-to-spaces":"number","spaces-to-tabs":"number"};t.prototype={setDefaults:function(n){this.defaults=e(this.defaults,n)},normalize:function(n,t){for(var r in t=e(this.defaults,t)){var i=r.replace(/-(\w)/g,(function(e,n){return n.toUpperCase()}));"normalize"!==r&&"setDefaults"!==i&&t[r]&&this[i]&&(n=this[i].call(this,n,t[r]))}return n},leftTrim:function(e){return e.replace(/^\s+/,"")},rightTrim:function(e){return e.replace(/\s+$/,"")},tabsToSpaces:function(e,n){return n=0|n||4,e.replace(/\t/g,new Array(++n).join(" "))},spacesToTabs:function(e,n){return n=0|n||4,e.replace(RegExp(" {"+n+"}","g"),"\t")},removeTrailing:function(e){return e.replace(/\s*?$/gm,"")},removeInitialLineFeed:function(e){return e.replace(/^(?:\r?\n|\r)/,"")},removeIndent:function(e){var n=e.match(/^[^\S\n\r]*(?=\S)/gm);return n&&n[0].length?(n.sort((function(e,n){return e.length-n.length})),n[0].length?e.replace(RegExp("^"+n[0],"gm"),""):e):e},indent:function(e,n){return e.replace(/^[^\S\n\r]*(?=\S)/gm,new Array(++n).join("\t")+"$&")},breakLines:function(e,n){n=!0===n?80:0|n||80;for(var t=e.split("\n"),i=0;i<t.length;++i)if(!(r(t[i])<=n)){for(var o=t[i].split(/(\s+)/g),a=0,s=0;s<o.length;++s){var l=r(o[s]);(a+=l)>n&&(o[s]="\n"+o[s],a=l)}t[i]=o.join("")}return t.join("\n")}},"undefined"!=typeof module&&module.exports&&(module.exports=t),Prism.plugins.NormalizeWhitespace=new t({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),Prism.hooks.add("before-sanity-check",(function(e){var t=Prism.plugins.NormalizeWhitespace;if((!e.settings||!1!==e.settings["whitespace-normalization"])&&Prism.util.isActive(e.element,"whitespace-normalization",!0))if(e.element&&e.element.parentNode||!e.code){var r=e.element.parentNode;if(e.code&&r&&"pre"===r.nodeName.toLowerCase()){for(var i in null==e.settings&&(e.settings={}),n)if(Object.hasOwnProperty.call(n,i)){var o=n[i];if(r.hasAttribute("data-"+i)){var a=r.getAttribute("data-"+i);switch(o){case"boolean":a="true"===a;break;case"number":a=isNaN(+a)?0:+a}e.settings[i]=a}}for(var s=r.childNodes,l="",c="",u=!1,m=0;m<s.length;++m){var f=s[m];f==e.element?u=!0:"#text"===f.nodeName&&(u?c+=f.nodeValue:l+=f.nodeValue,r.removeChild(f),--m)}if(e.element.children.length&&Prism.plugins.KeepMarkup){var d=l+e.element.innerHTML+c;e.element.innerHTML=t.normalize(d,e.settings),e.code=e.element.textContent}else e.code=l+e.code+c,e.code=t.normalize(e.code,e.settings)}}else e.code=t.normalize(e.code,e.settings)}))}function t(n){this.defaults=e({},n)}function r(e){for(var n=0,t=0;t<e.length;++t)e.charCodeAt(t)=="\t".charCodeAt(0)&&(n+=3);return e.length+n}}();