diff --git a/modules/template/highlight/highlight.go b/modules/template/highlight/highlight.go index 7dcb672da..39b5d6d15 100644 --- a/modules/template/highlight/highlight.go +++ b/modules/template/highlight/highlight.go @@ -64,6 +64,7 @@ var ( highlightMapping = map[string]string{} ) +// NewContext loads highlight map func NewContext() { keys := setting.Cfg.Section("highlight.mapping").Keys() for i := range keys { diff --git a/modules/template/template.go b/modules/template/template.go index 03fa0f521..baf1a7ab9 100644 --- a/modules/template/template.go +++ b/modules/template/template.go @@ -26,6 +26,7 @@ import ( "code.gitea.io/gitea/modules/setting" ) +// NewFuncMap returns functions for injecting to templates func NewFuncMap() []template.FuncMap { return []template.FuncMap{map[string]interface{}{ "GoVer": func() string { @@ -119,14 +120,17 @@ func NewFuncMap() []template.FuncMap { }} } +// Safe render raw as HTML func Safe(raw string) template.HTML { return template.HTML(raw) } +// Str2html render Markdown text to HTML func Str2html(raw string) template.HTML { return template.HTML(markdown.Sanitizer.Sanitize(raw)) } +// List traversings the list func List(l *list.List) chan interface{} { e := l.Front() c := make(chan interface{}) @@ -140,21 +144,23 @@ func List(l *list.List) chan interface{} { return c } +// Sha1 returns sha1 sum of string func Sha1(str string) string { return base.EncodeSha1(str) } -func ToUTF8WithErr(content []byte) (error, string) { +// ToUTF8WithErr converts content to UTF8 encoding +func ToUTF8WithErr(content []byte) (string, error) { charsetLabel, err := base.DetectEncoding(content) if err != nil { - return err, "" + return "", err } else if charsetLabel == "UTF-8" { - return nil, string(content) + return string(content), nil } encoding, _ := charset.Lookup(charsetLabel) if encoding == nil { - return fmt.Errorf("Unknown encoding: %s", charsetLabel), string(content) + return string(content), fmt.Errorf("Unknown encoding: %s", charsetLabel) } // If there is an error, we concatenate the nicely decoded part and the @@ -164,19 +170,20 @@ func ToUTF8WithErr(content []byte) (error, string) { result = result + string(content[n:]) } - return err, result + return result, err } +// ToUTF8 converts content to UTF8 encoding and ignore error func ToUTF8(content string) string { - _, res := ToUTF8WithErr([]byte(content)) + res, _ := ToUTF8WithErr([]byte(content)) return res } -// Replaces all prefixes 'old' in 's' with 'new'. +// ReplaceLeft replaces all prefixes 'old' in 's' with 'new'. func ReplaceLeft(s, old, new string) string { - old_len, new_len, i, n := len(old), len(new), 0, 0 - for ; i < len(s) && strings.HasPrefix(s[i:], old); n += 1 { - i += old_len + oldLen, newLen, i, n := len(old), len(new), 0, 0 + for ; i < len(s) && strings.HasPrefix(s[i:], old); n++ { + i += oldLen } // simple optimization @@ -185,12 +192,12 @@ func ReplaceLeft(s, old, new string) string { } // allocating space for the new string - newLen := n*new_len + len(s[i:]) - replacement := make([]byte, newLen, newLen) + curLen := n*newLen + len(s[i:]) + replacement := make([]byte, curLen, curLen) j := 0 - for ; j < n*new_len; j += new_len { - copy(replacement[j:j+new_len], new) + for ; j < n*newLen; j += newLen { + copy(replacement[j:j+newLen], new) } copy(replacement[j:], s[i:]) @@ -222,6 +229,7 @@ func RenderCommitMessage(full bool, msg, urlPrefix string, metas map[string]stri return template.HTML(fullMessage) } +// Actioner describes an action type Actioner interface { GetOpType() int GetActUserName() string @@ -260,6 +268,7 @@ func ActionIcon(opType int) string { } } +// ActionContent2Commits converts action content to push commits func ActionContent2Commits(act Actioner) *models.PushCommits { push := models.NewPushCommits() if err := json.Unmarshal([]byte(act.GetContent()), push); err != nil { @@ -268,6 +277,7 @@ func ActionContent2Commits(act Actioner) *models.PushCommits { return push } +// DiffTypeToStr returns diff type name func DiffTypeToStr(diffType int) string { diffTypes := map[int]string{ 1: "add", 2: "modify", 3: "del", 4: "rename", @@ -275,6 +285,7 @@ func DiffTypeToStr(diffType int) string { return diffTypes[diffType] } +// DiffLineTypeToStr returns diff line type name func DiffLineTypeToStr(diffType int) string { switch diffType { case 2: diff --git a/routers/repo/editor.go b/routers/repo/editor.go index d0d528e25..92a41f014 100644 --- a/routers/repo/editor.go +++ b/routers/repo/editor.go @@ -74,7 +74,7 @@ func editFile(ctx *context.Context, isNewFile bool) { d, _ := ioutil.ReadAll(dataRc) buf = append(buf, d...) - if err, content := template.ToUTF8WithErr(buf); err != nil { + if content, err := template.ToUTF8WithErr(buf); err != nil { if err != nil { log.Error(4, "ToUTF8WithErr: %v", err) } diff --git a/routers/repo/view.go b/routers/repo/view.go index 7303e4412..3ef3716f2 100644 --- a/routers/repo/view.go +++ b/routers/repo/view.go @@ -164,7 +164,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st } else { // Building code view blocks with line number on server side. var fileContent string - if err, content := template.ToUTF8WithErr(buf); err != nil { + if content, err := template.ToUTF8WithErr(buf); err != nil { if err != nil { log.Error(4, "ToUTF8WithErr: %s", err) }