|
|
|
@ -22,86 +22,88 @@ import (
|
|
|
|
|
"github.com/gogits/gogs/modules/setting"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var Funcs template.FuncMap = map[string]interface{}{
|
|
|
|
|
"GoVer": func() string {
|
|
|
|
|
return strings.Title(runtime.Version())
|
|
|
|
|
},
|
|
|
|
|
"UseHTTPS": func() bool {
|
|
|
|
|
return strings.HasPrefix(setting.AppUrl, "https")
|
|
|
|
|
},
|
|
|
|
|
"AppName": func() string {
|
|
|
|
|
return setting.AppName
|
|
|
|
|
},
|
|
|
|
|
"AppSubUrl": func() string {
|
|
|
|
|
return setting.AppSubUrl
|
|
|
|
|
},
|
|
|
|
|
"AppUrl": func() string {
|
|
|
|
|
return setting.AppUrl
|
|
|
|
|
},
|
|
|
|
|
"AppVer": func() string {
|
|
|
|
|
return setting.AppVer
|
|
|
|
|
},
|
|
|
|
|
"AppDomain": func() string {
|
|
|
|
|
return setting.Domain
|
|
|
|
|
},
|
|
|
|
|
"DisableGravatar": func() bool {
|
|
|
|
|
return setting.DisableGravatar
|
|
|
|
|
},
|
|
|
|
|
"LoadTimes": func(startTime time.Time) string {
|
|
|
|
|
return fmt.Sprint(time.Since(startTime).Nanoseconds()/1e6) + "ms"
|
|
|
|
|
},
|
|
|
|
|
"AvatarLink": base.AvatarLink,
|
|
|
|
|
"Safe": Safe,
|
|
|
|
|
"Str2html": Str2html,
|
|
|
|
|
"TimeSince": base.TimeSince,
|
|
|
|
|
"RawTimeSince": base.RawTimeSince,
|
|
|
|
|
"FileSize": base.FileSize,
|
|
|
|
|
"Subtract": base.Subtract,
|
|
|
|
|
"Add": func(a, b int) int {
|
|
|
|
|
return a + b
|
|
|
|
|
},
|
|
|
|
|
"ActionIcon": ActionIcon,
|
|
|
|
|
"DateFmtLong": func(t time.Time) string {
|
|
|
|
|
return t.Format(time.RFC1123Z)
|
|
|
|
|
},
|
|
|
|
|
"DateFmtShort": func(t time.Time) string {
|
|
|
|
|
return t.Format("Jan 02, 2006")
|
|
|
|
|
},
|
|
|
|
|
"List": List,
|
|
|
|
|
"Mail2Domain": func(mail string) string {
|
|
|
|
|
if !strings.Contains(mail, "@") {
|
|
|
|
|
return "try.gogs.io"
|
|
|
|
|
}
|
|
|
|
|
func NewFuncMap() []template.FuncMap {
|
|
|
|
|
return []template.FuncMap{map[string]interface{}{
|
|
|
|
|
"GoVer": func() string {
|
|
|
|
|
return strings.Title(runtime.Version())
|
|
|
|
|
},
|
|
|
|
|
"UseHTTPS": func() bool {
|
|
|
|
|
return strings.HasPrefix(setting.AppUrl, "https")
|
|
|
|
|
},
|
|
|
|
|
"AppName": func() string {
|
|
|
|
|
return setting.AppName
|
|
|
|
|
},
|
|
|
|
|
"AppSubUrl": func() string {
|
|
|
|
|
return setting.AppSubUrl
|
|
|
|
|
},
|
|
|
|
|
"AppUrl": func() string {
|
|
|
|
|
return setting.AppUrl
|
|
|
|
|
},
|
|
|
|
|
"AppVer": func() string {
|
|
|
|
|
return setting.AppVer
|
|
|
|
|
},
|
|
|
|
|
"AppDomain": func() string {
|
|
|
|
|
return setting.Domain
|
|
|
|
|
},
|
|
|
|
|
"DisableGravatar": func() bool {
|
|
|
|
|
return setting.DisableGravatar
|
|
|
|
|
},
|
|
|
|
|
"LoadTimes": func(startTime time.Time) string {
|
|
|
|
|
return fmt.Sprint(time.Since(startTime).Nanoseconds()/1e6) + "ms"
|
|
|
|
|
},
|
|
|
|
|
"AvatarLink": base.AvatarLink,
|
|
|
|
|
"Safe": Safe,
|
|
|
|
|
"Str2html": Str2html,
|
|
|
|
|
"TimeSince": base.TimeSince,
|
|
|
|
|
"RawTimeSince": base.RawTimeSince,
|
|
|
|
|
"FileSize": base.FileSize,
|
|
|
|
|
"Subtract": base.Subtract,
|
|
|
|
|
"Add": func(a, b int) int {
|
|
|
|
|
return a + b
|
|
|
|
|
},
|
|
|
|
|
"ActionIcon": ActionIcon,
|
|
|
|
|
"DateFmtLong": func(t time.Time) string {
|
|
|
|
|
return t.Format(time.RFC1123Z)
|
|
|
|
|
},
|
|
|
|
|
"DateFmtShort": func(t time.Time) string {
|
|
|
|
|
return t.Format("Jan 02, 2006")
|
|
|
|
|
},
|
|
|
|
|
"List": List,
|
|
|
|
|
"Mail2Domain": func(mail string) string {
|
|
|
|
|
if !strings.Contains(mail, "@") {
|
|
|
|
|
return "try.gogs.io"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return strings.SplitN(mail, "@", 2)[1]
|
|
|
|
|
},
|
|
|
|
|
"SubStr": func(str string, start, length int) string {
|
|
|
|
|
if len(str) == 0 {
|
|
|
|
|
return ""
|
|
|
|
|
}
|
|
|
|
|
end := start + length
|
|
|
|
|
if length == -1 {
|
|
|
|
|
end = len(str)
|
|
|
|
|
}
|
|
|
|
|
if len(str) < end {
|
|
|
|
|
return str
|
|
|
|
|
}
|
|
|
|
|
return str[start:end]
|
|
|
|
|
},
|
|
|
|
|
"DiffTypeToStr": DiffTypeToStr,
|
|
|
|
|
"DiffLineTypeToStr": DiffLineTypeToStr,
|
|
|
|
|
"Sha1": Sha1,
|
|
|
|
|
"ShortSha": base.ShortSha,
|
|
|
|
|
"MD5": base.EncodeMD5,
|
|
|
|
|
"ActionContent2Commits": ActionContent2Commits,
|
|
|
|
|
"ToUtf8": ToUtf8,
|
|
|
|
|
"EscapePound": func(str string) string {
|
|
|
|
|
return strings.Replace(strings.Replace(str, "%", "%25", -1), "#", "%23", -1)
|
|
|
|
|
},
|
|
|
|
|
"RenderCommitMessage": RenderCommitMessage,
|
|
|
|
|
"ThemeColorMetaTag": func() string {
|
|
|
|
|
return setting.ThemeColorMetaTag
|
|
|
|
|
},
|
|
|
|
|
return strings.SplitN(mail, "@", 2)[1]
|
|
|
|
|
},
|
|
|
|
|
"SubStr": func(str string, start, length int) string {
|
|
|
|
|
if len(str) == 0 {
|
|
|
|
|
return ""
|
|
|
|
|
}
|
|
|
|
|
end := start + length
|
|
|
|
|
if length == -1 {
|
|
|
|
|
end = len(str)
|
|
|
|
|
}
|
|
|
|
|
if len(str) < end {
|
|
|
|
|
return str
|
|
|
|
|
}
|
|
|
|
|
return str[start:end]
|
|
|
|
|
},
|
|
|
|
|
"DiffTypeToStr": DiffTypeToStr,
|
|
|
|
|
"DiffLineTypeToStr": DiffLineTypeToStr,
|
|
|
|
|
"Sha1": Sha1,
|
|
|
|
|
"ShortSha": base.ShortSha,
|
|
|
|
|
"MD5": base.EncodeMD5,
|
|
|
|
|
"ActionContent2Commits": ActionContent2Commits,
|
|
|
|
|
"ToUtf8": ToUtf8,
|
|
|
|
|
"EscapePound": func(str string) string {
|
|
|
|
|
return strings.Replace(strings.Replace(str, "%", "%25", -1), "#", "%23", -1)
|
|
|
|
|
},
|
|
|
|
|
"RenderCommitMessage": RenderCommitMessage,
|
|
|
|
|
"ThemeColorMetaTag": func() string {
|
|
|
|
|
return setting.ThemeColorMetaTag
|
|
|
|
|
},
|
|
|
|
|
}}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func Safe(raw string) template.HTML {
|
|
|
|
|