AssertEqual SyntaxOf('c'), 'htmlItalic'
AssertNotEqual SyntaxOf('d'), 'htmlItalic'
+Given markdown;
+a *b\*c* d
+
+Execute (italic with escaped asterisks):
+ AssertNotEqual SyntaxOf('a'), 'htmlItalic'
+ AssertEqual SyntaxOf('b'), 'htmlItalic'
+ AssertEqual SyntaxOf('c'), 'htmlItalic'
+ AssertNotEqual SyntaxOf('d'), 'htmlItalic'
+
Given markdown;
a __b\_\_c__ d
AssertNotEqual SyntaxOf('c'), 'mkdLink'
AssertNotEqual SyntaxOf('c'), 'mkdURL'
+Given markdown;
+[a] (b)
+
+Execute (space is not allowed between link text and parenthesis):
+ AssertNotEqual SyntaxOf('a'), 'mkdLink'
+ AssertNotEqual SyntaxOf('b'), 'mkdURL'
+
+Given markdown;
+[a](b)
+
+Execute (conceal link):
+ setlocal conceallevel=2
+ AssertEqual synconcealed(1, 1)[0], 1
+ AssertEqual synconcealed(1, 2)[0], 0
+ AssertEqual synconcealed(1, 3)[0], 1
+ AssertEqual synconcealed(1, 4)[0], 1
+ AssertEqual synconcealed(1, 4)[0], 1
+ AssertEqual synconcealed(1, 5)[0], 1
+ AssertEqual synconcealed(1, 6)[0], 1
+ setlocal conceallevel=0
+
# Autolinks
Given markdown;
Execute (autolink with scheme case is insensitive):
AssertEqual SyntaxOf('a'), 'mkdInlineURL'
-Given markdown;
-<notascheme://a>
-
-Execute (autolink without known scheme is not a link):
- AssertNotEqual SyntaxOf('n'), 'mkdInlineURL'
-
Given markdown;
<a>
Execute (code blocks can be fenced with tildes):
AssertEqual SyntaxOf('c'), 'mkdCode'
+Given markdown;
+~~~~
+code
+~~~~~
+
+Execute (code blocks can be fenced with tildes longer than 3):
+ AssertEqual SyntaxOf('c'), 'mkdCode'
+
+Given markdown;
+````
+code
+`````
+
+Execute (code blocks can be fenced with backticks longer than 3):
+ AssertEqual SyntaxOf('c'), 'mkdCode'
+
Given markdown;
~~~ruby
code
AssertNotEqual SyntaxOf('b'), 'mkdCode'
AssertEqual SyntaxOf('c'), 'mkdCode'
+Given markdown;
+```c++
+#include <iostream>
+code
+```
+
+```ruby
+def a
+end
+```
+
+Execute (fenced code block syntax with a language specifier):
+ let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
+ call b:func(0)
+ AssertEqual SyntaxOf('include'), 'cInclude'
+ AssertEqual SyntaxOf('code'), 'mkdSnippetCPP'
+ AssertEqual SyntaxOf('def'), 'rubyDefine'
+
+Given markdown;
+```a+b-
+code
+```
+
+Execute (fenced code block syntax with an unknown language specifier):
+ let b:func = Markdown_GetFunc('vim-markdown/ftplugin/markdown.vim', 'MarkdownRefreshSyntax')
+ call b:func(0)
+ AssertEqual SyntaxOf('code'), 'mkdSnippetA_B_'
+
+
+Given markdown;
+```
+=
+a
+-
+```
+
+Execute (first = or - in fenced code block is not setex headers):
+ AssertEqual SyntaxOf('='), 'mkdCode'
+ AssertEqual SyntaxOf('-'), 'mkdCode'
+
# Math
Given markdown;