" Taken from http://en.wikipedia.org/wiki/Wikipedia:Text_editor_support#Vim " Wikipedia syntax file for Vim " Published on Wikipedia in 2003-04 and declared authorless. " " Based on the HTML syntax file. Probably too closely based, in fact. There " may well be name collisions everywhere, but ignorance is bliss, so they say. " " To do: plug-in support for downloading and uploading to the server. if !exists("main_syntax") if version < 600 syntax clear elseif exists("b:current_syntax") finish endif let main_syntax = 'html' endif if version < 508 command! -nargs=+ HtmlHiLink hi link else command! -nargs=+ HtmlHiLink hi def link endif syn case ignore if v:version >= 700 syn spell toplevel endif " tags syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 syn region htmlEndTag start=++ contains=htmlTagN syn region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlBadArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,htmlBadTag,@htmlTagNameCluster syn match htmlTagN contained +]<"ms=s+1 " This would highlight all tags and fragments that are not allowed. "syn match htmlBadTag contained +<\s*[-a-zA-Z0-9]\++ms=s+1 " Highlight only known disallowed HTML tags, so that not every "" " fragment is flagged. syn keyword htmlBadTag contained a acronym address applet area base basefont bdo body button col colgroup dfn dir fieldset form frame frameset head html iframe img input isindex kbd label legend link map menu meta noframes noscript object optgroup option param q script select style tbody textarea tfoot thead title syn match htmlBadArg contained "\s\+[-a-zA-Z0-9]\+\s*="ms=s+1,me=e-1 " allowed HTML tag names syn keyword htmlTagName contained b big blockquote br caption center cite code dd del div dl dt em font h1 h2 h3 h4 h5 h6 hr i ins li ol p pre rb rp rt ruby s small span strike strong sub sup table td th tr tt u ul var " allowed Wiki tag names syn keyword htmlTagName contained nowiki math references " allowed arg names syn keyword htmlArg contained title align lang dir width height nowrap syn keyword htmlArg contained bgcolor clear noshade syn keyword htmlArg contained cite datetime size face color syn keyword htmlArg contained type start value compact syn keyword htmlArg contained summary border frame rules syn keyword htmlArg contained cellspacing cellpadding valign char syn keyword htmlArg contained charoff colgroup col span abbr axis syn keyword htmlArg contained headers scope rowspan colspan syn keyword htmlArg contained id class name style " special characters syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};" " comments syn region htmlComment start=++ contains=htmlCommentPart,htmlCommentError syn match htmlCommentError contained "[^>+ " HTML formatting syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlComment,htmlLink syn region htmlBold start="" end=""me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic syn region htmlBold start="" end=""me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic syn region htmlBoldUnderline contained start="" end=""me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic syn region htmlBoldItalic contained start="" end=""me=e-4 contains=@htmlTop,htmlBoldItalicUnderline syn region htmlBoldItalic contained start="" end=""me=e-5 contains=@htmlTop,htmlBoldItalicUnderline syn region htmlBoldUnderlineItalic contained start="" end=""me=e-4 contains=@htmlTop syn region htmlBoldUnderlineItalic contained start="" end=""me=e-5 contains=@htmlTop syn region htmlBoldItalicUnderline contained start="" end=""me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic syn region htmlUnderline start="" end=""me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic syn region htmlUnderlineBold contained start="" end=""me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic syn region htmlUnderlineBold contained start="" end=""me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic syn region htmlUnderlineItalic contained start="" end=""me=e-4 contains=@htmlTop,htmUnderlineItalicBold syn region htmlUnderlineItalic contained start="" end=""me=e-5 contains=@htmlTop,htmUnderlineItalicBold syn region htmlUnderlineItalicBold contained start="" end=""me=e-4 contains=@htmlTop syn region htmlUnderlineItalicBold contained start="" end=""me=e-9 contains=@htmlTop syn region htmlUnderlineBoldItalic contained start="" end=""me=e-4 contains=@htmlTop syn region htmlUnderlineBoldItalic contained start="" end=""me=e-5 contains=@htmlTop syn region htmlItalic start="" end=""me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline syn region htmlItalic start="" end=""me=e-5 contains=@htmlTop syn region htmlItalicBold contained start="" end=""me=e-4 contains=@htmlTop,htmlItalicBoldUnderline syn region htmlItalicBold contained start="" end=""me=e-9 contains=@htmlTop,htmlItalicBoldUnderline syn region htmlItalicBoldUnderline contained start="" end=""me=e-4 contains=@htmlTop syn region htmlItalicUnderline contained start="" end=""me=e-4 contains=@htmlTop,htmlItalicUnderlineBold syn region htmlItalicUnderlineBold contained start="" end=""me=e-4 contains=@htmlTop syn region htmlItalicUnderlineBold contained start="" end=""me=e-9 contains=@htmlTop syn region htmlH1 start="" end=""me=e-5 contains=@htmlTop syn region htmlH2 start="" end=""me=e-5 contains=@htmlTop syn region htmlH3 start="" end=""me=e-5 contains=@htmlTop syn region htmlH4 start="" end=""me=e-5 contains=@htmlTop syn region htmlH5 start="" end=""me=e-5 contains=@htmlTop syn region htmlH6 start="" end=""me=e-5 contains=@htmlTop syn region htmlHead start="" end=""me=e-7 end=""me=e-5 end=""me=e-3 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,cssStyle syn region htmlTitle start="" end=""me=e-8 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment " No htmlTop and wikiPre inside HTML preformatted areas, because Wikipedia " renders everything in there literally (HTML tags and entities, too): "
 tags work as the combination of  and the standard HTML 
