diff options
author | Patrick McDermott <pj@pehjota.net> | 2017-11-13 11:51:22 (EST) |
---|---|---|
committer | Patrick McDermott <pj@pehjota.net> | 2017-11-13 11:51:22 (EST) |
commit | bfbcc54c2f93a7d7a52c1897f7a711c02e6454b0 (patch) | |
tree | cf3910200c3bcd922abb7cb8d1723ee1e8d22852 /data/resources/prism/plugins/line-numbers/prism-line-numbers.js | |
parent | e42fa02e77211074ba6f7d80f8ea86edfc4a7d0e (diff) | |
download | marquee-bfbcc54c2f93a7d7a52c1897f7a711c02e6454b0.zip marquee-bfbcc54c2f93a7d7a52c1897f7a711c02e6454b0.tar.gz marquee-bfbcc54c2f93a7d7a52c1897f7a711c02e6454b0.tar.bz2 |
data/resources/prism: Rename * source files to *in
Diffstat (limited to 'data/resources/prism/plugins/line-numbers/prism-line-numbers.js')
-rw-r--r-- | data/resources/prism/plugins/line-numbers/prism-line-numbers.js | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/data/resources/prism/plugins/line-numbers/prism-line-numbers.js b/data/resources/prism/plugins/line-numbers/prism-line-numbers.js deleted file mode 100644 index dea8e3a..0000000 --- a/data/resources/prism/plugins/line-numbers/prism-line-numbers.js +++ /dev/null @@ -1,114 +0,0 @@ -(function () { - - if (typeof self === 'undefined' || !self.Prism || !self.document) { - return; - } - - /** - * Class name for <pre> which is activating the plugin - * @type {String} - */ - var PLUGIN_CLASS = 'line-numbers'; - - /** - * Resizes line numbers spans according to height of line of code - * @param {Element} element <pre> element - */ - var _resizeElement = function (element) { - var codeStyles = getStyles(element); - var whiteSpace = codeStyles['white-space']; - - if (whiteSpace === 'pre-wrap' || whiteSpace === 'pre-line') { - var codeElement = element.querySelector('code'); - var lineNumbersWrapper = element.querySelector('.line-numbers-rows'); - var lineNumberSizer = element.querySelector('.line-numbers-sizer'); - var codeLines = element.textContent.split('\n'); - - if (!lineNumberSizer) { - lineNumberSizer = document.createElement('span'); - lineNumberSizer.className = 'line-numbers-sizer'; - - codeElement.appendChild(lineNumberSizer); - } - - lineNumberSizer.style.display = 'block'; - - codeLines.forEach(function (line, lineNumber) { - lineNumberSizer.textContent = line || '\n'; - var lineSize = lineNumberSizer.getBoundingClientRect().height; - lineNumbersWrapper.children[lineNumber].style.height = lineSize + 'px'; - }); - - lineNumberSizer.textContent = ''; - lineNumberSizer.style.display = 'none'; - } - }; - - /** - * Returns style declarations for the element - * @param {Element} element - */ - var getStyles = function (element) { - if (!element) { - return null; - } - - return window.getComputedStyle ? getComputedStyle(element) : (element.currentStyle || null); - }; - - window.addEventListener('resize', function () { - Array.prototype.forEach.call(document.querySelectorAll('pre.' + PLUGIN_CLASS), _resizeElement); - }); - - Prism.hooks.add('complete', function (env) { - if (!env.code) { - return; - } - - // works only for <code> wrapped inside <pre> (not inline) - var pre = env.element.parentNode; - var clsReg = /\s*\bline-numbers\b\s*/; - if ( - !pre || !/pre/i.test(pre.nodeName) || - // Abort only if nor the <pre> nor the <code> have the class - (!clsReg.test(pre.className) && !clsReg.test(env.element.className)) - ) { - return; - } - - if (env.element.querySelector(".line-numbers-rows")) { - // Abort if line numbers already exists - return; - } - - if (clsReg.test(env.element.className)) { - // Remove the class "line-numbers" from the <code> - env.element.className = env.element.className.replace(clsReg, ' '); - } - if (!clsReg.test(pre.className)) { - // Add the class "line-numbers" to the <pre> - pre.className += ' line-numbers'; - } - - var match = env.code.match(/\n(?!$)/g); - var linesNum = match ? match.length + 1 : 1; - var lineNumbersWrapper; - - var lines = new Array(linesNum + 1); - lines = lines.join('<span></span>'); - - lineNumbersWrapper = document.createElement('span'); - lineNumbersWrapper.setAttribute('aria-hidden', 'true'); - lineNumbersWrapper.className = 'line-numbers-rows'; - lineNumbersWrapper.innerHTML = lines; - - if (pre.hasAttribute('data-start')) { - pre.style.counterReset = 'linenumber ' + (parseInt(pre.getAttribute('data-start'), 10) - 1); - } - - env.element.appendChild(lineNumbersWrapper); - - _resizeElement(pre); - }); - -}());
\ No newline at end of file |