Index: polymer_1.0.4/bower_components/prism/plugins/line-numbers/prism-line-numbers.js |
diff --git a/polymer_1.0.4/bower_components/prism/plugins/line-numbers/prism-line-numbers.js b/polymer_1.0.4/bower_components/prism/plugins/line-numbers/prism-line-numbers.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9443deb7dc53690eaacaa17f96a4e956a5ff2193 |
--- /dev/null |
+++ b/polymer_1.0.4/bower_components/prism/plugins/line-numbers/prism-line-numbers.js |
@@ -0,0 +1,38 @@ |
+Prism.hooks.add('after-highlight', function (env) { |
+ // 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 (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 linesNum = (1 + env.code.split('\n').length); |
+ var lineNumbersWrapper; |
+ |
+ var lines = new Array(linesNum); |
+ lines = lines.join('<span></span>'); |
+ |
+ lineNumbersWrapper = document.createElement('span'); |
+ 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); |
+ |
+}); |