Class | HTML5::InitialPhase |
In: |
lib/feed_tools/vendor/html5/lib/html5/html5parser/initial_phase.rb
|
Parent: | Phase |
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/initial_phase.rb, line 115 115: def processCharacters(data) 116: parse_error("expected-doctype-but-got-chars") 117: @parser.phase = @parser.phases[:rootElement] 118: @parser.phase.processCharacters(data) 119: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/initial_phase.rb, line 16 16: def processComment(data) 17: @tree.insert_comment(data, @tree.document) 18: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/initial_phase.rb, line 20 20: def processDoctype(name, publicId, systemId, correct) 21: if name.downcase != 'html' or publicId or systemId 22: parse_error("unknown-doctype") 23: end 24: # XXX need to update DOCTYPE tokens 25: @tree.insertDoctype(name, publicId, systemId) 26: 27: publicId = publicId.to_s.upcase 28: 29: if name.downcase != 'html' 30: # XXX quirks mode 31: else 32: if ["+//silmaril//dtd html pro v0r11 19970101//en", 33: "-//advasoft ltd//dtd html 3.0 aswedit + extensions//en", 34: "-//as//dtd html 3.0 aswedit + extensions//en", 35: "-//ietf//dtd html 2.0 level 1//en", 36: "-//ietf//dtd html 2.0 level 2//en", 37: "-//ietf//dtd html 2.0 strict level 1//en", 38: "-//ietf//dtd html 2.0 strict level 2//en", 39: "-//ietf//dtd html 2.0 strict//en", 40: "-//ietf//dtd html 2.0//en", 41: "-//ietf//dtd html 2.1e//en", 42: "-//ietf//dtd html 3.0//en", 43: "-//ietf//dtd html 3.0//en//", 44: "-//ietf//dtd html 3.2 final//en", 45: "-//ietf//dtd html 3.2//en", 46: "-//ietf//dtd html 3//en", 47: "-//ietf//dtd html level 0//en", 48: "-//ietf//dtd html level 0//en//2.0", 49: "-//ietf//dtd html level 1//en", 50: "-//ietf//dtd html level 1//en//2.0", 51: "-//ietf//dtd html level 2//en", 52: "-//ietf//dtd html level 2//en//2.0", 53: "-//ietf//dtd html level 3//en", 54: "-//ietf//dtd html level 3//en//3.0", 55: "-//ietf//dtd html strict level 0//en", 56: "-//ietf//dtd html strict level 0//en//2.0", 57: "-//ietf//dtd html strict level 1//en", 58: "-//ietf//dtd html strict level 1//en//2.0", 59: "-//ietf//dtd html strict level 2//en", 60: "-//ietf//dtd html strict level 2//en//2.0", 61: "-//ietf//dtd html strict level 3//en", 62: "-//ietf//dtd html strict level 3//en//3.0", 63: "-//ietf//dtd html strict//en", 64: "-//ietf//dtd html strict//en//2.0", 65: "-//ietf//dtd html strict//en//3.0", 66: "-//ietf//dtd html//en", 67: "-//ietf//dtd html//en//2.0", 68: "-//ietf//dtd html//en//3.0", 69: "-//metrius//dtd metrius presentational//en", 70: "-//microsoft//dtd internet explorer 2.0 html strict//en", 71: "-//microsoft//dtd internet explorer 2.0 html//en", 72: "-//microsoft//dtd internet explorer 2.0 tables//en", 73: "-//microsoft//dtd internet explorer 3.0 html strict//en", 74: "-//microsoft//dtd internet explorer 3.0 html//en", 75: "-//microsoft//dtd internet explorer 3.0 tables//en", 76: "-//netscape comm. corp.//dtd html//en", 77: "-//netscape comm. corp.//dtd strict html//en", 78: "-//o'reilly and associates//dtd html 2.0//en", 79: "-//o'reilly and associates//dtd html extended 1.0//en", 80: "-//spyglass//dtd html 2.0 extended//en", 81: "-//sq//dtd html 2.0 hotmetal + extensions//en", 82: "-//sun microsystems corp.//dtd hotjava html//en", 83: "-//sun microsystems corp.//dtd hotjava strict html//en", 84: "-//w3c//dtd html 3 1995-03-24//en", 85: "-//w3c//dtd html 3.2 draft//en", 86: "-//w3c//dtd html 3.2 final//en", 87: "-//w3c//dtd html 3.2//en", 88: "-//w3c//dtd html 3.2s draft//en", 89: "-//w3c//dtd html 4.0 frameset//en", 90: "-//w3c//dtd html 4.0 transitional//en", 91: "-//w3c//dtd html experimental 19960712//en", 92: "-//w3c//dtd html experimental 970421//en", 93: "-//w3c//dtd w3 html//en", 94: "-//w3o//dtd w3 html 3.0//en", 95: "-//w3o//dtd w3 html 3.0//en//", 96: "-//w3o//dtd w3 html strict 3.0//en//", 97: "-//webtechs//dtd mozilla html 2.0//en", 98: "-//webtechs//dtd mozilla html//en", 99: "-/w3c/dtd html 4.0 transitional/en", 100: "html"].include?(publicId) or 101: (systemId == nil and 102: ["-//w3c//dtd html 4.01 frameset//EN", 103: "-//w3c//dtd html 4.01 transitional//EN"].include?(publicId)) or 104: (systemId == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd") 105: #XXX quirks mode 106: end 107: end 108: 109: @parser.phase = @parser.phases[:rootElement] 110: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/initial_phase.rb, line 127 127: def processEndTag(name) 128: parse_error("expected-doctype-but-got-end-tag", {"name" => name}) 129: @parser.phase = @parser.phases[:rootElement] 130: @parser.phase.processEndTag(name) 131: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/initial_phase.rb, line 112 112: def processSpaceCharacters(data) 113: end
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/initial_phase.rb, line 121 121: def processStartTag(name, attributes) 122: parse_error("expected-doctype-but-got-start-tag", {"name" => name}) 123: @parser.phase = @parser.phases[:rootElement] 124: @parser.phase.processStartTag(name, attributes) 125: end
This phase deals with error handling as well which is currently not covered in the specification. The error handling is typically known as "quirks mode". It is expected that a future version of HTML5 will define this.
# File lib/feed_tools/vendor/html5/lib/html5/html5parser/initial_phase.rb, line 10 10: def process_eof 11: parse_error("expected-doctype-but-got-eof") 12: @parser.phase = @parser.phases[:rootElement] 13: @parser.phase.process_eof 14: end