mirror of
https://github.com/gohugoio/hugo.git
synced 2025-09-02 22:52:51 +02:00
resources: Create a common ResourceFinder interface
And make both .Resources and resources implement it. This gets us 2 new methods/functions, so you can now also do: * .Resources.Get * resources.ByType Note that GetRemote is not covered by this interface, as that is only available as a global template function. Fixes #8653
This commit is contained in:
@@ -397,6 +397,8 @@ func doTestMultiSitesBuild(t *testing.T, configTemplate, configSuffix string) {
|
||||
c.Assert(bundleFr, qt.Not(qt.IsNil))
|
||||
c.Assert(len(bundleFr.Resources()), qt.Equals, 1)
|
||||
logoFr := bundleFr.Resources().GetMatch("logo*")
|
||||
logoFrGet := bundleFr.Resources().Get("logo.png")
|
||||
c.Assert(logoFrGet, qt.Equals, logoFr)
|
||||
c.Assert(logoFr, qt.Not(qt.IsNil))
|
||||
b.AssertFileContent("public/fr/bundles/b1/index.html", "Resources: image/png: /blog/fr/bundles/b1/logo.png")
|
||||
b.AssertFileContent("public/fr/bundles/b1/logo.png", "PNG Data")
|
||||
|
@@ -553,7 +553,8 @@ HEADLESS {{< myShort >}}
|
||||
|
||||
headlessResources := headless.Resources()
|
||||
c.Assert(len(headlessResources), qt.Equals, 3)
|
||||
c.Assert(len(headlessResources.Match("l*")), qt.Equals, 2)
|
||||
res := headlessResources.Match("l*")
|
||||
c.Assert(len(res), qt.Equals, 2)
|
||||
pageResource := headlessResources.GetMatch("p*")
|
||||
c.Assert(pageResource, qt.Not(qt.IsNil))
|
||||
p := pageResource.(page.Page)
|
||||
|
@@ -696,6 +696,8 @@ func TestResourcesMatch(t *testing.T) {
|
||||
b.WithContent("page.md", "")
|
||||
|
||||
b.WithSourceFile(
|
||||
"assets/images/img1.png", "png",
|
||||
"assets/images/img2.jpg", "jpg",
|
||||
"assets/jsons/data1.json", "json1 content",
|
||||
"assets/jsons/data2.json", "json2 content",
|
||||
"assets/jsons/data3.xml", "xml content",
|
||||
@@ -704,7 +706,9 @@ func TestResourcesMatch(t *testing.T) {
|
||||
b.WithTemplates("index.html", `
|
||||
{{ $jsons := (resources.Match "jsons/*.json") }}
|
||||
{{ $json := (resources.GetMatch "jsons/*.json") }}
|
||||
{{ printf "JSONS: %d" (len $jsons) }}
|
||||
{{ printf "jsonsMatch: %d" (len $jsons) }}
|
||||
{{ printf "imagesByType: %d" (len (resources.ByType "image") ) }}
|
||||
{{ printf "applicationByType: %d" (len (resources.ByType "application") ) }}
|
||||
JSON: {{ $json.RelPermalink }}: {{ $json.Content }}
|
||||
{{ range $jsons }}
|
||||
{{- .RelPermalink }}: {{ .Content }}
|
||||
@@ -715,7 +719,10 @@ JSON: {{ $json.RelPermalink }}: {{ $json.Content }}
|
||||
|
||||
b.AssertFileContent("public/index.html",
|
||||
"JSON: /jsons/data1.json: json1 content",
|
||||
"JSONS: 2", "/jsons/data1.json: json1 content")
|
||||
"jsonsMatch: 2",
|
||||
"imagesByType: 2",
|
||||
"applicationByType: 3",
|
||||
"/jsons/data1.json: json1 content")
|
||||
}
|
||||
|
||||
func TestResourceMinifyDisabled(t *testing.T) {
|
||||
|
Reference in New Issue
Block a user