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 c Execute (autolink): AssertNotEqual SyntaxOf('a'), 'mkdInlineURL' AssertEqual SyntaxOf('<'), 'mkdDelimiter' AssertEqual SyntaxOf('b'), 'mkdInlineURL' AssertEqual SyntaxOf('>'), 'mkdDelimiter' AssertNotEqual SyntaxOf('c'), 'mkdInlineURL' Given markdown; Execute (autolink with scheme case is insensitive): AssertEqual SyntaxOf('a'), 'mkdInlineURL' Given markdown; Execute (autolink without known scheme is not a link): AssertNotEqual SyntaxOf('n'), 'mkdInlineURL' Given markdown; Execute (autolink without scheme is not a link): AssertNotEqual SyntaxOf('a'), 'mkdInlineURL' Given markdown; < http://a > 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; \ 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'