From b9be2879ed2a92217106c13208c0dfffd102af28 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Sun, 17 Jul 2022 15:13:13 -0400 Subject: [PATCH] Fix srcsets overriding rewritten image srcs --- lib/frenzy/pipeline/scrape_stage.ex | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/frenzy/pipeline/scrape_stage.ex b/lib/frenzy/pipeline/scrape_stage.ex index c0d7768..f637df2 100644 --- a/lib/frenzy/pipeline/scrape_stage.ex +++ b/lib/frenzy/pipeline/scrape_stage.ex @@ -158,6 +158,16 @@ defmodule Frenzy.Pipeline.ScrapeStage do attr end) + has_src = Enum.find(new_attrs, fn {name, _} -> name == "src" end) + + # remove srcsets because our transformation only applies to the src attribute, so that should always be used + new_attrs = + if has_src do + Enum.reject(new_attrs, fn {name, _} -> name == "srcset" end) + else + new_attrs + end + {"img", new_attrs} elem -> @@ -191,5 +201,5 @@ defmodule Frenzy.Pipeline.ScrapeStage do end end - defp image_to_data_uri(src, _site_uri, false), do: src + defp image_to_data_uri(src, site_uri, false), do: to_string(URI.merge(site_uri, src)) end