Execute (autolinks can be backslash escaped):
AssertNotEqual SyntaxOf('<'), 'mkdDelimiter'
+Given markdown;
+a (http://b) c
+
+Execute (autolink in parenthesis):
+ AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
+ AssertEqual SyntaxOf('('), 'mkdDelimiter'
+ AssertEqual SyntaxOf('b'), 'mkdInlineURL'
+ AssertEqual SyntaxOf(')'), 'mkdDelimiter'
+ AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
+
+Given markdown;
+[![a](http://b)](http://c)
+
+Execute (autolink in link text):
+ AssertEqual SyntaxOf('a'), 'mkdLink'
+ AssertEqual SyntaxOf('b'), 'mkdURL'
+ AssertEqual SyntaxOf('c'), 'mkdURL'
+
# Code Blocks
Given markdown;
Execute (code blocks can have a language specifier):
AssertEqual SyntaxOf('c'), 'mkdCode'
+Given markdown;
+```c++
+code
+```
+
+text
+
+Execute (code blocks can be fenced with backticks and a language specifier):
+ AssertEqual SyntaxOf('code'), 'mkdCode'
+ AssertNotEqual SyntaxOf('text'), 'mkdCode'
+
# Math
Given markdown;
AssertEqual SyntaxOf('b'), 'mkdMath'
AssertNotEqual SyntaxOf('c'), 'mkdMath'
+Given markdown;
+$ \sqrt{a}{b} $
+$$ \frac{a}{b} $$
+
+Execute (math tex highlighting):
+ let g:vim_markdown_math=0
+ syn off | syn on
+ AssertNotEqual SyntaxOf('sqrt'), 'texStatement'
+ AssertNotEqual SyntaxOf('frac'), 'texStatement'
+ let g:vim_markdown_math=1
+ syn off | syn on
+ AssertEqual SyntaxOf('sqrt'), 'texStatement'
+ AssertEqual SyntaxOf('frac'), 'texStatement'
+
# YAML frontmatter
Given markdown;
let g:vim_markdown_frontmatter=1
syn off | syn on
AssertEqual SyntaxAt(5, 1), 'mkdRule'
+
+# Header
+
+Given markdown;
+# #a
+ccc
+
+## #b
+ddd
+
+Execute (header title starts with #):
+ AssertEqual SyntaxOf('a'), 'htmlH1'
+ AssertEqual SyntaxOf('b'), 'htmlH2'