Skip to content

@oliverklee oliverklee released this Apr 6, 2021

Changed

  • Switch the default branch from master to main
    (#951)

Fixed

  • Ignore http-equiv Content-Type in <body>
    (#961)
  • Allow "Content-Type" in content
    (#959)
Assets 2

@oliverklee oliverklee released this Nov 23, 2020

Added

  • Add an .editorconfig file
    (#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 !important from style attributes also when uppercase, mixed case or
    having whitespace after !
    (#911)
  • Copy rules using :...of-type without 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 .0 version suffixes to PHP version requirements
    (#881)
Assets 2

@oliverklee oliverklee released this Jun 12, 2020

Added

  • Extract and inject @font-face rules 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 $this to 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 self as the return type for fromHtml
    (#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 Emogrifier class
    (#774)
  • Drop support for PHP 5.6
    (#773)

Fixed

  • Allow :last-of-type etc. 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:lint on Windows
    (#740,
    #780)
Assets 2

@oliverklee oliverklee released this Dec 26, 2019

Added

Changed

  • Upgrade to Symfony 5.0 (#822)
Assets 2

@oliverklee oliverklee released this Oct 1, 2019

Added

  • Test and document excluding entire subtree with addExcludedSelector()
    (#347,
    #768)
  • Test that rules with :optional or :required are copied to the <style>
    element (#748,
    #765)
  • Test that rules with :only-of-type are 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-link are 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: none elements with -emogrifier-keep class
    (#252,
    #737)
  • Preserve valid @import rules
    (#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-child and > :last-child in selectors
    (#384,
    #720)
  • Add an ArrayIntersector class
    (#708,
    #710)
  • Add CssInliner::getMatchingUninlinableSelectors
    (#380,
    #707)
  • Add tests for :nth-child and :nth-of-type
    (#71,
    #698)

Changed

  • Relax the dependency on symfony/css-selector
    (#762)
  • Rename HtmlPruner::removeInvisibleNodes to
    HtmlPruner::removeElementsWithDisplayNone
    (#717,
    #718)
  • Mark the utility classes as internal
    (#715)
  • Move utility classes to the Pelago\Emogrifier\Utilities namespace
    (#712)
  • Make the $css parameter of the inlineCss method optional
    (#700)
  • Update the development dependencies
    (#691)

Deprecated

  • Support for PHP 5.6 will be removed in Emogrifier 4.0.
  • Deprecate the Emogrifier class
    (#701)

Removed

  • Drop enableCssToHtmlMapping and disableInvisibleNodeRemoval
    (#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 style attributes for unparsable declarations
    (#259,
    #702)
  • Allow :not(:behavioural-pseudo-class) in selectors
    (#697,
    #703)
Assets 2

@oliverklee oliverklee released this Sep 4, 2019

Added

  • Add a HtmlPruner class
    (#679)
  • Add AbstractHtmlProcessor::fromDomDocument
    (#676)
  • Add AbstractHtmlProcessor::fromHtml
    (#675)

Changed

  • Make the closures static
    (#674)
  • Keep <wbr> elements by default with CssInliner
    (#665)
  • Make the CssInliner inherit AbstractHtmlProcessor
    (#660)
  • Separate CssInliner::inlineCss and 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 from body content 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-child selector
    (#648)
Assets 2

@oliverklee oliverklee released this Dec 10, 2018

Changed

  • Add a test that a missing document type gets added
    (#641)

Fixed

  • Keep the style element the head
    (#642)
Assets 2

@oliverklee oliverklee released this Dec 10, 2018

Fixed

  • PHP 7.3 support
    (#643)
    • Allow PHP 7.3 in composer.json
    • Test in Travis for PHP 7.3
  • Escape hyphens in regular expressions
    (#599)

Removed

  • Drop the @version PHPDoc annotations
    (#644)
Assets 2

@oliverklee oliverklee released this Dec 8, 2018

Added

  • PHP 7.3 support
    (#638)
    • Allow PHP 7.3 in composer.json
    • Test in Travis for PHP 7.3
  • 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 @version PHPDoc 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 @media rule and another @media rule
    (#534)
  • Allow additional whitespace in media-query-list of disallowed @media rules
    (#532)
  • Allow multiple minified @import rules 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 @charset in the CSS without error (note: its value is currently
    ignored, #507)
  • Allow attribute selectors in descendants
    (#506,
    #381)
  • Allow adjacent sibling CSS selector combinator in minified CSS
    (#505)
  • Allow CSS property values containing newlines
    (#504)
Assets 2

@oliverklee oliverklee released this Jun 26, 2018

Added

  • Mark as compatible with PHP 7.2.x
    (#582)

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.
Assets 2