2007-08-04  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: HTML |time| element is implemented.

	* HTMLTable.pm: Comments are updated as HTML5 is revised.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm (check_document): Return value
	even if no document element is found.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: |$in_body| is no longer a function.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: The |$in_body| code has been moved down.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: The "trailing end" insertion mode
	is split into "after html body" and "after html frameset"
	insertion modes.  Their codes are merged with "after body"
	and "after frameset" codes.  |$previous_insertion_mode|
	has been removed.  "after frameset" code is 
	merged with "in frameset" code.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: The "before head" insertion mode is 
	merged with the "in head" insertion mode.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Cases in "in head" insertion mode are
	reorganized.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Some cases in "in table" insertion mode
	are merged.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: The "in row" insertion mode is merged
	with "in table" insertion mode.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: The "in table" and "in table body" insertion
	modes are merged.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: There is no "in table head" or "in table foot"
	insertion mode!

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: |<noframes>| "in frameset" and "in noframes"
	now directly invoke the handler.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Codes for "in cell" insertion mode
	is merged to the "in body" insertion mode code.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Codes for "in body" and "in caption"
	insertion modes are merged.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Two |!!!next-token|s were missing.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Use numeric constant for |{content_mode}|
	instead of string constant for |{content_model_flag}|.

2007-07-21  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Add the name of the attribute
	to the "duplicate attribute" error.

2007-07-17  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Return the |class| node list.

2007-07-17  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Return the |id| node list.

	* HTML.pm.src: A typo is fixed.

2007-07-16  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Drop wrong |level => 'error'| specification
	from "in HTML:xml:lang" error.  Character position
	is now the last part of the error type in the URI error
	description.  Report "unsupported" status for language
	tags, media queries, script codes, and style sheets.

2007-07-16  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Report error if |xml:lang|
	in HTML, |lang| in XML, |xmlns| in XML, and |meta| |charset|
	in XML.

	* NanoDOM.pm (Attr.owner_document): New attribute.

2007-07-16  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: The character immediately following
	a bare |hcro| was discarded.  Fix handling of
	entity references in attribute values.

2007-07-16  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src (main and trailin end phases): Token
	types |DOCTYPE|, |comment|, |end-of-file|, and |<html>| are 
	factored out.  Error types |in html:#DOCTYPE|
	and |after html:#DOCTYPE| are merged
	into |DOCTYPE in the middle|.  |</frameset>|
	in fragment parsing mode changed the
	insertion mode.

2007-07-16  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: |$phase| has been removed; The |trailing end|
	phase is now an insertion mode.  Treatments for white
	space character tokens were incorrect for some
	insertion modes.  An old |meta| case was not removed.

2007-07-16  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: |meta| charset declaration extraction
	implemented (but changing the encoding is not yet:-).

2007-07-15  Wakaba  <wakaba@suika.fam.cx>

	* Charset/: New directory.

