Skip to content

Commit 24f6212

Browse files
authored
Merge pull request #60 from rmcginty/master
Replacing all carriage returns prior to highlighting to eliminate blank lines on output
2 parents 921e296 + dc5976d commit 24f6212

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/HighlightPairedShortcode.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module.exports = function (content, language, highlightNumbers, options = {}) {
1717
}
1818

1919
let group = new HighlightLinesGroup(highlightNumbers);
20-
let lines = highlightedContent.split("\n");
20+
let lines = highlightedContent.split(/\r?\n/);
2121
lines = lines.map(function(line, j) {
2222
if(options.alwaysWrapLineHighlights || highlightNumbers) {
2323
let lineContent = group.getLineMarkup(j, line);

test/HighlightPairedShortcodeTest.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,26 @@ test("Base", async t => {
66
alert();`, "js", "", { alwaysWrapLineHighlights: true }), `<pre class="language-js"><code class="language-js"><span class="highlight-line"><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span><br><span class="highlight-line"><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span></code></pre>`);
77
});
88

9+
test("Base with LF EOL, always wrap highlights", async t => {
10+
t.is(await HighlightPairedShortcode('alert();\nalert();',
11+
"js", "", { alwaysWrapLineHighlights: true }), `<pre class="language-js"><code class="language-js"><span class="highlight-line"><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span><br><span class="highlight-line"><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span></code></pre>`);
12+
});
13+
14+
test("Base with LF EOL, no wrap highlights", async t => {
15+
t.is(await HighlightPairedShortcode('alert();\nalert();',
16+
"js", "", { alwaysWrapLineHighlights: false }), `<pre class="language-js"><code class="language-js"><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>`);
17+
});
18+
19+
test("Base with CRLF EOL, always wrap highlights", async t => {
20+
t.is(await HighlightPairedShortcode('alert();\r\nalert();',
21+
"js", "", { alwaysWrapLineHighlights: true }), `<pre class="language-js"><code class="language-js"><span class="highlight-line"><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span><br><span class="highlight-line"><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span></code></pre>`);
22+
});
23+
24+
test("Base with CRLF EOL, no wrap highlights", async t => {
25+
t.is(await HighlightPairedShortcode('alert();\r\nalert();',
26+
"js", "", { alwaysWrapLineHighlights: false }), `<pre class="language-js"><code class="language-js"><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span><br><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code></pre>`);
27+
});
28+
929
test("Base with custom attributes", async t => {
1030
t.is(await HighlightPairedShortcode(`alert();
1131
alert();`, "js", "", { alwaysWrapLineHighlights: true, preAttributes: { tabindex: 0, 'data-testid': 'code' } }), `<pre class="language-js" tabindex="0" data-testid="code"><code class="language-js"><span class="highlight-line"><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span><br><span class="highlight-line"><span class="token function">alert</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span></span></code></pre>`);

0 commit comments

Comments
 (0)