okami.mom/glamour
git clone https://git.nkp.pet/okami.mom/glamour
adb7fd4
main
1package ansi 2 3import ( 4"regexp" 5"strings" 6"text/template" 7 8"golang.org/x/text/cases" 9"golang.org/x/text/language" 10) 11 12// TemplateFuncMap contains a few useful template helpers. 13var ( 14TemplateFuncMap = template.FuncMap { 15"Left" :func (values ... interface {})string { 16s := values [0 ].(string ) 17n := values [1 ].(int ) 18if n > len (s ) { 19n = len (s ) 20 } 21 22return s [:n ] 23 }, 24"Matches" :func (values ... interface {})bool { 25ok ,_ := regexp .MatchString (values [1 ].(string ),values [0 ].(string )) 26return ok 27 }, 28"Mid" :func (values ... interface {})string { 29s := values [0 ].(string ) 30l := values [1 ].(int ) 31if l > len (s ) { 32l = len (s ) 33 } 34 35if len (values )> 2 {//nolint:mnd 36r := values [2 ].(int ) 37if r > len (s ) { 38r = len (s ) 39 } 40return s [l :r ] 41 } 42return s [l :] 43 }, 44"Right" :func (values ... interface {})string { 45s := values [0 ].(string ) 46n := len (s )- values [1 ].(int ) 47if n < 0 { 48n = 0 49 } 50 51return s [n :] 52 }, 53"Last" :func (values ... interface {})string { 54return values [0 ].([]string )[len (values [0 ].([]string ))- 1 ] 55 }, 56// strings functions 57"Compare" :strings .Compare ,// 1.5+ only 58"Contains" :strings .Contains , 59"ContainsAny" :strings .ContainsAny , 60"Count" :strings .Count , 61"EqualFold" :strings .EqualFold , 62"HasPrefix" :strings .HasPrefix , 63"HasSuffix" :strings .HasSuffix , 64"Index" :strings .Index , 65"IndexAny" :strings .IndexAny , 66"Join" :strings .Join , 67"LastIndex" :strings .LastIndex , 68"LastIndexAny" :strings .LastIndexAny , 69"Repeat" :strings .Repeat , 70"Replace" :strings .Replace , 71"Split" :strings .Split , 72"SplitAfter" :strings .SplitAfter , 73"SplitAfterN" :strings .SplitAfterN , 74"SplitN" :strings .SplitN , 75"Title" :cases .Title (language .English ).String , 76"ToLower" :cases .Lower (language .English ).String , 77"ToTitle" :cases .Upper (language .English ).String , 78"ToUpper" :strings .ToUpper , 79"Trim" :strings .Trim , 80"TrimLeft" :strings .TrimLeft , 81"TrimPrefix" :strings .TrimPrefix , 82"TrimRight" :strings .TrimRight , 83"TrimSpace" :strings .TrimSpace , 84"TrimSuffix" :strings .TrimSuffix , 85 } 86)