#
# Call it like this:
#
-# wheic_parser.parse("<p><b>hi</p>")
+# peach_parser.parse("<p><b>hi</p>")
#
# Or, if you don't want <html><head><body>/etc, do this:
#
-# wheic_parser.parse("<p><b>hi</p>", {fragment: "body"})
+# peach_parser.parse("<p><b>hi</p>", {fragment: "body"})
#
# return value is an array of Nodes, see "class Node" below.
exports = module.exports
else
context = 'browser'
- window.wheic_parser = {}
- exports = window.wheic_parser
+ window.peach_parser = {}
+ exports = window.peach_parser
from_code_point = (x) ->
if String.fromCodePoint?
return String.fromCharCode((x >> 10) + 0xd800, (x % 0x400) + 0xdc00)
# Each node is an obect of the Node class. Here are the Node types:
-TYPE_TAG = 0 # name, {attributes}, [children]
-TYPE_TEXT = 1 # "text"
-TYPE_COMMENT = 2
-TYPE_DOCTYPE = 3
+TYPE_TAG = 'tag' # name, {attributes}, [children]
+TYPE_TEXT = 'text' # "text"
+TYPE_COMMENT = 'comment'
+TYPE_DOCTYPE = 'doctype'
# the following types are emited by the tokenizer, but shouldn't end up in the tree:
TYPE_START_TAG = 4 # name, [attributes ([key,value]...) in reverse order], [children]
TYPE_END_TAG = 5 # name
TYPE_AAA_BOOKMARK = 8 # http://www.w3.org/TR/html5/syntax.html#adoption-agency-algorithm
# namespace constants
-NS_HTML = 1
-NS_MATHML = 2
-NS_SVG = 3
+NS_HTML = 'html'
+NS_MATHML = 'mathml'
+NS_SVG = 'svg'
# quirks mode constants
-QUIRKS_NO = 1
-QUIRKS_LIMITED = 2
-QUIRKS_YES = 3
+QUIRKS_NO = 'no'
+QUIRKS_LIMITED = 'limited'
+QUIRKS_YES = 'yes'
# queue up debug logs, so eg they can be shown only for tests that fail
g_debug_log = []
yen: '¥', yuml: 'ÿ'
}
-void_elements = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr']
-raw_text_elements = ['script', 'style']
-escapable_raw_text_elements = ['textarea', 'title']
+#void_elements = ['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr']
+#raw_text_elements = ['script', 'style']
+#escapable_raw_text_elements = ['textarea', 'title']
# http://www.w3.org/TR/SVG/ 1.1 (Second Edition)
svg_elements = [
'a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor',
prev.text += t.text
return
dest[0].children.splice dest[1], 0, t
+ t.parent = dest[0]
return
# 8.2.5 http://www.w3.org/TR/html5/syntax.html#tree-construction