diff options
author | Joe Mooring <[email protected]> | 2023-07-29 05:45:30 -0700 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2023-07-29 16:11:53 +0200 |
commit | 036e260d8daae4b8ab385e7431f9167df9c7f4d9 (patch) | |
tree | 6ede3f537cea3e1d5a91098c07b19e694c52184e | |
parent | a50356b9a25484cab70fe8bb1b4bc28d217f94c1 (diff) | |
download | hugo-036e260d8daae4b8ab385e7431f9167df9c7f4d9.tar.gz hugo-036e260d8daae4b8ab385e7431f9167df9c7f4d9.zip |
docs: Update where function operators
Related to #11281
-rw-r--r-- | docs/content/en/functions/where.md | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/docs/content/en/functions/where.md b/docs/content/en/functions/where.md index af92619dc..bcdc5b465 100644 --- a/docs/content/en/functions/where.md +++ b/docs/content/en/functions/where.md @@ -73,6 +73,9 @@ The following logical operators are available with `where`: `intersect` : `true` if a given field value that is a slice/array of strings or integers contains elements in common with the matching value; it follows the same rules as the [`intersect` function][intersect]. +`like` +: `true` if a given field value matches a regular expression. Use the `like` operator to compare `string` values. Returns `false` when comparing other data types to the regular expression. + ## Use `where` with boolean values When using booleans you should not put quotation marks. ```go-html-template @@ -80,7 +83,6 @@ When using booleans you should not put quotation marks. <p>{{ .Title }}</p> {{ end }} ``` - ## Use `where` with `intersect` @@ -102,6 +104,32 @@ You can also put the returned value of the `where` clauses into a variable: {{ end }} {{< /code >}} +## Use `where` with `like` + +This example matches pages where the "foo" parameter begins with "ab": + +```go-html-template +{{ range where site.RegularPages "Params.foo" "like" "^ab" }} + <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2> +{{ end }} +``` + +When specifying the regular expression, use a raw [string literal] (backticks) instead of an interpreted string literal (double quotes) to simplify the syntax. With an interpreted string literal you must escape backslashes. + +[string literal]: https://go.dev/ref/spec#String_literals + +This function uses the [RE2] regular expression library. See the [RE2 syntax documentation] for details. Note that the RE2 `\C` escape sequence is not supported. + +[RE2]: https://github.com/google/re2/ +[RE2 syntax documentation]: https://github.com/google/re2/wiki/Syntax/ + +{{% note %}} +The RE2 syntax is a subset of that accepted by [PCRE], roughly speaking, and with various [caveats]. + +[caveats]: https://swtch.com/~rsc/regexp/regexp3.html#caveats +[PCRE]: https://www.pcre.org/ +{{% /note %}} + ## Use `where` with `first` Using `first` and `where` together can be very |