| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Vim syntax file | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | " Language:		HTML | 
					
						
							|  |  |  | " Maintainer:		Doug Kearns <dougkearns@gmail.com> | 
					
						
							|  |  |  | " Previous Maintainers: Jorge Maldonado Ventura <jorgesumle@freakspot.net> | 
					
						
							|  |  |  | "			Claudio Fleiner <claudio@fleiner.com> | 
					
						
							| 
									
										
										
										
											2023-11-29 06:41:41 +11:00
										 |  |  | " Last Change:		2023 Nov 28 | 
					
						
							| 
									
										
										
										
											2024-07-30 20:19:15 +02:00
										 |  |  | " 2024 Jul 30 by Vim Project: increase syn-sync-minlines to 250 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-29 06:41:41 +11:00
										 |  |  | " See :help html.vim for some comments and a description of the options | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | " quit when a syntax file was already loaded | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | if !exists("main_syntax") | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  |   if exists("b:current_syntax") | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |     finish | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  |   let main_syntax = 'html' | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-05 22:26:30 +02:00
										 |  |  | let s:cpo_save = &cpo | 
					
						
							|  |  |  | set cpo&vim | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-05-05 18:24:42 +00:00
										 |  |  | syntax spell toplevel | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn include @htmlXml syntax/xml.vim | 
					
						
							|  |  |  | unlet b:current_syntax | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn case ignore | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " mark illegal characters | 
					
						
							|  |  |  | syn match htmlError "[<>&]" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " tags | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn region  htmlString	 contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc | 
					
						
							|  |  |  | syn region  htmlString	 contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc | 
					
						
							|  |  |  | syn match   htmlValue	 contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1   contains=javaScriptExpression,@htmlPreproc | 
					
						
							|  |  |  | syn region  htmlEndTag		   start=+</+	   end=+>+ contains=htmlTagN,htmlTagError | 
					
						
							|  |  |  | syn region  htmlTag		   start=+<[^/]+   end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster | 
					
						
							|  |  |  | syn match   htmlTagN	 contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster | 
					
						
							|  |  |  | syn match   htmlTagN	 contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match   htmlTagError contained "[^>]<"ms=s+1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " tag names | 
					
						
							|  |  |  | syn keyword htmlTagName contained address applet area a base basefont | 
					
						
							|  |  |  | syn keyword htmlTagName contained big blockquote br caption center | 
					
						
							|  |  |  | syn keyword htmlTagName contained cite code dd dfn dir div dl dt font | 
					
						
							|  |  |  | syn keyword htmlTagName contained form hr html img | 
					
						
							|  |  |  | syn keyword htmlTagName contained input isindex kbd li link map menu | 
					
						
							|  |  |  | syn keyword htmlTagName contained meta ol option param pre p samp span | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn keyword htmlTagName contained select small strike sub sup | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn keyword htmlTagName contained table td textarea th tr tt ul var xmp | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn match   htmlTagName contained "\<\%(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " new html 4.0 tags | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn keyword htmlTagName contained abbr acronym bdo button col colgroup | 
					
						
							|  |  |  | syn keyword htmlTagName contained del fieldset iframe ins label legend | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn keyword htmlTagName contained object optgroup q s tbody tfoot thead | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-02 21:27:47 +01:00
										 |  |  | " new html 5 tags | 
					
						
							| 
									
										
										
										
											2017-01-28 18:34:47 +01:00
										 |  |  | syn keyword htmlTagName contained article aside audio bdi canvas data | 
					
						
							| 
									
										
										
										
											2019-12-26 14:35:26 +01:00
										 |  |  | syn keyword htmlTagName contained datalist details dialog embed figcaption | 
					
						
							|  |  |  | syn keyword htmlTagName contained figure footer header hgroup keygen main | 
					
						
							|  |  |  | syn keyword htmlTagName contained mark menuitem meter nav output picture | 
					
						
							| 
									
										
										
										
											2023-11-29 06:41:41 +11:00
										 |  |  | syn keyword htmlTagName contained progress rb rp rt rtc ruby search section | 
					
						
							| 
									
										
										
										
											2020-03-19 20:37:11 +01:00
										 |  |  | syn keyword htmlTagName contained slot source summary template time track | 
					
						
							|  |  |  | syn keyword htmlTagName contained video wbr | 
					
						
							| 
									
										
										
										
											2017-01-02 21:27:47 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | " svg and math tags | 
					
						
							|  |  |  | syn keyword htmlMathTagName contained math | 
					
						
							|  |  |  | syn keyword htmlSvgTagName  contained svg | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn region  htmlMath start="<math>" end="</math>" contains=@htmlXml transparent keepend | 
					
						
							|  |  |  | syn region  htmlSvg  start="<svg>"  end="</svg>"  contains=@htmlXml transparent keepend | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | syn cluster xmlTagHook	add=htmlMathTagName,htmlSvgTagName | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " legal arg names | 
					
						
							|  |  |  | syn keyword htmlArg contained action | 
					
						
							|  |  |  | syn keyword htmlArg contained align alink alt archive background bgcolor | 
					
						
							|  |  |  | syn keyword htmlArg contained border bordercolor cellpadding | 
					
						
							|  |  |  | syn keyword htmlArg contained cellspacing checked class clear code codebase color | 
					
						
							|  |  |  | syn keyword htmlArg contained cols colspan content coords enctype face | 
					
						
							|  |  |  | syn keyword htmlArg contained gutter height hspace id | 
					
						
							|  |  |  | syn keyword htmlArg contained link lowsrc marginheight | 
					
						
							|  |  |  | syn keyword htmlArg contained marginwidth maxlength method name prompt | 
					
						
							|  |  |  | syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape | 
					
						
							|  |  |  | syn keyword htmlArg contained size src start target text type url | 
					
						
							|  |  |  | syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn match   htmlArg contained "\<\%(http-equiv\|href\|title\)="me=e-1 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-19 14:35:59 +02:00
										 |  |  | syn keyword htmlArg contained role | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-29 06:41:41 +11:00
										 |  |  | " ARIA attributes {{{1 | 
					
						
							|  |  |  | let s:aria =<< trim END | 
					
						
							|  |  |  |   activedescendant | 
					
						
							|  |  |  |   atomic | 
					
						
							|  |  |  |   autocomplete | 
					
						
							|  |  |  |   braillelabel | 
					
						
							|  |  |  |   brailleroledescription | 
					
						
							|  |  |  |   busy | 
					
						
							|  |  |  |   checked | 
					
						
							|  |  |  |   colcount | 
					
						
							|  |  |  |   colindex | 
					
						
							|  |  |  |   colindextext | 
					
						
							|  |  |  |   colspan | 
					
						
							|  |  |  |   controls | 
					
						
							|  |  |  |   current | 
					
						
							|  |  |  |   describedby | 
					
						
							|  |  |  |   description | 
					
						
							|  |  |  |   details | 
					
						
							|  |  |  |   disabled | 
					
						
							|  |  |  |   errormessage | 
					
						
							|  |  |  |   expanded | 
					
						
							|  |  |  |   flowto | 
					
						
							|  |  |  |   haspopup | 
					
						
							|  |  |  |   hidden | 
					
						
							|  |  |  |   invalid | 
					
						
							|  |  |  |   keyshortcuts | 
					
						
							|  |  |  |   label | 
					
						
							|  |  |  |   labelledby | 
					
						
							|  |  |  |   level | 
					
						
							|  |  |  |   live | 
					
						
							|  |  |  |   modal | 
					
						
							|  |  |  |   multiline | 
					
						
							|  |  |  |   multiselectable | 
					
						
							|  |  |  |   orientation | 
					
						
							|  |  |  |   owns | 
					
						
							|  |  |  |   placeholder | 
					
						
							|  |  |  |   posinset | 
					
						
							|  |  |  |   pressed | 
					
						
							|  |  |  |   readonly | 
					
						
							|  |  |  |   relevant | 
					
						
							|  |  |  |   required | 
					
						
							|  |  |  |   roledescription | 
					
						
							|  |  |  |   rowcount | 
					
						
							|  |  |  |   rowindex | 
					
						
							|  |  |  |   rowindextext | 
					
						
							|  |  |  |   rowspan | 
					
						
							|  |  |  |   selected | 
					
						
							|  |  |  |   setsize | 
					
						
							|  |  |  |   sort | 
					
						
							|  |  |  |   valuemax | 
					
						
							|  |  |  |   valuemin | 
					
						
							|  |  |  |   valuenow | 
					
						
							|  |  |  |   valuetext | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | let s:aria_deprecated =<< trim END | 
					
						
							|  |  |  |   dropeffect | 
					
						
							|  |  |  |   grabbed | 
					
						
							|  |  |  | END | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | call extend(s:aria, s:aria_deprecated) | 
					
						
							|  |  |  | exe 'syn match htmlArg contained "\%#=1\<aria-\%(' .. s:aria->join('\|') .. '\)\>"' | 
					
						
							|  |  |  | unlet s:aria s:aria_deprecated | 
					
						
							|  |  |  | " }}} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " Netscape extensions | 
					
						
							|  |  |  | syn keyword htmlTagName contained frame noframes frameset nobr blink | 
					
						
							|  |  |  | syn keyword htmlTagName contained layer ilayer nolayer spacer | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn keyword htmlArg	contained frameborder noresize pagex pagey above below | 
					
						
							|  |  |  | syn keyword htmlArg	contained left top visibility clip id noshade | 
					
						
							|  |  |  | syn match   htmlArg	contained "\<z-index\>" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Microsoft extensions | 
					
						
							|  |  |  | syn keyword htmlTagName contained marquee | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | " html 4.0 arg names | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn match   htmlArg contained "\<\%(accept-charset\|label\)\>" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn keyword htmlArg contained abbr accept accesskey axis char charoff charset | 
					
						
							|  |  |  | syn keyword htmlArg contained cite classid codetype compact data datetime | 
					
						
							|  |  |  | syn keyword htmlArg contained declare defer dir disabled for frame | 
					
						
							|  |  |  | syn keyword htmlArg contained headers hreflang lang language longdesc | 
					
						
							|  |  |  | syn keyword htmlArg contained multiple nohref nowrap object profile readonly | 
					
						
							|  |  |  | syn keyword htmlArg contained rules scheme scope span standby style | 
					
						
							|  |  |  | syn keyword htmlArg contained summary tabindex valuetype version | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-10 13:31:15 +01:00
										 |  |  | " html 5 arg names | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn keyword htmlArg contained allow autocapitalize as blocking decoding | 
					
						
							|  |  |  | syn keyword htmlArg contained enterkeyhint imagesizes imagesrcset inert | 
					
						
							|  |  |  | syn keyword htmlArg contained integrity is itemid itemprop itemref itemscope | 
					
						
							|  |  |  | syn keyword htmlArg contained itemtype loading nomodule ping playsinline | 
					
						
							|  |  |  | syn keyword htmlArg contained referrerpolicy slot allowfullscreen async | 
					
						
							|  |  |  | syn keyword htmlArg contained autocomplete autofocus autoplay challenge | 
					
						
							|  |  |  | syn keyword htmlArg contained contenteditable contextmenu controls crossorigin | 
					
						
							|  |  |  | syn keyword htmlArg contained default dirname download draggable dropzone form | 
					
						
							|  |  |  | syn keyword htmlArg contained formaction formenctype formmethod formnovalidate | 
					
						
							|  |  |  | syn keyword htmlArg contained formtarget hidden high icon inputmode keytype | 
					
						
							|  |  |  | syn keyword htmlArg contained kind list loop low max min minlength muted nonce | 
					
						
							|  |  |  | syn keyword htmlArg contained novalidate open optimum pattern placeholder | 
					
						
							|  |  |  | syn keyword htmlArg contained poster preload radiogroup required reversed | 
					
						
							|  |  |  | syn keyword htmlArg contained sandbox spellcheck sizes srcset srcdoc srclang | 
					
						
							|  |  |  | syn keyword htmlArg contained step title translate typemustmatch | 
					
						
							|  |  |  | syn match   htmlArg contained "\<data-\h\%(\w\|[-.]\)*\%(\_s*=\)\@=" | 
					
						
							| 
									
										
										
										
											2017-01-10 13:31:15 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " special characters | 
					
						
							| 
									
										
										
										
											2024-06-16 18:47:36 +04:00
										 |  |  | syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,32};" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " Comments (the real ones or the old netscape ones) | 
					
						
							|  |  |  | if exists("html_wrong_comments") | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |   syn region htmlComment	start=+<!--+	end=+--\s*>+	contains=@Spell | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | else | 
					
						
							| 
									
										
										
										
											2021-03-13 13:28:13 +01:00
										 |  |  |   " The HTML 5.2 syntax 8.2.4.41: bogus comment is parser error; browser skips until next > | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |   syn region htmlComment	start=+<!+	end=+>+		contains=htmlCommentError keepend | 
					
						
							| 
									
										
										
										
											2021-03-13 13:28:13 +01:00
										 |  |  |   " Idem 8.2.4.42,51: Comment starts with <!-- and ends with --> | 
					
						
							|  |  |  |   " Idem 8.2.4.43,44: Except <!--> and <!---> are parser errors | 
					
						
							|  |  |  |   " Idem 8.2.4.52: dash-dash-bang (--!>) is error ignored by parser, also closes comment | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |   syn region htmlComment matchgroup=htmlComment start=+<!--\%(-\?>\)\@!+	end=+--!\?>+	contains=htmlCommentNested,@htmlPreProc,@Spell keepend | 
					
						
							| 
									
										
										
										
											2021-03-13 13:28:13 +01:00
										 |  |  |   " Idem 8.2.4.49: nested comment is parser error, except <!--> is all right | 
					
						
							|  |  |  |   syn match htmlCommentNested contained "<!-->\@!" | 
					
						
							|  |  |  |   syn match htmlCommentError  contained "[^><!]" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | endif | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn region htmlComment	start=+<!DOCTYPE+	end=+>+ keepend | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | " server-parsed commands | 
					
						
							|  |  |  | syn region htmlPreProc start=+<!--#+ end=+-->+ contains=htmlPreStmt,htmlPreError,htmlPreAttr | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn match htmlPreStmt contained "<!--#\%(config\|echo\|exec\|fsize\|flastmod\|include\|printenv\|set\|if\|elif\|else\|endif\|geoguide\)\>" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | syn match htmlPreError contained "<!--#\S*"ms=s+4 | 
					
						
							|  |  |  | syn match htmlPreAttr contained "\w\+=[^"]\S\+" contains=htmlPreProcAttrError,htmlPreProcAttrName | 
					
						
							|  |  |  | syn region htmlPreAttr contained start=+\w\+="+ skip=+\\\\\|\\"+ end=+"+ contains=htmlPreProcAttrName keepend | 
					
						
							|  |  |  | syn match htmlPreProcAttrError contained "\w\+="he=e-1 | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn match htmlPreProcAttrName contained "\%(expr\|errmsg\|sizefmt\|timefmt\|var\|cgi\|cmd\|file\|virtual\|value\)="he=e-1 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if !exists("html_no_rendering") | 
					
						
							|  |  |  |   " rendering | 
					
						
							| 
									
										
										
										
											2005-07-18 21:58:11 +00:00
										 |  |  |   syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-08 16:25:07 +02:00
										 |  |  |   syn region htmlStrike start="<del\>" end="</del\_s*>"me=s-1 contains=@htmlTop | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |   syn region htmlStrike start="<s\>" end="</s\_s*>"me=s-1 contains=@htmlTop | 
					
						
							| 
									
										
										
										
											2019-04-08 16:25:07 +02:00
										 |  |  |   syn region htmlStrike start="<strike\>" end="</strike\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn region htmlBold start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic | 
					
						
							|  |  |  |   syn region htmlBold start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic | 
					
						
							|  |  |  |   syn region htmlBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic | 
					
						
							|  |  |  |   syn region htmlBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline | 
					
						
							|  |  |  |   syn region htmlBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlBoldItalicUnderline | 
					
						
							|  |  |  |   syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlBoldItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlBoldUnderlineItalic | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn region htmlUnderline start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic | 
					
						
							|  |  |  |   syn region htmlUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic | 
					
						
							|  |  |  |   syn region htmlUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineBoldItalic | 
					
						
							|  |  |  |   syn region htmlUnderlineItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold | 
					
						
							|  |  |  |   syn region htmlUnderlineItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop,htmlUnderlineItalicBold | 
					
						
							|  |  |  |   syn region htmlUnderlineItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   syn region htmlItalic start="<i\>" end="</i\_s*>"me=s-1 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline | 
					
						
							|  |  |  |   syn region htmlItalic start="<em\>" end="</em\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlItalicBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline | 
					
						
							|  |  |  |   syn region htmlItalicBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop,htmlItalicBoldUnderline | 
					
						
							|  |  |  |   syn region htmlItalicBoldUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlItalicUnderline contained start="<u\>" end="</u\_s*>"me=s-1 contains=@htmlTop,htmlItalicUnderlineBold | 
					
						
							|  |  |  |   syn region htmlItalicUnderlineBold contained start="<b\>" end="</b\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong\_s*>"me=s-1 contains=@htmlTop | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-05 22:26:30 +02:00
										 |  |  |   syn match htmlLeadingSpace "^\s\+" contained | 
					
						
							| 
									
										
										
										
											2019-04-08 16:25:07 +02:00
										 |  |  |   syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a\_s*>"me=s-1 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLeadingSpace,javaScript,@htmlPreproc | 
					
						
							|  |  |  |   syn region htmlH1 start="<h1\>" end="</h1\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlH2 start="<h2\>" end="</h2\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlH3 start="<h3\>" end="</h3\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlH4 start="<h4\>" end="</h4\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlH5 start="<h5\>" end="</h5\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlH6 start="<h6\>" end="</h6\_s*>"me=s-1 contains=@htmlTop | 
					
						
							|  |  |  |   syn region htmlHead start="<head\>" end="</head\_s*>"me=s-1 end="<body\>"me=s-1 end="<h[1-6]\>"me=s-1 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc | 
					
						
							|  |  |  |   syn region htmlTitle start="<title\>" end="</title\_s*>"me=s-1 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn keyword htmlTagName		contained noscript | 
					
						
							|  |  |  | syn keyword htmlSpecialTagName	contained script style | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | if main_syntax != 'java' || exists("java_javascript") | 
					
						
							|  |  |  |   " JAVA SCRIPT | 
					
						
							| 
									
										
										
										
											2006-04-14 20:42:25 +00:00
										 |  |  |   syn include @htmlJavaScript syntax/javascript.vim | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   unlet b:current_syntax | 
					
						
							| 
									
										
										
										
											2023-02-20 20:44:55 +00:00
										 |  |  |   syn region  javaScript start=+<script\>\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |   syn region  htmlScriptTag	contained start=+<script+ end=+>+ fold contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  |   hi def link htmlScriptTag htmlTag | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   " html events (i.e. arguments that include javascript commands) | 
					
						
							|  |  |  |   if exists("html_extended_events") | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |     syn region htmlEvent	contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ contains=htmlEventSQ | 
					
						
							|  |  |  |     syn region htmlEvent	contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ contains=htmlEventDQ | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   else | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |     syn region htmlEvent	contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ keepend contains=htmlEventSQ | 
					
						
							|  |  |  |     syn region htmlEvent	contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ keepend contains=htmlEventDQ | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   endif | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |   syn region htmlEventSQ	contained start=+'+ms=s+1 end=+'+me=s-1 contains=@htmlJavaScript | 
					
						
							|  |  |  |   syn region htmlEventDQ	contained start=+"+ms=s+1 end=+"+me=s-1 contains=@htmlJavaScript | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  |   hi def link htmlEventSQ htmlEvent | 
					
						
							|  |  |  |   hi def link htmlEventDQ htmlEvent | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   " a javascript expression is used as an arg value | 
					
						
							|  |  |  |   syn region  javaScriptExpression contained start=+&{+ keepend end=+};+ contains=@htmlJavaScript,@htmlPreproc | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if main_syntax != 'java' || exists("java_vb") | 
					
						
							|  |  |  |   " VB SCRIPT | 
					
						
							| 
									
										
										
										
											2006-04-14 20:42:25 +00:00
										 |  |  |   syn include @htmlVbScript syntax/vb.vim | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   unlet b:current_syntax | 
					
						
							| 
									
										
										
										
											2015-01-07 16:57:10 +01:00
										 |  |  |   syn region  javaScript start=+<script \_[^>]*language *=\_[^>]*vbscript\_[^>]*>+ keepend end=+</script\_[^>]*>+me=s-1 contains=@htmlVbScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | syn cluster htmlJavaScript	add=@htmlPreproc | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | if main_syntax != 'java' || exists("java_css") | 
					
						
							|  |  |  |   " embedded style sheets | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |   syn keyword htmlArg		contained media | 
					
						
							| 
									
										
										
										
											2006-04-14 20:42:25 +00:00
										 |  |  |   syn include @htmlCss syntax/css.vim | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   unlet b:current_syntax | 
					
						
							|  |  |  |   syn region cssStyle start=+<style+ keepend end=+</style>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |   syn match htmlCssStyleComment contained "\%(<!--\|-->\)" | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   syn region htmlCssDefinition matchgroup=htmlArg start='style="' keepend matchgroup=htmlString end='"' contains=css.*Attr,css.*Prop,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  |   hi def link htmlStyleArg htmlString | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if main_syntax == "html" | 
					
						
							|  |  |  |   " synchronizing (does not always work if a comment includes legal | 
					
						
							|  |  |  |   " html tags, but doing it right would mean to always start | 
					
						
							|  |  |  |   " at the first line, which is too slow) | 
					
						
							|  |  |  |   syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]" | 
					
						
							|  |  |  |   syn sync match htmlHighlight groupthere javaScript "<script" | 
					
						
							|  |  |  |   syn sync match htmlHighlightSkip "^.*['\"].*$" | 
					
						
							| 
									
										
										
										
											2024-07-30 20:19:15 +02:00
										 |  |  |   exe "syn sync minlines=" . get(g:, 'html_minlines', 250) | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-11-18 21:49:57 +00:00
										 |  |  | " Folding | 
					
						
							|  |  |  | " Originally by Ingo Karkat and Marcus Zanona | 
					
						
							|  |  |  | if get(g:, "html_syntax_folding", 0) | 
					
						
							|  |  |  |   syn region htmlFold start="<\z(\<\%(area\|base\|br\|col\|command\|embed\|hr\|img\|input\|keygen\|link\|meta\|param\|source\|track\|wbr\>\)\@![a-z-]\+\>\)\%(\_s*\_[^/]\?>\|\_s\_[^>]*\_[^>/]>\)" end="</\z1\_s*>" fold transparent keepend extend containedin=htmlHead,htmlH\d | 
					
						
							|  |  |  |   " fold comments (the real ones and the old Netscape ones) | 
					
						
							|  |  |  |   if exists("html_wrong_comments") | 
					
						
							|  |  |  |     syn region htmlComment start=+<!--+ end=+--\s*>\%(\n\s*<!--\)\@!+ contains=@Spell fold | 
					
						
							|  |  |  |   endif | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | " The default highlighting. | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | hi def link htmlTag			Function | 
					
						
							|  |  |  | hi def link htmlEndTag			Identifier | 
					
						
							|  |  |  | hi def link htmlArg			Type | 
					
						
							|  |  |  | hi def link htmlTagName			htmlStatement | 
					
						
							|  |  |  | hi def link htmlSpecialTagName		Exception | 
					
						
							|  |  |  | hi def link htmlMathTagName		htmlTagName | 
					
						
							|  |  |  | hi def link htmlSvgTagName		htmlTagName | 
					
						
							|  |  |  | hi def link htmlValue			String | 
					
						
							|  |  |  | hi def link htmlSpecialChar		Special | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | if !exists("html_no_rendering") | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |   hi def link htmlH1			  Title | 
					
						
							|  |  |  |   hi def link htmlH2			  htmlH1 | 
					
						
							|  |  |  |   hi def link htmlH3			  htmlH2 | 
					
						
							|  |  |  |   hi def link htmlH4			  htmlH3 | 
					
						
							|  |  |  |   hi def link htmlH5			  htmlH4 | 
					
						
							|  |  |  |   hi def link htmlH6			  htmlH5 | 
					
						
							|  |  |  |   hi def link htmlHead			  PreProc | 
					
						
							|  |  |  |   hi def link htmlTitle			  Title | 
					
						
							|  |  |  |   hi def link htmlBoldItalicUnderline	  htmlBoldUnderlineItalic | 
					
						
							|  |  |  |   hi def link htmlUnderlineBold		  htmlBoldUnderline | 
					
						
							|  |  |  |   hi def link htmlUnderlineItalicBold	  htmlBoldUnderlineItalic | 
					
						
							|  |  |  |   hi def link htmlUnderlineBoldItalic	  htmlBoldUnderlineItalic | 
					
						
							|  |  |  |   hi def link htmlItalicUnderline	  htmlUnderlineItalic | 
					
						
							|  |  |  |   hi def link htmlItalicBold		  htmlBoldItalic | 
					
						
							|  |  |  |   hi def link htmlItalicBoldUnderline	  htmlBoldUnderlineItalic | 
					
						
							|  |  |  |   hi def link htmlItalicUnderlineBold	  htmlBoldUnderlineItalic | 
					
						
							|  |  |  |   hi def link htmlLink			  Underlined | 
					
						
							|  |  |  |   hi def link htmlLeadingSpace		  None | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  |   if !exists("html_my_rendering") | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |     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 | 
					
						
							| 
									
										
										
										
											2016-08-30 23:26:57 +02:00
										 |  |  |     hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  |     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 | 
					
						
							| 
									
										
										
										
											2017-11-02 22:58:42 +01:00
										 |  |  |     if v:version > 800 || v:version == 800 && has("patch1038") | 
					
						
							| 
									
										
										
										
											2023-11-29 06:41:41 +11:00
										 |  |  |       hi def htmlStrike	term=strikethrough cterm=strikethrough gui=strikethrough | 
					
						
							| 
									
										
										
										
											2017-11-02 22:58:42 +01:00
										 |  |  |     else | 
					
						
							| 
									
										
										
										
											2023-11-29 06:41:41 +11:00
										 |  |  |       hi def htmlStrike	term=underline cterm=underline gui=underline | 
					
						
							| 
									
										
										
										
											2017-11-02 22:58:42 +01:00
										 |  |  |     endif | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  |   endif | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | hi def link htmlPreStmt		   PreProc | 
					
						
							|  |  |  | hi def link htmlPreError	   Error | 
					
						
							|  |  |  | hi def link htmlPreProc		   PreProc | 
					
						
							|  |  |  | hi def link htmlPreAttr		   String | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link htmlPreProcAttrName    PreProc | 
					
						
							|  |  |  | hi def link htmlPreProcAttrError   Error | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | hi def link htmlString		   String | 
					
						
							|  |  |  | hi def link htmlStatement	   Statement | 
					
						
							|  |  |  | hi def link htmlComment		   Comment | 
					
						
							|  |  |  | hi def link htmlCommentNested	   htmlError | 
					
						
							|  |  |  | hi def link htmlCommentError	   htmlError | 
					
						
							|  |  |  | hi def link htmlTagError	   htmlError | 
					
						
							|  |  |  | hi def link htmlEvent		   javaScript | 
					
						
							|  |  |  | hi def link htmlError		   Error | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | hi def link javaScript		   Special | 
					
						
							| 
									
										
										
										
											2016-08-31 22:22:10 +02:00
										 |  |  | hi def link javaScriptExpression   javaScript | 
					
						
							|  |  |  | hi def link htmlCssStyleComment    Comment | 
					
						
							| 
									
										
										
										
											2022-07-25 15:42:07 +01:00
										 |  |  | hi def link htmlCssDefinition	   Special | 
					
						
							| 
									
										
										
										
											2004-06-13 20:20:40 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | let b:current_syntax = "html" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if main_syntax == 'html' | 
					
						
							|  |  |  |   unlet main_syntax | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-05 22:26:30 +02:00
										 |  |  | let &cpo = s:cpo_save | 
					
						
							|  |  |  | unlet s:cpo_save | 
					
						
							| 
									
										
										
										
											2023-11-29 06:41:41 +11:00
										 |  |  | 
 | 
					
						
							|  |  |  | " vim: nowrap sw=2 sts=2 ts=8 noet fdm=marker: |