mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-22 18:18:46 +02:00
23 KiB
23 KiB
Emogrifier Change Log
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
x.y.z
Added
Changed
Deprecated
Removed
Fixed
3.1.0
Added
Changed
- Upgrade to Symfony 5.0 (#822
3.0.0
Added
- Test and document excluding entire subtree with
addExcludedSelector()(#347, #768) - Test that rules with
:optionalor:requiredare copied to the<style>element (#748, #765) - Test that rules with
:only-of-typeare copied to the<style>element (#748, #760) - Support
:last-of-type(#748, #758) - Support
:first-of-type(#748, #757) - Support
:empty(#748, #756) - Test that rules with
:any-linkare copied to the<style>element (#748, #755) - Support and test
:only-child(#747, #754) - Support and test
:nth-last-of-type(#747, #751) - Support and test
:nth-last-child(#747, #750) - Support and test general sibling combinator (#723, #745)
- Test universal selector with combinators (#723, #743)
- Preserve
display: noneelements with-emogrifier-keepclass (#252, #737) - Preserve valid
@importrules (#338, #334, #732, #735) - Add
HtmlPruner::removeRedundantClassesAfterCssInlined(#380, #724) - Check on Travis that PHP-CS-Fixer will not change anything #727)
- Support
:not(…)as an entire selector (#469, #725) - Add
HtmlPruner::removeRedundantClasses(#380, #708) - Support multiple attributes selectors (#385, #721)
- Support
> :first-childand> :last-childin selectors (#384, #720) - Add an
ArrayIntersectorclass (#708, #710) - Add
CssInliner::getMatchingUninlinableSelectors(#380, #707) - Add tests for
:nth-childand:nth-of-type(#71, #698)
Changed
- Relax the dependency on
symfony/css-selector(#762) - Rename
HtmlPruner::removeInvisibleNodestoHtmlPruner::removeElementsWithDisplayNone(#717, #718) - Mark the utility classes as internal (#715)
- Move utility classes to the
Pelago\Emogrifier\Utilitiesnamespace (#712) - Make the
$cssparameter of theinlineCssmethod optional (#700) - Update the development dependencies (#691)
Deprecated
- Support for PHP 5.6 will be removed in Emogrifier 4.0.
- Deprecate the
Emogrifierclass (#701)
Removed
Fixed
- Fix PhpStorm code inspection warnings (#729, #770)
- Uppercase type combined with class or ID in selector (#590, #769)
- Dynamic pseudo-class combined with static one (rules copied to
<style>element, #746) - Descendant attribute selectors (such as
html input[disabled]) (#375, #709) - Attribute selectors with hyphen in attribute name (#284, #540, #704)
- Attribute selectors with space, hyphen, colon, semicolon or (most) other non-alphanumeric characters in attribute value (#284, #333, #550, #540, #704)
- Don’t create empty
styleattributes for unparsable declarations (#259, #702) - Allow
:not(:behavioural-pseudo-class)in selectors (#697, #703)
2.2.0
Added
- Add a
HtmlPrunerclass (#679) - Add
AbstractHtmlProcessor::fromDomDocument(#676) - Add
AbstractHtmlProcessor::fromHtml(#675)
Changed
- Make the closures static (#674)
- Keep
<wbr>elements by default withCssInliner(#665) - Make the
CssInlinerinheritAbstractHtmlProcessor(#660) - Separate
CssInliner::inlineCssand the rendering (#654)
Removed
- Drop the removal of unprocessable tags from
CssInliner(#685) - Drop the removal of invisible nodes from
CssInliner(#684)
Fixed
- Remove opening
<body>tag frombodycontent when element has attribute(s) (#677, #683) - Keep development files out of the Composer packages (#678)
- Call all static methods statically in
CssConcatenator(#670) - Support all HTML5 self-closing tags, including
<embed>,<source>,<track>and<wbr>(#653) - Remove all "unprocessable" (e.g.
<wbr>) tags (#650) - Correct translated xpath of
:nth-childselector (#648)
2.1.1
Changed
- Add a test that a missing document type gets added (#641)
Fixed
- Keep the
styleelement thehead(#642)
2.1.0
Added
- PHP 7.3 support
(#638)
- Allow PHP 7.3 in
composer.json - Test in Travis for PHP 7.3
- Allow PHP 7.3 in
- Add a
renderBodyContent()method (#633) - Add a
getDomDocument()method (#630) - Add a Composer script for PHP CS Fixer (#607)
- Copy matching rules with dynamic pseudo-classes or pseudo-elements in selectors to the style element (#280, #562, #567)
- Add a CssToAttributeConverter (#546)
- Expose the DOMDocument in AbstractHtmlProcessor (#520)
- Add an HtmlNormalizer class (#513, #516)
- Add a CssInliner class (#514, #522)
- Composer scripts for the various CI build steps
- Validate the composer.json on Travis (#476)
Changed
- Mark the work-in-progress classes as
@internal(#640) - Remove the unprocessable tags from the DOM, not from the raw HTML (#627)
- Reject empty HTML in
setHtml()(#622) - Stop passing the DOM document around (#618)
- Improve performance by using explicit namespaces for PHP functions (#573, #576)
- Add type hint checking to the code sniffs (#566)
- Check the code with PHPMD (#561)
- Add the cyclomatic complexity to the checked code sniffs (#558)
- Use the Symfony CSS selector component (#540)
Deprecated
- Support for PHP 5.5 will be removed in Emogrifier 3.0.
- Support for PHP 5.6 will be removed in Emogrifier 4.0.
- The removal of invisible nodes will be removed in Emogrifier 3.0. (#473)
- Converting CSS styles to (non-CSS) HTML attributes will be removed in Emogrifier 3.0. Please use the new CssToAttributeConverter instead. (#474)
- Emogrifier 3.x.y will be the last release that supports usage without Composer (i.e., you can still require the class file). Starting with version 4.0, Emogrifier will only work with Composer.
- The Emogrifier class will be superseded by CssInliner class in Emogrifier 3.0. For this, the Emogrifier class will be deprecated for version 3.0 and removed for version 4.0.
Removed
Fixed
- Add required XML PHP extension to
composer.json(#614) - Add required DOM PHP extension to
composer.json(#595) - Escape hyphens in regular expressions (#588)
- Fix Travis for PHP 5.x (#589)
- Allow CSS between empty
@mediarule and another@mediarule (#534) - Allow additional whitespace in media-query-list of disallowed
@mediarules (#532) - Allow multiple minified
@importrules in the CSS without error (note:@imports are currently ignored, #527) - Style property ordering when multiple mixed individual and shorthand properties apply (#511, #508)
- Calculation of selector precedence for selectors involving pseudo-classes and/or attributes (#502)
- Allow
@charsetin the CSS without error (note: its value is currently ignored, #507) - Allow attribute selectors in descendants (#506, #381, #443)
- Allow adjacent sibling CSS selector combinator in minified CSS (#505)
- Allow CSS property values containing newlines (#504)
2.0.0
Added
- Support for CSS :not() selector (#431)
- Automatically remove !important annotations from final inline style declarations (#420)
- Automatically move
<style>block from<head>to<body>(#396) - PHP 7.2 support (#398)
- Allow PHP 7.2 in
composer.json, cleaner PHP version constraint - Test in Travis for PHP 7.2
- Allow PHP 7.2 in
- Debug mode. Throw debug exceptions only if debug is active. (#392)
Changed
- Test with latest and oldest dependencies on Travis (#463)
- Always enable the debug mode in the tests (#448)
- Optimize the string operations (#430)
Deprecated
- Support for PHP 5.5 will be removed in Emogrifier 3.0.
- Support for PHP 5.6 will be removed in Emogrifier 4.0.
Removed
Fixed
- Handle invalid/unrecognized selectors in media query blocks (#442)
- Throw (the correct) exception for invalid excluded selectors (#437)
- emogrifyBody must not encode umlaut entities (#414)
- Fix mapped HTML attribute values (#405)
- Make sure the HTML always has a BODY element (#410)
- Make inline style priority higher than css block priority (#404)
- Fix media regex parsing (#402)
- Silence purposefully ignored PHP Warnings (#400)
1.2.0 (2017-03-02)
Added
- Handling invalid xPath expression warnings (#361)
Deprecated
- Support for PHP 5.5 will be removed in Emogrifier 3.0.
- Support for PHP 5.4 will be removed in Emogrifier 2.0.
Fixed
- Allow colon (
:) and semi-colon (;) when using the*=selector (#371) - Ignore "auto" width and height (#365)
1.1.0 (2016-09-18)
Added
- Add support for PHP 7.1 (#342)
- Support the attr|=value selector (#337)
- Support the attr*=value selector (#330)
- Support the attr$=value selector (#329)
- Support the attr^=value selector (#324)
- Support the attr~=value selector (#323)
- Add CSS to HTML attribute mapper (#288)
Changed
- Remove composer dependency from PHP mbstring extension (Actual code dependency were removed a lot of time ago) (#295)
Deprecated
- Support for PHP 5.5 will be removed in Emogrifier 3.0.
- Support for PHP 5.4 will be removed in Emogrifier 2.0.
Fixed
- Method emogrifyBodyContent() doesn't keeps utf8 umlauts (#349)
- Ignore value with words more than one in the attribute selector (#327)
- Ignore spaces around the > in the direct child selector (#322)
- Ignore empty media queries (#307) (#237)
- Ignore pseudo-class when combined with pseudo-element (#308)
- First-child and last-child selectors are broken (#293)
- Second !important rule needs to overwrite the first one (#292)
1.0.0 (2015-10-15)
Added
- Add branch alias (#231)
- Remove media queries which do not impact the document (#217)
- Allow elements to be excluded from emogrification (#215)
- Handle !important (#214)
- emogrifyBodyContent() method (#206)
- Cache combinedStyles (#211)
- Allow user to define media types to keep (#200)
- Ignore invalid CSS selectors (#194)
- isRemoveDisplayNoneEnabled option (#162)
- Allow disabling of "inline style" and "style block" parsing (#156)
- Preserve @media if necessary (#62)
- Add extraction of style blocks within the HTML
- Add several new pseudo-selectors (first-child, last-child, nth-child, and nth-of-type)
Changed
- Make HTML5 the default document type (#245)
- Make copyCssWithMediaToStyleNode private (#218)
- Stop encoding umlauts and dollar signs (#170)
- Convert the classes to namespaces (#41)
Deprecated
- Support for PHP 5.4 will be removed in Emogrifier 2.0.
Removed
- Drop support for PHP 5.3 (#114)
- Support for character sets other than UTF-8 was removed.
Fixed
- Fix failing tests on Windows due to line endings (#263)
- Parsing CSS declaration blocks (#261)
- Fix first-child and last-child selectors (#257)
- Fix parsing of CSS for data URIs (#243)
- Fix multi-line media queries (#241)
- Keep CSS media queries even if followed by CSS comments (#201)
- Fix CSS selectors with exact attribute only (#197)
- Properly handle UTF-8 characters and entities (#189)
- Add mbstring extension to composer.json (#93)
- Prevent incorrectly capitalized CSS selectors from being stripped (#85)
- Fix CSS selectors with exact attribute only (#197)
- Wrong selector extraction from minified CSS (#69)
- Restore libxml error handler state after clearing (#65)
- Ignore all warnings produced by DOMDocument::loadHTML() (#63)
- Style tags in HTML cause an Xpath invalid query error (#60)
- Fix PHP warnings with PHP 5.5 (#26)
- Make removal of invisible nodes operate in a case-insensitive manner
- Fix a bug that was overwriting existing inline styles from the original HTML