Markdown Vim Mode
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

187 lines
3.7 KiB

  1. Given markdown;
  2. a **b** c
  3. Execute (bold):
  4. AssertNotEqual SyntaxOf('a'), 'htmlBold'
  5. AssertEqual SyntaxOf('b'), 'htmlBold'
  6. AssertNotEqual SyntaxOf('c'), 'htmlBold'
  7. Given markdown;
  8. a *b* c
  9. Execute (italic):
  10. AssertNotEqual SyntaxOf('a'), 'htmlItalic'
  11. AssertEqual SyntaxOf('b'), 'htmlItalic'
  12. AssertNotEqual SyntaxOf('c'), 'htmlItalic'
  13. # Links
  14. Given markdown;
  15. [a](b)
  16. Execute (link with title):
  17. AssertEqual SyntaxOf('a'), 'mkdLink'
  18. AssertEqual SyntaxOf('b'), 'mkdURL'
  19. Given markdown;
  20. (a)
  21. (b)
  22. Execute (parenthesis not in link):
  23. AssertNotEqual SyntaxOf('a'), 'mkdURL'
  24. AssertNotEqual SyntaxOf('b'), 'mkdURL'
  25. Given markdown;
  26. [a](b) c [d](e)
  27. Execute (multiple links on a line):
  28. AssertEqual SyntaxOf('c'), ''
  29. # Autolinks
  30. Given markdown;
  31. a <http://b> c
  32. Execute (autolink):
  33. AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
  34. AssertEqual SyntaxOf('<'), 'mkdDelimiter'
  35. AssertEqual SyntaxOf('b'), 'mkdInlineURL'
  36. AssertEqual SyntaxOf('>'), 'mkdDelimiter'
  37. AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
  38. Given markdown;
  39. <HtTp://a>
  40. Execute (autolink with scheme case is insensitive):
  41. AssertEqual SyntaxOf('a'), 'mkdInlineURL'
  42. Given markdown;
  43. <notascheme://a>
  44. Execute (autolink without known scheme is not a link):
  45. AssertNotEqual SyntaxOf('n'), 'mkdInlineURL'
  46. Given markdown;
  47. <a>
  48. Execute (autolink without scheme is not a link):
  49. AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
  50. Given markdown;
  51. < http://a >
  52. <http://b c>
  53. <http://d
  54. e>
  55. Execute (autolink with space is not a link):
  56. AssertNotEqual SyntaxOf('a'), 'mkdInlineURL'
  57. AssertNotEqual SyntaxOf('b'), 'mkdInlineURL'
  58. AssertNotEqual SyntaxOf('c'), 'mkdInlineURL'
  59. AssertNotEqual SyntaxOf('d'), 'mkdInlineURL'
  60. AssertNotEqual SyntaxOf('e'), 'mkdInlineURL'
  61. Given markdown;
  62. \<http://a>
  63. Execute (autolinks can be backslash escaped):
  64. AssertNotEqual SyntaxOf('<'), 'mkdDelimiter'
  65. # Code Blocks
  66. Given markdown;
  67. ~~~
  68. code
  69. ~~~
  70. Execute (code blocks can be fenced with tildes):
  71. AssertEqual SyntaxOf('c'), 'mkdCode'
  72. Given markdown;
  73. ~~~ruby
  74. code
  75. ~~~
  76. Execute (code blocks can have a language specifier):
  77. AssertEqual SyntaxOf('c'), 'mkdCode'
  78. # Math
  79. Given markdown;
  80. a $x$ b
  81. c $$y$$ d
  82. \$e\$
  83. \$\$f\$\$
  84. Execute (math):
  85. AssertNotEqual SyntaxOf('x'), 'mkdMath'
  86. AssertNotEqual SyntaxOf('y'), 'mkdMath'
  87. let g:vim_markdown_math=1
  88. syn off | syn on
  89. AssertNotEqual SyntaxOf('a'), 'mkdMath'
  90. AssertNotEqual SyntaxOf('b'), 'mkdMath'
  91. AssertNotEqual SyntaxOf('c'), 'mkdMath'
  92. AssertNotEqual SyntaxOf('d'), 'mkdMath'
  93. AssertNotEqual SyntaxOf('e'), 'mkdMath'
  94. AssertNotEqual SyntaxOf('f'), 'mkdMath'
  95. AssertEqual SyntaxOf('x'), 'mkdMath'
  96. AssertEqual SyntaxOf('y'), 'mkdMath'
  97. let g:vim_markdown_math=0
  98. syn off | syn on
  99. AssertNotEqual SyntaxOf('x'), 'mkdMath'
  100. AssertNotEqual SyntaxOf('y'), 'mkdMath'
  101. Given markdown;
  102. a
  103. $
  104. b
  105. $
  106. c
  107. Execute (multiline math):
  108. let g:vim_markdown_math=1
  109. syn off | syn on
  110. AssertNotEqual SyntaxOf('a'), 'mkdMath'
  111. AssertEqual SyntaxOf('b'), 'mkdMath'
  112. AssertNotEqual SyntaxOf('c'), 'mkdMath'
  113. # YAML frontmatter
  114. Given markdown;
  115. ---
  116. a: b
  117. ---
  118. Execute (YAML frontmatter is controlled by the option):
  119. AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
  120. let g:vim_markdown_frontmatter=1
  121. syn off | syn on
  122. AssertEqual SyntaxOf('a'), 'yamlBlockMappingKey'
  123. let g:vim_markdown_frontmatter=0
  124. syn off | syn on
  125. AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
  126. Given markdown;
  127. ---
  128. a: b
  129. ---
  130. Execute (YAML frontmatter only works if it's the first thing in the file):
  131. let g:vim_markdown_frontmatter=1
  132. syn off | syn on
  133. AssertNotEqual SyntaxOf('a'), 'yamlBlockMappingKey'
  134. Given markdown;
  135. ---
  136. a: b
  137. ---
  138. ---
  139. Execute (rules are not mistaken by YAML frontmatter delimiters):
  140. let g:vim_markdown_frontmatter=1
  141. syn off | syn on
  142. AssertEqual SyntaxAt(5, 1), 'mkdRule'