The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Time-stamp: "2000-08-21 00:37:58 MDT"

2000-08-20   Sean M. Burke <sburke@cpan.org>

   Release 3.01

   Now depends on HTML::Tagset for data tables of HTML elements and
   their characteristics.

   Version numbers for HTML::TreeBuilder and HTML::Element, as well as
   for the package, moved forward to 3.01.

   Minor changes to HTML::TreeBuilder's docs.

   HTML::TreeBuilder now knows not to amp-decode text children of
   CDATA-parent elements.  Also exceptionally stores comments under
   CDATA-parent elements.

   TreeBuilder should now correctly parse documents with frameset
   elements.  Tricky bunch of hacks.

   TreeBuilder now ignores those pointless "x-html" tags that a
   certain standards-flouting monopolistic American software/OS
   company's mailer wraps its HTML in.

   Introduced "tweaks" in HTML::TreeBuilder -- an experimental
   (and quite undocumented) feature to allow specifying callbacks
   to be called when specific elements are closed; makes possible
   rendering (or otherwise scanning and/or manipulating) documents
   as they are being parsed.  Inspired by Michel Rodriguez's clever
   XML::Twig module.  Until I document this, email me if you're
   interested.

   HTML::Element's as_HTML now knows not to amp-escape children of
   CDATA-parent elements.  Thanks to folks who kept reminding me about this.

   HTML::Element's as_HTML can now take an optional parameter
   specifying which non-empty elements will get end-tags omitted.

   HTML::Element's traverse's docs moved into separate POD,
   HTML::Element::traverse.

   Added HTML::Element methods all_attr_names and
   all_external_attr_names.  Fixed bug in all_external_attr.

   Added HTML::Element method delete_ignorable_whitespace.
   (Actually just moved from HTML::TreeBuilder, where it was
   undocumented, and called tighten_up.)

   Adding a bit of sanity checking to Element's look_down, look_up.

   Added some formfeeds to the source of Element and TreeBuilder,
   to make hardcopy a bit more readable.

2000-06-28   Sean M. Burke <sburke@cpan.org>

   Release 0.68

   Fixed doc typo for HTML::Element's lineage_tag_names method.

   Fixed lame bug in HTML::Element's all_external_attr that made it
   quite useless.  Thanks to Rich Wales <richw@webcom.com> for the bug
   report and patch.

   Changed as_text to no longer DEcode entities, as it formerly did,
   and was documented to.  Since entities are already decoded by time
   text is stored in the tree, another decoding step is wrong.  Neither
   me nor Gisle Aas can remember what that was doing there in the
   first place.

   Changed as_text to not traverse under 'style' and 'script'
   elements.  Rewrote as_text's traverser to be iterative.

   Added a bit of text to HTML::AsSubs to recommend using XML::Generator.


2000-06-12   Sean M. Burke  <sburke@cpan.org>

   Release 0.67.  Just changes to HTML::Element...

   Introduced look_up and look_down.  Thanks to the folks on the
   libwww list for helping me find the right form for that idea.
   Deprecated find_by_attribute

   Doc typo fixed: at one point in the discussion of "consolidating
   text", I said push_content('Skronk') when I meant
   unshift_content('Skronk').  Thanks to Richard Y. Kim (ryk@coho.net)
   for pointing this out.

   Added left() and right() methods.

   Made address([address]) accept relative addresses (".3.0.1")

   Added content_array_ref and content_refs_list.

   Added a bit more clarification to bits of the Element docs here and there.

   Made find_by_tag_name work iteratively now, for speed.


2000-05-18   Sean M. Burke  <sburke@cpan.org>

   Release 0.66

   Noting my new email address.

   Fixed bug in HTML::Element::detach_content -- it would return
   empty-list, instead of returing the nodes detached.

   Fixed big in HTML::Element::replace_with_content -- it would
   accidentally completely kill the parent's content list!
   Thanks to Reinier Post and others for spotting this error.

   Fixed big in HTML::Element::replace_with -- it put replacers
   in the content list of of the new parent, !but! forgot to update
   each replacer's _parent attribute.
   Thanks to Matt Sisk for spotting this error.


