Browse files

Switch from mkd.vim to tpope's markdown.vim

  • Loading branch information...
1 parent 185f3cf commit a9da824301c07021ee7cb07c230bc4a60b05c097 @benjaminoakes committed Apr 5, 2012
Showing with 134 additions and 134 deletions.
  1. +6 −0 vim/ftdetect/markdown.vim
  2. +0 −3 vim/ftdetect/mkd.vim
  3. +21 −0 vim/ftplugin/markdown.vim
  4. +107 −0 vim/syntax/markdown.vim
  5. +0 −131 vim/syntax/mkd.vim
6 vim/ftdetect/markdown.vim
@@ -0,0 +1,6 @@
+autocmd BufNewFile,BufRead *.markdown,*.md,*.mdown,*.mkd,*.mkdn
+ \ if &ft =~# '^\%(conf\|modula2\)$' |
+ \ set ft=markdown |
+ \ else |
+ \ setf markdown |
+ \ endif
3 vim/ftdetect/mkd.vim
@@ -1,3 +0,0 @@
-" markdown filetype file
-au BufRead,BufNewFile *.{md,mdown,mkd,mkdn,markdown,mdwn} set filetype=mkd
21 vim/ftplugin/markdown.vim
@@ -0,0 +1,21 @@
+" Vim filetype plugin
+" Language: Markdown
+" Maintainer: Tim Pope <>
+if exists("b:did_ftplugin")
+ finish
+runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim
+setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s
+setlocal formatoptions+=tcqln
+setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^[-*+]\\s\\+
+if exists('b:undo_ftplugin')
+ let b:undo_ftplugin .= "|setl cms< com< fo< flp<"
+ let b:undo_ftplugin = "setl cms< com< fo< flp<"
+" vim:set sw=2:
107 vim/syntax/markdown.vim
@@ -0,0 +1,107 @@
+" Vim syntax file
+" Language: Markdown
+" Maintainer: Tim Pope <>
+" Filenames: *.markdown
+if exists("b:current_syntax")
+ finish
+runtime! syntax/html.vim
+unlet! b:current_syntax
+syn sync minlines=10
+syn case ignore
+syn match markdownValid '[<>]\S\@!'
+syn match markdownValid '&\%(#\=\w*;\)\@!'
+syn match markdownLineStart "^[<@]\@!" nextgroup=@markdownBlock
+syn cluster markdownBlock contains=markdownH1,markdownH2,markdownH3,markdownH4,markdownH5,markdownH6,markdownBlockquote,markdownListMarker,markdownOrderedListMarker,markdownCodeBlock,markdownRule
+syn cluster markdownInline contains=markdownLineBreak,markdownLinkText,markdownItalic,markdownBold,markdownCode,markdownEscape,@htmlTop,markdownError
+syn match markdownH1 "^.\+\n=\+$" contained contains=@markdownInline,markdownHeadingRule
+syn match markdownH2 "^.\+\n-\+$" contained contains=@markdownInline,markdownHeadingRule
+syn match markdownHeadingRule "^[=-]\+$" contained
+syn region markdownH1 matchgroup=markdownHeadingDelimiter start="##\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn region markdownH2 matchgroup=markdownHeadingDelimiter start="###\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn region markdownH3 matchgroup=markdownHeadingDelimiter start="####\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn region markdownH4 matchgroup=markdownHeadingDelimiter start="#####\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn region markdownH5 matchgroup=markdownHeadingDelimiter start="######\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn region markdownH6 matchgroup=markdownHeadingDelimiter start="#######\@!" end="#*\s*$" keepend oneline contains=@markdownInline contained
+syn match markdownBlockquote ">\s" contained nextgroup=@markdownBlock
+syn region markdownCodeBlock start=" \|\t" end="$" contained
+" TODO: real nesting
+syn match markdownListMarker " \{0,4\}[-*+]\%(\s\+\S\)\@=" contained
+syn match markdownOrderedListMarker " \{0,4}\<\d\+\.\%(\s*\S\)\@=" contained
+syn match markdownRule "\* *\* *\*[ *]*$" contained
+syn match markdownRule "- *- *-[ -]*$" contained
+syn match markdownLineBreak "\s\{2,\}$"
+syn region markdownIdDeclaration matchgroup=markdownLinkDelimiter start="^ \{0,3\}!\=\[" end="\]:" oneline keepend nextgroup=markdownUrl skipwhite
+syn match markdownUrl "\S\+" nextgroup=markdownUrlTitle skipwhite contained
+syn region markdownUrl matchgroup=markdownUrlDelimiter start="<" end=">" oneline keepend nextgroup=markdownUrlTitle skipwhite contained
+syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+"+ end=+"+ keepend contained
+syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+'+ end=+'+ keepend contained
+syn region markdownUrlTitle matchgroup=markdownUrlTitleDelimiter start=+(+ end=+)+ keepend contained
+syn region markdownLinkText matchgroup=markdownLinkTextDelimiter start="!\=\[\%(\_[^]]*]\%( \=[[(]\)\)\@=" end="\]\%( \=[[(]\)\@=" keepend nextgroup=markdownLink,markdownId skipwhite contains=@markdownInline,markdownLineStart
+syn region markdownLink matchgroup=markdownLinkDelimiter start="(" end=")" contains=markdownUrl keepend contained
+syn region markdownId matchgroup=markdownIdDelimiter start="\[" end="\]" keepend contained
+syn region markdownAutomaticLink matchgroup=markdownUrlDelimiter start="<\%(\w\+:\|[[:alnum:]_+-]\+@\)\@=" end=">" keepend oneline
+syn region markdownItalic start="\S\@<=\*\|\*\S\@=" end="\S\@<=\*\|\*\S\@=" keepend contains=markdownLineStart
+syn region markdownItalic start="\S\@<=_\|_\S\@=" end="\S\@<=_\|_\S\@=" keepend contains=markdownLineStart
+syn region markdownBold start="\S\@<=\*\*\|\*\*\S\@=" end="\S\@<=\*\*\|\*\*\S\@=" keepend contains=markdownLineStart
+syn region markdownBold start="\S\@<=__\|__\S\@=" end="\S\@<=__\|__\S\@=" keepend contains=markdownLineStart
+syn region markdownBoldItalic start="\S\@<=\*\*\*\|\*\*\*\S\@=" end="\S\@<=\*\*\*\|\*\*\*\S\@=" keepend contains=markdownLineStart
+syn region markdownBoldItalic start="\S\@<=___\|___\S\@=" end="\S\@<=___\|___\S\@=" keepend contains=markdownLineStart
+syn region markdownCode matchgroup=markdownCodeDelimiter start="`" end="`" keepend contains=markdownLineStart
+syn region markdownCode matchgroup=markdownCodeDelimiter start="`` \=" end=" \=``" keepend contains=markdownLineStart
+syn region markdownCode matchgroup=markdownCodeDelimiter start="^\s*\zs```\s*\w*\ze\s*$" end="^```\ze\s*$" keepend
+syn match markdownEscape "\\[][\\`*_{}()#+.!-]"
+syn match markdownError "\w\@<=_\w\@="
+hi def link markdownH1 htmlH1
+hi def link markdownH2 htmlH2
+hi def link markdownH3 htmlH3
+hi def link markdownH4 htmlH4
+hi def link markdownH5 htmlH5
+hi def link markdownH6 htmlH6
+hi def link markdownHeadingRule markdownRule
+hi def link markdownHeadingDelimiter Delimiter
+hi def link markdownOrderedListMarker markdownListMarker
+hi def link markdownListMarker htmlTagName
+hi def link markdownBlockquote Comment
+hi def link markdownRule PreProc
+hi def link markdownLinkText htmlLink
+hi def link markdownIdDeclaration Typedef
+hi def link markdownId Type
+hi def link markdownAutomaticLink markdownUrl
+hi def link markdownUrl Float
+hi def link markdownUrlTitle String
+hi def link markdownIdDelimiter markdownLinkDelimiter
+hi def link markdownUrlDelimiter htmlTag
+hi def link markdownUrlTitleDelimiter Delimiter
+hi def link markdownItalic htmlItalic
+hi def link markdownBold htmlBold
+hi def link markdownBoldItalic htmlBoldItalic
+hi def link markdownCodeDelimiter Delimiter
+hi def link markdownEscape Special
+hi def link markdownError Error
+let b:current_syntax = "markdown"
+" vim:set sw=2:
131 vim/syntax/mkd.vim
@@ -1,131 +0,0 @@
-" Vim syntax file
-" Language: Markdown
-" Maintainer: Ben Williams <>
-" URL:
-" Version: 9
-" Last Change: 2009 May 18
-" Remark: Uses HTML syntax file
-" Remark: I don't do anything with angle brackets (<>) because that would too easily
-" easily conflict with HTML syntax
-" TODO: Handle stuff contained within stuff (e.g. headings within blockquotes)
-" Read the HTML syntax to start with
-if version < 600
- so <sfile>:p:h/html.vim
- runtime! syntax/html.vim
- unlet b:current_syntax
-if version < 600
- syntax clear
-elseif exists("b:current_syntax")
- finish
-" don't use standard HiLink, it will not work with included syntax files
-if version < 508
- command! -nargs=+ HtmlHiLink hi link <args>
- command! -nargs=+ HtmlHiLink hi def link <args>
-syn spell toplevel
-syn case ignore
-syn sync linebreaks=1
-"additions to HTML groups
-syn region htmlBold start=/\\\@<!\(^\|\A\)\@=\*\@<!\*\*\*\@!/ end=/\\\@<!\*\@<!\*\*\*\@!\($\|\A\)\@=/ contains=@Spell,htmlItalic
-syn region htmlItalic start=/\\\@<!\(^\|\A\)\@=\*\@<!\*\*\@!/ end=/\\\@<!\*\@<!\*\*\@!\($\|\A\)\@=/ contains=htmlBold,@Spell
-syn region htmlBold start=/\\\@<!\(^\|\A\)\@=_\@<!___\@!/ end=/\\\@<!_\@<!___\@!\($\|\A\)\@=/ contains=htmlItalic,@Spell
-syn region htmlItalic start=/\\\@<!\(^\|\A\)\@=_\@<!__\@!/ end=/\\\@<!_\@<!__\@!\($\|\A\)\@=/ contains=htmlBold,@Spell
-" [link](URL) | [link][id] | [link][]
-syn region mkdLink matchgroup=mkdDelimiter start="\!\?\[" end="\]\ze\s*[[(]" contains=@Spell nextgroup=mkdURL,mkdID skipwhite
-syn region mkdID matchgroup=mkdDelimiter start="\[" end="\]" contained
-syn region mkdURL matchgroup=mkdDelimiter start="(" end=")" contained
-" mkd inline links: protocol optional user:pass@ sub/domain .com,, etc optional port path/querystring/hash fragment
-" ------------ _____________________ --------------------------- ________________________ ----------------- __
-syntax match mkdInlineURL /https\?:\/\/\(\w\+\(:\w\+\)\?@\)\?\([A-Za-z][-_0-9A-Za-z]*\.\)\{1,}\(\w\{2,}\.\?\)\{1,}\(:[0-9]\{1,5}\)\?\S*/
-" Link definitions: [id]: URL (Optional Title)
-" TODO handle automatic links without colliding with htmlTag (<URL>)
-syn region mkdLinkDef matchgroup=mkdDelimiter start="^ \{,3}\zs\[" end="]:" oneline nextgroup=mkdLinkDefTarget skipwhite
-syn region mkdLinkDefTarget start="<\?\zs\S" excludenl end="\ze[>[:space:]\n]" contained nextgroup=mkdLinkTitle,mkdLinkDef skipwhite skipnl oneline
-syn region mkdLinkTitle matchgroup=mkdDelimiter start=+"+ end=+"+ contained
-syn region mkdLinkTitle matchgroup=mkdDelimiter start=+'+ end=+'+ contained
-syn region mkdLinkTitle matchgroup=mkdDelimiter start=+(+ end=+)+ contained
-"define Markdown groups
-syn match mkdLineContinue ".$" contained
-syn match mkdRule /^\s*\*\s\{0,1}\*\s\{0,1}\*$/
-syn match mkdRule /^\s*-\s\{0,1}-\s\{0,1}-$/
-syn match mkdRule /^\s*_\s\{0,1}_\s\{0,1}_$/
-syn match mkdRule /^\s*-\{3,}$/
-syn match mkdRule /^\s*\*\{3,5}$/
-syn match mkdListItem "^\s*[-*+]\s\+"
-syn match mkdListItem "^\s*\d\+\.\s\+"
-syn match mkdCode /^\s*\n\(\(\s\{4,}[^ ]\|\t\+[^\t]\).*\n\)\+/
-syn match mkdLineBreak / \+$/
-syn region mkdCode start=/\\\@<!`/ end=/\\\@<!`/
-syn region mkdCode start=/\s*``[^`]*/ end=/[^`]*``\s*/
-syn region mkdBlockquote start=/^\s*>/ end=/$/ contains=mkdLineBreak,mkdLineContinue,@Spell
-syn region mkdCode start="<pre[^>]*>" end="</pre>"
-syn region mkdCode start="<code[^>]*>" end="</code>"
-"HTML headings
-syn region htmlH1 start="^\s*#" end="\($\|#\+\)" contains=@Spell
-syn region htmlH2 start="^\s*##" end="\($\|#\+\)" contains=@Spell
-syn region htmlH3 start="^\s*###" end="\($\|#\+\)" contains=@Spell
-syn region htmlH4 start="^\s*####" end="\($\|#\+\)" contains=@Spell
-syn region htmlH5 start="^\s*#####" end="\($\|#\+\)" contains=@Spell
-syn region htmlH6 start="^\s*######" end="\($\|#\+\)" contains=@Spell
-syn match htmlH1 /^.\+\n=\+$/ contains=@Spell
-syn match htmlH2 /^.\+\n-\+$/ contains=@Spell
-" fold region for headings
-syn region mkdHeaderFold
- \ start="^\s*\z(#\+\)"
- \ skip="^\s*\z1#\+"
- \ end="^\(\s*#\)\@="
- \ fold contains=TOP
-" fold region for lists
-syn region mkdListFold
- \ start="^\z(\s*\)\*\z(\s*\)"
- \ skip="^\z1 \z2\s*[^#]"
- \ end="^\(.\)\@="
- \ fold contains=TOP
-syn region mkdCode start=/^`\{3,3}\s*\w*\s*$/ end=/^`\{3,3}\s*$/
-syn sync fromstart
-setlocal foldmethod=syntax
-"highlighting for Markdown groups
-HtmlHiLink mkdString String
-HtmlHiLink mkdCode String
-HtmlHiLink mkdBlockquote Comment
-HtmlHiLink mkdLineContinue Comment
-HtmlHiLink mkdListItem Identifier
-HtmlHiLink mkdRule Identifier
-HtmlHiLink mkdLineBreak Todo
-HtmlHiLink mkdLink htmlLink
-HtmlHiLink mkdURL htmlString
-HtmlHiLink mkdInlineURL htmlLink
-HtmlHiLink mkdID Identifier
-HtmlHiLink mkdLinkDef mkdID
-HtmlHiLink mkdLinkDefTarget mkdURL
-HtmlHiLink mkdLinkTitle htmlString
-HtmlHiLink mkdDelimiter Delimiter
-let b:current_syntax = "mkd"
-delcommand HtmlHiLink
-" vim: ts=8

0 comments on commit a9da824

Please sign in to comment.