From 036e260d8daae4b8ab385e7431f9167df9c7f4d9 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sat, 29 Jul 2023 05:45:30 -0700 Subject: [PATCH] docs: Update where function operators Related to #11281 --- docs/content/en/functions/where.md | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) 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.

{{ .Title }}

{{ 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" }} +

{{ .LinkTitle }}

+{{ 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