mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-24 11:08:45 +02:00
16 KiB
16 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
7.2.0: Add support for Symfony 7
Added
- Add support for Symfony 7 (#1243)
7.1.0: Add support for PHP 8.3
Added
- Add support for PHP 8.3 (#1218)
Changed
- Disable HTML formatting by default (#1214)
7.0.0
Added
- Add support for PHP 8.2 (#1155)
Changed
- Throw exception with invalid CSS in debug mode (#1142)
- Only support up to 69 atomic expressions in a selector (#1113)
- Require
sabberworm/php-css-parser:^8.4.0(#1134) - Upgrade to PHPUnit 9 (#1112)
Deprecated
- Support for PHP 7.3 will be removed in Emogrifier 8.0.
Removed
- Drop support for Symfony 3.x and 5.3 (#1120, #1162)
- Drop support for PHP 7.2 (#1111)
Fixed
- Bump the minimum Symfony 4.4 version to avoid PHP deprecation warnings (#1187)
6.0.0
Added
- Test with Symfony 6-dev (#1109)
- Add support for PHP 8.1 (#1103)
- Add a dedicated class for caching (#1097)
- Allow installation together with Symfony 6 (#1065)
- Support more file types in the
.editorconfig(#1035) - Set
alignattribute of<th>elements withCssToAttributeConverter(#1008)
Changed
- Use
sabberworm/php-css-parserto parse the CSS (#1015) - Also check the unit test code with Psalm (#1003)
Deprecated
- Support for PHP 7.2 will be removed in Emogrifier 7.0.
Removed
- Remove a redundant CSS data cache (#1018)
- Drop support for Symfony 5.1 and 5.2 (#972, #1104)
- Drop support for PHP 7.1 (#967)
Fixed
- Allow
@importafter ignored invalid@charset(@1081) - Allow line feeds within
<html>tag (#987)
5.0.1
Changed
- Switch the default branch from
mastertomain(#951)
Fixed
- Ignore
http-equivContent-Typein<body>(#961) - Allow "Content-Type" in content (#959)
5.0.0
Added
- Add an
.editorconfigfile (#940) - Support PHP 8.0 (#926)
- Run the CI build once a week (#933)
- Move more development tools to PHIVE (#894, #907)
Changed
- Automatically add a backslash for global functions (#909)
- Update the development tools (#898, #895)
- Upgrade to PHPUnit 7.5 (#888)
- Enforce constant visibility (#892)
- Rename the PHPCS configuration file (#891, #896)
- Make use of PHP 7.1 language features (#883)
Deprecated
- Support for PHP 7.1 will be removed in Emogrifier 6.0.
Removed
- Drop support for Symfony 4.3 and 5.0 (#936)
- Stop checking
tests/with Psalm (#885) - Drop support for PHP 7.0 (#880)
Fixed
- Fix a nonsensical code example in the README (#920, #935)
- Remove
!importantfromstyleattributes also when uppercase, mixed case or having whitespace after!(#911) - Copy rules using
:...of-typewithout a type to the<style>element (#904) - Support combinator followed by dynamic pseudo-class in minified CSS (#903)
- Preserve all uninlinable (or otherwise unprocessed) at-rules (#899)
- Allow Windows CLI to run development tools installed through PHIVE (#900)
- Switch to a maintained package for parallel PHP linting (#884)
- Add
.0version suffixes to PHP version requirements (#881)
4.0.0
Added
- Extract and inject
@font-facerules into head (#870) - Test tag omission in conformant supplied HTML (#868)
- Check for missing return type hint annotations in the code sniffs (#860)
- Support
:only-of-type(with a type) (#849, #856) - Configuration setting methods now all return
$thisto allow chaining (#824, #854) - Disable php-cs-fixer Yoda conditions (#791, #794)
- Check the code with psalm (#537, #779)
- Composer script to run tests with
--stop-on-failure(#782) - Test universal selector with combinators (#776)
Changed
- Normalize DOCTYPE declaration according to polyglot markup recommendation (#866)
- Upgrade to V2 of the PHP setup GitHub action (#861)
- Move the development tools to PHIVE (#850, #851)
- Switch the parallel linting to a maintained fork (#842)
- Move continuous integration from Travis CI to GitHub actions (#832, #834, #838, #839, #840, #841, #843, #846, #849)
- Clean up the folder structure and autoloading configuration (#529, #785)
- Use
selfas the return type forfromHtml(#784) - Make use of PHP 7.0 language features (#777)
Deprecated
- Support for PHP 7.0 will be removed in Emogrifier 5.0.
Removed
- Drop support for Symfony versions that have reached their end of life (#847)
- Drop the
Emogrifierclass (#774) - Drop support for PHP 5.6 (#773)
Fixed
- Allow
:last-of-typeetc. without type, without causing exception (#875) - Make sure to use the Composer-installed development tools (#862, #865)
- Add missing
<head>element when there's a<header>element (#844, #853) - Fix mapping width/height when decimal is used (#845)
- Actually use the specified PHP version on GitHub actions (#836)
- Support
ci:php:linton Windows (#740, #780)
3.1.0
Added
- Add support for PHP 7.4 (#821, #829)
Changed
- Upgrade to Symfony 5.0 (#820)
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
- Drop
enableCssToHtmlMappinganddisableInvisibleNodeRemoval(#692) - Drop support for PHP 5.5 (#690)
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
- Drop the
@versionPHPDoc annotations (#637) - Drop the destructors (#619)
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
- Drop support for PHP 5.4 (#422)
- Drop support for HHVM (#386)
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