URI: 
       tpl/strings: Add strings.ContainsNonSpace - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit fce08904841ff9d70a1a0e0ca9e142636c937052
   DIR parent 87c78bd3e918f258bc1a4b0e8acdcec11b69bd35
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Tue, 31 Jan 2023 09:54:34 +0100
       
       tpl/strings: Add strings.ContainsNonSpace
       
       Diffstat:
         M tpl/strings/strings.go              |      14 ++++++++++++++
         M tpl/strings/strings_test.go         |      21 +++++++++++++++++++++
       
       2 files changed, 35 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/tpl/strings/strings.go b/tpl/strings/strings.go
       @@ -20,6 +20,7 @@ import (
                "html/template"
                "regexp"
                "strings"
       +        "unicode"
                "unicode/utf8"
        
                "github.com/gohugoio/hugo/common/text"
       @@ -160,6 +161,19 @@ func (ns *Namespace) ContainsAny(s, chars any) (bool, error) {
                return strings.ContainsAny(ss, sc), nil
        }
        
       +// ContainsNonSpace reports whether s contains any non-space characters as defined
       +// by Unicode's White Space property,
       +func (ns *Namespace) ContainsNonSpace(s any) bool {
       +        ss := cast.ToString(s)
       +
       +        for _, r := range ss {
       +                if !unicode.IsSpace(r) {
       +                        return true
       +                }
       +        }
       +        return false
       +}
       +
        // HasPrefix tests whether the input s begins with prefix.
        func (ns *Namespace) HasPrefix(s, prefix any) (bool, error) {
                ss, err := cast.ToStringE(s)
   DIR diff --git a/tpl/strings/strings_test.go b/tpl/strings/strings_test.go
       @@ -145,6 +145,27 @@ func TestContainsAny(t *testing.T) {
                }
        }
        
       +func TestContainsNonSpace(t *testing.T) {
       +        t.Parallel()
       +        c := qt.New(t)
       +
       +        for _, test := range []struct {
       +                s      any
       +                expect bool
       +        }{
       +                {"", false},
       +                {" ", false},
       +                {"        ", false},
       +                {"\t", false},
       +                {"\r", false},
       +                {"a", true},
       +                {"    a", true},
       +                {"a\n", true},
       +        } {
       +                c.Assert(ns.ContainsNonSpace(test.s), qt.Equals, test.expect)
       +        }
       +}
       +
        func TestCountRunes(t *testing.T) {
                t.Parallel()
                c := qt.New(t)