From 73e82d911da8f13b6df33482ebfe45203684b41e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Mon, 11 Apr 2022 10:34:08 +0200 Subject: [PATCH] resources: Add `key` to reources.GetRemote options map If set, `key` will be used as the only cache key element for the resource. The default behaviour is to calculate the key based on the URL and all the options. This means that you can now do: ``` {{ $cacheKey := print $url (now.Format "2006-01-02") }} {{ $resource := resource.GetRemote $url (dict "key" $cacheKey) }} ``` Fixes #9755 --- content/en/hugo-pipes/introduction.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/content/en/hugo-pipes/introduction.md b/content/en/hugo-pipes/introduction.md index 83d64d1d3..bbafe55b2 100755 --- a/content/en/hugo-pipes/introduction.md +++ b/content/en/hugo-pipes/introduction.md @@ -53,6 +53,19 @@ With `resources.GetRemote`, the first argument is a remote URL: `resources.Get` and `resources.GetRemote` return `nil` if the resource is not found. +### Caching + +By default, Hugo calculates a cache key based on the `URL` and the `options` (e.g. headers) given. + + +{{< new-in "0.97.0" >}} You can override this by setting a `key` in the options map. This can be used to get more fine grained control over how often a remote resource is fetched, e.g.: + + +```go-html-template +{{ $cacheKey := print $url (now.Format "2006-01-02") }} +{{ $resource := resource.GetRemote $url (dict "key" $cacheKey) }} +``` + ### Error Handling {{< new-in "0.91.0" >}}