From 3778730c8f363c7bb9dd4b01bfdf101001b78830 Mon Sep 17 00:00:00 2001 From: Roman Hotsiy Date: Wed, 5 Dec 2018 11:31:31 +0200 Subject: [PATCH 1/3] Fix emphasis followed by a punctuation (fixes #1378) --- lib/marked.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/marked.js b/lib/marked.js index 9e99346462..6a059c5753 100644 --- a/lib/marked.js +++ b/lib/marked.js @@ -541,13 +541,18 @@ var inline = { reflink: /^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/, nolink: /^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/, strong: /^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)|^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)/, - em: /^_([^\s_])_(?!_)|^\*([^\s*"<\[])\*(?!\*)|^_([^\s][\s\S]*?[^\s_])_(?!_|[^\s.])|^_([^\s_][\s\S]*?[^\s])_(?!_|[^\s.])|^\*([^\s"<\[][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/, + em: /^_([^\s_])_(?!_)|^\*([^\s*"<\[])\*(?!\*)|^_([^\s][\s\S]*?[^\s_])_(?!_|[^\spunctuation])|^_([^\s_][\s\S]*?[^\s])_(?!_|[^\spunctuation])|^\*([^\s"<\[][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*"<\[][\s\S]*?[^\s])\*(?!\*)/, code: /^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/, br: /^( {2,}|\\)\n(?!\s*$)/, del: noop, text: /^(`+|[^`])[\s\S]*?(?=[\\?@\\[^_{|}~'; +inline.em = edit(inline.em).replace(/punctuation/g, inline._punctuation).getRegex(); + inline._escapes = /\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g; inline._scheme = /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/; From 13868676a4506e65e62857b421392c065c41ea32 Mon Sep 17 00:00:00 2001 From: Tony Brix Date: Wed, 5 Dec 2018 16:31:24 +0200 Subject: [PATCH 2/3] Remove trailing space Co-Authored-By: RomanGotsiy --- lib/marked.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/marked.js b/lib/marked.js index 6a059c5753..c25fa07c39 100644 --- a/lib/marked.js +++ b/lib/marked.js @@ -548,7 +548,7 @@ var inline = { text: /^(`+|[^`])[\s\S]*?(?=[\\?@\\[^_{|}~'; inline.em = edit(inline.em).replace(/punctuation/g, inline._punctuation).getRegex(); From 2e7c9b5b295de529f4b2ad0dee2a770dd7528130 Mon Sep 17 00:00:00 2001 From: Roman Hotsiy Date: Wed, 5 Dec 2018 16:44:33 +0200 Subject: [PATCH 3/3] tests: add a few extra tests for emphasis --- test/specs/marked/marked-spec.js | 14 ++++++++++++++ test/specs/marked/marked.json | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/test/specs/marked/marked-spec.js b/test/specs/marked/marked-spec.js index acc4495c7f..0bc73a7846 100644 --- a/test/specs/marked/marked-spec.js +++ b/test/specs/marked/marked-spec.js @@ -87,3 +87,17 @@ describe('Marked Table cells', function() { messenger.test(spec, section, ignore); }); }); + +describe('Emphasis extra tests', function() { + var section = 'Emphasis extra tests'; + + var shouldPassButFails = []; + + var willNotBeAttemptedByCoreTeam = []; + + var ignore = shouldPassButFails.concat(willNotBeAttemptedByCoreTeam); + + markedSpec.forEach(function(spec) { + messenger.test(spec, section, ignore); + }); +}); diff --git a/test/specs/marked/marked.json b/test/specs/marked/marked.json index 1afeea3457..a42f6dc981 100644 --- a/test/specs/marked/marked.json +++ b/test/specs/marked/marked.json @@ -94,5 +94,11 @@ "markdown": "**me@example.com**", "html": "

me@example.com

", "example": 1327 + }, + { + "section": "Emphasis extra tests", + "markdown": "_test_. _test_: _test_! _test_? _test_-", + "html": "

test. test: test! test? test-

", + "example": 15 } ]