syn region mkdBlockquote start=/^\s*>/ end=/$/ contains=mkdLineBreak,mkdLineContinue,@Spell
syn region mkdCode start=/\(\([^\\]\|^\)\\\)\@<!`/ end=/\(\([^\\]\|^\)\\\)\@<!`/
syn region mkdCode start=/\s*``[^`]*/ end=/[^`]*``\s*/
-syn region mkdCode start=/^\s*```\s*[0-9A-Za-z_-]*\s*$/ end=/^\s*```\s*$/
+syn region mkdCode start=/^\s*```\s*[0-9A-Za-z_+-]*\s*$/ end=/^\s*```\s*$/
syn region mkdCode start=/\s*\~\~[^\~]*/ end=/[^\~]*\~\~\s*/
-syn region mkdCode start=/^\s*\~\~\~\s*[0-9A-Za-z_-]*\s*$/ end=/^\s*\~\~\~\s*$/
+syn region mkdCode start=/^\s*\~\~\~\s*[0-9A-Za-z_+-]*\s*$/ end=/^\s*\~\~\~\s*$/
syn region mkdCode start="<pre[^>]*>" end="</pre>"
syn region mkdCode start="<code[^>]*>" end="</code>"
syn region mkdFootnote start="\[^" end="\]"
syn match htmlH1 /^.\+\n=\+$/ contains=@Spell
syn match htmlH2 /^.\+\n-\+$/ contains=@Spell
-if get(g:, 'vim_markdown_math', 0)
- syn region mkdMath matchgroup=mkdDelimiter start="\\\@<!\$" end="\$"
- syn region mkdMath matchgroup=mkdDelimiter start="\\\@<!\$\$" end="\$\$"
-endif
-
" YAML frontmatter
if get(g:, 'vim_markdown_frontmatter', 0)
syn include @yamlTop syntax/yaml.vim
syn region Comment matchgroup=mkdDelimiter start="\%^---$" end="^---$" contains=@yamlTop
endif
+if get(g:, 'vim_markdown_math', 0)
+ syn include @tex syntax/tex.vim
+ syn region mkdMath matchgroup=mkdDelimiter start="\\\@<!\$" end="\$" contains=@tex
+ syn region mkdMath matchgroup=mkdDelimiter start="\\\@<!\$\$" end="\$\$" contains=@tex
+endif
+
syn cluster mkdNonListItem contains=htmlItalic,htmlBold,htmlBoldItalic,mkdFootnotes,mkdInlineURL,mkdLink,mkdLinkDef,mkdLineBreak,mkdBlockquote,mkdCode,mkdIndentCode,mkdListItem,mkdRule,htmlH1,htmlH2,htmlH3,htmlH4,htmlH5,htmlH6,mkdMath
"highlighting for Markdown groups
HtmlHiLink mkdLinkDef mkdID
HtmlHiLink mkdLinkDefTarget mkdURL
HtmlHiLink mkdLinkTitle htmlString
-HtmlHiLink mkdMath Statement
HtmlHiLink mkdDelimiter Delimiter
let b:current_syntax = "mkd"