diff --git a/common/hashing/hashing.go b/common/hashing/hashing.go index 42194fd4d94..70aa74ecd7a 100644 --- a/common/hashing/hashing.go +++ b/common/hashing/hashing.go @@ -27,7 +27,7 @@ import ( ) // XXHashFromReader calculates the xxHash for the given reader. -func XXHashFromReader(r io.ReadSeeker) (uint64, int64, error) { +func XXHashFromReader(r io.Reader) (uint64, int64, error) { h := getXxHashReadFrom() defer putXxHashReadFrom(h) diff --git a/common/hashing/hashing_test.go b/common/hashing/hashing_test.go index e059b3da896..09286c0354d 100644 --- a/common/hashing/hashing_test.go +++ b/common/hashing/hashing_test.go @@ -17,6 +17,7 @@ import ( "fmt" "math" "strings" + "sync" "testing" qt "github.com/frankban/quicktest" @@ -32,6 +33,30 @@ func TestXxHashFromReader(t *testing.T) { c.Assert(got, qt.Equals, uint64(7148569436472236994)) } +func TestXxHashFromReaderPara(t *testing.T) { + c := qt.New(t) + + var wg sync.WaitGroup + for i := 0; i < 10; i++ { + i := i + wg.Add(1) + go func() { + defer wg.Done() + for j := 0; j < 100; j++ { + s := strings.Repeat("Hello ", i+j+1*42) + r := strings.NewReader(s) + got, size, err := XXHashFromReader(r) + c.Assert(size, qt.Equals, int64(len(s))) + c.Assert(err, qt.IsNil) + expect, _ := XXHashFromString(s) + c.Assert(got, qt.Equals, expect) + } + }() + } + + wg.Wait() +} + func TestXxHashFromString(t *testing.T) { c := qt.New(t) s := "Hello World" diff --git a/hugolib/hugo_sites_multihost_test.go b/hugolib/hugo_sites_multihost_test.go index 004da351dbc..ce3944a3848 100644 --- a/hugolib/hugo_sites_multihost_test.go +++ b/hugolib/hugo_sites_multihost_test.go @@ -203,9 +203,9 @@ title: mybundle-en b.AssertFileExists("public/de/mybundle/pixel.png", true) b.AssertFileExists("public/en/mybundle/pixel.png", true) - b.AssertFileExists("public/de/mybundle/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_2x2_resize_box_3.png", true) + b.AssertFileExists("public/de/mybundle/pixel_hu8581513846771248023.png", true) // failing test below - b.AssertFileExists("public/en/mybundle/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_2x2_resize_box_3.png", true) + b.AssertFileExists("public/en/mybundle/pixel_hu8581513846771248023.png", true) } func TestMultihostResourceOneBaseURLWithSuPath(t *testing.T) { diff --git a/hugolib/image_test.go b/hugolib/image_test.go index 637956b3bf8..7dcd9fc26ab 100644 --- a/hugolib/image_test.go +++ b/hugolib/image_test.go @@ -72,22 +72,20 @@ SUNSET2: {{ $resized2.RelPermalink }}/{{ $resized2.Width }}/Lat: {{ $resized2.Ex b.Build(BuildCfg{}) - b.AssertFileContent("public/index.html", "SUNSET FOR: en: /bundle/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_resize_q75_box.jpg/200/Lat: 36.59744166666667") - b.AssertFileContent("public/fr/index.html", "SUNSET FOR: fr: /bundle/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_resize_q75_box.jpg/200/Lat: 36.59744166666667") - b.AssertFileContent("public/index.html", " SUNSET2: /images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_123x234_resize_q75_box.jpg/123/Lat: 36.59744166666667") - b.AssertFileContent("public/nn/index.html", " SUNSET2: /images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_123x234_resize_q75_box.jpg/123/Lat: 36.59744166666667") + b.AssertFileContent("public/index.html", "SUNSET FOR: en: /bundle/sunset_hu13235715490294913361.jpg/200/Lat: 36.59744166666667") + b.AssertFileContent("public/fr/index.html", "SUNSET FOR: fr: /bundle/sunset_hu13235715490294913361.jpg/200/Lat: 36.59744166666667") + b.AssertFileContent("public/index.html", " SUNSET2: /images/sunset_hu1573057890424052540.jpg/123/Lat: 36.59744166666667") + b.AssertFileContent("public/nn/index.html", " SUNSET2: /images/sunset_hu1573057890424052540.jpg/123/Lat: 36.59744166666667") - b.AssertImage(200, 200, "public/bundle/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_resize_q75_box.jpg") + b.AssertImage(200, 200, "public/bundle/sunset_hu13235715490294913361.jpg") // Check the file cache - b.AssertImage(200, 200, "resources/_gen/images/bundle/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_resize_q75_box.jpg") + b.AssertImage(200, 200, "resources/_gen/images/bundle/sunset_hu13235715490294913361.jpg") - b.AssertFileContent("resources/_gen/images/bundle/sunset_2020904703097093419.json", + b.AssertFileContent("resources/_gen/images/bundle/sunset_17710516992648092201.json", "FocalLengthIn35mmFormat|uint16", "PENTAX") - b.AssertImage(123, 234, "resources/_gen/images/images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_123x234_resize_q75_box.jpg") - - b.AssertFileContent("resources/_gen/images/images/sunset_2020904703097093419.json", + b.AssertFileContent("resources/_gen/images/images/sunset_17710516992648092201.json", "FocalLengthIn35mmFormat|uint16", "PENTAX") b.AssertNoDuplicateWrites() diff --git a/hugolib/pagesfromdata/pagesfromgotmpl_integration_test.go b/hugolib/pagesfromdata/pagesfromgotmpl_integration_test.go index 709d6db7b83..a4cf4dcff24 100644 --- a/hugolib/pagesfromdata/pagesfromgotmpl_integration_test.go +++ b/hugolib/pagesfromdata/pagesfromgotmpl_integration_test.go @@ -119,7 +119,7 @@ docs/p1/sub/mymixcasetext2.txt "RelPermalink: /docs/p1/sub/mymixcasetext2.txt|Name: sub/mymixcasetext2.txt|", "RelPermalink: /mydata.yaml|Name: sub/data1.yaml|Title: Sub data|Params: map[]|", "Featured Image: /a/pixel.png|featured.png|", - "Resized Featured Image: /a/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_10x10_resize_box_3.png|10|", + "Resized Featured Image: /a/pixel_hu16809842526914527184.png|10|", // Resource from string "RelPermalink: /docs/p1/mytext.txt|Name: textresource|Title: My Text Resource|Params: map[param1:param1v]|", // Dates diff --git a/hugolib/resource_chain_test.go b/hugolib/resource_chain_test.go index fa25a276826..7683bb5fd7c 100644 --- a/hugolib/resource_chain_test.go +++ b/hugolib/resource_chain_test.go @@ -106,12 +106,12 @@ FAILED REMOTE ERROR DETAILS CONTENT: {{ with $failedImg.Err }}|{{ . }}|{{ with . b.AssertFileContent("public/index.html", fmt.Sprintf(` SUNSET: /images/sunset.jpg|/images/sunset.a9bf1d944e19c0f382e0d8f51de690f7d0bc8fa97390c4242a86c3e5c0737e71.jpg|900|90587 -FIT: /images/sunset.jpg|/images/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_fit_q75_box.jpg|200 +FIT: /images/sunset.jpg|/images/sunset_hu15210517121918042184.jpg|200 CSS integrity Data first: sha256-od9YaHw8nMOL8mUy97Sy8sKwMV3N4hI3aVmZXATxH+8= /styles.min.a1df58687c3c9cc38bf26532f7b4b2f2c2b0315dcde212376959995c04f11fef.css CSS integrity Data last: /styles2.min.1cfc52986836405d37f9998a63fd6dd8608e8c410e5e3db1daaa30f78bc273ba.css sha256-HPxSmGg2QF03+ZmKY/1t2GCOjEEOXj2x2qow94vCc7o= SUNSET REMOTE: /sunset_%[1]s.jpg|/sunset_%[1]s.a9bf1d944e19c0f382e0d8f51de690f7d0bc8fa97390c4242a86c3e5c0737e71.jpg|900|90587 -FIT REMOTE: /sunset_%[1]s.jpg|/sunset_%[1]s_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_fit_q75_box.jpg|200 +FIT REMOTE: /sunset_%[1]s.jpg|/sunset_%[1]s_hu15210517121918042184.jpg|200 REMOTE NOT FOUND: OK LOCAL NOT FOUND: OK PRINT PROTOCOL ERROR DETAILS: Err: error calling resources.GetRemote: Get "gopher://example.org": unsupported protocol scheme "gopher"|| diff --git a/resources/image.go b/resources/image.go index fc9d2467b43..4595866d48c 100644 --- a/resources/image.go +++ b/resources/image.go @@ -490,36 +490,16 @@ func (i *imageResource) relTargetPathFromConfig(conf images.ImageConfig) interna if conf.TargetFormat != i.Format { p2 = conf.TargetFormat.DefaultExtension() } - - h := i.hash() - idStr := fmt.Sprintf("_hu%d_%d", h, i.size()) - - // Do not change for no good reason. - const md5Threshold = 100 - - key := conf.GetKey(i.Format) - - // It is useful to have the key in clear text, but when nesting transforms, it - // can easily be too long to read, and maybe even too long - // for the different OSes to handle. - if len(p1)+len(idStr)+len(p2) > md5Threshold { - key = hashing.MD5FromStringHexEncoded(p1 + key + p2) - huIdx := strings.Index(p1, "_hu") - if huIdx != -1 { - p1 = p1[:huIdx] - } else { - // This started out as a very long file name. Making it even longer - // could melt ice in the Arctic. - p1 = "" - } - } else if strings.Contains(p1, idStr) { - // On scaling an already scaled image, we get the file info from the original. - // Repeating the same info in the filename makes it stuttery for no good reason. - idStr = "" + const prefix = "_hu" + huIdx := strings.LastIndex(p1, prefix) + incomingID := "i" + if huIdx > -1 { + incomingID = p1[huIdx+len(prefix):] + p1 = p1[:huIdx] } - + hash := hashing.HashUint64(incomingID, i.hash(), conf.GetKey(i.Format)) rp := i.getResourcePaths() - rp.File = fmt.Sprintf("%s%s_%s%s", p1, idStr, key, p2) + rp.File = fmt.Sprintf("%s%s%d%s", p1, prefix, hash, p2) return rp } diff --git a/resources/image_extended_test.go b/resources/image_extended_test.go index 2f1f4f4a487..e570c4a3d24 100644 --- a/resources/image_extended_test.go +++ b/resources/image_extended_test.go @@ -42,6 +42,6 @@ func TestImageResizeWebP(t *testing.T) { resized, err := image.Resize("123x") c.Assert(err, qt.IsNil) c.Assert(image.MediaType(), qt.Equals, media.Builtin.WEBPType) - c.Assert(resized.RelPermalink(), qt.Equals, "/a/sunrise_hu6ad68bcbae1b79cbc2f6b451894deaf6_95652_123x0_resize_q68_h2_linear_2.webp") + c.Assert(resized.RelPermalink(), qt.Equals, "/a/sunrise_hu544374262273649331.webp") c.Assert(resized.Width(), qt.Equals, 123) } diff --git a/resources/image_test.go b/resources/image_test.go index 70df7b9dece..5cebba83797 100644 --- a/resources/image_test.go +++ b/resources/image_test.go @@ -123,28 +123,28 @@ func TestImageTransformBasic(t *testing.T) { assertWidthHeight(resizedAndRotated, 125, 200) assertWidthHeight(resized, 300, 200) - c.Assert(resized.RelPermalink(), qt.Equals, "/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_300x200_resize_q68_linear.jpg") + c.Assert(resized.RelPermalink(), qt.Equals, "/a/sunset_hu2082030801149749592.jpg") fitted, err := resized.Fit("50x50") c.Assert(err, qt.IsNil) - c.Assert(fitted.RelPermalink(), qt.Equals, "/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_625708021e2bb281c9f1002f88e4753f.jpg") + c.Assert(fitted.RelPermalink(), qt.Equals, "/a/sunset_hu16263619592447877226.jpg") assertWidthHeight(fitted, 50, 33) // Check the MD5 key threshold fittedAgain, _ := fitted.Fit("10x20") fittedAgain, err = fittedAgain.Fit("10x20") c.Assert(err, qt.IsNil) - c.Assert(fittedAgain.RelPermalink(), qt.Equals, "/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_3f65ba24dc2b7fba0f56d7f104519157.jpg") + c.Assert(fittedAgain.RelPermalink(), qt.Equals, "/a/sunset_hu847809310637164306.jpg") assertWidthHeight(fittedAgain, 10, 7) filled, err := image.Fill("200x100 bottomLeft") c.Assert(err, qt.IsNil) - c.Assert(filled.RelPermalink(), qt.Equals, "/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x100_fill_q68_linear_bottomleft.jpg") + c.Assert(filled.RelPermalink(), qt.Equals, "/a/sunset_hu18289448341423092707.jpg") assertWidthHeight(filled, 200, 100) smart, err := image.Fill("200x100 smart") c.Assert(err, qt.IsNil) - c.Assert(smart.RelPermalink(), qt.Equals, fmt.Sprintf("/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x100_fill_q68_linear_smart%d.jpg", 1)) + c.Assert(smart.RelPermalink(), qt.Equals, "/a/sunset_hu11649371610839769766.jpg") assertWidthHeight(smart, 200, 100) // Check cache @@ -154,12 +154,12 @@ func TestImageTransformBasic(t *testing.T) { cropped, err := image.Crop("300x300 topRight") c.Assert(err, qt.IsNil) - c.Assert(cropped.RelPermalink(), qt.Equals, "/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_300x300_crop_q68_linear_topright.jpg") + c.Assert(cropped.RelPermalink(), qt.Equals, "/a/sunset_hu2242042514052853140.jpg") assertWidthHeight(cropped, 300, 300) smartcropped, err := image.Crop("200x200 smart") c.Assert(err, qt.IsNil) - c.Assert(smartcropped.RelPermalink(), qt.Equals, fmt.Sprintf("/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_200x200_crop_q68_linear_smart%d.jpg", 1)) + c.Assert(smartcropped.RelPermalink(), qt.Equals, "/a/sunset_hu12983255101170993571.jpg") assertWidthHeight(smartcropped, 200, 200) // Check cache @@ -226,7 +226,7 @@ func TestImageTransformFormat(t *testing.T) { imagePng, err := image.Resize("450x png") c.Assert(err, qt.IsNil) - c.Assert(imagePng.RelPermalink(), qt.Equals, "/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_450x0_resize_linear.png") + c.Assert(imagePng.RelPermalink(), qt.Equals, "/a/sunset_hu11737890885216583918.png") c.Assert(imagePng.ResourceType(), qt.Equals, "image") assertExtWidthHeight(imagePng, ".png", 450, 281) c.Assert(imagePng.Name(), qt.Equals, "sunset.jpg") @@ -234,7 +234,7 @@ func TestImageTransformFormat(t *testing.T) { imageGif, err := image.Resize("225x gif") c.Assert(err, qt.IsNil) - c.Assert(imageGif.RelPermalink(), qt.Equals, "/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_225x0_resize_linear.gif") + c.Assert(imageGif.RelPermalink(), qt.Equals, "/a/sunset_hu1431827106749674475.gif") c.Assert(imageGif.ResourceType(), qt.Equals, "image") assertExtWidthHeight(imageGif, ".gif", 225, 141) c.Assert(imageGif.Name(), qt.Equals, "sunset.jpg") @@ -257,7 +257,7 @@ func TestImagePermalinkPublishOrder(t *testing.T) { }() check1 := func(img images.ImageResource) { - resizedLink := "/a/sunset_hu59e56ffff1bc1d8d122b1403d34e039f_90587_100x50_resize_q75_box.jpg" + resizedLink := "/a/sunset_hu7919355342577096259.jpg" c.Assert(img.RelPermalink(), qt.Equals, resizedLink) assertImageFile(c, spec.PublishFs, resizedLink, 100, 50) } @@ -298,12 +298,12 @@ func TestImageBugs(t *testing.T) { c.Assert(err, qt.IsNil) c.Assert(resized, qt.Not(qt.IsNil)) c.Assert(resized.Width(), qt.Equals, 200) - c.Assert(resized.RelPermalink(), qt.Equals, "/a/_hu59e56ffff1bc1d8d122b1403d34e039f_90587_65b757a6e14debeae720fe8831f0a9bc.jpg") + c.Assert(resized.RelPermalink(), qt.Equals, "/a/1234567890qwertyuiopasdfghjklzxcvbnm5to6eeeeee7via8eleph_hu9514381480012510326.jpg") resized, err = resized.Resize("100x") c.Assert(err, qt.IsNil) c.Assert(resized, qt.Not(qt.IsNil)) c.Assert(resized.Width(), qt.Equals, 100) - c.Assert(resized.RelPermalink(), qt.Equals, "/a/_hu59e56ffff1bc1d8d122b1403d34e039f_90587_c876768085288f41211f768147ba2647.jpg") + c.Assert(resized.RelPermalink(), qt.Equals, "/a/1234567890qwertyuiopasdfghjklzxcvbnm5to6eeeeee7via8eleph_hu1776700126481066216.jpg") }) // Issue #6137 @@ -401,7 +401,7 @@ func TestImageResize8BitPNG(t *testing.T) { resized, err := image.Resize("800x") c.Assert(err, qt.IsNil) c.Assert(resized.MediaType().Type, qt.Equals, "image/png") - c.Assert(resized.RelPermalink(), qt.Equals, "/a/gohugoio_hu0e1b9e4a4be4d6f86c7b37b9ccce3fbc_73886_800x0_resize_linear_3.png") + c.Assert(resized.RelPermalink(), qt.Equals, "/a/gohugoio_hu8582372628235034388.png") c.Assert(resized.Width(), qt.Equals, 800) } @@ -814,10 +814,10 @@ func assetGoldenDirs(c *qt.C, dir1, dir2 string) { if !goldenEqual(nrgba1, nrgba2) { switch fi1.Name() { - case "gohugoio8_hu7f72c00afdf7634587afaa5eff2a25b2_73538_73c19c5f80881858a85aa23cd0ca400d.png", - "gohugoio8_hu7f72c00afdf7634587afaa5eff2a25b2_73538_ae631e5252bb5d7b92bc766ad1a89069.png", - "gohugoio8_hu7f72c00afdf7634587afaa5eff2a25b2_73538_d1bbfa2629bffb90118cacce3fcfb924.png", - "giphy_hu3eafc418e52414ace6236bf1d31f82e1_52213_200x0_resize_box_1.gif": + case "giphy_hu13007323561585908901.gif", + "gohugoio8_hu12690451569630232821.png", + "gohugoio8_hu1619987041333606118.png", + "gohugoio8_hu18164141965527013334.png": c.Log("expectedly differs from golden due to dithering:", fi1.Name()) default: c.Errorf("resulting image differs from golden: %s", fi1.Name()) diff --git a/resources/resources_integration_test.go b/resources/resources_integration_test.go index 9c511332fb7..c26eb8fffab 100644 --- a/resources/resources_integration_test.go +++ b/resources/resources_integration_test.go @@ -27,6 +27,7 @@ func TestImageCache(t *testing.T) { files := ` -- config.toml -- +disableLiveReload = true baseURL = "https://example.org" -- content/mybundle/index.md -- --- @@ -61,9 +62,9 @@ anigif: {{ $anigif.RelPermalink }}|{{ $anigif.Width }}|{{ $anigif.Height }}|{{ $ assertImages := func() { b.AssertFileContent("public/index.html", ` - gif: /mybundle/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_1x2_resize_box_3.gif|}|1|2|image/gif| - bmp: /mybundle/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_2x3_resize_box_3.bmp|}|2|3|image/bmp| - anigif: /mybundle/giphy_hu3eafc418e52414ace6236bf1d31f82e1_52213_4x5_resize_box_1.gif|4|5|image/gif| + gif: /mybundle/pixel_hu14657638653019978294.gif|}|1|2|image/gif| + bmp: /mybundle/pixel_hu14705577916774115224.bmp|}|2|3|image/bmp| + anigif: /mybundle/giphy_hu3665406585348417395.gif|4|5|image/gif| `) } @@ -159,9 +160,9 @@ resize 2|RelPermalink: {{ $image.RelPermalink }}|MediaType: {{ $image.MediaType b := hugolib.Test(t, files) b.AssertFileContent("public/index.html", - "jpg|RelPermalink: /images/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_filter_1397118720664523257.jpg|MediaType: image/jpeg|Width: 1|Height: 1|", - "resize 1|RelPermalink: /images/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_filter_3796633496882814163.jpg|MediaType: image/jpeg|Width: 20|Height: 30|", - "resize 2|RelPermalink: /images/pixel_hu8aa3346827e49d756ff4e630147c42b5_70_filter_3796633496882814163.jpg|MediaType: image/jpeg|Width: 20|Height: 30|", + "jpg|RelPermalink: /images/pixel_hu13683954895608450100.jpg|MediaType: image/jpeg|Width: 1|Height: 1|", + "resize 1|RelPermalink: /images/pixel_hu3453403302435331853.jpg|MediaType: image/jpeg|Width: 20|Height: 30|", + "resize 2|RelPermalink: /images/pixel_hu3453403302435331853.jpg|MediaType: image/jpeg|Width: 20|Height: 30|", ) } diff --git a/resources/testdata/golden/giphy_hu2834162883155351332_0_200x0_resize_box_1.gif b/resources/testdata/golden/giphy_hu13007323561585908901.gif similarity index 100% rename from resources/testdata/golden/giphy_hu2834162883155351332_0_200x0_resize_box_1.gif rename to resources/testdata/golden/giphy_hu13007323561585908901.gif diff --git a/resources/testdata/golden/giphy_hu2834162883155351332_0_512x0_resize_box_1.gif b/resources/testdata/golden/giphy_hu15867760255711130632.gif similarity index 100% rename from resources/testdata/golden/giphy_hu2834162883155351332_0_512x0_resize_box_1.gif rename to resources/testdata/golden/giphy_hu15867760255711130632.gif diff --git a/resources/testdata/golden/giphy_hu2834162883155351332_0_100x0_resize_q75_bgffffff_box_1.jpg b/resources/testdata/golden/giphy_hu6128044492074974243.jpg similarity index 100% rename from resources/testdata/golden/giphy_hu2834162883155351332_0_100x0_resize_q75_bgffffff_box_1.jpg rename to resources/testdata/golden/giphy_hu6128044492074974243.jpg diff --git a/resources/testdata/golden/gohugoio-card_hu4315323919404496126_0_220x0_resize_box_1.gif b/resources/testdata/golden/gohugoio-card_hu2987156907072306909.gif similarity index 100% rename from resources/testdata/golden/gohugoio-card_hu4315323919404496126_0_220x0_resize_box_1.gif rename to resources/testdata/golden/gohugoio-card_hu2987156907072306909.gif diff --git a/resources/testdata/golden/gohugoio-card_hu4315323919404496126_0_100x0_resize_box_1.gif b/resources/testdata/golden/gohugoio-card_hu5424444801046891674.gif similarity index 100% rename from resources/testdata/golden/gohugoio-card_hu4315323919404496126_0_100x0_resize_box_1.gif rename to resources/testdata/golden/gohugoio-card_hu5424444801046891674.gif diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_1368160528378247482.png b/resources/testdata/golden/gohugoio24_hu10797171466856050177.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_1368160528378247482.png rename to resources/testdata/golden/gohugoio24_hu10797171466856050177.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_4500301550729488566.png b/resources/testdata/golden/gohugoio24_hu11107750106104480197.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_4500301550729488566.png rename to resources/testdata/golden/gohugoio24_hu11107750106104480197.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_16769769134069376407.png b/resources/testdata/golden/gohugoio24_hu11329286024190801059.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_16769769134069376407.png rename to resources/testdata/golden/gohugoio24_hu11329286024190801059.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_15932678542579281584.png b/resources/testdata/golden/gohugoio24_hu12210858383293148143.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_15932678542579281584.png rename to resources/testdata/golden/gohugoio24_hu12210858383293148143.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_bottomleft_3.png b/resources/testdata/golden/gohugoio24_hu13086833506724393086.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_bottomleft_3.png rename to resources/testdata/golden/gohugoio24_hu13086833506724393086.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_6663284144007557192.png b/resources/testdata/golden/gohugoio24_hu13525767338321336398.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_6663284144007557192.png rename to resources/testdata/golden/gohugoio24_hu13525767338321336398.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_4537007754286294453.png b/resources/testdata/golden/gohugoio24_hu1369355309314118179.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_4537007754286294453.png rename to resources/testdata/golden/gohugoio24_hu1369355309314118179.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_12108901413150876595.png b/resources/testdata/golden/gohugoio24_hu1400913850517810505.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_12108901413150876595.png rename to resources/testdata/golden/gohugoio24_hu1400913850517810505.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_600x0_resize_box_3.png b/resources/testdata/golden/gohugoio24_hu14141684530559227507.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_600x0_resize_box_3.png rename to resources/testdata/golden/gohugoio24_hu14141684530559227507.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_1999930288179126795.png b/resources/testdata/golden/gohugoio24_hu14186438102343930541.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_1999930288179126795.png rename to resources/testdata/golden/gohugoio24_hu14186438102343930541.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_10484317606894136532.png b/resources/testdata/golden/gohugoio24_hu15334383941700802690.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_10484317606894136532.png rename to resources/testdata/golden/gohugoio24_hu15334383941700802690.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_300x200_fill_gaussian_smart1_3.png b/resources/testdata/golden/gohugoio24_hu16565102657258557500.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_300x200_fill_gaussian_smart1_3.png rename to resources/testdata/golden/gohugoio24_hu16565102657258557500.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_6226609227946633992.png b/resources/testdata/golden/gohugoio24_hu17044066173912896721.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_6226609227946633992.png rename to resources/testdata/golden/gohugoio24_hu17044066173912896721.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_7394663371967385838.png b/resources/testdata/golden/gohugoio24_hu17704168266634609966.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_7394663371967385838.png rename to resources/testdata/golden/gohugoio24_hu17704168266634609966.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_4355974086897058214.png b/resources/testdata/golden/gohugoio24_hu18417462639738980704.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_4355974086897058214.png rename to resources/testdata/golden/gohugoio24_hu18417462639738980704.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3.png b/resources/testdata/golden/gohugoio24_hu2731125086148712886.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3.png rename to resources/testdata/golden/gohugoio24_hu2731125086148712886.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_10145879774663310287.png b/resources/testdata/golden/gohugoio24_hu281918710943920862.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_10145879774663310287.png rename to resources/testdata/golden/gohugoio24_hu281918710943920862.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_9987965893403929502.png b/resources/testdata/golden/gohugoio24_hu3440533624707313030.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_9987965893403929502.png rename to resources/testdata/golden/gohugoio24_hu3440533624707313030.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_17478916973129747965.png b/resources/testdata/golden/gohugoio24_hu4079163993667427623.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_17478916973129747965.png rename to resources/testdata/golden/gohugoio24_hu4079163993667427623.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_300x100_fill_nearestneighbor_topleft_3.png b/resources/testdata/golden/gohugoio24_hu4425915891794988430.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_300x100_fill_nearestneighbor_topleft_3.png rename to resources/testdata/golden/gohugoio24_hu4425915891794988430.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_200x0_resize_q50_r90_box_3.png b/resources/testdata/golden/gohugoio24_hu4576019605973288331.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_200x0_resize_q50_r90_box_3.png rename to resources/testdata/golden/gohugoio24_hu4576019605973288331.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_200x100_resize_box_3.png b/resources/testdata/golden/gohugoio24_hu4640928585673549425.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_200x100_resize_box_3.png rename to resources/testdata/golden/gohugoio24_hu4640928585673549425.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_100x100_fill_box_center_3.png b/resources/testdata/golden/gohugoio24_hu5007208529579570920.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_100x100_fill_box_center_3.png rename to resources/testdata/golden/gohugoio24_hu5007208529579570920.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_16826185614123406698.png b/resources/testdata/golden/gohugoio24_hu5216349243587511129.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_16826185614123406698.png rename to resources/testdata/golden/gohugoio24_hu5216349243587511129.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_11093326483404439501.png b/resources/testdata/golden/gohugoio24_hu578735004461910616.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_11093326483404439501.png rename to resources/testdata/golden/gohugoio24_hu578735004461910616.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_35625387183264766.png b/resources/testdata/golden/gohugoio24_hu5858624748295381298.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_35625387183264766.png rename to resources/testdata/golden/gohugoio24_hu5858624748295381298.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_16851788174025928944.png b/resources/testdata/golden/gohugoio24_hu7784426158237953794.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_400x200_fill_box_center_3_filter_16851788174025928944.png rename to resources/testdata/golden/gohugoio24_hu7784426158237953794.png diff --git a/resources/testdata/golden/gohugoio24_hu7834617682594811866_0_300x200_fit_linear_3.png b/resources/testdata/golden/gohugoio24_hu7862113105739619058.png similarity index 100% rename from resources/testdata/golden/gohugoio24_hu7834617682594811866_0_300x200_fit_linear_3.png rename to resources/testdata/golden/gohugoio24_hu7862113105739619058.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_17478916973129747965.png b/resources/testdata/golden/gohugoio8_hu11148399329171024835.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_17478916973129747965.png rename to resources/testdata/golden/gohugoio8_hu11148399329171024835.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_7394663371967385838.png b/resources/testdata/golden/gohugoio8_hu11427867868933654094.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_7394663371967385838.png rename to resources/testdata/golden/gohugoio8_hu11427867868933654094.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_1368160528378247482.png b/resources/testdata/golden/gohugoio8_hu1162986745985451229.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_1368160528378247482.png rename to resources/testdata/golden/gohugoio8_hu1162986745985451229.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_12108901413150876595.png b/resources/testdata/golden/gohugoio8_hu11638877035372353818.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_12108901413150876595.png rename to resources/testdata/golden/gohugoio8_hu11638877035372353818.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_4355974086897058214.png b/resources/testdata/golden/gohugoio8_hu1217888005047574594.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_4355974086897058214.png rename to resources/testdata/golden/gohugoio8_hu1217888005047574594.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_9987965893403929502.png b/resources/testdata/golden/gohugoio8_hu12220589162864061188.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_9987965893403929502.png rename to resources/testdata/golden/gohugoio8_hu12220589162864061188.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_10484317606894136532.png b/resources/testdata/golden/gohugoio8_hu12690451569630232821.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_10484317606894136532.png rename to resources/testdata/golden/gohugoio8_hu12690451569630232821.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_bottomleft_3.png b/resources/testdata/golden/gohugoio8_hu12777352499229939257.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_bottomleft_3.png rename to resources/testdata/golden/gohugoio8_hu12777352499229939257.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3.png b/resources/testdata/golden/gohugoio8_hu13982221718330949681.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3.png rename to resources/testdata/golden/gohugoio8_hu13982221718330949681.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_15932678542579281584.png b/resources/testdata/golden/gohugoio8_hu14107602960808127665.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_15932678542579281584.png rename to resources/testdata/golden/gohugoio8_hu14107602960808127665.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_1999930288179126795.png b/resources/testdata/golden/gohugoio8_hu14156562190479686537.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_1999930288179126795.png rename to resources/testdata/golden/gohugoio8_hu14156562190479686537.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_16826185614123406698.png b/resources/testdata/golden/gohugoio8_hu14592039178820708584.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_16826185614123406698.png rename to resources/testdata/golden/gohugoio8_hu14592039178820708584.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_16769769134069376407.png b/resources/testdata/golden/gohugoio8_hu14839804078094713214.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_16769769134069376407.png rename to resources/testdata/golden/gohugoio8_hu14839804078094713214.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_11093326483404439501.png b/resources/testdata/golden/gohugoio8_hu1619987041333606118.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_11093326483404439501.png rename to resources/testdata/golden/gohugoio8_hu1619987041333606118.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_4537007754286294453.png b/resources/testdata/golden/gohugoio8_hu17499078314270725360.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_4537007754286294453.png rename to resources/testdata/golden/gohugoio8_hu17499078314270725360.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_10145879774663310287.png b/resources/testdata/golden/gohugoio8_hu18164141965527013334.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_10145879774663310287.png rename to resources/testdata/golden/gohugoio8_hu18164141965527013334.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_4500301550729488566.png b/resources/testdata/golden/gohugoio8_hu3062751268037078239.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_4500301550729488566.png rename to resources/testdata/golden/gohugoio8_hu3062751268037078239.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_100x100_fill_box_center_3.png b/resources/testdata/golden/gohugoio8_hu3419127525388578393.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_100x100_fill_box_center_3.png rename to resources/testdata/golden/gohugoio8_hu3419127525388578393.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_6663284144007557192.png b/resources/testdata/golden/gohugoio8_hu3589035650602432929.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_6663284144007557192.png rename to resources/testdata/golden/gohugoio8_hu3589035650602432929.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_16851788174025928944.png b/resources/testdata/golden/gohugoio8_hu5613016746654861839.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_16851788174025928944.png rename to resources/testdata/golden/gohugoio8_hu5613016746654861839.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_200x100_resize_box_3.png b/resources/testdata/golden/gohugoio8_hu5911891014248513491.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_200x100_resize_box_3.png rename to resources/testdata/golden/gohugoio8_hu5911891014248513491.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_300x100_fill_nearestneighbor_topleft_3.png b/resources/testdata/golden/gohugoio8_hu5964606204514209824.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_300x100_fill_nearestneighbor_topleft_3.png rename to resources/testdata/golden/gohugoio8_hu5964606204514209824.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_600x0_resize_box_3.png b/resources/testdata/golden/gohugoio8_hu7954024233587195445.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_600x0_resize_box_3.png rename to resources/testdata/golden/gohugoio8_hu7954024233587195445.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_200x0_resize_q50_r90_box_3.png b/resources/testdata/golden/gohugoio8_hu8497843748973739779.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_200x0_resize_q50_r90_box_3.png rename to resources/testdata/golden/gohugoio8_hu8497843748973739779.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_300x200_fill_gaussian_smart1_3.png b/resources/testdata/golden/gohugoio8_hu8680424146433003017.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_300x200_fill_gaussian_smart1_3.png rename to resources/testdata/golden/gohugoio8_hu8680424146433003017.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_300x200_fit_linear_3.png b/resources/testdata/golden/gohugoio8_hu881093787809754101.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_300x200_fit_linear_3.png rename to resources/testdata/golden/gohugoio8_hu881093787809754101.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_35625387183264766.png b/resources/testdata/golden/gohugoio8_hu9175902413241406055.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_35625387183264766.png rename to resources/testdata/golden/gohugoio8_hu9175902413241406055.png diff --git a/resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_6226609227946633992.png b/resources/testdata/golden/gohugoio8_hu971124074666261597.png similarity index 100% rename from resources/testdata/golden/gohugoio8_hu3730316029470468128_0_400x200_fill_box_center_3_filter_6226609227946633992.png rename to resources/testdata/golden/gohugoio8_hu971124074666261597.png diff --git a/resources/testdata/golden/gopher-hero8_hu15519140586546988538_0_200x0_resize_q75_bge3e615_box_3.jpg b/resources/testdata/golden/gopher-hero8_hu18029321441728138356.jpg similarity index 100% rename from resources/testdata/golden/gopher-hero8_hu15519140586546988538_0_200x0_resize_q75_bge3e615_box_3.jpg rename to resources/testdata/golden/gopher-hero8_hu18029321441728138356.jpg diff --git a/resources/testdata/golden/gopher-hero8_hu15519140586546988538_0_filter_18247526396371657121.png b/resources/testdata/golden/gopher-hero8_hu7599356179908845799.png similarity index 100% rename from resources/testdata/golden/gopher-hero8_hu15519140586546988538_0_filter_18247526396371657121.png rename to resources/testdata/golden/gopher-hero8_hu7599356179908845799.png diff --git a/resources/testdata/golden/gopher-hero8_hu15519140586546988538_0_200x0_resize_bge3e615_box_3.png b/resources/testdata/golden/gopher-hero8_hu8339547226364980332.png similarity index 100% rename from resources/testdata/golden/gopher-hero8_hu15519140586546988538_0_200x0_resize_bge3e615_box_3.png rename to resources/testdata/golden/gopher-hero8_hu8339547226364980332.png diff --git a/resources/testdata/golden/gopher-hero8_hu15519140586546988538_0_30x0_resize_box_3.png b/resources/testdata/golden/gopher-hero8_hu9718283601959448032.png similarity index 100% rename from resources/testdata/golden/gopher-hero8_hu15519140586546988538_0_30x0_resize_box_3.png rename to resources/testdata/golden/gopher-hero8_hu9718283601959448032.png diff --git a/resources/testdata/golden/gradient-circle_hu6504854814255106391_0_200x0_resize_q75_bge3e615_box_3.jpg b/resources/testdata/golden/gradient-circle_hu13051041682786618472.jpg similarity index 100% rename from resources/testdata/golden/gradient-circle_hu6504854814255106391_0_200x0_resize_q75_bge3e615_box_3.jpg rename to resources/testdata/golden/gradient-circle_hu13051041682786618472.jpg diff --git a/resources/testdata/golden/gradient-circle_hu6504854814255106391_0_filter_18247526396371657121.png b/resources/testdata/golden/gradient-circle_hu2995269612296002085.png similarity index 100% rename from resources/testdata/golden/gradient-circle_hu6504854814255106391_0_filter_18247526396371657121.png rename to resources/testdata/golden/gradient-circle_hu2995269612296002085.png diff --git a/resources/testdata/golden/gradient-circle_hu6504854814255106391_0_200x0_resize_bge3e615_box_3.png b/resources/testdata/golden/gradient-circle_hu4182458540361883551.png similarity index 100% rename from resources/testdata/golden/gradient-circle_hu6504854814255106391_0_200x0_resize_bge3e615_box_3.png rename to resources/testdata/golden/gradient-circle_hu4182458540361883551.png diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_200x0_resize_q50_r90_box.jpg b/resources/testdata/golden/sunset_hu10303518067937744186.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_200x0_resize_q50_r90_box.jpg rename to resources/testdata/golden/sunset_hu10303518067937744186.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_bottomleft.jpg b/resources/testdata/golden/sunset_hu10327704110867657089.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_bottomleft.jpg rename to resources/testdata/golden/sunset_hu10327704110867657089.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_600x0_resize_q75_box.jpg b/resources/testdata/golden/sunset_hu10555571028775464444.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_600x0_resize_q75_box.jpg rename to resources/testdata/golden/sunset_hu10555571028775464444.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_11093326483404439501.jpg b/resources/testdata/golden/sunset_hu10706797811022665574.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_11093326483404439501.jpg rename to resources/testdata/golden/sunset_hu10706797811022665574.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_300x200_fit_q75_linear.jpg b/resources/testdata/golden/sunset_hu1184697552324640242.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_300x200_fit_q75_linear.jpg rename to resources/testdata/golden/sunset_hu1184697552324640242.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_15932678542579281584.jpg b/resources/testdata/golden/sunset_hu13997988183102182682.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_15932678542579281584.jpg rename to resources/testdata/golden/sunset_hu13997988183102182682.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_filter_2739339915147920042.jpg b/resources/testdata/golden/sunset_hu14647978205320151651.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_filter_2739339915147920042.jpg rename to resources/testdata/golden/sunset_hu14647978205320151651.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_16851788174025928944.jpg b/resources/testdata/golden/sunset_hu1508817148191451926.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_16851788174025928944.jpg rename to resources/testdata/golden/sunset_hu1508817148191451926.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_300x100_fill_q75_nearestneighbor_topleft.jpg b/resources/testdata/golden/sunset_hu15092417974014570823.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_300x100_fill_q75_nearestneighbor_topleft.jpg rename to resources/testdata/golden/sunset_hu15092417974014570823.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center.jpg b/resources/testdata/golden/sunset_hu15553011452282641860.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center.jpg rename to resources/testdata/golden/sunset_hu15553011452282641860.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_1368160528378247482.jpg b/resources/testdata/golden/sunset_hu16406839322505000040.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_1368160528378247482.jpg rename to resources/testdata/golden/sunset_hu16406839322505000040.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_1999930288179126795.jpg b/resources/testdata/golden/sunset_hu17096332274161262571.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_1999930288179126795.jpg rename to resources/testdata/golden/sunset_hu17096332274161262571.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_filter_7649370997474087000.jpg b/resources/testdata/golden/sunset_hu17735388202135872885.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_filter_7649370997474087000.jpg rename to resources/testdata/golden/sunset_hu17735388202135872885.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_300x200_fill_q75_gaussian_smart1.jpg b/resources/testdata/golden/sunset_hu18138233340135699657.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_300x200_fill_q75_gaussian_smart1.jpg rename to resources/testdata/golden/sunset_hu18138233340135699657.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_17478916973129747965.jpg b/resources/testdata/golden/sunset_hu18339759113732359089.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_17478916973129747965.jpg rename to resources/testdata/golden/sunset_hu18339759113732359089.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_16769769134069376407.jpg b/resources/testdata/golden/sunset_hu1940616730388248148.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_16769769134069376407.jpg rename to resources/testdata/golden/sunset_hu1940616730388248148.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_4355974086897058214.jpg b/resources/testdata/golden/sunset_hu2317318497170846135.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_4355974086897058214.jpg rename to resources/testdata/golden/sunset_hu2317318497170846135.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_6663284144007557192.jpg b/resources/testdata/golden/sunset_hu2620328362006291004.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_6663284144007557192.jpg rename to resources/testdata/golden/sunset_hu2620328362006291004.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_4500301550729488566.jpg b/resources/testdata/golden/sunset_hu3329557056351636779.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_4500301550729488566.jpg rename to resources/testdata/golden/sunset_hu3329557056351636779.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_35625387183264766.jpg b/resources/testdata/golden/sunset_hu3528013170819345965.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_35625387183264766.jpg rename to resources/testdata/golden/sunset_hu3528013170819345965.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_200x100_resize_q75_box.jpg b/resources/testdata/golden/sunset_hu4475169669413030903.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_200x100_resize_q75_box.jpg rename to resources/testdata/golden/sunset_hu4475169669413030903.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_7394663371967385838.jpg b/resources/testdata/golden/sunset_hu4645485093540451131.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_7394663371967385838.jpg rename to resources/testdata/golden/sunset_hu4645485093540451131.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_10484317606894136532.jpg b/resources/testdata/golden/sunset_hu5700214275785775137.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_10484317606894136532.jpg rename to resources/testdata/golden/sunset_hu5700214275785775137.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_4537007754286294453.jpg b/resources/testdata/golden/sunset_hu5943101889480068836.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_4537007754286294453.jpg rename to resources/testdata/golden/sunset_hu5943101889480068836.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_9987965893403929502.jpg b/resources/testdata/golden/sunset_hu6418511461467579286.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_9987965893403929502.jpg rename to resources/testdata/golden/sunset_hu6418511461467579286.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_16826185614123406698.jpg b/resources/testdata/golden/sunset_hu7124641571345460976.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_16826185614123406698.jpg rename to resources/testdata/golden/sunset_hu7124641571345460976.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_100x100_fill_q75_box_center.jpg b/resources/testdata/golden/sunset_hu7168213667150853195.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_100x100_fill_q75_box_center.jpg rename to resources/testdata/golden/sunset_hu7168213667150853195.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_10145879774663310287.jpg b/resources/testdata/golden/sunset_hu8110718388195953309.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_10145879774663310287.jpg rename to resources/testdata/golden/sunset_hu8110718388195953309.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_6226609227946633992.jpg b/resources/testdata/golden/sunset_hu8726458014885573310.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_6226609227946633992.jpg rename to resources/testdata/golden/sunset_hu8726458014885573310.jpg diff --git a/resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_12108901413150876595.jpg b/resources/testdata/golden/sunset_hu9995349819947557369.jpg similarity index 100% rename from resources/testdata/golden/sunset_hu13399802095542588467_0_400x200_fill_q75_box_center_filter_12108901413150876595.jpg rename to resources/testdata/golden/sunset_hu9995349819947557369.jpg diff --git a/resources/testdata/golden_webp/fuzzy-cirlcle_hu525d1a6cf670e85f5e8f19890241399b_26792_200x0_resize_q75_h2_box_3.webp b/resources/testdata/golden_webp/fuzzy-cirlcle_hu11078464949742740533.webp similarity index 100% rename from resources/testdata/golden_webp/fuzzy-cirlcle_hu525d1a6cf670e85f5e8f19890241399b_26792_200x0_resize_q75_h2_box_3.webp rename to resources/testdata/golden_webp/fuzzy-cirlcle_hu11078464949742740533.webp diff --git a/resources/transform_test.go b/resources/transform_test.go index 7f91360f190..b036a44d778 100644 --- a/resources/transform_test.go +++ b/resources/transform_test.go @@ -386,15 +386,15 @@ func TestTransform(t *testing.T) { resizedPublished1, err := img.Resize("40x40") c.Assert(err, qt.IsNil) c.Assert(resizedPublished1.Height(), qt.Equals, 40) - c.Assert(resizedPublished1.RelPermalink(), qt.Equals, "/gopher.changed_hu2e827f5a78333ebc04166dd643235dea_1462_40x40_resize_linear_3.png") - assertShouldExist(c, spec, "public/gopher.changed_hu2e827f5a78333ebc04166dd643235dea_1462_40x40_resize_linear_3.png", true) + c.Assert(resizedPublished1.RelPermalink(), qt.Equals, "/gopher.changed_hu16988682630555427117.png") + assertShouldExist(c, spec, "public/gopher.changed_hu16988682630555427117.png", true) // Permalink called. resizedPublished2, err := img.Resize("30x30") c.Assert(err, qt.IsNil) c.Assert(resizedPublished2.Height(), qt.Equals, 30) - c.Assert(resizedPublished2.Permalink(), qt.Equals, "https://example.com/gopher.changed_hu2e827f5a78333ebc04166dd643235dea_1462_30x30_resize_linear_3.png") - assertShouldExist(c, spec, "public/gopher.changed_hu2e827f5a78333ebc04166dd643235dea_1462_30x30_resize_linear_3.png", true) + c.Assert(resizedPublished2.Permalink(), qt.Equals, "https://example.com/gopher.changed_hu14141325020798305104.png") + assertShouldExist(c, spec, "public/gopher.changed_hu14141325020798305104.png", true) // Not published because none of RelPermalink or Permalink was called. resizedNotPublished, err := img.Resize("50x50") diff --git a/tpl/resources/resources_integration_test.go b/tpl/resources/resources_integration_test.go index 6bc872bca8e..cfd03dc735e 100644 --- a/tpl/resources/resources_integration_test.go +++ b/tpl/resources/resources_integration_test.go @@ -58,7 +58,7 @@ Copy3: {{ $copy3.RelPermalink}}|{{ $copy3.MediaType }}|{{ $copy3.Content | safeJ b.AssertFileContent("public/index.html", ` Image Orig: /blog/images/pixel.png|image/png|1|1| -Image Copy1: /blog/images/copy_hu8aa3346827e49d756ff4e630147c42b5_70_3x4_resize_box_3.png|image/png|3|4| +Image Copy1: /blog/images/copy_hu2891316072287293157.png|image/png|3|4| Image Copy2: /blog/images/copy2.png|image/png|3|4 Image Copy3: image/png|3|4| Orig: /blog/js/foo.js|text/javascript|let foo;|