Files
vscode/extensions/markdown/syntaxes/markdown.tmLanguage.base

1203 lines
30 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>md</string>
<string>mdown</string>
<string>markdown</string>
<string>markdn</string>
</array>
<key>keyEquivalent</key>
<string>^~M</string>
<key>name</key>
<string>Markdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#frontMatter</string>
</dict>
<dict>
<key>include</key>
<string>#block</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>block</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#separator</string>
</dict>
<dict>
<key>include</key>
<string>#heading</string>
</dict>
<dict>
<key>include</key>
<string>#blockquote</string>
</dict>
<dict>
<key>include</key>
<string>#lists</string>
</dict>
{{languageIncludes}}
<dict>
<key>include</key>
<string>#fenced_code_block_unknown</string>
</dict>
<dict>
<key>include</key>
<string>#raw_block</string>
</dict>
<dict>
<key>include</key>
<string>#link-def</string>
</dict>
<dict>
<key>include</key>
<string>#html</string>
</dict>
<dict>
<key>include</key>
<string>#paragraph</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>blockquote</key>
<dict>
<key>begin</key>
<string>(^|\G)[ ]{0,3}(&gt;) ?</string>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>beginning.punctuation.definition.quote.markdown</string>
</dict>
</dict>
<key>name</key>
<string>markup.quote.markdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#block</string>
</dict>
</array>
<key>while</key>
<string>(^|\G)\s*(&gt;) ?</string>
</dict>
<key>heading</key>
<dict>
<key>begin</key>
<string>(?:^|\G)[ ]{0,3}(#{1,6})\s*(?=[\S[^#]])</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.heading.markdown</string>
</dict>
</dict>
<key>contentName</key>
<string>entity.name.section.markdown</string>
<key>end</key>
<string>\s*(#{1,6})?$\n?</string>
<key>name</key>
<string>markup.heading.markdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#inline</string>
</dict>
</array>
</dict>
<key>heading-setext</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>^(={3,})(?=[ \t]*$\n?)</string>
<key>name</key>
<string>markup.heading.setext.1.markdown</string>
</dict>
<dict>
<key>match</key>
<string>^(-{3,})(?=[ \t]*$\n?)</string>
<key>name</key>
<string>markup.heading.setext.2.markdown</string>
</dict>
</array>
</dict>
<key>html</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)\s*(&lt;!--)</string>
<key>end</key>
<string>(--&gt;)</string>
<key>name</key>
<string>comment.block.html</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.html</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.html</string>
</dict>
</dict>
</dict>
<dict>
<key>begin</key>
<string>(^|\G)\s*(?=&lt;(script|style|pre)(\s|$|&gt;)(?!.*?&lt;/(script|style|pre)&gt;))</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(\s*|$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
</array>
<key>while</key>
<string>^\s*(?!&lt;/(script|style|pre)&gt;)</string>
</dict>
</array>
<key>end</key>
<string>(?=&lt;/(script|style|pre)&gt;)</string>
</dict>
<dict>
<key>begin</key>
<string>(^|\G)\s*(?=&lt;/?(address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(\s|$|/?&gt;))</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
</array>
<key>while</key>
<string>^(?!\s*$)</string>
</dict>
<dict>
<key>begin</key>
<string>(^|\G)\s*(?=(&lt;[a-zA-Z0-9\-](/?&gt;|\s.*?&gt;)|&lt;/[a-zA-Z0-9\-]&gt;)\s*$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
</array>
<key>while</key>
<string>^(?!\s*$)</string>
</dict>
</array>
</dict>
<key>link-def</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.markdown</string>
</dict>
<key>10</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.markdown</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.markdown</string>
</dict>
<key>12</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.markdown</string>
</dict>
<key>13</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.markdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>constant.other.reference.link.markdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.markdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.separator.key-value.markdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.markdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>markup.underline.link.markdown</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.markdown</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.markdown</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.markdown</string>
</dict>
</dict>
<key>match</key>
<string>^(?x:
\s* # Leading whitespace
(\[)(.+?)(\])(:) # Reference name
[ \t]* # Optional whitespace
(&lt;?)(\S+?)(&gt;?) # The url
[ \t]* # Optional whitespace
(?:
((\().+?(\))) # Match title in quotes…
| ((").+?(")) # or in parens.
)? # Title is optional
\s* # Optional whitespace
$
)</string>
<key>name</key>
<string>meta.link.reference.def.markdown</string>
</dict>
<key>list_paragraph</key>
<dict>
<key>begin</key>
<string>(^|\G)(?=\S)(?![*+-]\s|[0-9]+\.\s)</string>
<key>name</key>
<string>meta.paragraph.markdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#inline</string>
</dict>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
<dict>
<key>include</key>
<string>#heading-setext</string>
</dict>
</array>
<key>while</key>
<string>(^|\G)(?!\s*$|#|[ ]{0,3}([-*_][ ]{2,}){3,}[ \t]*$\n?|&gt;|[ ]{0,3}[*+-]|[ ]{0,3}[0-9]+\.)</string>
</dict>
<key>lists</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(^|\G)([ ]{0,3})([*+-])([ ]{1,3}|\t)</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>beginning.punctuation.definition.list.markdown</string>
</dict>
</dict>
<key>comment</key>
<string>Currently does not support un-indented second lines.</string>
<key>name</key>
<string>markup.list.unnumbered.markdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#list_paragraph</string>
</dict>
<dict>
<key>include</key>
<string>#block</string>
</dict>
</array>
<key>while</key>
<string>((^|\G)([ ]{4}|\t))|(^[ \t]*$)</string>
</dict>
<dict>
<key>begin</key>
<string>(^|\G)([ ]{0,3})([0-9]+\.)([ ]{1,3}|\t)</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>beginning.punctuation.definition.list.markdown</string>
</dict>
</dict>
<key>name</key>
<string>markup.list.numbered.markdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#list_paragraph</string>
</dict>
<dict>
<key>include</key>
<string>#block</string>
</dict>
</array>
<key>while</key>
<string>((^|\G)([ ]{4}|\t))|(^[ \t]*$)</string>
</dict>
</array>
</dict>
<key>paragraph</key>
<dict>
<key>begin</key>
<string>(^|\G)[ ]{0,3}(?=\S)</string>
<key>name</key>
<string>meta.paragraph.markdown</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#inline</string>
</dict>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
<dict>
<key>include</key>
<string>#heading-setext</string>
</dict>
</array>
<key>while</key>
<string>(^|\G)((?=\s*[-=]{3,}\s*$)|[ ]{4,}(?=\S))</string>
</dict>
{{languageDefinitions}}
<key>fenced_code_block_unknown</key>
<dict>
<key>name</key>
<string>markup.fenced_code.block.markdown</string>
<key>begin</key>
<string>(^|\G)(\s*)([`~]{3,})\s*(?=([^`~]*)?$)</string>
<key>end</key>
<string>(^|\G)(\2|\s{0,3})(\3)\s*$</string>
<key>beginCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.markdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>fenced_code.block.language</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.markdown</string>
</dict>
</dict>
</dict>
<key>raw_block</key>
<dict>
<key>begin</key>
<string>(^|\G)([ ]{4}|\t)</string>
<key>name</key>
<string>markup.raw.block.markdown</string>
<key>while</key>
<string>(^|\G)([ ]{4}|\t)</string>
</dict>
<key>separator</key>
<dict>
<key>match</key>
<string>(^|\G)[ ]{0,3}([*-_])([ ]{0,2}\2){2,}[ \t]*$\n?</string>
<key>name</key>
<string>meta.separator.markdown</string>
</dict>
</dict>
</dict>
<key>inline</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#ampersand</string>
</dict>
<dict>
<key>include</key>
<string>#bracket</string>
</dict>
<dict>
<key>include</key>
<string>#bold</string>
</dict>
<dict>
<key>include</key>
<string>#italic</string>
</dict>
<dict>
<key>include</key>
<string>#raw</string>
</dict>
<dict>
<key>include</key>
<string>#escape</string>
</dict>
<dict>
<key>include</key>
<string>#image-inline</string>
</dict>
<dict>
<key>include</key>
<string>#image-ref</string>
</dict>
<dict>
<key>include</key>
<string>#link-email</string>
</dict>
<dict>
<key>include</key>
<string>#link-inet</string>
</dict>
<dict>
<key>include</key>
<string>#link-inline</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref-literal</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>ampersand</key>
<dict>
<key>comment</key>
<string>
Markdown will convert this for us. We match it so that the
HTML grammar will not mark it up as invalid.
</string>
<key>match</key>
<string>&amp;(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)</string>
<key>name</key>
<string>meta.other.valid-ampersand.markdown</string>
</dict>
<key>bold</key>
<dict>
<key>begin</key>
<string>(?x)
(\*\*|__)(?=\S) # Open
(?=
(
&lt;[^&gt;]*+&gt; # HTML tags
| (?&lt;raw&gt;`+)([^`]|(?!(?&lt;!`)\k&lt;raw&gt;(?!`))`)*+\k&lt;raw&gt;
# Raw
| \\[\\`*_{}\[\]()#.!+\-&gt;]?+ # Escapes
| \[
(
(?&lt;square&gt; # Named group
[^\[\]\\] # Match most chars
| \\. # Escaped chars
| \[ \g&lt;square&gt;*+ \] # Nested brackets
)*+
\]
(
( # Reference Link
[ ]? # Optional space
\[[^\]]*+\] # Ref name
)
| ( # Inline Link
\( # Opening paren
[ \t]*+ # Optional whitespace
&lt;?(.*?)&gt;? # URL
[ \t]*+ # Optional whitespace
( # Optional Title
(?&lt;title&gt;['"])
(.*?)
\k&lt;title&gt;
)?
\)
)
)
)
| (?!(?&lt;=\S)\1). # Everything besides
# style closer
)++
(?&lt;=\S)\1 # Close
)
</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.bold.markdown</string>
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\S)(\1)</string>
<key>name</key>
<string>markup.bold.markdown</string>
<key>patterns</key>
<array>
<dict>
<key>applyEndPatternLast</key>
<integer>1</integer>
<key>begin</key>
<string>(?=&lt;[^&gt;]*?&gt;)</string>
<key>end</key>
<string>(?&lt;=&gt;)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#escape</string>
</dict>
<dict>
<key>include</key>
<string>#ampersand</string>
</dict>
<dict>
<key>include</key>
<string>#bracket</string>
</dict>
<dict>
<key>include</key>
<string>#raw</string>
</dict>
<dict>
<key>include</key>
<string>#italic</string>
</dict>
<dict>
<key>include</key>
<string>#image-inline</string>
</dict>
<dict>
<key>include</key>
<string>#link-inline</string>
</dict>
<dict>
<key>include</key>
<string>#link-inet</string>
</dict>
<dict>
<key>include</key>
<string>#link-email</string>
</dict>
<dict>
<key>include</key>
<string>#image-ref</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref-literal</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref</string>
</dict>
</array>
</dict>
<key>bracket</key>
<dict>
<key>comment</key>
<string>
Markdown will convert this for us. We match it so that the
HTML grammar will not mark it up as invalid.
</string>
<key>match</key>
<string>&lt;(?![a-z/?\$!])</string>
<key>name</key>
<string>meta.other.valid-bracket.markdown</string>
</dict>
<key>escape</key>
<dict>
<key>match</key>
<string>\\[-`*_#+.!(){}\[\]\\&gt;]</string>
<key>name</key>
<string>constant.character.escape.markdown</string>
</dict>
<key>image-inline</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.markdown</string>
</dict>
<key>10</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.markdown</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.markdown</string>
</dict>
<key>12</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.markdown</string>
</dict>
<key>13</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.markdown</string>
</dict>
<key>14</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.markdown</string>
</dict>
<key>15</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.markdown</string>
</dict>
<key>16</key>
<dict>
<key>name</key>
<string>punctuation.definition.metadata.markdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.description.markdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.markdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>invalid.illegal.whitespace.markdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.metadata.markdown</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.markdown</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>markup.underline.link.image.markdown</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.markdown</string>
</dict>
</dict>
<key>match</key>
<string>(?x:
(\!\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])
# Match the link text.
([ ])? # Space not allowed
(\() # Opening paren for url
(&lt;?)(\S+?)(&gt;?) # The url
[ \t]* # Optional whitespace
(?:
((\().+?(\))) # Match title in parens…
| ((").+?(")) # or in quotes.
)? # Title is optional
\s* # Optional whitespace
(\))
)</string>
<key>name</key>
<string>meta.image.inline.markdown</string>
</dict>
<key>image-ref</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.markdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.description.markdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.markdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.markdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>constant.other.reference.link.markdown</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.markdown</string>
</dict>
</dict>
<key>match</key>
<string>(\!\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])[ ]?(\[)(.*?)(\])</string>
<key>name</key>
<string>meta.image.reference.markdown</string>
</dict>
<key>italic</key>
<dict>
<key>begin</key>
<string>(?x)
(\*|_)(?=\S) # Open
(?=
(
&lt;[^&gt;]*+&gt; # HTML tags
| (?&lt;raw&gt;`+)([^`]|(?!(?&lt;!`)\k&lt;raw&gt;(?!`))`)*+\k&lt;raw&gt;
# Raw
| \\[\\`*_{}\[\]()#.!+\-&gt;]?+ # Escapes
| \[
(
(?&lt;square&gt; # Named group
[^\[\]\\] # Match most chars
| \\. # Escaped chars
| \[ \g&lt;square&gt;*+ \] # Nested brackets
)*+
\]
(
( # Reference Link
[ ]? # Optional space
\[[^\]]*+\] # Ref name
)
| ( # Inline Link
\( # Opening paren
[ \t]*+ # Optional whtiespace
&lt;?(.*?)&gt;? # URL
[ \t]*+ # Optional whtiespace
( # Optional Title
(?&lt;title&gt;['"])
(.*?)
\k&lt;title&gt;
)?
\)
)
)
)
| \1\1 # Must be bold closer
| (?!(?&lt;=\S)\1). # Everything besides
# style closer
)++
(?&lt;=\S)\1 # Close
)
</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.italic.markdown</string>
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\S)(\1)((?!\1)|(?=\1\1))</string>
<key>name</key>
<string>markup.italic.markdown</string>
<key>patterns</key>
<array>
<dict>
<key>applyEndPatternLast</key>
<integer>1</integer>
<key>begin</key>
<string>(?=&lt;[^&gt;]*?&gt;)</string>
<key>end</key>
<string>(?&lt;=&gt;)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>text.html.basic</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#escape</string>
</dict>
<dict>
<key>include</key>
<string>#ampersand</string>
</dict>
<dict>
<key>include</key>
<string>#bracket</string>
</dict>
<dict>
<key>include</key>
<string>#raw</string>
</dict>
<dict>
<key>include</key>
<string>#bold</string>
</dict>
<dict>
<key>include</key>
<string>#image-inline</string>
</dict>
<dict>
<key>include</key>
<string>#link-inline</string>
</dict>
<dict>
<key>include</key>
<string>#link-inet</string>
</dict>
<dict>
<key>include</key>
<string>#link-email</string>
</dict>
<dict>
<key>include</key>
<string>#image-ref</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref-literal</string>
</dict>
<dict>
<key>include</key>
<string>#link-ref</string>
</dict>
</array>
</dict>
<key>link-email</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.markdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>markup.underline.link.markdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.markdown</string>
</dict>
</dict>
<key>match</key>
<string>(&lt;)((?:mailto:)?[-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(&gt;)</string>
<key>name</key>
<string>meta.link.email.lt-gt.markdown</string>
</dict>
<key>link-inet</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.markdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>markup.underline.link.markdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.markdown</string>
</dict>
</dict>
<key>match</key>
<string>(&lt;)((?:https?|ftp)://.*?)(&gt;)</string>
<key>name</key>
<string>meta.link.inet.markdown</string>
</dict>
<key>link-inline</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.markdown</string>
</dict>
<key>10</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.markdown</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.markdown</string>
</dict>
<key>12</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.markdown</string>
</dict>
<key>13</key>
<dict>
<key>name</key>
<string>string.other.link.description.title.markdown</string>
</dict>
<key>14</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.markdown</string>
</dict>
<key>15</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.markdown</string>
</dict>
<key>16</key>
<dict>
<key>name</key>
<string>punctuation.definition.metadata.markdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.title.markdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.markdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>invalid.illegal.whitespace.markdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.metadata.markdown</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.markdown</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>markup.underline.link.markdown</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>punctuation.definition.link.markdown</string>
</dict>
</dict>
<key>match</key>
<string>(?x:
(\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])
# Match the link text.
([ ])? # Space not allowed
(\() # Opening paren for url
(&lt;?)(.*?)(&gt;?) # The url
[ \t]* # Optional whitespace
(?:
((\().+?(\))) # Match title in parens…
| ((").+?(")) # or in quotes.
)? # Title is optional
\s* # Optional whitespace
(\))
)</string>
<key>name</key>
<string>meta.link.inline.markdown</string>
</dict>
<key>link-ref</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.markdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.title.markdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.markdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.begin.markdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>constant.other.reference.link.markdown</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.end.markdown</string>
</dict>
</dict>
<key>match</key>
<string>(\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])(\[)([^\]]*+)(\])</string>
<key>name</key>
<string>meta.link.reference.markdown</string>
</dict>
<key>link-ref-literal</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.markdown</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.other.link.title.markdown</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.markdown</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.begin.markdown</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>punctuation.definition.constant.end.markdown</string>
</dict>
</dict>
<key>match</key>
<string>(\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])[ ]?(\[)(\])</string>
<key>name</key>
<string>meta.link.reference.literal.markdown</string>
</dict>
<key>raw</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.raw.markdown</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.raw.markdown</string>
</dict>
</dict>
<key>match</key>
<string>(`+)([^`]|(?!(?&lt;!`)\1(?!`))`)*+(\1)</string>
<key>name</key>
<string>markup.inline.raw.markdown</string>
</dict>
</dict>
</dict>
<key>frontMatter</key>
<dict>
<key>begin</key>
<string>\A-{3}\s*$</string>
<key>while</key>
<string>^(?!(-{3}|\.{3})\s*$)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.yaml</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>text.html.markdown</string>
<key>uuid</key>
<string>0A1D9874-B448-11D9-BD50-000D93B6E43C</string>
</dict>
</plist>