Index: lib/src/prism/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.js |
diff --git a/lib/src/prism/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.js b/lib/src/prism/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4d9a66933df940ac9ee6c787d9c5f168e6fcdeb5 |
--- /dev/null |
+++ b/lib/src/prism/plugins/remove-initial-line-feed/prism-remove-initial-line-feed.js |
@@ -0,0 +1,21 @@ |
+(function() { |
+ |
+if (typeof self === 'undefined' || !self.Prism || !self.document) { |
+ return; |
+} |
+ |
+Prism.hooks.add('before-highlight', function (env) { |
+ if (env.code) { |
+ var pre = env.element.parentNode; |
+ var clsReg = /\s*\bkeep-initial-line-feed\b\s*/; |
+ if ( |
+ pre && pre.nodeName.toLowerCase() === 'pre' && |
+ // Apply only if nor the <pre> or the <code> have the class |
+ (!clsReg.test(pre.className) && !clsReg.test(env.element.className)) |
+ ) { |
+ env.code = env.code.replace(/^(?:\r?\n|\r)/, ''); |
+ } |
+ } |
+}); |
+ |
+}()); |