Given markdown;
|
|
a **b** c
|
|
|
|
Execute (bold):
|
|
AssertNotEqual SyntaxOf('a'), 'htmlBold'
|
|
AssertEqual SyntaxOf('b'), 'htmlBold'
|
|
AssertNotEqual SyntaxOf('c'), 'htmlBold'
|
|
|
|
Given markdown;
|
|
a *b* c
|
|
|
|
Execute (italic):
|
|
AssertNotEqual SyntaxOf('a'), 'htmlItalic'
|
|
AssertEqual SyntaxOf('b'), 'htmlItalic'
|
|
AssertNotEqual SyntaxOf('c'), 'htmlItalic'
|
|
|
|
# Links
|
|
|
|
Given markdown;
|
|
[a](b)
|
|
|
|
Execute (link with title):
|
|
AssertEqual SyntaxOf('a'), 'mkdLink'
|
|
AssertEqual SyntaxOf('b'), 'mkdURL'
|
|
|
|
Given markdown;
|
|
(a)
|
|
|
|
(b)
|
|
|
|
Execute (parenthesis not in link):
|
|
AssertNotEqual SyntaxOf('a'), 'mkdURL'
|
|
AssertNotEqual SyntaxOf('b'), 'mkdURL'
|
|
|
|
Given markdown;
|
|
[a](b) c [d](e)
|
|
|
|
Execute (multiple links on a line):
|
|
AssertEqual SyntaxOf('c'), ''
|
|
|
|
# Autolinks
|
|
|
|
Given markdown;
|
|
a <http://b> c
|
|
|
|
Execute (autolink):
|
|
AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
|
|
AssertEqual SyntaxOf('<'), 'mkdDelimiter'
|
|
AssertEqual SyntaxOf('b'), 'mkdInlineURL'
|
|
AssertEqual SyntaxOf('>'), 'mkdDelimiter'
|
|
AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
|
|
|
|
Given markdown;
|
|
<HtTp://a>
|
|
|
|
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 (autolink without scheme is not a link):
|
|
AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
|
|
|
|
Given markdown;
|
|
< http://a >
|
|
<http://b c>
|
|
<http://d
|
|
e>
|
|
|
|
Execute (autolink with space is not a link):
|
|
AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
|
|
AssertNotEqual SyntaxOf('b'), 'mkdInlineURL'
|
|
AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
|
|
AssertNotEqual SyntaxOf('d'), 'mkdInlineURL'
|
|
AssertNotEqual SyntaxOf('e'), 'mkdInlineURL'
|
|
|
|
Given markdown;
|
|
\<http://a>
|
|
|
|
Execute (autolinks can be backslash escaped):
|
|
AssertNotEqual SyntaxOf('<'), 'mkdDelimiter'
|
|
|
|
# Code Blocks
|
|
|
|
Given markdown;
|
|
~~~
|
|
code
|
|
~~~
|
|
|
|
Execute (code blocks can be fenced with tildes):
|
|
AssertEqual SyntaxOf('c'), 'mkdCode'
|
|
|
|
Given markdown;
|
|
~~~ruby
|
|
code
|
|
~~~
|
|
|
|
Execute (code blocks can have a language specifier):
|
|
AssertEqual SyntaxOf('c'), 'mkdCode'
|
|
|
|
# Math
|
|
|
|
Given markdown;
|
|
a $x$ b
|
|
c $$y$$ d
|
|
\$e\$
|
|
\$\$f\$\$
|
|
|
|
Execute (math):
|
|
AssertNotEqual SyntaxOf('x'), 'mkdMath'
|
|
AssertNotEqual SyntaxOf('y'), 'mkdMath'
|
|
let g:vim_markdown_math=1
|
|
syn off | syn on
|
|
AssertNotEqual SyntaxOf('a'), 'mkdMath'
|
|
AssertNotEqual SyntaxOf('b'), 'mkdMath'
|
|
AssertNotEqual SyntaxOf('c'), 'mkdMath'
|
|
AssertNotEqual SyntaxOf('d'), 'mkdMath'
|
|
AssertNotEqual SyntaxOf('e'), 'mkdMath'
|
|
AssertNotEqual SyntaxOf('f'), 'mkdMath'
|
|
AssertEqual SyntaxOf('x'), 'mkdMath'
|
|
AssertEqual SyntaxOf('y'), 'mkdMath'
|
|
let g:vim_markdown_math=0
|
|
syn off | syn on
|
|
AssertNotEqual SyntaxOf('x'), 'mkdMath'
|
|
AssertNotEqual SyntaxOf('y'), 'mkdMath'
|
|
|
|
Given markdown;
|
|
a
|
|
|
|
$
|
|
b
|
|
$
|
|
|
|
c
|
|
|
|
Execute (multiline math):
|
|
let g:vim_markdown_math=1
|
|
syn off | syn on
|
|
AssertNotEqual SyntaxOf('a'), 'mkdMath'
|
|
AssertEqual SyntaxOf('b'), 'mkdMath'
|
|
AssertNotEqual SyntaxOf('c'), 'mkdMath'
|
|
|
|
# YAML frontmatter
|
|
|
|
Given markdown;
|
|
---
|
|
a: b
|
|
---
|
|
|
|
Execute (YAML frontmatter is controlled by the option):
|
|
AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
|
|
let g:vim_markdown_frontmatter=1
|
|
syn off | syn on
|
|
AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey'
|
|
let g:vim_markdown_frontmatter=0
|
|
syn off | syn on
|
|
AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
|
|
|
|
Given markdown;
|
|
|
|
---
|
|
a: b
|
|
---
|
|
|
|
Execute (YAML frontmatter only works if it's the first thing in the file):
|
|
let g:vim_markdown_frontmatter=1
|
|
syn off | syn on
|
|
AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
|
|
|
|
Given markdown;
|
|
---
|
|
a: b
|
|
---
|
|
|
|
---
|
|
|
|
Execute (rules are not mistaken by YAML frontmatter delimiters):
|
|
let g:vim_markdown_frontmatter=1
|
|
syn off | syn on
|
|
AssertEqual SyntaxAt(5, 1), 'mkdRule'
|