2007-07-21 Wakaba * HTML.pm.src: Codes for "in cell" insertion mode is merged to the "in body" insertion mode code. 2007-07-21 Wakaba * HTML.pm.src: Codes for "in body" and "in caption" insertion modes are merged. 2007-07-21 Wakaba * HTML.pm.src: Two |!!!next-token|s were missing. 2007-07-21 Wakaba * HTML.pm.src: Use numeric constant for |{content_mode}| instead of string constant for |{content_model_flag}|. 2007-07-21 Wakaba * HTML.pm.src: Add the name of the attribute to the "duplicate attribute" error. 2007-07-17 Wakaba * ContentChecker.pm: Return the |class| node list. 2007-07-17 Wakaba * ContentChecker.pm: Return the |id| node list. * HTML.pm.src: A typo is fixed. 2007-07-16 Wakaba * 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 * 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 * HTML.pm.src: The character immediately following a bare |hcro| was discarded. Fix handling of entity references in attribute values. 2007-07-16 Wakaba * HTML.pm.src (main and trailin end phases): Token types |DOCTYPE|, |comment|, |end-of-file|, and || are factored out. Error types |in html:#DOCTYPE| and |after html:#DOCTYPE| are merged into |DOCTYPE in the middle|. || in fragment parsing mode changed the insertion mode. 2007-07-16 Wakaba * 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 * HTML.pm.src: |meta| charset declaration extraction implemented (but changing the encoding is not yet:-). 2007-07-15 Wakaba * Charset/: New directory. 2007-07-15 Wakaba * H2H.pm: New Perl module (created from manakai's H2H.dis). 2007-07-15 Wakaba * XMLSerializer.pm: New Perl module (created from manakai's SimpleLS.dis). 2007-07-07 Wakaba * HTML.pm.src: || was not processed correctly. 2007-07-01 Wakaba * HTML.pm.src: Report correct error message for ||. 2007-07-01 Wakaba * HTMLTable.pm: An error description was incorrect. 2007-06-30 Wakaba * ContentChecker.pm: Return |{term}| list. 2007-06-30 Wakaba * HTML.pm.src: HTML5 revisions 961-966 (

,
, nested , implied , , and , and 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 ( ) 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.