diff --git a/autoload/emmet/lang/html.vim b/autoload/emmet/lang/html.vim
index 5e374f7..61c28d3 100644
--- a/autoload/emmet/lang/html.vim
+++ b/autoload/emmet/lang/html.vim
@@ -720,11 +720,11 @@ endfunction
function! emmet#lang#html#parseTag(tag) abort
let current = emmet#newNode()
- let mx = '<\([a-zA-Z][a-zA-Z0-9]*\)\(\%(\s[a-zA-Z][a-zA-Z0-9]\+=\%([^"'' \t]\+\|"[^"]\{-}"\|''[^'']\{-}''\)\s*\)*\)\(/\{0,1}\)>'
+ let mx = '<\([a-zA-Z][a-zA-Z0-9]*\)\(\%(\s[a-zA-Z][a-zA-Z0-9]\+=\?\%([^"'' \t]\+\|"[^"]\{-}"\|''[^'']\{-}''\)\s*\)*\)\(/\{0,1}\)>'
let match = matchstr(a:tag, mx)
let current.name = substitute(match, mx, '\1', 'i')
let attrs = substitute(match, mx, '\2', 'i')
- let mx = '\([a-zA-Z0-9]\+\)=\%(\([^"'' \t]\+\)\|"\([^"]\{-}\)"\|''\([^'']\{-}\)''\)'
+ let mx = '\([a-zA-Z0-9]\+\)\(\(=[^"'' \t]\+\)\|="\([^"]\{-}\)"\|=''\([^'']\{-}\)''\)\?'
while len(attrs) > 0
let match = matchstr(attrs, mx)
if len(match) == 0
@@ -732,8 +732,12 @@ function! emmet#lang#html#parseTag(tag) abort
endif
let attr_match = matchlist(match, mx)
let name = attr_match[1]
- let value = len(attr_match[2]) ? attr_match[2] : attr_match[3]
- let current.attr[name] = value
+ if len(attr_match[2])
+ let Val = len(attr_match[3]) ? attr_match[3] : attr_match[4]
+ else
+ let Val = function('emmet#types#true')
+ endif
+ let current.attr[name] = Val
let current.attrs_order += [name]
let attrs = attrs[stridx(attrs, match) + len(match):]
endwhile
diff --git a/unittest.vim b/unittest.vim
index b5302f8..2cd1d03 100644
--- a/unittest.vim
+++ b/unittest.vim
@@ -681,6 +681,10 @@ finish
'query': "u.global\\$$$$3>",
'result': "",
},
+ {
+ 'query': "",
+ 'result': "",
+ },
],
},
{