"   tag: the content will preformatted, and it will not be parsed, but shown as
"   in the wikitext source.
" With wikiPre, indented lines would be rendered differently from unindented
" lines.
syn match htmlPreTag /
/ contains=htmlTag
syn match wikiNowikiTag // contains=htmlTag
syn match wikiNowikiEndTag /<\/nowiki>/ contains=htmlEndTag
" Note: Cannot use 'start="
"rs=e', so still have the 
 tag highlighted
" correctly via separate syn-match. Unfortunately, this will also highlight
" 
 tags inside the preformatted region. 
syn region htmlPre start="
" end="
"me=e-6 contains=htmlPreTag syn region wikiNowiki start="" end=""me=e-9 contains=wikiNowikiTag " wiki formatting syn region wikiItalic start=+'\@.*" contains=@Spell,wikiLink,wikiItalicBold,wikiNowiki,wikiNowikiEndTag syn region wikiBold start=+'''+ end=+'''+ skip=".*" contains=@Spell,wikiLink,wikiBoldItalic,wikiNowiki,wikiNowikiEndTag syn region wikiBoldAndItalic start=+'''''+ end=+'''''+ skip=".*" contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag syn region wikiBoldItalic contained start=+'\@.*" contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag syn region wikiItalicBold contained start=+'''+ end=+'''+ skip=".*" contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag syn region wikiH1 start="^=" end="=" skip=".*" oneline contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag syn region wikiH2 start="^==" end="==" skip=".*" oneline contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag syn region wikiH3 start="^===" end="===" skip=".*" oneline contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag syn region wikiH4 start="^====" end="====" skip=".*" oneline contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag syn region wikiH5 start="^=====" end="=====" skip=".*" oneline contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag syn region wikiH6 start="^======" end="======" skip=".*" oneline contains=@Spell,wikiLink,wikiNowiki,wikiNowikiEndTag syn region wikiLink start="\[\[" end="\]\]\(s\|'s\|es\|ing\|\)" skip=".*" oneline contains=wikiLink,wikiNowiki,wikiNowikiEndTag syn region wikiLink start="\[http:" end="\]" skip=".*" oneline contains=wikiNowiki,wikiNowikiEndTag syn region wikiLink start="\[https:" end="\]" skip=".*" oneline contains=wikiNowiki,wikiNowikiEndTag syn region wikiLink start="\[ftp:" end="\]" skip=".*" oneline contains=wikiNowiki,wikiNowikiEndTag syn region wikiLink start="\[gopher:" end="\]" skip=".*" oneline contains=wikiNowiki,wikiNowikiEndTag syn region wikiLink start="\[news:" end="\]" skip=".*" oneline contains=wikiNowiki,wikiNowikiEndTag syn region wikiLink start="\[mailto:" end="\]" skip=".*" oneline contains=wikiNowiki,wikiNowikiEndTag syn region wikiTemplate start="{{" end="}}" skip=".*" contains=wikiNowiki,wikiNowikiEndTag syn match wikiParaFormatChar /^[\:|\*|;|#]\+/ syn match wikiParaFormatChar /^-----*/ syn match wikiPre /^\ .*$/ contains=wikiNowiki,wikiNowikiEndTag syn include @TeX syntax/tex.vim syntax region wikiTeX matchgroup=htmlTag start="" end="" skip=".*" contains=@TeX,wikiNowiki,wikiNowikiEndTag syntax region wikiRef matchgroup=htmlTag start="" end="" skip=".*" contains=wikiNowiki,wikiNowikiEndTag " HTML highlighting HtmlHiLink htmlTag Function HtmlHiLink htmlEndTag Identifier HtmlHiLink htmlArg Type HtmlHiLink htmlTagName htmlStatement HtmlHiLink htmlSpecialTagName Exception HtmlHiLink htmlValue String HtmlHiLink htmlSpecialChar Special HtmlHiLink htmlH1 Title HtmlHiLink htmlH2 htmlH1 HtmlHiLink htmlH3 htmlH2 HtmlHiLink htmlH4 htmlH3 HtmlHiLink htmlH5 htmlH4 HtmlHiLink htmlH6 htmlH5 HtmlHiLink htmlHead PreProc HtmlHiLink htmlTitle Title HtmlHiLink htmlBoldItalicUnderline htmlBoldUnderlineItalic HtmlHiLink htmlUnderlineBold htmlBoldUnderline HtmlHiLink htmlUnderlineItalicBold htmlBoldUnderlineItalic HtmlHiLink htmlUnderlineBoldItalic htmlBoldUnderlineItalic HtmlHiLink htmlItalicUnderline htmlUnderlineItalic HtmlHiLink htmlItalicBold htmlBoldItalic HtmlHiLink htmlItalicBoldUnderline htmlBoldUnderlineItalic HtmlHiLink htmlItalicUnderlineBold htmlBoldUnderlineItalic HtmlHiLink htmlSpecial Special HtmlHiLink htmlSpecialChar Special HtmlHiLink htmlString String HtmlHiLink htmlStatement Statement HtmlHiLink htmlComment Comment HtmlHiLink htmlCommentPart Comment HtmlHiLink htmlValue String HtmlHiLink htmlCommentError htmlError HtmlHiLink htmlTagError htmlError HtmlHiLink htmlBadTag htmlError HtmlHiLink htmlBadArg htmlError HtmlHiLink htmlEvent javaScript HtmlHiLink htmlError Error HtmlHiLink htmlCssStyleComment Comment HtmlHiLink htmlCssDefinition Special " The default highlighting. if version >= 508 || !exists("did_html_syn_inits") if version < 508 let did_html_syn_inits = 1 endif HtmlHiLink htmlTag Function HtmlHiLink htmlEndTag Identifier HtmlHiLink htmlArg Type HtmlHiLink htmlTagName htmlStatement HtmlHiLink htmlSpecialTagName Exception HtmlHiLink htmlValue String HtmlHiLink htmlSpecialChar Special if !exists("html_no_rendering") HtmlHiLink htmlH1 Title HtmlHiLink htmlH2 htmlH1 HtmlHiLink htmlH3 htmlH2 HtmlHiLink htmlH4 htmlH3 HtmlHiLink htmlH5 htmlH4 HtmlHiLink htmlH6 htmlH5 HtmlHiLink htmlHead PreProc HtmlHiLink htmlTitle Title HtmlHiLink htmlBoldItalicUnderline htmlBoldUnderlineItalic HtmlHiLink htmlUnderlineBold htmlBoldUnderline HtmlHiLink htmlUnderlineItalicBold htmlBoldUnderlineItalic HtmlHiLink htmlUnderlineBoldItalic htmlBoldUnderlineItalic HtmlHiLink htmlItalicUnderline htmlUnderlineItalic HtmlHiLink htmlItalicBold htmlBoldItalic HtmlHiLink htmlItalicBoldUnderline htmlBoldUnderlineItalic HtmlHiLink htmlItalicUnderlineBold htmlBoldUnderlineItalic HtmlHiLink htmlLink Underlined if !exists("html_my_rendering") hi def htmlBold term=bold cterm=bold gui=bold hi def htmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline hi def htmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline hi def htmlUnderline term=underline cterm=underline gui=underline hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline hi def htmlItalic term=italic cterm=italic gui=italic endif endif HtmlHiLink htmlPreStmt PreProc HtmlHiLink htmlPreError Error HtmlHiLink htmlPreProc PreProc HtmlHiLink htmlPreAttr String HtmlHiLink htmlPreProcAttrName PreProc HtmlHiLink htmlPreProcAttrError Error HtmlHiLink htmlSpecial Special HtmlHiLink htmlSpecialChar Special HtmlHiLink htmlString String HtmlHiLink htmlStatement Statement HtmlHiLink htmlComment Comment HtmlHiLink htmlCommentPart Comment HtmlHiLink htmlValue String HtmlHiLink htmlCommentError htmlError HtmlHiLink htmlTagError htmlError HtmlHiLink htmlBadTag htmlError HtmlHiLink htmlBadArg htmlError HtmlHiLink htmlEvent javaScript HtmlHiLink htmlError Error HtmlHiLink javaScript Special HtmlHiLink javaScriptExpression javaScript HtmlHiLink htmlCssStyleComment Comment HtmlHiLink htmlCssDefinition Special endif " wiki highlighting HtmlHiLink wikiItalic htmlItalic HtmlHiLink wikiBold htmlBold HtmlHiLink wikiBoldItalic htmlBoldItalic HtmlHiLink wikiItalicBold htmlBoldItalic HtmlHiLink wikiBoldAndItalic htmlBoldItalic HtmlHiLink wikiH1 htmlH1 HtmlHiLink wikiH2 htmlH2 HtmlHiLink wikiH3 htmlH3 HtmlHiLink wikiH4 htmlH4 HtmlHiLink wikiH5 htmlH5 HtmlHiLink wikiH6 htmlH6 HtmlHiLink wikiLink Underlined HtmlHiLink wikiTemplate Special HtmlHiLink wikiParaFormatChar Special HtmlHiLink wikiPre Constant HtmlHiLink wikiRef Comment let b:current_syntax = "html" delcommand HtmlHiLink if main_syntax == 'html' unlet main_syntax endif