diff --git a/markdown.tmLanguage.base.yaml b/markdown.tmLanguage.base.yaml
index 1e1c909..619fd50 100644
--- a/markdown.tmLanguage.base.yaml
+++ b/markdown.tmLanguage.base.yaml
@@ -221,6 +221,7 @@ repository:
- {include: '#link-ref'}
- {include: '#link-ref-literal'}
- {include: '#link-ref-shortcut'}
+ - {include: '#link-html'}
ampersand:
comment: "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid."
match: '&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)'
@@ -291,6 +292,7 @@ repository:
- {include: '#link-ref-literal'}
- {include: '#link-ref'}
- {include: '#link-ref-shortcut'}
+ - {include: '#link-html'}
bracket:
comment: "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid."
match: '<(?![a-zA-Z/?\$!])'
@@ -406,6 +408,7 @@ repository:
- {include: '#link-ref-literal'}
- {include: '#link-ref'}
- {include: '#link-ref-shortcut'}
+ - {include: '#link-html'}
link-email:
captures:
'1': {name: punctuation.definition.link.markdown}
@@ -480,6 +483,13 @@ repository:
'3': {name: punctuation.definition.string.end.markdown}
match: (\[)(\S+?)(\])
name: meta.link.reference.markdown
+ link-html:
+ captures:
+ '1': {name: punctuation.definition.link.markdown}
+ '2': {name: markup.underline.link.markdown}
+ '3': {name: punctuation.definition.link.markdown}
+ match: (?<=\[.*\]\()(\<)(.*?)(\>)
+ name: meta.link.inline.markdown
raw:
captures:
'1': {name: punctuation.definition.raw.markdown}
diff --git a/syntaxes/markdown.tmLanguage b/syntaxes/markdown.tmLanguage
index c40ec43..1da590b 100644
--- a/syntaxes/markdown.tmLanguage
+++ b/syntaxes/markdown.tmLanguage
@@ -3764,6 +3764,10 @@
include
#link-ref-shortcut
+
+ include
+ #link-html
+
ampersand
@@ -3902,6 +3906,10 @@
include
#link-ref-shortcut
+
+ include
+ #link-html
+
bracket
@@ -4193,6 +4201,10 @@
include
#link-ref-shortcut
+
+ include
+ #link-html
+
link-email
@@ -4453,6 +4465,31 @@
name
meta.link.reference.markdown
+ link-html
+
+ captures
+
+ 1
+
+ name
+ punctuation.definition.link.markdown
+
+ 2
+
+ name
+ markup.underline.link.markdown
+
+ 3
+
+ name
+ punctuation.definition.link.markdown
+
+
+ match
+ (?<=\[.*\]\()(\<)(.*?)(\>)
+ name
+ meta.link.inline.markdown
+
raw
captures
diff --git a/test/colorize-fixtures/issue-80.md b/test/colorize-fixtures/issue-80.md
new file mode 100644
index 0000000..35caf41
--- /dev/null
+++ b/test/colorize-fixtures/issue-80.md
@@ -0,0 +1,5 @@
+[text](link)
+
+[text]()
+
+[title]()
\ No newline at end of file
diff --git a/test/colorize-results/issue-80_md.json b/test/colorize-results/issue-80_md.json
new file mode 100644
index 0000000..352e941
--- /dev/null
+++ b/test/colorize-results/issue-80_md.json
@@ -0,0 +1,233 @@
+[
+ {
+ "c": "[",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.string.begin.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "text",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown string.other.link.title.markdown",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "]",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.string.end.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "(",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.metadata.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "link",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown markup.underline.link.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ")",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.metadata.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "[",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.string.begin.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "text",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown string.other.link.title.markdown",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "]",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.string.end.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "(",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.metadata.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "<",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.link.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "link>",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown markup.underline.link.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ")",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.metadata.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "[",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.reference.markdown punctuation.definition.string.begin.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "title",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.reference.markdown string.other.link.title.markdown",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "]",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.reference.markdown punctuation.definition.string.end.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "(",
+ "t": "text.html.markdown meta.paragraph.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "<",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.link.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "path with spaces",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown markup.underline.link.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ">",
+ "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.link.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ")",
+ "t": "text.html.markdown meta.paragraph.markdown",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ }
+]
\ No newline at end of file