# Change log for HTML::WikiConverter

version: 0.61
date:   Fri Jul 21 10:00:00 EST 2006
  - add HTML::Element and CSS prereqs for Normalizer.pm so that
    'make test' succeeds

version: 0.60
date:    Thu Jul 20 18:00:00 EST 2006
  - add CSS-to-HTML normalization so, for example,
    '<font style="font-weight:bold">text</font>' will be interpreted
    as '<b>text</b>' before conversion to wiki markup
  - CSS-to-HTML normalization, which is enabled by default, can
    be disabled by setting the 'normalize' to a false value
  - add 'passthrough_naked_tags' attribute, which accepts a list of
    tags to be replaced with their content if the tags contain no
  - add on-demand rule-loading so that rules that depend on
    attribute values will be updated when attributes are updated
  - add "UNKNOWN" rule as a catch-all for unknown tags
  - HTML can now be fetched from a URI by passing a 'uri' option to
    the html2wiki() method
  - the user agent used to fetch content from a URI can be specified
    in the 'user_agent' attribute
  - add 'passthrough' subrule for dialect module authors
  - rename 'remove_empty' to 'strip_empty_tags' for consistency with
    other attributes
  - improve handling of 'strip_empty_tags' attribute so that elements
    containing only whitespace are considered empty
  - documentation tweaks, including better synopsis [todo]