2007-07-15  Wakaba  <wakaba@suika.fam.cx>

	* H2H.pm: New Perl module (created from
	manakai's H2H.dis).

2007-07-15  Wakaba  <wakaba@suika.fam.cx>

	* XMLSerializer.pm: New Perl module (created from
	manakai's SimpleLS.dis).

2007-07-07  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: |<!---x-->| was not processed correctly.

2007-07-01  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Report correct error message
	for |<body></div></body>|.

2007-07-01  Wakaba  <wakaba@suika.fam.cx>

	* HTMLTable.pm: An error description was incorrect.

2007-06-30  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Return |{term}| list.

2007-06-30  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revisions 961-966 (</p>, </br>,
	nested <nobr>, implied </tbody>, </tfoot>, and </thead>,
	and <title> outside of head).

2007-06-30  Wakaba  <wakaba@suika.fam.cx>

	* IMTChecker.pm: Report warning for unregistered
	and private types/subtypes.

	* ContentChecker.pm, HTML.pm.src, IMTChecker.pm,
	URIChecker.pm, HTMLTable.pm: Error messages are now
	consistent; they are all listed in
	<http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types>.

2007-06-25  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: |<img ismap>| not in |<a></a>|
	is now erred.  |<datalist>| is implemented.
	Attribute checker for |<command>| and |<menu>| are
	added.  Support for |contextmenu| global attribute
	is added.

2007-06-25  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src (_reset_insertion_mode): Interpretation
	of Step 3 has been changed.

2007-06-25  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Late |<html>| parse error is implemented.

2007-06-24  Wakaba  <wakaba@suika.fam.cx>

	* URIChecker.pm (check_iri_reference): A |decode| method name was
	incorrect.

	* ContentChecker.pm: Support for the |footer| element.
	Check URI syntax for space-separated URI attributes.
	Support for the |tabindex| attribute.  Support 
	for |datetime| attribute.

2007-06-24  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revision 1.144 (&#x0D;) and 1.145 (invalid
	character references).  HTML5 revision 1.146 (white space
	characters before root start tag).  HTML5 revision
	1.148 (named character references in attribute values).
	HTML5 revision 1.152 (<plaintext>.innerHTML get).

2007-06-24  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revisions 1.142 and 1.143 (<noscript>
	in <head>).

2007-06-24  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revision 935 (<base>, <link>, <meta>
	in body).

	* ContentChecker.pm: HTML5 revision 938 (scoped="").

2007-06-24  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revision 923 (matching end tag in CDATA
	or RCDATA in fragment parsing mode).  HTML5 revision 
	924 (<!--> and <!--->).  HTML5 revision 926 (hn in hn).

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src (get_inner_html): HTML5 revision 922 (inner_html
	for <pre> and <textarea>).

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revision 920 (<isindex>).

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revision 918 (</head>, </body>, </html>).

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revision 916 (</body>).
	HTML5 revision 917 (conforming bare &).

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* NanoDOM.pm (manakai_is_html): Setting to false did not work.

	* HTML.pm.src: HTML5 revision 914 (</ in CDATA, RCDATA).
	HTML5 revision 915 (<nobr>).

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revisions 908, 909, 912, and 913 (quirks mode).
	
	* NanoDOM.pm (manakai_is_html, manakai_compat_mode, compat_mode):
	New attributes.

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revisions 900, 901, 902, and 911 (<
	in tags).

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* .cvsignore: |Entities.html| is added.

	* HTML.pm.src: |$entity_char| is removed and 
	requires |Whatpm::_NamedEntityList| instead.
	HTML5 revision 898 (refc), except that lack of refc
	is parse error.

	* mkentitylist.pl: New script.

	* Makefile (all): |_NamedEntityList.pm| is added.
	(_NamedEntityList.pm, Entities.html): New rules.

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Parse errors immediately after U+000D
	were ignored and U+000D immediately following another
	U+000D was not converted to U+000A.

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src (set_inner_html): HTML5 revision 892 (adopt
	nodes before appended).  Parser was not ready for NULL
	parse error and escape flag.

	* NanoDOM.pm (adopt_node): New.

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revision 886 (insane comment in
	CDATA and RCDATA).  Note that current implementation
	is simply repeating what the spec says and it is maybe not
	a best way to do it.

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revision 884 (</form> don't close
	the form element if a descendant element without implied end tag has
	still been open).

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: HTML5 revision 881 (Make |id| attribute with 
	space characters non-conforming).

2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: An error message was incorrect.
	HTML5 revision 869 (C1 character references).
	
2007-06-23  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: HTML5 revision 867 (a LF at the beginning of 
	a |textarea| is removed).

2007-06-05  Wakaba  <wakaba@suika.fam.cx>

	* NanoDOM.pm (get_attribute_node_ns): New method.

	* ContentChecker.pm: |script| |async| and |defer|
	no longer require |src|.  |async| MUST NOT be
	specified if |defer|.  (HTML5 revision 858).

2007-05-30  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: |<form><form>| went to inifinite loop.

2007-05-27  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm (html): Set |is_root| (allowed
	as a document element) flag on.
	(new): Removed.
	(check_document): New method.

2007-05-27  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm (thead, tfoot): Checker specifications
	were incorrect.

2007-05-27  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm ($HTMLURIAttrChecker): Include
	error position in the |type| option of the error.

	* HTMLTable.pm (form_table): The |$onerror| parameter
	is now optional.  Some bugs are fixed.

2007-05-27  Wakaba  <wakaba@suika.fam.cx>

	* HTMLTable.pm: New module.

	* ContentChecker.pm (table): Invoke table model error checker.

	* NanoDOM.pm (first_child, get_attribute_ns): New.

2007-05-26  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm ($HTMLLinkTypesAttrChecker): New checker.
	(link/@rel, a/@rel, area/@rel): Use new checker.

	* Makefile (_LinkTypeList.pm, RelExtensions.html): New rules.

	* _LinkTypeList.pm: New file.

	* mklinktypelist.pl: New file.

	* .cvsignore: |RelExtensions.html| added.

	* NanoDOM.pm (child_nodes): Returns an empty array
	for non-child-containing node types.
	(text_content): New attribute.

2007-05-26  Wakaba  <wakaba@suika.fam.cx>

	* IMTChecker.pm: New module.

	* ContentChecker.pm ($HTMLIMTAttrChecker): Call IMTChecker
	to test parameter value validity.

	* HTML.pm.src ($style_start_tag): Attributes were
	discarded.

2007-05-25  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm ($HTMLURIAttrChecker): Implemented.

2007-05-25  Wakaba  <wakaba@suika.fam.cx>

	* URIChecker.pm: All recommendations from RFC 3986
	and RFC 3987 are listed (not all testable items are checked yet).

2007-05-25  Wakaba  <wakaba@suika.fam.cx>

	* URIChecker.pm: New module.

2007-05-20  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Now most attributes are implemented
	or associated to some placeholder.
	($ElementDefault): Warn unknown attributes
	for unknown elements as "attribute not supported".
	($HTMLLanguageTagAttrChecker, $HTMLMQAttrChecker): New placeholders.
	($HTMLUsemapAttrChecker, $HTMLTargetAttrChecker): New checkers.
	(|a| attribute checker): Reimplemented.

2007-05-20  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm ($HTMLEventHandlerAttrChecker): New placeholder.
	($HTMLAttrChecker): Event handler content attributes
	are added.
	(link, embed): Required attribute is now checked.
	(embed): Unknown local attributes are no longer warned.

2007-05-20  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm ($HTMLSpaceURIsAttrChecker): New placeholder.
	($HTMLIMTAttrChecker): New checker.
	(link@rel, link@href, link@type, style@type, 
	a@href, a@ping, a@ping, a@type, embed@src, embed@type,
	object@data, object@type, source@src, source@type, area@alt,
	area@shape, area@coords, area@href,
	area@ping, area@rel, area@type, script@src,
	script@defer, script@async, script@type): Checkers added.

2007-05-20  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Descendant checking was incorrect.

2007-05-19  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Support |xml:*| and |xmlns:*|
	attributes.  Report an error if |Element.prefix|
	is |xmlns|.

	* NanoDOM.pm (prefix): New attribute.

2007-05-19  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: In |main| phase, |in body| insertion
	mode, action for |<iframe>| was missing.

2007-05-19  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Support for many of HTML5 elements.
	($GetHTMLNonNegativeIntegerAttrChecker): New.

2007-05-19  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Support for most elements up to |progress|.
	($HTMLURIAttrChecker): Placeholder.
	($HTMLIntegerAttrChecker, $GetHTMLFloatingPointNumberAttrChecker):
	New.

2007-05-19  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Attribute checkers 
	for global attributes, |html|, |base|, |style|, and |meta|.

	* NanoDOM.pm (insert_before): Weaken reference
	to the parent node.
	(Attr::new): Set |owner_element| attribute.
	(namespace_uri, manakai_local_name): New attribute implementations.
	(owner_element): New attribute.

2007-05-19  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm ($AttrChecker, $HTMLAttrChecker,
	$AnyChecker->{attr_checker}, $HTMLAttrsChecker,
	$Element->{$HTML_NS}->{''}): New.
	(check_element): Invoke attrs_checker for each element.

2007-05-13  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Don't use |manakai_element_type_match|.

2007-05-13  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Use hashs rather than lists for
	element type testings.

2007-05-13  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: Don't generate duplicate
	error when an element type is put in the "minus" list
	and the element type is not allowed explicitly in the particular
	element content model.
	(html:a checker): New checker.
	(html:details, html:datagrid): New checkers.
	(html:legend): New checker.

2007-05-13  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm (html:li checker): Implemented.

2007-05-13  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm ($HTMLInlineOrStriclyInlineChecker): New
	checker.
	(html:dd checker): New checker.
	(html:q, html:em, html:strong, html:small,
	html:m, html:dfn, html:code, html:samp, html:span): New checkers.

2007-05-13  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm ($AnyChecker): Renamed
	from |$ElementDefault->{checker}|.
	($ElementDefault->{checker}): Throw an error that 
	the element type is not supported by the checker.
	($HTMLMetadataElement): |html:base| was missing.
	($HTMLEmptyChecker): Don't throw an error 
	for inter-element whitespace nodes.
	(html:html checker): Errors were not
	thrown even if |html:head| and/or |html:body|
	children were missing.
	(html:head checker): An error was not
	thrown if <meta charset> appered after other
	elements.

2007-05-05  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: |footer|, |video|, |audio|, |script|,
	and |noscript| elements are implemented.
	(new): New method.

2007-05-04  Wakaba  <wakaba@suika.fam.cx>

	* ContentChecker.pm: New module.

2007-05-04  Wakaba  <wakaba@suika.fam.cx>

	* NanoDOM.pm (manakai_parent_element,
	document_element, manakai_local_name,
	manakai_element_type_match): New method.

2007-05-03  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Replace decimal and hexadecimal numeric
	entities in C1 range using Windows-1252 mapping.  Bare LF
	did not count as new line for error reporting.

2007-05-02  Wakaba  <wakaba@suika.fam.cx>

	* NanoDOM.pm (DOMImplementation): New class.
	(append_child): Weaken the |parent_node| reference.
	(create_element_ns, Element new): Set the |owner_document|
	reference.
	(implementation): New attribute.
	(owner_document, local_name, namespace_uri): New attributes.

	* HTML.pm.src (parse_string): Line and column numbers
	are now provided to error handler.
	(!!!parse-error): Short descriptions are added.
	(_construct_tree): Split into three methods; support
	for innerHTML mode.
	(set_inner_html): New method.

2007-05-01  Wakaba  <wakaba@suika.fam.cx>

	* NanoDOM.html: Documentation is added.

	* HTML.pod, ContentType.html: Documentation is revised.

	* .cvsignore: Pod2html temporary files are added.

	* Makefile: Make |NanoDOM.html|.

2007-05-01  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src (parse_string): New method.
	(get_inner_html): Renamed from |inner_html|.

	* Makefile: A rule for |HTML.html| is added.

	* HTML.pod: New documentation.

2007-05-01  Wakaba  <wakaba@suika.fam.cx>

	* NanoDOM.pm (last_child, previous_sibling): New attributes.
	(clone_node): Attribute nodes were not completely copied.

	* HTML.pm.src: Many bugs are fixed.

2007-04-30  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Some typos are fixed.

2007-04-30  Wakaba  <wakaba@suika.fam.cx>

	* mkhtmlparser.pl, Makefile: References to the |HTML-consume-entity.src|
	are removed.

	* HTML.pm.src: Tokenizer's handling on named entities are rewritten.

	* HTML-consume-entity.src: Removed.

2007-04-30  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Tokenizer's handling on hexadecimal
	numeric entities are rewritten.

2007-04-30  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: Some tokenizer bugs are fixed.

2007-04-30  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src: The tree construction stage is implemented.

	* mkhtmlparser.pl: New macros are added.

2007-04-28  Wakaba  <wakaba@suika.fam.cx>

	* ContentType.pm: A note on bug in the specification
	is removed since it's been now fixed.

	* .cvsignore: New file.

2007-04-28  Wakaba  <wakaba@suika.fam.cx>

	* HTML.pm.src, HTML-consume-entity.src: New files.

	* Makefile (HTML.pm): New rule.

	* mkhtmlparser.pl: New script.

2007-04-25  Wakaba  <wakaba@suika.fam.cx>

	* Makefile: New file.

2007-04-24  Wakaba  <wakaba@suika.fam.cx>

	* ContentType.pm: An error in pod is fixed.

2007-04-24  Wakaba  <wakaba@suika.fam.cx>

	* ContentType.pm: Documentation is added.

2007-04-24  Wakaba  <wakaba@suika.fam.cx>

	* ContentType.pm: New Perl module.

	* ChangeLog: New file.