Skip to content

Commit dc5976d

Browse files
committed
Moving removal of \r, adding tests to verify all cases
fixes #59
1 parent 3d0bfd2 commit dc5976d

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

src/HighlightPairedShortcode.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ module.exports = function (content, language, highlightNumbers, options = {}) {
1616
if( language === "text" ) {
1717
highlightedContent = content;
1818
} else {
19-
highlightedContent = Prism.highlight(content.replace(/\r/g, ""), PrismLoader(language), language);
19+
highlightedContent = Prism.highlight(content, PrismLoader(language), language);
2020
}
2121

2222
let group = new HighlightLinesGroup(highlightNumbers);
23-
let lines = highlightedContent.split("\n");
23+
let lines = highlightedContent.split(/\r?\n/);
2424
lines = lines.map(function(line, j) {
2525
if(options.alwaysWrapLineHighlights || highlightNumbers) {
2626
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)