|
|
|
@ -21,6 +21,79 @@ import ( |
|
|
|
|
"github.com/gogits/gogs/modules/setting" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
var Funcs template.FuncMap = map[string]interface{}{ |
|
|
|
|
"GoVer": func() string { |
|
|
|
|
return strings.Title(runtime.Version()) |
|
|
|
|
}, |
|
|
|
|
"AppName": func() string { |
|
|
|
|
return setting.AppName |
|
|
|
|
}, |
|
|
|
|
"AppSubUrl": func() string { |
|
|
|
|
return setting.AppSubUrl |
|
|
|
|
}, |
|
|
|
|
"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, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func Safe(raw string) template.HTML { |
|
|
|
|
return template.HTML(raw) |
|
|
|
|
} |
|
|
|
@ -119,81 +192,6 @@ func RenderCommitMessage(msg, urlPrefix string) template.HTML { |
|
|
|
|
return template.HTML(fullMessage) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var Funcs template.FuncMap = map[string]interface{}{ |
|
|
|
|
"GoVer": func() string { |
|
|
|
|
return strings.Title(runtime.Version()) |
|
|
|
|
}, |
|
|
|
|
"AppName": func() string { |
|
|
|
|
return setting.AppName |
|
|
|
|
}, |
|
|
|
|
"AppSubUrl": func() string { |
|
|
|
|
return setting.AppSubUrl |
|
|
|
|
}, |
|
|
|
|
"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, |
|
|
|
|
"Oauth2Icon": Oauth2Icon, |
|
|
|
|
"Oauth2Name": Oauth2Name, |
|
|
|
|
"ToUtf8": ToUtf8, |
|
|
|
|
"EscapePound": func(str string) string { |
|
|
|
|
return strings.Replace(strings.Replace(str, "%", "%25", -1), "#", "%23", -1) |
|
|
|
|
}, |
|
|
|
|
"RenderCommitMessage": RenderCommitMessage, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
type Actioner interface { |
|
|
|
|
GetOpType() int |
|
|
|
|
GetActUserName() string |
|
|
|
@ -251,35 +249,3 @@ func DiffLineTypeToStr(diffType int) string { |
|
|
|
|
} |
|
|
|
|
return "same" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func Oauth2Icon(t int) string { |
|
|
|
|
switch t { |
|
|
|
|
case 1: |
|
|
|
|
return "fa-github-square" |
|
|
|
|
case 2: |
|
|
|
|
return "fa-google-plus-square" |
|
|
|
|
case 3: |
|
|
|
|
return "fa-twitter-square" |
|
|
|
|
case 4: |
|
|
|
|
return "fa-qq" |
|
|
|
|
case 5: |
|
|
|
|
return "fa-weibo" |
|
|
|
|
} |
|
|
|
|
return "" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func Oauth2Name(t int) string { |
|
|
|
|
switch t { |
|
|
|
|
case 1: |
|
|
|
|
return "GitHub" |
|
|
|
|
case 2: |
|
|
|
|
return "Google+" |
|
|
|
|
case 3: |
|
|
|
|
return "Twitter" |
|
|
|
|
case 4: |
|
|
|
|
return "腾讯 QQ" |
|
|
|
|
case 5: |
|
|
|
|
return "Weibo" |
|
|
|
|
} |
|
|
|
|
return "" |
|
|
|
|
} |
|
|
|
|