123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- // Copyright 2014 The Gogs Authors. All rights reserved.
- // Use of this source code is governed by a MIT-style
- // license that can be found in the LICENSE file.
- package base
- import (
- "container/list"
- "fmt"
- "html/template"
- "strings"
- "time"
- )
- func Str2html(raw string) template.HTML {
- return template.HTML(raw)
- }
- func Range(l int) []int {
- return make([]int, l)
- }
- func List(l *list.List) chan interface{} {
- e := l.Front()
- c := make(chan interface{})
- go func() {
- for e != nil {
- c <- e.Value
- e = e.Next()
- }
- close(c)
- }()
- return c
- }
- func ShortSha(sha1 string) string {
- if len(sha1) == 40 {
- return sha1[:10]
- }
- return sha1
- }
- var mailDomains = map[string]string{
- "gmail.com": "gmail.com",
- }
- var TemplateFuncs template.FuncMap = map[string]interface{}{
- "AppName": func() string {
- return AppName
- },
- "AppVer": func() string {
- return AppVer
- },
- "AppDomain": func() string {
- return Domain
- },
- "LoadTimes": func(startTime time.Time) string {
- return fmt.Sprint(time.Since(startTime).Nanoseconds()/1e6) + "ms"
- },
- "AvatarLink": AvatarLink,
- "str2html": Str2html,
- "TimeSince": TimeSince,
- "FileSize": FileSize,
- "Subtract": Subtract,
- "ActionIcon": ActionIcon,
- "ActionDesc": ActionDesc,
- "DateFormat": DateFormat,
- "List": List,
- "Mail2Domain": func(mail string) string {
- if !strings.Contains(mail, "@") {
- return "try.gogits.org"
- }
- suffix := strings.SplitN(mail, "@", 2)[1]
- domain, ok := mailDomains[suffix]
- if !ok {
- return "mail." + suffix
- }
- return domain
- },
- "SubStr": func(str string, start, length int) string {
- return str[start : start+length]
- },
- "DiffTypeToStr": DiffTypeToStr,
- "DiffLineTypeToStr": DiffLineTypeToStr,
- "ShortSha": ShortSha,
- }
|