Sanitize History ================================================================================ Version 3.0.3 (2014-10-29) -------------------------- * Fixed: Some CSS selectors weren't parsed correctly inside the body of a `@media` block, causing them to be removed even when whitelist rules should have allowed them to remain. [#121][121] [121]:https://github.com/rgrove/sanitize/issues/121 Version 3.0.2 (2014-09-02) -------------------------- * Updated Nokogumbo to 1.1.12, because 1.1.11 silently reverted the change we were trying to pick up in the last release. Now issue [#114][114] is _actually_ fixed. Version 3.0.1 (2014-09-02) -------------------------- * Updated Nokogumbo to 1.1.11 to pick up a fix for a Gumbo bug in which certain HTML character entities, such as `Ö`, were parsed incorrectly, leaving the semicolon behind in the output. [#114][114] [114]:https://github.com/rgrove/sanitize/issues/114 Version 3.0.0 (2014-06-21) -------------------------- As of this version, Sanitize adheres strictly to the [SemVer 2.0.0][semver] versioning standard. This release contains API and output changes that are incompatible with previous releases, as indicated by the major version increment. [semver]:http://semver.org/ ### Backwards-incompatible changes * HTML is now parsed using Google's Gumbo HTML5 parser, which adheres to the HTML5 parsing spec and behaves much more like modern browser parsers than the previous libxml2-based parser. As a result, HTML output may differ from that of previous versions of Sanitize. * All transformers now traverse the document from the top down, starting with the first node, then its first child, and so on. The `:transformers_breadth` config has been removed, and old bottom-up transformers (the previous default) may need to be rewritten. * Sanitize's built-in configs are now deeply frozen to prevent people from modifying them (either accidentally or maliciously). To customize a built-in config, create a new copy using `Sanitize::Config.merge()`, like so: ```ruby Sanitize.fragment(html, Sanitize::Config.merge(Sanitize::Config::BASIC, :elements => Sanitize::Config::BASIC[:elements] + ['div', 'table'], :remove_contents => true )) ``` * The `clean!` and `clean_document!` methods were removed, since they weren't useful and tended to confuse people. * The `clean` method was renamed to `fragment` to more clearly indicate that its intended use is to sanitize an HTML fragment. * The `clean_document` method was renamed to `document`. * The `clean_node!` method was renamed to `node!`. * The `document` method now raises a `Sanitize::Error` if the `` element isn't whitelisted, rather than a `RuntimeError`. This error is also now raised regardless of the `:remove_contents` config setting. * The `:output` config has been removed. Output is now always HTML, not XHTML. * The `:output_encoding` config has been removed. Output is now always UTF-8. ### Other changes * Added advanced CSS sanitization support using [Crass][crass], which is fully compliant with the CSS Syntax Module Level 3 parsing spec. The contents of whitelisted `