can
Version:
MIT-licensed, client-side, JavaScript framework that makes building rich web applications easy.
44 lines (38 loc) • 1.1 kB
JavaScript
steal("can/view/parser","can-simple-dom",function(canParser, simpleDOM){
return function(document){
return new simpleDOM.HTMLParser(function(string){
var tokens = [];
var currentTag,
currentAttr;
canParser(string, {
start: function( tagName, unary ){
currentTag = { type: "StartTag", attributes: [], tagName: tagName };
},
end: function( tagName, unary ){
tokens.push(currentTag);
currentTag = undefined;
},
close: function( tagName ){
tokens.push({type: "EndTag", tagName: tagName});
},
attrStart: function( attrName ){
currentAttr = [attrName, ''];
currentTag.attributes.push(currentAttr);
},
attrEnd: function( attrName ){},
attrValue: function( value ){
currentAttr[1] += value;
},
chars: function( value ){
tokens.push({type:"Chars", chars: value});
},
comment: function( value ){
tokens.push({type:"Comment", chars: value});
},
special: function( value ){},
done: function( ){}
});
return tokens;
}, document, simpleDOM.voidMap);
};
});