From ba0cf5d7f6fabc4ececc420128cf906be91e97e7 Mon Sep 17 00:00:00 2001 From: iska Date: Sun, 15 Mar 2015 20:32:52 +0100 Subject: [PATCH] Add "template"-related token processing in HTML Parser "in template" phase is still not implemented --- HTMLKit/HTMLParser.m | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/HTMLKit/HTMLParser.m b/HTMLKit/HTMLParser.m index 182ded1..0ae3706 100644 --- a/HTMLKit/HTMLParser.m +++ b/HTMLKit/HTMLParser.m @@ -1691,6 +1691,8 @@ } else if ([token.asTagToken.tagName isEqualToString:@"col"]) { [self insertElementForToken:token.asTagToken]; [_stackOfOpenElements popCurrentNode]; + } else if ([token.asTagToken.tagName isEqualToString:@"template"]) { + [self HTMLInsertionModeInHead:token]; } else { break; } @@ -1706,6 +1708,8 @@ } } else if ([token.asTagToken.tagName isEqualToString:@"col"]) { [self emitParseError:@"Unexpected End Tag Token (col) in "]; + } else if ([token.asTagToken.tagName isEqualToString:@"template"]) { + [self HTMLInsertionModeInHead:token]; } else { break; } @@ -1945,7 +1949,7 @@ [self resetInsertionModeAppropriately]; [self reprocessToken:token]; } - } else if ([token.asTagToken.tagName isEqualToString:@"script"]) { + } else if ([token.asTagToken.tagName isEqualToAny:@"script", @"template", nil]) { [self HTMLInsertionModeInHead:token]; } else { break; @@ -1979,6 +1983,8 @@ [_stackOfOpenElements popElementsUntilElementPoppedWithTagName:@"select"]; [self resetInsertionModeAppropriately]; } + } else if ([token.asTagToken.tagName isEqualToString:@"template"]) { + [self HTMLInsertionModeInHead:token]; } else { break; } @@ -2024,6 +2030,11 @@ [self HTMLInsertionModeInSelect:token]; } +- (void)HTMLInsertionModeInTemplate:(HTMLToken *)token +{ +#warning Implement HTML Template +} + - (void)HTMLInsertionModeAfterBody:(HTMLToken *)token { switch (token.type) {