mirror of
https://github.com/gohugoio/hugo.git
synced 2025-02-18 04:51:04 +00:00
parent
dc2a544fac
commit
f4598a0986
2 changed files with 47 additions and 0 deletions
|
@ -196,3 +196,38 @@ title: "p3"
|
||||||
Home: p1|p3|
|
Home: p1|p3|
|
||||||
`)
|
`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Issue #11279
|
||||||
|
func TestWhereLikeOperator(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
files := `
|
||||||
|
-- content/p1.md --
|
||||||
|
---
|
||||||
|
title: P1
|
||||||
|
foo: ab
|
||||||
|
---
|
||||||
|
-- content/p2.md --
|
||||||
|
---
|
||||||
|
title: P2
|
||||||
|
foo: abc
|
||||||
|
---
|
||||||
|
-- content/p3.md --
|
||||||
|
---
|
||||||
|
title: P3
|
||||||
|
foo: bc
|
||||||
|
---
|
||||||
|
-- layouts/index.html --
|
||||||
|
<ul>
|
||||||
|
{{- range where site.RegularPages "Params.foo" "like" "^ab" -}}
|
||||||
|
<li>{{ .Title }}</li>
|
||||||
|
{{- end -}}
|
||||||
|
</ul>
|
||||||
|
`
|
||||||
|
b := hugolib.NewIntegrationTestBuilder(
|
||||||
|
hugolib.IntegrationTestConfig{
|
||||||
|
T: t,
|
||||||
|
TxtarString: files,
|
||||||
|
},
|
||||||
|
).Build()
|
||||||
|
b.AssertFileContent("public/index.html", "<ul><li>P1</li><li>P2</li></ul>")
|
||||||
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/gohugoio/hugo/common/hreflect"
|
"github.com/gohugoio/hugo/common/hreflect"
|
||||||
|
"github.com/gohugoio/hugo/common/hstrings"
|
||||||
"github.com/gohugoio/hugo/common/maps"
|
"github.com/gohugoio/hugo/common/maps"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -272,6 +273,17 @@ func (ns *Namespace) checkCondition(v, mv reflect.Value, op string) (bool, error
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
return false, errors.New("invalid intersect values")
|
return false, errors.New("invalid intersect values")
|
||||||
|
case "like":
|
||||||
|
if svp != nil && smvp != nil {
|
||||||
|
re, err := hstrings.GetOrCompileRegexp(*smvp)
|
||||||
|
if err != nil {
|
||||||
|
return false, err
|
||||||
|
}
|
||||||
|
if re.MatchString(*svp) {
|
||||||
|
return true, nil
|
||||||
|
}
|
||||||
|
return false, nil
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
return false, errors.New("no such operator")
|
return false, errors.New("no such operator")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue