forked from wcoder/highlightjs-line-numbers.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhighlightjs-line-numbers.min.js
1 lines (1 loc) · 3.27 KB
/
highlightjs-line-numbers.min.js
1
!function(e,n){"use strict";function t(e){for(var n=e;n;){if(n.className&&n.className.indexOf("hljs-ln-code")!==-1)return!0;n=n.parentNode}return!1}function r(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}function i(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var i=e.focusNode;"TD"!==i.nodeName;)i=i.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(i.dataset.lineNumber);if(o!=a){var l=t.textContent,s=i.textContent;if(o>a){var c=o;o=a,a=c,c=l,l=s,s=c}for(;0!==n.indexOf(l);)l=l.slice(1);for(;n.lastIndexOf(s)===-1;)s=s.slice(0,-1);for(var d=l,u=r(t),f=o+1;f<a;++f){var h=g('.{0}[{1}="{2}"]',[b,T,f]),v=u.querySelector(h);d+="\n"+v.textContent}return d+="\n"+s}return n}function o(){var e=n.createElement("style");e.type="text/css",e.innerHTML=g(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[N,j,T]),n.getElementsByTagName("head")[0].appendChild(e)}function a(t){"interactive"===n.readyState||"complete"===n.readyState?l(t):e.addEventListener("DOMContentLoaded",function(){l(t)})}function l(t){console.log("documentReady() called!");try{var r=n.querySelectorAll("code.hljs,code.nohighlight");for(var i in r)r.hasOwnProperty(i)&&!r[i].classList.contains("hlnoln")&&s(r[i],t)}catch(o){e.console.error("LineNumbers error: ",o)}}function s(e,n,t){if("object"==typeof e){if("undefined"==typeof t||null===t||!isFinite(t)){var r=e.attributes["data-ln-offset"];if("undefined"!=typeof r&&null!==r&&isFinite(r.value))try{t=Number(r.value)}catch(i){t=0}else t=0}m(function(){e.innerHTML=d(e,n,t)})}}function c(e,n,t){if("string"==typeof e){"undefined"!=typeof t&&null!==t&&isFinite(t)||(t=0);var r=document.createElement("code");return r.innerHTML=e,d(r,n,t)}}function d(e,n,t){"undefined"!=typeof t&&null!==t&&isFinite(t)||(t=0),n=n||{singleLine:!1};var r=n.singleLine?0:1;return f(e),u(e.innerHTML,r,t)}function u(e,n,t){"undefined"!=typeof t&&null!==t&&isFinite(t)||(t=0);var r=v(e);if(""===r[r.length-1].trim()&&r.pop(),r.length>n){for(var i="",o=0,a=r.length;o<a;o++)i+=g('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',[y,L,j,T,b,o+1+t,r[o].length>0?r[o]:" "]);return g('<table class="{0}">{1}</table>',[N,i])}return e}function f(e){var n=e.childNodes;for(var t in n)if(n.hasOwnProperty(t)){var r=n[t];p(r.textContent)>0&&(r.childNodes.length>0?f(r):h(r.parentNode))}}function h(e){var n=e.className;if(/hljs-/.test(n)){for(var t=v(e.innerHTML),r=0,i="";r<t.length;r++){var o=t[r].length>0?t[r]:" ";i+=g('<span class="{0}">{1}</span>\n',[n,o])}e.innerHTML=i.trim()}}function v(e){return 0===e.length?[]:e.split(x)}function p(e){return(e.trim().match(x)||[]).length}function m(n){e.setTimeout(n,0)}function g(e,n){return e.replace(/\{(\d+)\}/g,function(e,t){return n[t]?n[t]:e})}var N="hljs-ln",y="hljs-ln-line",b="hljs-ln-code",L="hljs-ln-numbers",j="hljs-ln-n",T="data-line-number",x=/\r\n|\r|\n/g;e.hljs?(e.hljs.initLineNumbersOnLoad=a,e.hljs.lineNumbersBlock=s,e.hljs.lineNumbersValue=c,o()):e.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var n=window.getSelection();if(t(n.anchorNode)){var r;r=window.navigator.userAgent.indexOf("Edge")!==-1?i(n):n.toString(),e.clipboardData.setData("text/plain",r),e.preventDefault()}})}(window,document);