mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-12-07 14:09:47 +00:00
List of currently supported filters: - `is:open` (or `-is:closed`) - `is:closed` (or `-is:open`) - `is:all` - `author:<username>` - `assignee:<username>` - `review:<username>` - `mentions:<username>` - `modified:[>|<]<date>`, where `<date>` is the last update date. - `sort:<by>:[asc|desc]`, where `<by>` is among - created - comments - updated - deadline Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/9109 Reviewed-by: 0ko <0ko@noreply.codeberg.org> Reviewed-by: Ellen Εμιλία Άννα Zscheile <fogti@noreply.codeberg.org> Reviewed-by: Gusted <gusted@noreply.codeberg.org> Co-authored-by: Shiny Nematoda <snematoda.751k2@aleeas.com> Co-committed-by: Shiny Nematoda <snematoda.751k2@aleeas.com>
81 lines
1.6 KiB
Go
81 lines
1.6 KiB
Go
// Copyright 2023 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package templates
|
|
|
|
import (
|
|
"fmt"
|
|
"html/template"
|
|
"strings"
|
|
|
|
"forgejo.org/modules/base"
|
|
"forgejo.org/modules/util"
|
|
)
|
|
|
|
type StringUtils struct{}
|
|
|
|
var stringUtils = StringUtils{}
|
|
|
|
func NewStringUtils() *StringUtils {
|
|
return &stringUtils
|
|
}
|
|
|
|
func (su *StringUtils) Make(arr ...string) []string {
|
|
return arr
|
|
}
|
|
|
|
func (su *StringUtils) HasPrefix(s any, prefix string) bool {
|
|
switch v := s.(type) {
|
|
case string:
|
|
return strings.HasPrefix(v, prefix)
|
|
case template.HTML:
|
|
return strings.HasPrefix(string(v), prefix)
|
|
}
|
|
return false
|
|
}
|
|
|
|
func (su *StringUtils) ToString(v any) string {
|
|
switch v := v.(type) {
|
|
case string:
|
|
return v
|
|
case template.HTML:
|
|
return string(v)
|
|
case fmt.Stringer:
|
|
return v.String()
|
|
default:
|
|
return fmt.Sprint(v)
|
|
}
|
|
}
|
|
|
|
func (su *StringUtils) Contains(s, substr string) bool {
|
|
return strings.Contains(s, substr)
|
|
}
|
|
|
|
func (su *StringUtils) Split(s, sep string) []string {
|
|
return strings.Split(s, sep)
|
|
}
|
|
|
|
func (su *StringUtils) Join(a []string, sep string) string {
|
|
return strings.Join(a, sep)
|
|
}
|
|
|
|
func (su *StringUtils) Cut(s, sep string) []any {
|
|
before, after, found := strings.Cut(s, sep)
|
|
return []any{before, after, found}
|
|
}
|
|
|
|
func (su *StringUtils) EllipsisString(s string, max int) string {
|
|
return base.EllipsisString(s, max)
|
|
}
|
|
|
|
func (su *StringUtils) ToUpper(s string) string {
|
|
return strings.ToUpper(s)
|
|
}
|
|
|
|
func (su *StringUtils) RemoveAll(s string, all ...string) string {
|
|
return util.RemoveAllStr(s, false, all...)
|
|
}
|
|
|
|
func (su *StringUtils) RemoveAllPrefix(s string, all ...string) string {
|
|
return util.RemoveAllStr(s, true, all...)
|
|
}
|