X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=parse-html.coffee;h=255892f331732d2e633d3b0058c93ecaf8fa2c76;hb=4f6b7602d0d0a1ac0e7d781747fa7f96878e2b69;hp=8b2712d628cb820036240ac8a5624ea462d14d58;hpb=9a16bd421661121f2d1d6463c0acba32065461ce;p=peach-html5-editor.git diff --git a/parse-html.coffee b/parse-html.coffee index 8b2712d..255892f 100644 --- a/parse-html.coffee +++ b/parse-html.coffee @@ -1395,6 +1395,7 @@ parse_html = (args) -> el = insert_html_element t head_element_pointer = el ins_mode = ins_mode_in_head + return if t.type is TYPE_END_TAG if t.name is 'head' or t.name is 'body' or t.name is 'html' or t.name is 'br' # fall through to Anything else below @@ -1440,7 +1441,7 @@ parse_html = (args) -> if t.type is TYPE_START_TAG and t.name is 'title' parse_generic_rcdata_text t return - if t.type is TYPE_START_TAG and ((t.name is 'noscript' and flag_scripting) or (t.name is 'noframes' or t.name is 'style')) + if t.type is TYPE_START_TAG and ((t.name is 'noscript' and flag_scripting) or t.name is 'noframes' or t.name is 'style') parse_generic_raw_text t return if t.type is TYPE_START_TAG and t.name is 'noscript' and flag_scripting is false @@ -1502,14 +1503,14 @@ parse_html = (args) -> if t.type is TYPE_DOCTYPE parse_error() return - if t.type is TYPE_START_TAG + if t.type is TYPE_START_TAG and t.name is 'html' ins_mode_in_body t return if t.type is TYPE_END_TAG and t.name is 'noscript' open_els.shift() ins_mode = ins_mode_in_head return - if (t.type is TYPE_TEXT and (t.text is "\t" or t.text is "\u000a" or t.text is "\u000c" or t.text is "\u000d" or t.text is ' ')) or t.type is TYPE_COMMENT or (t.type is TYPE_START_TAG and (t.name is 'basefont' or t.name is 'bgsound' or t.name is 'link' or t.name is 'meta' or t.name is 'noframes' or t.name is 'style')) + if is_space_tok(t) or t.type is TYPE_COMMENT or (t.type is TYPE_START_TAG and (t.name is 'basefont' or t.name is 'bgsound' or t.name is 'link' or t.name is 'meta' or t.name is 'noframes' or t.name is 'style')) ins_mode_in_head t return if t.type is TYPE_END_TAG and t.name is 'br' @@ -3735,7 +3736,7 @@ parse_html = (args) -> return # Otherwise parse_error() - tok_cur_tag = new_comment_token '!' # TODO test ("!" right?) + tok_cur_tag = new_comment_token '' tok_state = tok_state_bogus_comment return @@ -3746,6 +3747,7 @@ parse_html = (args) -> tok_state = tok_state_comment_start_dash when "\u0000" parse_error() + tok_state = tok_state_comment return new_character_token "\ufffd" when '>' parse_error() @@ -3758,6 +3760,7 @@ parse_html = (args) -> return tok_cur_tag else tok_cur_tag.text += c + tok_state = tok_state_comment return null # 8.2.4.47 http://www.w3.org/TR/html5/syntax.html#comment-start-dash-state @@ -4411,6 +4414,8 @@ parse_html = (args) -> # tokenizer initialization tok_state = tok_state_data + if args.name is "one_that_breaks #1" + throw "hi" # console.log "hi" # proccess input # http://www.w3.org/TR/html5/syntax.html#tree-construction while flag_parsing