]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
tpl/images: Format the QR hashes as hex
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 6 Jan 2025 11:15:52 +0000 (12:15 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 6 Jan 2025 14:05:03 +0000 (15:05 +0100)
Slightly shorter, and it looks more like a ... hash.

common/hashing/hashing.go
tpl/images/images.go
tpl/images/images_integration_test.go
tpl/tplimpl/tplimpl_integration_test.go

index 0b470cafeae6b899a7263787b3e077caf6acbce7..18ec82623580f481b07c14bbb8da1f59708084ce 100644 (file)
@@ -83,6 +83,13 @@ func HashString(vs ...any) string {
        return strconv.FormatUint(hash, 10)
 }
 
+// HashStringHex returns a hash from the given elements as a hex encoded string.
+// See HashString for more information.
+func HashStringHex(vs ...any) string {
+       hash := HashUint64(vs...)
+       return strconv.FormatUint(hash, 16)
+}
+
 var hashOptsPool = sync.Pool{
        New: func() any {
                return &hashstructure.HashOptions{
index 08ab3cc958c0e1210708aad41f61c6117bf31527..106c2b2800fe2d1eb427bfa6557a41ca8131dfdd 100644 (file)
@@ -169,7 +169,7 @@ func (ns *Namespace) QR(options any) (images.ImageResource, error) {
                return nil, errors.New("scale must be an integer greater than or equal to 2")
        }
 
-       targetPath := path.Join(opts.TargetDir, fmt.Sprintf("qr_%s.png", hashing.HashString(opts)))
+       targetPath := path.Join(opts.TargetDir, fmt.Sprintf("qr_%s.png", hashing.HashStringHex(opts)))
 
        r, err := ns.createClient.FromOpts(
                create.Options{
index e9a31c9afacddd60c397db3845573c2009d0f99f..0f89dbe09541ec9789fa19551b65d322a1f5c836 100644 (file)
@@ -79,14 +79,14 @@ disableKinds = ['page','rss','section','sitemap','taxonomy','term']
 
        b := hugolib.Test(t, files)
        b.AssertFileContent("public/index.html",
-               `<img data-id="0" data-img-hash="6ccacf8056c41475" data-level="" data-scale="" data-targetDir="" src="/qr_3891606335523452031.png">`,
-               `<img data-id="1" data-img-hash="6ccacf8056c41475" data-level="medium" data-scale="" data-targetDir="" src="/qr_3891606335523452031.png">`,
-               `<img data-id="2" data-img-hash="6ccacf8056c41475" data-level="medium" data-scale="4" data-targetDir="" src="/qr_3891606335523452031.png">`,
-               `<img data-id="3" data-img-hash="c29338c3d105b156" data-level="low" data-scale="2" data-targetDir="" src="/qr_2532593520456080065.png">`,
-               `<img data-id="4" data-img-hash="8f7a639cea917b0e" data-level="medium" data-scale="3" data-targetDir="" src="/qr_6630115934366238432.png">`,
-               `<img data-id="5" data-img-hash="2d15d6dcb861b5da" data-level="quartile" data-scale="5" data-targetDir="" src="/qr_14167719016579496966.png">`,
-               `<img data-id="6" data-img-hash="113c45f2c091bc4d" data-level="high" data-scale="6" data-targetDir="" src="/qr_1700475212608554630.png">`,
-               `<img data-id="7" data-img-hash="113c45f2c091bc4d" data-level="high" data-scale="6" data-targetDir="foo/bar" src="/foo/bar/qr_12381230670040458986.png">`,
+               `<img data-id="0" data-img-hash="6ccacf8056c41475" data-level="" data-scale="" data-targetDir="" src="/qr_3601c357f288f47f.png">`,
+               `<img data-id="1" data-img-hash="6ccacf8056c41475" data-level="medium" data-scale="" data-targetDir="" src="/qr_3601c357f288f47f.png">`,
+               `<img data-id="2" data-img-hash="6ccacf8056c41475" data-level="medium" data-scale="4" data-targetDir="" src="/qr_3601c357f288f47f.png">`,
+               `<img data-id="3" data-img-hash="c29338c3d105b156" data-level="low" data-scale="2" data-targetDir="" src="/qr_232594637b3d9ac1.png">`,
+               `<img data-id="4" data-img-hash="8f7a639cea917b0e" data-level="medium" data-scale="3" data-targetDir="" src="/qr_5c02e7507f8e86e0.png">`,
+               `<img data-id="5" data-img-hash="2d15d6dcb861b5da" data-level="quartile" data-scale="5" data-targetDir="" src="/qr_c49dd961bcc47c06.png">`,
+               `<img data-id="6" data-img-hash="113c45f2c091bc4d" data-level="high" data-scale="6" data-targetDir="" src="/qr_17994d3244e3c686.png">`,
+               `<img data-id="7" data-img-hash="113c45f2c091bc4d" data-level="high" data-scale="6" data-targetDir="foo/bar" src="/foo/bar/qr_abd2f7b221eee6ea.png">`,
        )
 
        files = strings.ReplaceAll(files, "low", "foo")
index 636e6aa688eb553ac10f63fc9df1aba8818cc0e2..04abb5b31cbb66aa4f44be9d6be9e9f89f223f74 100644 (file)
@@ -730,7 +730,7 @@ https://gohugo.io"
        b := hugolib.Test(t, files)
 
        b.AssertFileContent("public/index.html",
-               `<img src="/codes/qr_1933601158373371382.png" width="148" height="148" alt="QR code linking to https://gohugo.io" class="my-class" id="my-id" title="My Title">`,
-               `<img src="/qr_8288684942309665993.png" width="132" height="132">`,
+               `<img src="/codes/qr_1ad588024620edf6.png" width="148" height="148" alt="QR code linking to https://gohugo.io" class="my-class" id="my-id" title="My Title">`,
+               `<img src="/qr_7307530a297f2cc9.png" width="132" height="132">`,
        )
 }