version: 0.55
date:    Thu Jun 08 17:00:00 EST 2006
  - (bug #19429) add "escape_entities" attribute
  - html2wiki utility accepts command-line options for all dialect
  - all recognized options to html2wiki now displayed with --options
    switch on the command line
  - improved error messages using carp/croak

version: 0.54
date:    Wed Jun 07 16:00:00 EST 2006
  - (bug #19046) allow lone '0' in text (previously such strings were assumed empty)
  - (bug #19046) element attributes must be containined on a single line

version: 0.53
date:    Sat Jun 03 23:00:00 EST 2006
  - revert "dialects now inherit via 'use HTML::WikiConverter -dialect;'" change
  - lots of documentation tweaks
  - allow attributes in html2wiki()
  - add 'remove_empty' attribute (requires HTML::Tagset)
  - add 'slurp' attribute (previously it was just an html2wiki() arg)
  - add eof() call after parse()

version: 0.52
date:    Fri Mar 03 23:45:00 EST 2006
  - document the 'preprocess' attribute
  - remove 'wiki_page_extractor' attribute
  - allow 'wiki_uri' to contain coderefs that were previously used for
    the now-defunct 'wiki_page_extractor' attribute
  - use File::Slurp (if available) for file slurping
  - 'wrap_in_html' now applies to html read from files too
  - fix bug in how 'wrap_in_html' is applied to files (previously it
    was clobbering html read from files)
  - add attribute() function/class method for greater flexibility when
    defining attribs (hence new Params::Validate and
    Class::Data::Inheritable prereqs)
  - coalesce 'strip_*' into 'strip_tags' attribute, which accepts an
  - fix bug in __param() that caused Boolean attributes to return an
    empty string when they were set to a false value
  - dialects now inherit via 'use HTML::WikiConverter -dialect;'
  - dialects no longer have to be within the H::WC namespace
  - rename __param() to _attr() and document its intended use by
    dialect modules

version: 0.51
date:    Sun Jan 29 01:43:00 EST 2006
  - add available_dialects() method, with thanks to Tatsuhiko Miyagawa
    for the code and suggestions
  - add 'preprocess' attribute, which accepts a callback to allow
    client to alter HTML tree prior to html2wiki conversion
  - improve handling of nested block elements to simplify dialect
  - allow 'wiki_uri' to contain arrayref of wiki URIs, allowing things
    like 'http://en.wikipedia.org/wiki/' and
    'http://en.wikipedia.org/w/index.php?action=edit&title=' to be
    specified simultaneously
  - allow wiki URIs in 'wiki_uri' attribute to be either a string (as before)
    or a regexp, the latter capturing the wiki page title in parentheses
  - add 'wiki_page_extractor' attribute, which accepts a callback that
    extracts a wiki page title given a URI object (see bug #17330)
  - unescape URIs using URI::Escape so that e.g. "%3A" appears as ":"
    in URIs

version: 0.50
date:    Tue Jan 10 17:35 EST 2006
  - separate each dialect into is own CPAN package for maintainability

version: 0.41
date:    Mon Jan 9 10:46:00 EST 2006
  - update documentation (no code changes)

version: 0.40
date:    Mon Jan 9 12:56:00 EST 2006
  - (bug 13561) support multiple encodings via 'encoding' attribute
  - (bug 13106) DokuWiki: rename from DocuWiki
  - (bug 13167) PmWiki: handle <a name="anchor">
  - (bug 13171) PmWiki: inline style rules fixed
  - (bug 14274) MediaWiki: better <nowiki> handling
  - (bug 14527) MediaWiki: better handling of <pre> blocks with empty lines
  - trim whitespace at end of each wiki line
  - html2wiki utility now installed by 'make install'
  - 'wrap_in_html' attribute now enabled by default in H::WC

version: 0.30
date:    Fri Jun 3 15:55:00 PDT 2005
  - add support for WakkaWiki, SnipSnap, Oddmuse, and TikiWiki (see http://c2.com/cgi/wiki?TopTenWikiEngines)
  - add DokuWiki support for links, blockquotes, images, and tables
  - add 'strip_scripts', 'strip_head', and 'strip_comments' options, on by default
  - allow 'start' and 'end' rules to be specified with 'preserve' to allow for wiki escaping
  - allow reading from HTML files using "html2wiki( file => ... )"
  - (bug 12944, 12303) preserve HTML entities in text nodes
  - (bug 13017) MediaWiki should allow <i> and <b> to be preserved rather than converting to '' and '''
  - backend API changes; dialect modules now subclass HTML::WikiConverter
  - dialects specify their attributes using the attributes() method
  - more complete tests using larger input HTML file
  - document individual dialects
  - lots of documentation fixes

version: 0.23
date:    Sat May 22 02:19:00 PDT 2005
  - add DokuWiki dialect (with thanks to Thomas J. Messenger)
  - (bug 12441) allow dialects to post-process wiki markup
  - (bug 12440) add 'empty' rule for elements with no content
  - (bug 12439) unknown HTML elements no longer ignored
  - (bug 12396) added command line tool bin/html2wiki
  - (bug 12395) MoinMoin: added postprocessing step in MoinMoin dialect to replace "URL[[BR]]" with "URL [[BR]]"
  - (bug 12433) MediaWiki: added complete set of whitelisted tags and attributes from Sanitizer.php

version: 0.22
date:    Mon Apr 25 09:04:31 PDT 2005
  - (bug 12393) added 'wrap_in_html' option to wrap HTML input in <html> and </html> prior to wiki conversion
  - (bug 12303) MediaWiki: bracketed content is nowiki-escaped if it resembles an external link reference
  - (bug 12438) PmWiki: add <td> whitespace trimming

version: 0.21
date:    Thu Mar 17 13:36:00 PDT 2005
  - misc. documentation fixes
  - use '' as default return value from base_uri() method
  - add 'wiki_uri' parameter to specify how wiki links are formed
  - add get_attr_str() and get_wiki_page() utility methods
  - rename elem_contents() to get_elem_contents() for consistency
  - added support for PmWiki
  - fix postprocess whitespace trimming bug; only leading newlines and trailing whitespace is trimmed
  - add URI 1.35 requirement (though some earlier versions will probably work)
  - fix whitespace trimming in test suite
  - added new tests
  - Kwiki-specific changes:
      - add <strike> as alias of <s>
      - add <caption> preprocessing to convert it into a <p>
      - update wiki link handling code to use get_wiki_page()
      - removed markup around CamelCase links
  - MediaWiki-specific changes:
      - use new get_wiki_page() utility method
      - no longer passes a full URI to basename(); uses URI->path()
      - added support for attributes in <table>, <tr>, and <td>
  - MoinMoin-specific changes:
      - add <caption> preprocessing as in Kwiki
      - make rules less redundant (use 'alias' rule)
  - PhpWiki-specific changes:
      - add <caption> preprocessing as in Kwiki
      - improve support for <dl>
  - UseMod-specific changes:
      - add <caption> preprocessing as in Kwiki

version: 0.20
date:    Sat Mar 12 00:59:29 PDT 2005
  - complete rewrite, significant API changes
  - added support for Kwiki, MediaWiki, MoinMoin, PhpWiki, and UseMod

version: 0.17
date:    Wed July 7 12:40:33 PDT 2004
  - update test suite
  - remove warnings reported by cpan testers
  - lots of documentation additions
  - MediaWiki changes:
      - 'wikify_span' now removes elements intended only for URL expansion (as used by the MonoBook skin)
      - 'wikify_link' does not wikify anchor tags (i.e. A tags must have an HREF attribute)
      - bug fix: table heading markup like "! bgcolor=black !" is now properly generated as "! bgcolor=black |"
      - TH now accepts a colspan and rowspan attribute
      - "colspan=1" attribute is now stripped from table cells that only span a single column. Likewise for "rowspan"
      - added "taxo_format" option to help format taxoboxes
      - align attribute is now preserved in TH and TD
      - add "add_nowiki" parameter for adding NOWIKI tags around {{messages}}
      - table caption handling using "|+" wiki table markup
      - better nested table handling; a newline is now added before the "{|" for nested tables
      - improved handling of image thumbnails
      - now uses warnings, strict

version: 0.16
date:    Fri May 28 12:33:14 PDT 2004
  - Added 'elem_style_attr_props' method for parsing the STYLE attribute
  - Tags that are meant to be stripped (e.g. HTML, META, HEAD) no longer need an empty replacement handler (they can simply be excluded from the list of tag handlers)
  - Added handling of non-breaking elements (e.g. in some dialects, such as MediaWiki, P tags should not have any embedded newlines)
  - Fixed whitespace handling in H::W::Dialect
  - Documentation additions
  - Added benchmarking option
  - MediaWiki: added colspan and rowspan to allowed TD attrs
  - MW: Now supports 'pretty_tables' option for making nice borders/shading
  - MW: Removed arbitrary 20-char limit in conversion of {{...}} magic
  - MW: "[1]"-style links are now handled properly
  - MW: Hex codes/HTML entities in URLs now translated to appropriate char (requires URI::Escape)
  - MW: Major list handling cleanup and bug fixes
  - MW: Added new realworld test (my User: page)

version: 0.15
date:    Thu May 20 8:50:37 PDT 2004
  - Split module into several separate modules
  - HTML::WikiConverter is still the main interface
  - Added support for wiki dialects via HTML::WIkiConverter::Dialect interface
  - Added HTML::WikiConverter::Dialect
  - Added HTML::WikiConverter::Dialect::MediaWiki
  - Added HTML::WikiConverter::Dialect::PhpWiki
  - Added HTML::WikiConverter::Dialect::Kwiki
  - Fixed spacing issues in tidy_whitespace
  - Added container, block, and line element handling
  - Now supports multiply-indented blocks

version: 0.14
date:    Sun May 17 7:18:09 PDT 2004
  - 'wikify_default' now called 'passthru'
  - NOWIKI blocks are no longer preserved
  - Bug fix: Add newline to HTML source before wikification -- avoids apparent bugs in HTML::TreeBuilder that prevent proper tag handling
  - Added trim method
  - Bug fix: Extra whitespace in PRE blocks no longer trimmed
  - Can now handle "[[language]]s" links (with trailing characters)

version: 0.12
date:    Thu May 14 5:23:08 PDT 2004
  - Bug fix: removed reference to non-existent 'has_parent' method within '_elem_has_ancestor' function
  - Bug fix: fixed potential bug in 'wikify_list_item' which used $node->parent->tag eq '...' instead of _elem_has_ancestor($node, '...')
  - Now supports definition lists via ; and :
  - Now supports indentation via :
  - Replaced code handler for P tag with flank handler
  - Replaced code handler for OL/UL tags with flank handlers
  - Renamed 'wikify_heading' method to 'wikify_h' for consistency with other wikify_* handlers
  - NOWIKI blocks are now preserved
  - Introduced beginnings of Unicode support with the use of HTML entities to HTML-escape high-bit characters
  - Added more tests to t/test.t

version: 0.11
date:    Sun May 10 1:01:09 PDT 2004
  - added wikify_default code handler for tags that should be preserved.
  - Added wikify_span
  - Now preserves FONT, SUP, and SUB tags
  - SPAN tags are converted into FONT if possible

version: 0.10
date:    Thu May 07 3:10:04 PDT 2004
  - Initial release