Release 1.4.1, merged in 685-687.
[htmlpurifier.git] / NEWS
blob69e713c6b231ebe17e55f748d80956609a1e703d
1 NEWS ( CHANGELOG and HISTORY )                                     HTMLPurifier
2 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 = KEY ====================
5     # Breaks back-compat
6     ! Feature
7     - Bugfix
8       + Sub-comment
9     . Internal change
10 ==========================
12 1.4.1, released 2007-01-21
13 ! docs/enduser-youtube.html updated according to new functionality
14 - YouTube IDs can have underscores and dashes
16 1.4.0, released 2007-01-21
17 ! Implemented list-style-image, URIs now allowed in list-style
18 ! Implemented background-image, background-repeat, background-attachment
19   and background-position CSS properties. Shorthand property background
20   supports all of these properties.
21 ! Configuration documentation looks nicer
22 ! Added %Core.EscapeNonASCIICharacters to workaround loss of Unicode
23   characters while %Core.Encoding is set to a non-UTF-8 encoding.
24 ! Support for configuration directive aliases added
25 ! Config object can now be instantiated from ini files
26 ! YouTube preservation code added to the core, with two lines of code
27   you can add it as a filter to your code. See smoketests/preserveYouTube.php
28   for sample code.
29 ! Moved SLOW to docs/enduser-slow.html and added code examples
30 - Replaced version check with functionality check for DOM (thanks Stephen
31   Khoo)
32 . Added smoketest 'all.php', which loads all other smoketests via frames
33 . Implemented AttrDef_CSSURI for url(http://google.com) style declarations
34 . Added convenient single test selector form on test runner
36 1.3.2, released 2006-12-25
37 ! HTMLPurifier object now accepts configuration arrays, no need to manually
38   instantiate a configuration object
39 ! Context object now accessible to outside
40 ! Added enduser-youtube.html, explains how to embed YouTube videos. See
41   also corresponding smoketest preserveYouTube.php.
42 ! Added purifyArray(), which takes a list of HTML and purifies it all
43 ! Added static member variable $version to HTML Purifier with PHP-compatible
44   version number string.
45 - Fixed fatal error thrown by upper-cased language attributes
46 - printDefinition.php: added labels, added better clarification
47 . HTMLPurifier_Config::create() added, takes mixed variable and converts into
48   a HTMLPurifier_Config object.
50 1.3.1, released 2006-12-06
51 ! Added HTMLPurifier.func.php stub for a convenient function to call the library
52 - Fixed bug in RemoveInvalidImg code that caused all images to be dropped
53   (thanks to .mario for reporting this)
54 . Standardized all attribute handling variables to attr, made it plural
56 1.3.0, released 2006-11-26
57 # Invalid images are now removed, rather than replaced with a dud
58   <img src="" alt="Invalid image" />. Previous behavior can be restored
59   with new directive %Core.RemoveInvalidImg set to false.
60 ! (X)HTML Strict now supported
61   + Transparently handles inline elements in block context (blockquote)
62 ! Added GET method to demo for easier validation, added 50kb max input size
63 ! New directive %HTML.BlockWrapper, for block-ifying inline elements
64 ! New directive %HTML.Parent, allows you to only allow inline content
65 ! New directives %HTML.AllowedElements and %HTML.AllowedAttributes to let
66   users narrow the set of allowed tags
67 ! <li value="4"> and <ul start="2"> now allowed in loose mode
68 ! New directives %URI.DisableExternalResources and %URI.DisableResources
69 ! New directive %Attr.DisableURI, which eliminates all hyperlinking
70 ! New directive %URI.Munge, munges URI so you can use some sort of redirector
71   service to avoid PageRank leaks or warn users that they are exiting your site.
72 ! Added spiffy new smoketest printDefinition.php, which lets you twiddle with
73   the configuration settings and see how the internal rules are affected.
74 ! New directive %URI.HostBlacklist for blocking links to bad hosts.
75   xssAttacks.php smoketest updated accordingly.
76 - Added missing type to ChildDef_Chameleon
77 - Remove Tidy option from demo if there is not Tidy available
78 . ChildDef_Required guards against empty tags
79 . Lookup table HTMLDefinition->info_flow_elements added
80 . Added peace-of-mind variable initialization to Strategy_FixNesting
81 . Added HTMLPurifier->info_parent_def, parent child processing made special
82 . Added internal documents briefly summarizing future progression of HTML
83 . HTMLPurifier_Config->getBatch($namespace) added
84 . More lenient casting to bool from string in HTMLPurifier_ConfigSchema
85 . Refactored ChildDef classes into their own files
87 1.2.0, released 2006-11-19
88 # ID attributes now disabled by default. New directives:
89   + %HTML.EnableAttrID - restores old behavior by allowing IDs
90   + %Attr.IDPrefix - %Attr.IDBlacklist alternative that munges all user IDs
91     so that they don't collide with your IDs
92   + %Attr.IDPrefixLocal - Same as above, but for when there are multiple
93     instances of user content on the page
94   + Profuse documentation on how to use these available in docs/enduser-id.txt
95 ! Added MODx plugin <http://modxcms.com/forums/index.php/topic,6604.0.html>
96 ! Added percent encoding normalization
97 ! XSS attacks smoketest given facelift
98 ! Configuration documentation now has table of contents
99 ! Added %URI.DisableExternal, which prevents links to external websites.  You
100   can also use %URI.Host to permit absolute linking to subdomains
101 ! Non-accessible resources (ex. mailto) blocked from embedded URIs (img src)
102 - Type variable in HTMLDefinition was not being set properly, fixed
103 - Documentation updated
104   + TODO added request Phalanger
105   + TODO added request Native compression
106   + TODO added request Remove redundant tags
107   + TODO added possible plaintext formatter for HTML Purifier documentation
108   + Updated ConfigDoc TODO
109   + Improved inline comments in AttrDef/Class.php, AttrDef/CSS.php
110     and AttrDef/Host.php
111   + Revamped documentation into HTML, along with misc updates
112 - HTMLPurifier_Context doesn't throw a variable reference error if you attempt
113   to retrieve a non-existent variable
114 . Switched to purify()-wide Context object registry
115 . Refactored unit tests to minimize duplication
116 . XSS attack sheet updated
117 . configdoc.xml now has xml:space attached to default value nodes
118 . Allow configuration directives to permit null values
119 . Cleaned up test-cases to remove unnecessary swallowErrors()
121 1.1.2, released 2006-09-30
122 ! Add HTMLPurifier.auto.php stub file that configures include_path
123 - Documentation updated
124   + INSTALL document rewritten
125   + TODO added semi-lossy conversion
126   + API Doxygen docs' file exclusions updated
127   + Added notes on HTML versus XML attribute whitespace handling
128   + Noted that HTMLPurifier_ChildDef_Custom isn't being used
129   + Noted that config object's definitions are cached versions
130 - Fixed lack of attribute parsing in HTMLPurifier_Lexer_PEARSax3
131 - ftp:// URIs now have their typecodes checked
132 - Hooked up HTMLPurifier_ChildDef_Custom's unit tests (they weren't being run)
133 . Line endings standardized throughout project (svn:eol-style standardized)
134 . Refactored parseData() to general Lexer class
135 . Tester named "HTML Purifier" not "HTMLPurifier"
137 1.1.1, released 2006-09-24
138 ! Configuration option to optionally Tidy up output for indentation to make up
139   for dropped whitespace by DOMLex (pretty-printing for the entire application
140   should be done by a page-wide Tidy)
141 - Various documentation updates
142 - Fixed parse error in configuration documentation script
143 - Fixed fatal error in benchmark scripts, slightly augmented
144 - As far as possible, whitespace is preserved in-between table children
145 - Sample test-settings.php file included
147 1.1.0, released 2006-09-16
148 ! Directive documentation generation using XSLT
149 ! XHTML can now be turned off, output becomes <br>
150 - Made URI validator more forgiving: will ignore leading and trailing
151   quotes, apostrophes and less than or greater than signs.
152 - Enforce alphanumeric namespace and directive names for configuration.
153 - Table child definition made more flexible, will fix up poorly ordered elements
154 . Renamed ConfigDef to ConfigSchema
156 1.0.1, released 2006-09-04
157 - Fixed slight bug in DOMLex attribute parsing
158 - Fixed rejection of case-insensitive configuration values when there is a
159   set of allowed values.  This manifested in %Core.Encoding.
160 - Fixed rejection of inline style declarations that had lots of extra
161   space in them.  This manifested in TinyMCE.
163 1.0.0, released 2006-09-01
164 ! Shorthand CSS properties implemented: font, border, background, list-style
165 ! Basic color keywords translated into hexadecimal values
166 ! Table CSS properties implemented
167 ! Support for charsets other than UTF-8 (defined by iconv)
168 ! Malformed UTF-8 and non-SGML character detection and cleaning implemented
169 - Fixed broken numeric entity conversion
170 - API documentation completed
171 . (HTML|CSS)Definition de-singleton-ized
173 1.0.0beta, released 2006-08-16
174 ! First public release, most functionality implemented. Notable omissions are:
175   + Shorthand CSS properties
176   + Table CSS properties
177   + Deprecated attribute transformations