| Class | HTML5::InTablePhase |
| In: |
lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb
|
| Parent: | Phase |
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 89
89: def endTagIgnore(name)
90: parse_error("unexpected-end-tag", {"name" => name})
91: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 93
93: def endTagOther(name)
94: parse_error("unexpected-end-tag-implies-table-voodoo", {"name" => name})
95: # Make all the special element rearranging voodoo kick in
96: @tree.insert_from_table = true
97: # Process the end tag in the "in body" mode
98: @parser.phases[:inBody].processEndTag(name)
99: @tree.insert_from_table = false
100: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 69
69: def endTagTable(name)
70: if in_scope?('table', true)
71: @tree.generateImpliedEndTags
72:
73: unless @tree.open_elements.last.name == 'table'
74: parse_error("end-tag-too-early-named",
75: {"gotName" => "table",
76: "expectedName" => @tree.open_elements.last.name})
77: end
78:
79: remove_open_elements_until('table')
80:
81: @parser.reset_insertion_mode
82: else
83: # inner_html case
84: assert @parser.inner_html
85: parse_error
86: end
87: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 14
14: def processCharacters(data)
15: parse_error("unexpected-char-implies-table-voodoo")
16: # Make all the special element rearranging voodoo kick in
17: @tree.insert_from_table = true
18: # Process the character in the "in body" mode
19: @parser.phases[:inBody].processCharacters(data)
20: @tree.insert_from_table = false
21: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 23
23: def startTagCaption(name, attributes)
24: clearStackToTableContext
25: @tree.activeFormattingElements.push(Marker)
26: @tree.insert_element(name, attributes)
27: @parser.phase = @parser.phases[:inCaption]
28: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 36
36: def startTagCol(name, attributes)
37: startTagColgroup('colgroup', {})
38: @parser.phase.processStartTag(name, attributes)
39: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 30
30: def startTagColgroup(name, attributes)
31: clearStackToTableContext
32: @tree.insert_element(name, attributes)
33: @parser.phase = @parser.phases[:inColumnGroup]
34: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 47
47: def startTagImplyTbody(name, attributes)
48: startTagRowGroup('tbody', {})
49: @parser.phase.processStartTag(name, attributes)
50: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 59
59: def startTagOther(name, attributes)
60: parse_error("unexpected-start-tag-implies-table-voodoo",
61: {"name" => name})
62: # Make all the special element rearranging voodoo kick in
63: @tree.insert_from_table = true
64: # Process the start tag in the "in body" mode
65: @parser.phases[:inBody].processStartTag(name, attributes)
66: @tree.insert_from_table = false
67: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 41
41: def startTagRowGroup(name, attributes)
42: clearStackToTableContext
43: @tree.insert_element(name, attributes)
44: @parser.phase = @parser.phases[:inTableBody]
45: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 52
52: def startTagTable(name, attributes)
53: parse_error("unexpected-start-tag-implies-end-tag",
54: {"startName" => "table", "endName" => "table"})
55: @parser.phase.processEndTag('table')
56: @parser.phase.processStartTag(name, attributes) unless @parser.inner_html
57: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/in_table_phase.rb, line 104
104: def clearStackToTableContext
105: # "clear the stack back to a table context"
106: until %w[table html].include?(name = @tree.open_elements.last.name)
107: parse_error("unexpected-implied-end-tag-in-table",
108: {"name" => @tree.open_elements.last.name})
109: @tree.open_elements.pop
110: end
111: # When the current node is <html> it's an inner_html case
112: end