futtta / autoptimize

Official Autoptimize repo on Github
https://autoptimize.com/pro/
GNU General Public License v2.0
283 stars 88 forks source link

Inline "background" not replaced with shortpixel #400

Open nxplace opened 1 year ago

nxplace commented 1 year ago

Inline CSS with background with URL are not replaced with the shortpixel CDN (even html/css/inline minification activated):

<div class="slide-item" style="background:url('https://myurl.com/wp-content/uploads/sites/3/2023/04/reves.jpg') center center / cover no-repeat;">

Should be <div class="slide-item" style="background:url('https://sp-ao.shortpixel.ai/client/to_webp,q_glossy,ret_img/https://myurl.com/wp-content/uploads/sites/3/2023/04/reves.jpg') center center / cover no-repeat;">

It's working when we use background-image:url(''). Line 766 in autoptimizeImage.php should replaced from: $out = preg_replace_callback( '/style=(?:"|\')[^<>]*?background*?:\s?url\((?:"|\')?([^"\')]*)(?:"|\')?\)/', to : $out = preg_replace_callback( '/style=(?:"|\')[^<>]*?background[-image]*?:\s?url\((?:"|\')?([^"\')]*)(?:"|\')?\)/',

futtta commented 1 year ago

feel free to issue a PR @nxplace :)

futtta commented 1 year ago

the regex turned out to be a bit more complex, see https://regex101.com/r/QNjD6B/1 :-)

futtta commented 1 year ago

could you test @nxplace ? :-)

futtta commented 1 year ago

the regex might work on regex101 but a new unit test fails so it seems more changes might be needed ;-)

futtta commented 1 year ago

tested again locally and it seems to work, so looks like an issue with the unit test, looking forward to your feedback after all ...