diff --git a/tpl/tplimpl/templatedescriptor.go b/tpl/tplimpl/templatedescriptor.go index f65ad3943..ea47afc88 100644 --- a/tpl/tplimpl/templatedescriptor.go +++ b/tpl/tplimpl/templatedescriptor.go @@ -130,17 +130,12 @@ func (this TemplateDescriptor) doCompare(category Category, isEmbedded bool, def // One example of variant1 and 2 is for render codeblocks: // variant1=codeblock, variant2=go (language). - if other.Variant1 != "" && other.Variant1 != this.Variant1 { - return w - } - - if isEmbedded { - if other.Variant2 != "" && other.Variant2 != this.Variant2 { + if other.Variant1 != "" { + if other.Variant1 != this.Variant1 { return w } - } else { - // If both are set and different, no match. - if other.Variant2 != "" && this.Variant2 != "" && other.Variant2 != this.Variant2 { + + if other.Variant2 != "" && other.Variant2 != this.Variant2 { return w } } diff --git a/tpl/tplimpl/templatestore_integration_test.go b/tpl/tplimpl/templatestore_integration_test.go index bd00f82b7..638341581 100644 --- a/tpl/tplimpl/templatestore_integration_test.go +++ b/tpl/tplimpl/templatestore_integration_test.go @@ -1038,6 +1038,35 @@ _markup/render-codeblock-goat.html b.AssertFileContent("public/index.html", "_markup/render-codeblock.html_markup/render-codeblock-goat.html") } +func TestLookupCodeblockIssue13651(t *testing.T) { + t.Parallel() + + files := ` +-- hugo.toml -- +-- layouts/all.html -- +{{ .Content }}| +-- layouts/_markup/render-codeblock-foo.html -- +render-codeblock-foo.html +-- content/_index.md -- +--- +--- + +§§§ +printf "Hello, world!" +§§§ + +§§§ foo +printf "Hello, world again!" +§§§ +` + + b := hugolib.Test(t, files) + + content := b.FileContent("public/index.html") + fooCount := strings.Count(content, "render-codeblock-foo.html") + b.Assert(fooCount, qt.Equals, 1) +} + // Issue #13515 func TestPrintPathWarningOnDotRemoval(t *testing.T) { t.Parallel()