2000-03-26   Sean M. Burke  <sburke@netadventure.net>

   Release 0.65

   Important additions to HTML::Element :

     Totally reimplemented the traverse() method, and added features,
     now providing a somewhat-new interface.  It's still
     backwards-compatible both syntactically and semantically.
     
     Added methods: content_list, detach_content, replace_linkage,
     normalize_content, preinsert, postinsert, and has_insane_linkage.

     $h->attr('foo', undef) now actually deletes the attribute
     'foo' from $h, instead of setting it to undef.  Hopefully
     this won't break any existing code!

   Rearranged the order of some sections in the Element docs
   for purely pedagogical reasons.

   Bugfix:  $tree->clone failed to delete the internal
   _head and _body attributes of the clone (used by TreeBuilder),
   $tree->clone->delete ended up deleting most/all of the original!
   Fixed.  Added cavets to the docs warning against cloning
   TreeBuilder objects that are in mid-parse (not that I think most
   users are exactly rushing to do this).
   Thanks to Bob Glickstein for finding and reporting this bug.

   Added some regression/sanity tests in t/

   A bit more sanity checking in TreeBuilder: checks for _head and
   _body before including it.

   Modded TreeBuilder's calls to traverse() to be use new [sub{...},0]
   calling syntax, for sake of efficiency.

   Added some undocumented and experimental code in Element and
   TreeBuilder for using HTML::Element objects to represent
   comments, PIs, declarations, and "literals".

2000-03-08   Sean M. Burke <sburke@netadventure.net>

   Release 0.64

   Bugfix:  $element->replace_with_content() would cause
   a fatal error if any of $element's content nodes were
   text segments.  Fixed.

2000-03-08   Sean M. Burke <sburke@netadventure.net>

   Release 0.63

   Fixed a typo in the SYNOPSIS of TreeBuilder.pm: I had "->destroy" for
   "->delete"!

   Added $element->clone and HTML::Element->clone_list(nodes) methods,
   as Marek Rouchal very helpfully suggested.

   $tree->as_HTML can now indent, hopefully properly.  The logic to do
   so is pretty frightening, and regrettably doesn't wrap, and it's
   not obvious how to make it capable of doing so.

   $tree->as_text can now take a 'skip_dels' parameter.

   Added $h->same_as($j) method.

   Added $h->all_attr method.

   Added $h->new_from_lol constructor method.


1999-12-18   Sean M. Burke <sburke@netadventure.net>

   Release 0.62

   Incremented HTML::AsSubs version to 1.13, and HTML::Parse version
   to 2.7, to avoid version confusion with the old (<0.60) HTML-Tree
   dist.

   Re-simplified the options to HTML::Element::traverse, removing the
   verbose_for_text option.  (The behavior that it turned on, is now
   always on; this should not cause any problems with any existing
   code.)

   Fixed HTML::Element::delete_content, and made an
   HTML::TreeBuilder::delete to override it for TreeBuilder nodes,
   which have their own special attributes.  

   HTML::Element::find_by_attribute, find_by_attribute, and get_attr_i
   now behave differently in scalar context, if you're the sort that
   likes context on method calls.  HTML::Element::descendant is now
   optimized in scalar context.

   Fixed up some of the reporting of lineages in some $Debug-triggered
   messages.

   Fixed minor bug in updating pos when a text node under HTML
   implicates BODY (and maybe P).

   You should not use release 0.61

   

1999-12-15   Sean M. Burke <sburke@netadventure.net>

   Release 0.61

   Versions in this dist:
    HTML::Parse:  2.6
    HTML::TreeBuilder: 2.91
    HTML::Element:  1.44
    HTML::AsSubs: 1.12

   No longer including the Formatter modules.

   Lots of new methods and changes in HTML::Element; reorganized docs.

   Added new HTML tags to HTML::Element's and HTML::TreeBuilder's
   internal tables.

   Reworked the logic in HTML::TreeBuilder.  Previous versions dealt
   badly with tables, and attempts to enforce content-model rules
   occasionally went quite awry.  This new version is much less
   agressive about content-model rules, and works on the principle
   that if the HTML source is cock-eyed, there's limits to what can be
   done to keep the syntax tree from being cock-eyed.

   HTML::TreeBuilder now also tries to ignore ignorable whitespace.
   The resulting parse trees often have half (or fewer) the number of
   nodes, without all the ignorable "     " nodes like before.



1999-12-15   Gisle Aas <gisle@aas.no>

   Release 0.53

   Make it compatible with HTML-Parser-3.00



1999-11-10   Gisle Aas <gisle@aas.no>

   Release 0.52

   Fix SYNOPSIS for HTML::FormatText as suggested by
   Michael G Schwern <schwern@pobox.com>

   Updated my email address.



1998-07-07   Gisle Aas <aas@sn.no>

   Release 0.51

   Avoid new warnings introduced by perl5.004_70



1998-04-01   Gisle Aas <aas@sn.no>

   Release 0.50, the HTML::* modules the dealt with HTML syntax trees
   was unbundled from libwww-perl-5.22.