From 2dd87a6ef58c8c886dd209076aa6661ffae89577 Mon Sep 17 00:00:00 2001 From: Josh Goebel Date: Sun, 13 Jun 2021 20:06:57 -0400 Subject: [PATCH] fix(markdown) Images with empty alt or links with empty text (#3233) --- CHANGES.md | 1 + src/languages/markdown.js | 6 +++++- test/markup/markdown/links.expect.txt | 4 ++++ test/markup/markdown/links.txt | 4 ++++ 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 test/markup/markdown/links.expect.txt create mode 100644 test/markup/markdown/links.txt diff --git a/CHANGES.md b/CHANGES.md index a3a3065e64..33e360ba9e 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,7 @@ Grammars: +- fix(markdown) Images with empty alt or links with empty text (#3233) [Josh Goebel][] - enh(powershell) added `pwsh` alias (#3236) [tebeco][] - fix(r) fix bug highlighting examples in doc comments [Konrad Rudolph][] - fix(python) identifiers starting with underscore not highlighted (#3221) [Antoine Lambert][] diff --git a/src/languages/markdown.js b/src/languages/markdown.js index 51bbe56f3f..a6072587a6 100644 --- a/src/languages/markdown.js +++ b/src/languages/markdown.js @@ -105,12 +105,16 @@ export default function(hljs) { }, // whatever else, lower relevance (might not be a link at all) { - begin: /\[.+?\]\(.*?\)/, + begin: /\[.*?\]\(.*?\)/, relevance: 0 } ], returnBegin: true, contains: [ + { + // empty strings for alt or link text + match: /\[(?=\])/ + }, { className: 'string', relevance: 0, diff --git a/test/markup/markdown/links.expect.txt b/test/markup/markdown/links.expect.txt new file mode 100644 index 0000000000..6156d28198 --- /dev/null +++ b/test/markup/markdown/links.expect.txt @@ -0,0 +1,4 @@ +![](https://example.com) +[](https://example.com) +![alt](https://example.com) +[text](https://example.com) diff --git a/test/markup/markdown/links.txt b/test/markup/markdown/links.txt new file mode 100644 index 0000000000..36f6c9bfa2 --- /dev/null +++ b/test/markup/markdown/links.txt @@ -0,0 +1,4 @@ +![](https://example.com) +[](https://example.com) +![alt](https://example.com) +[text](https://example.com)