mirror of
https://github.com/gohugoio/hugo.git
synced 2025-04-25 21:21:22 +03:00
tpl: Fix it so embedded render-codeblock-goat is used even if custom render-codeblock exists
Fixes #13595
This commit is contained in:
parent
53221f88ca
commit
c8710625b7
3 changed files with 100 additions and 7 deletions
|
@ -208,12 +208,9 @@ func (this TemplateDescriptor) doCompare(category Category, isEmbedded bool, oth
|
|||
w.w1 += weightVariant1
|
||||
}
|
||||
|
||||
if other.Variant2 != "" && other.Variant2 == this.Variant2 {
|
||||
if other.Variant1 != "" && other.Variant2 == this.Variant2 {
|
||||
w.w1 += weightVariant2
|
||||
}
|
||||
if other.Variant2 != "" && this.Variant2 == "" {
|
||||
w.w1--
|
||||
}
|
||||
|
||||
return w
|
||||
}
|
||||
|
|
|
@ -1832,7 +1832,10 @@ func (best *bestMatch) isBetter(w weight, ti *TemplInfo) bool {
|
|||
return false
|
||||
}
|
||||
|
||||
if best.w.w1 > 0 {
|
||||
// Note that for render hook templates, we need to make
|
||||
// the embedded render hook template wih if they're a better match,
|
||||
// e.g. render-codeblock-goat.html.
|
||||
if best.templ.category != CategoryMarkup && best.w.w1 > 0 {
|
||||
currentBestIsEmbedded := best.templ.subCategory == SubCategoryEmbedded
|
||||
if currentBestIsEmbedded {
|
||||
if ti.subCategory != SubCategoryEmbedded {
|
||||
|
|
|
@ -827,7 +827,46 @@ func TestPartialHTML(t *testing.T) {
|
|||
}
|
||||
|
||||
// Issue #13593.
|
||||
func TestNoGoat(t *testing.T) {
|
||||
func TestGoatAndNoGoat(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
files := `
|
||||
-- hugo.toml --
|
||||
-- content/_index.md --
|
||||
---
|
||||
title: "Home"
|
||||
---
|
||||
|
||||
|
||||
§§§
|
||||
printf "Hello, world!"
|
||||
§§§
|
||||
|
||||
|
||||
§§§ goat
|
||||
.---. .-. .-. .-. .---.
|
||||
| A +--->| 1 |<--->| 2 |<--->| 3 |<---+ B |
|
||||
'---' '-' '+' '+' '---'
|
||||
§§§
|
||||
|
||||
|
||||
|
||||
-- layouts/all.html --
|
||||
{{ .Content }}
|
||||
|
||||
`
|
||||
|
||||
b := hugolib.Test(t, files)
|
||||
|
||||
// Basic code block.
|
||||
b.AssertFileContent("public/index.html", "<code>printf "Hello, world!"\n</code>")
|
||||
|
||||
// Goat code block.
|
||||
b.AssertFileContent("public/index.html", "Menlo,Lucida")
|
||||
}
|
||||
|
||||
// Issue #13595.
|
||||
func TestGoatAndNoGoatCustomTemplate(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
files := `
|
||||
|
@ -841,6 +880,16 @@ title: "Home"
|
|||
printf "Hello, world!"
|
||||
§§§
|
||||
|
||||
§§§ goat
|
||||
.---. .-. .-. .-. .---.
|
||||
| A +--->| 1 |<--->| 2 |<--->| 3 |<---+ B |
|
||||
'---' '-' '+' '+' '---'
|
||||
§§§
|
||||
|
||||
|
||||
|
||||
-- layouts/_markup/render-codeblock.html --
|
||||
_markup/render-codeblock.html
|
||||
-- layouts/all.html --
|
||||
{{ .Content }}
|
||||
|
||||
|
@ -848,7 +897,51 @@ printf "Hello, world!"
|
|||
|
||||
b := hugolib.Test(t, files)
|
||||
|
||||
b.AssertFileContent("public/index.html", "Hello, world!")
|
||||
// Basic code block.
|
||||
b.AssertFileContent("public/index.html", "_markup/render-codeblock.html")
|
||||
|
||||
// Goat code block.
|
||||
b.AssertFileContent("public/index.html", "Menlo,Lucida")
|
||||
}
|
||||
|
||||
func TestGoatcustom(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
files := `
|
||||
-- hugo.toml --
|
||||
-- content/_index.md --
|
||||
---
|
||||
title: "Home"
|
||||
---
|
||||
|
||||
§§§
|
||||
printf "Hello, world!"
|
||||
§§§
|
||||
|
||||
§§§ goat
|
||||
.---. .-. .-. .-. .---.
|
||||
| A +--->| 1 |<--->| 2 |<--->| 3 |<---+ B |
|
||||
'---' '-' '+' '+' '---'
|
||||
§§§
|
||||
|
||||
|
||||
|
||||
-- layouts/_markup/render-codeblock.html --
|
||||
_markup/render-codeblock.html
|
||||
-- layouts/_markup/render-codeblock-goat.html --
|
||||
_markup/render-codeblock-goat.html
|
||||
-- layouts/all.html --
|
||||
{{ .Content }}
|
||||
|
||||
`
|
||||
|
||||
b := hugolib.Test(t, files)
|
||||
|
||||
// Basic code block.
|
||||
b.AssertFileContent("public/index.html", "_markup/render-codeblock.html")
|
||||
|
||||
// Custom Goat code block.
|
||||
b.AssertFileContent("public/index.html", "_markup/render-codeblock.html_markup/render-codeblock-goat.html")
|
||||
}
|
||||
|
||||
// Issue #13515
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue