Integrated optional bindata for the templatestags/v1.21.12.1
| @@ -29,6 +29,7 @@ _testmain.go | |||||
| coverage.out | coverage.out | ||||
| /modules/public/bindata.go | /modules/public/bindata.go | ||||
| /modules/templates/bindata.go | |||||
| *.db | *.db | ||||
| *.log | *.log | ||||
| @@ -7,7 +7,6 @@ package cmd | |||||
| import ( | import ( | ||||
| "crypto/tls" | "crypto/tls" | ||||
| "fmt" | "fmt" | ||||
| "io/ioutil" | |||||
| "net" | "net" | ||||
| "net/http" | "net/http" | ||||
| "net/http/fcgi" | "net/http/fcgi" | ||||
| @@ -15,7 +14,6 @@ import ( | |||||
| "path" | "path" | ||||
| "strings" | "strings" | ||||
| "code.gitea.io/git" | |||||
| "code.gitea.io/gitea/models" | "code.gitea.io/gitea/models" | ||||
| "code.gitea.io/gitea/modules/auth" | "code.gitea.io/gitea/modules/auth" | ||||
| "code.gitea.io/gitea/modules/bindata" | "code.gitea.io/gitea/modules/bindata" | ||||
| @@ -23,7 +21,7 @@ import ( | |||||
| "code.gitea.io/gitea/modules/log" | "code.gitea.io/gitea/modules/log" | ||||
| "code.gitea.io/gitea/modules/public" | "code.gitea.io/gitea/modules/public" | ||||
| "code.gitea.io/gitea/modules/setting" | "code.gitea.io/gitea/modules/setting" | ||||
| "code.gitea.io/gitea/modules/template" | |||||
| "code.gitea.io/gitea/modules/templates" | |||||
| "code.gitea.io/gitea/routers" | "code.gitea.io/gitea/routers" | ||||
| "code.gitea.io/gitea/routers/admin" | "code.gitea.io/gitea/routers/admin" | ||||
| apiv1 "code.gitea.io/gitea/routers/api/v1" | apiv1 "code.gitea.io/gitea/routers/api/v1" | ||||
| @@ -39,10 +37,7 @@ import ( | |||||
| "github.com/go-macaron/i18n" | "github.com/go-macaron/i18n" | ||||
| "github.com/go-macaron/session" | "github.com/go-macaron/session" | ||||
| "github.com/go-macaron/toolbox" | "github.com/go-macaron/toolbox" | ||||
| "github.com/go-xorm/xorm" | |||||
| version "github.com/mcuadros/go-version" | |||||
| "github.com/urfave/cli" | "github.com/urfave/cli" | ||||
| ini "gopkg.in/ini.v1" | |||||
| macaron "gopkg.in/macaron.v1" | macaron "gopkg.in/macaron.v1" | ||||
| ) | ) | ||||
| @@ -74,45 +69,6 @@ type VerChecker struct { | |||||
| Expected string | Expected string | ||||
| } | } | ||||
| // checkVersion checks if binary matches the version of templates files. | |||||
| func checkVersion() { | |||||
| // Templates. | |||||
| data, err := ioutil.ReadFile(setting.StaticRootPath + "/templates/.VERSION") | |||||
| if err != nil { | |||||
| log.Fatal(4, "Fail to read 'templates/.VERSION': %v", err) | |||||
| } | |||||
| tplVer := string(data) | |||||
| if tplVer != setting.AppVer { | |||||
| if version.Compare(tplVer, setting.AppVer, ">") { | |||||
| log.Fatal(4, "Binary version is lower than template file version, did you forget to recompile Gogs?") | |||||
| } else { | |||||
| log.Fatal(4, "Binary version is higher than template file version, did you forget to update template files?") | |||||
| } | |||||
| } | |||||
| // Check dependency version. | |||||
| checkers := []VerChecker{ | |||||
| {"github.com/go-xorm/xorm", func() string { return xorm.Version }, "0.5.5"}, | |||||
| {"github.com/go-macaron/binding", binding.Version, "0.3.2"}, | |||||
| {"github.com/go-macaron/cache", cache.Version, "0.1.2"}, | |||||
| {"github.com/go-macaron/csrf", csrf.Version, "0.1.0"}, | |||||
| {"github.com/go-macaron/i18n", i18n.Version, "0.3.0"}, | |||||
| {"github.com/go-macaron/session", session.Version, "0.1.6"}, | |||||
| {"github.com/go-macaron/toolbox", toolbox.Version, "0.1.0"}, | |||||
| {"gopkg.in/ini.v1", ini.Version, "1.8.4"}, | |||||
| {"gopkg.in/macaron.v1", macaron.Version, "1.1.7"}, | |||||
| {"code.gitea.io/git", git.Version, "0.4.1"}, | |||||
| } | |||||
| for _, c := range checkers { | |||||
| if !version.Compare(c.Version(), c.Expected, ">=") { | |||||
| log.Fatal(4, `Dependency outdated! | |||||
| Package '%s' current version (%s) is below requirement (%s), | |||||
| please use following command to update this package and recompile Gogs: | |||||
| go get -u %[1]s`, c.ImportPath, c.Version(), c.Expected) | |||||
| } | |||||
| } | |||||
| } | |||||
| // newMacaron initializes Macaron instance. | // newMacaron initializes Macaron instance. | ||||
| func newMacaron() *macaron.Macaron { | func newMacaron() *macaron.Macaron { | ||||
| m := macaron.New() | m := macaron.New() | ||||
| @@ -140,15 +96,8 @@ func newMacaron() *macaron.Macaron { | |||||
| }, | }, | ||||
| )) | )) | ||||
| funcMap := template.NewFuncMap() | |||||
| m.Use(macaron.Renderer(macaron.RenderOptions{ | |||||
| Directory: path.Join(setting.StaticRootPath, "templates"), | |||||
| AppendDirectories: []string{path.Join(setting.CustomPath, "templates")}, | |||||
| Funcs: funcMap, | |||||
| IndentJSON: macaron.Env != macaron.PROD, | |||||
| })) | |||||
| models.InitMailRender(path.Join(setting.StaticRootPath, "templates/mail"), | |||||
| path.Join(setting.CustomPath, "templates/mail"), funcMap) | |||||
| m.Use(templates.Renderer()) | |||||
| models.InitMailRender(templates.Mailer()) | |||||
| localeNames, err := bindata.AssetDir("conf/locale") | localeNames, err := bindata.AssetDir("conf/locale") | ||||
| if err != nil { | if err != nil { | ||||
| @@ -200,7 +149,6 @@ func runWeb(ctx *cli.Context) error { | |||||
| setting.CustomConf = ctx.String("config") | setting.CustomConf = ctx.String("config") | ||||
| } | } | ||||
| routers.GlobalInit() | routers.GlobalInit() | ||||
| checkVersion() | |||||
| m := newMacaron() | m := newMacaron() | ||||
| @@ -18,10 +18,10 @@ import ( | |||||
| "code.gitea.io/git" | "code.gitea.io/git" | ||||
| "code.gitea.io/gitea/modules/base" | "code.gitea.io/gitea/modules/base" | ||||
| "code.gitea.io/gitea/modules/highlight" | |||||
| "code.gitea.io/gitea/modules/log" | "code.gitea.io/gitea/modules/log" | ||||
| "code.gitea.io/gitea/modules/process" | "code.gitea.io/gitea/modules/process" | ||||
| "code.gitea.io/gitea/modules/setting" | "code.gitea.io/gitea/modules/setting" | ||||
| "code.gitea.io/gitea/modules/template/highlight" | |||||
| "github.com/Unknwon/com" | "github.com/Unknwon/com" | ||||
| "github.com/sergi/go-diff/diffmatchpatch" | "github.com/sergi/go-diff/diffmatchpatch" | ||||
| "golang.org/x/net/html/charset" | "golang.org/x/net/html/charset" | ||||
| @@ -5,18 +5,18 @@ | |||||
| package models | package models | ||||
| import ( | import ( | ||||
| "bytes" | |||||
| "fmt" | "fmt" | ||||
| "html/template" | "html/template" | ||||
| "path" | "path" | ||||
| "gopkg.in/gomail.v2" | |||||
| "gopkg.in/macaron.v1" | |||||
| "code.gitea.io/gitea/modules/base" | "code.gitea.io/gitea/modules/base" | ||||
| "code.gitea.io/gitea/modules/log" | "code.gitea.io/gitea/modules/log" | ||||
| "code.gitea.io/gitea/modules/mailer" | "code.gitea.io/gitea/modules/mailer" | ||||
| "code.gitea.io/gitea/modules/markdown" | "code.gitea.io/gitea/modules/markdown" | ||||
| "code.gitea.io/gitea/modules/setting" | "code.gitea.io/gitea/modules/setting" | ||||
| "gopkg.in/gomail.v2" | |||||
| "gopkg.in/macaron.v1" | |||||
| ) | ) | ||||
| const ( | const ( | ||||
| @@ -31,27 +31,11 @@ const ( | |||||
| mailNotifyCollaborator base.TplName = "notify/collaborator" | mailNotifyCollaborator base.TplName = "notify/collaborator" | ||||
| ) | ) | ||||
| type mailRenderInterface interface { | |||||
| HTMLString(string, interface{}, ...macaron.HTMLOptions) (string, error) | |||||
| } | |||||
| var mailRender mailRenderInterface | |||||
| var templates *template.Template | |||||
| // InitMailRender initializes the macaron mail renderer | // InitMailRender initializes the macaron mail renderer | ||||
| func InitMailRender(dir, appendDir string, funcMap []template.FuncMap) { | |||||
| opt := &macaron.RenderOptions{ | |||||
| Directory: dir, | |||||
| AppendDirectories: []string{appendDir}, | |||||
| Funcs: funcMap, | |||||
| Extensions: []string{".tmpl", ".html"}, | |||||
| } | |||||
| ts := macaron.NewTemplateSet() | |||||
| ts.Set(macaron.DEFAULT_TPL_SET_NAME, opt) | |||||
| mailRender = &macaron.TplRender{ | |||||
| TemplateSet: ts, | |||||
| Opt: opt, | |||||
| } | |||||
| func InitMailRender(tmpls *template.Template) { | |||||
| templates = tmpls | |||||
| } | } | ||||
| // SendTestMail sends a test mail | // SendTestMail sends a test mail | ||||
| @@ -67,13 +51,15 @@ func SendUserMail(c *macaron.Context, u *User, tpl base.TplName, code, subject, | |||||
| "ResetPwdCodeLives": setting.Service.ResetPwdCodeLives / 60, | "ResetPwdCodeLives": setting.Service.ResetPwdCodeLives / 60, | ||||
| "Code": code, | "Code": code, | ||||
| } | } | ||||
| body, err := mailRender.HTMLString(string(tpl), data) | |||||
| if err != nil { | |||||
| log.Error(3, "HTMLString: %v", err) | |||||
| var content bytes.Buffer | |||||
| if err := templates.ExecuteTemplate(&content, string(tpl), data); err != nil { | |||||
| log.Error(3, "Template: %v", err) | |||||
| return | return | ||||
| } | } | ||||
| msg := mailer.NewMessage([]string{u.Email}, subject, body) | |||||
| msg := mailer.NewMessage([]string{u.Email}, subject, content.String()) | |||||
| msg.Info = fmt.Sprintf("UID: %d, %s", u.ID, info) | msg.Info = fmt.Sprintf("UID: %d, %s", u.ID, info) | ||||
| mailer.SendAsync(msg) | mailer.SendAsync(msg) | ||||
| @@ -97,13 +83,15 @@ func SendActivateEmailMail(c *macaron.Context, u *User, email *EmailAddress) { | |||||
| "Code": u.GenerateEmailActivateCode(email.Email), | "Code": u.GenerateEmailActivateCode(email.Email), | ||||
| "Email": email.Email, | "Email": email.Email, | ||||
| } | } | ||||
| body, err := mailRender.HTMLString(string(mailAuthActivateEmail), data) | |||||
| if err != nil { | |||||
| log.Error(3, "HTMLString: %v", err) | |||||
| var content bytes.Buffer | |||||
| if err := templates.ExecuteTemplate(&content, string(mailAuthActivateEmail), data); err != nil { | |||||
| log.Error(3, "Template: %v", err) | |||||
| return | return | ||||
| } | } | ||||
| msg := mailer.NewMessage([]string{email.Email}, c.Tr("mail.activate_email"), body) | |||||
| msg := mailer.NewMessage([]string{email.Email}, c.Tr("mail.activate_email"), content.String()) | |||||
| msg.Info = fmt.Sprintf("UID: %d, activate email", u.ID) | msg.Info = fmt.Sprintf("UID: %d, activate email", u.ID) | ||||
| mailer.SendAsync(msg) | mailer.SendAsync(msg) | ||||
| @@ -114,13 +102,15 @@ func SendRegisterNotifyMail(c *macaron.Context, u *User) { | |||||
| data := map[string]interface{}{ | data := map[string]interface{}{ | ||||
| "Username": u.DisplayName(), | "Username": u.DisplayName(), | ||||
| } | } | ||||
| body, err := mailRender.HTMLString(string(mailAuthRegisterNotify), data) | |||||
| if err != nil { | |||||
| log.Error(3, "HTMLString: %v", err) | |||||
| var content bytes.Buffer | |||||
| if err := templates.ExecuteTemplate(&content, string(mailAuthRegisterNotify), data); err != nil { | |||||
| log.Error(3, "Template: %v", err) | |||||
| return | return | ||||
| } | } | ||||
| msg := mailer.NewMessage([]string{u.Email}, c.Tr("mail.register_notify"), body) | |||||
| msg := mailer.NewMessage([]string{u.Email}, c.Tr("mail.register_notify"), content.String()) | |||||
| msg.Info = fmt.Sprintf("UID: %d, registration notify", u.ID) | msg.Info = fmt.Sprintf("UID: %d, registration notify", u.ID) | ||||
| mailer.SendAsync(msg) | mailer.SendAsync(msg) | ||||
| @@ -136,13 +126,15 @@ func SendCollaboratorMail(u, doer *User, repo *Repository) { | |||||
| "RepoName": repoName, | "RepoName": repoName, | ||||
| "Link": repo.HTMLURL(), | "Link": repo.HTMLURL(), | ||||
| } | } | ||||
| body, err := mailRender.HTMLString(string(mailNotifyCollaborator), data) | |||||
| if err != nil { | |||||
| log.Error(3, "HTMLString: %v", err) | |||||
| var content bytes.Buffer | |||||
| if err := templates.ExecuteTemplate(&content, string(mailNotifyCollaborator), data); err != nil { | |||||
| log.Error(3, "Template: %v", err) | |||||
| return | return | ||||
| } | } | ||||
| msg := mailer.NewMessage([]string{u.Email}, subject, body) | |||||
| msg := mailer.NewMessage([]string{u.Email}, subject, content.String()) | |||||
| msg.Info = fmt.Sprintf("UID: %d, add collaborator", u.ID) | msg.Info = fmt.Sprintf("UID: %d, add collaborator", u.ID) | ||||
| mailer.SendAsync(msg) | mailer.SendAsync(msg) | ||||
| @@ -161,11 +153,14 @@ func composeIssueMessage(issue *Issue, doer *User, tplName base.TplName, tos []s | |||||
| body := string(markdown.RenderSpecialLink([]byte(issue.Content), issue.Repo.HTMLURL(), issue.Repo.ComposeMetas())) | body := string(markdown.RenderSpecialLink([]byte(issue.Content), issue.Repo.HTMLURL(), issue.Repo.ComposeMetas())) | ||||
| data := composeTplData(subject, body, issue.HTMLURL()) | data := composeTplData(subject, body, issue.HTMLURL()) | ||||
| data["Doer"] = doer | data["Doer"] = doer | ||||
| content, err := mailRender.HTMLString(string(tplName), data) | |||||
| if err != nil { | |||||
| log.Error(3, "HTMLString (%s): %v", tplName, err) | |||||
| var content bytes.Buffer | |||||
| if err := templates.ExecuteTemplate(&content, string(tplName), data); err != nil { | |||||
| log.Error(3, "Template: %v", err) | |||||
| } | } | ||||
| msg := mailer.NewMessageFrom(tos, fmt.Sprintf(`"%s" <%s>`, doer.DisplayName(), setting.MailService.FromEmail), subject, content) | |||||
| msg := mailer.NewMessageFrom(tos, fmt.Sprintf(`"%s" <%s>`, doer.DisplayName(), setting.MailService.FromEmail), subject, content.String()) | |||||
| msg.Info = fmt.Sprintf("Subject: %s, %s", subject, info) | msg.Info = fmt.Sprintf("Subject: %s, %s", subject, info) | ||||
| return msg | return msg | ||||
| } | } | ||||
| @@ -6,6 +6,8 @@ package public | |||||
| //go:generate go-bindata -tags "bindata" -ignore "\\.go|\\.less" -pkg "public" -o "bindata.go" ../../public/... | //go:generate go-bindata -tags "bindata" -ignore "\\.go|\\.less" -pkg "public" -o "bindata.go" ../../public/... | ||||
| //go:generate go fmt bindata.go | //go:generate go fmt bindata.go | ||||
| //go:generate sed -i.bak s/..\/..\/public\/// bindata.go | |||||
| //go:generate rm -f bindata.go.bak | |||||
| // Options represents the available options to configure the macaron handler. | // Options represents the available options to configure the macaron handler. | ||||
| type Options struct { | type Options struct { | ||||
| @@ -22,7 +22,7 @@ func Static(opts *Options) macaron.Handler { | |||||
| AssetDir: AssetDir, | AssetDir: AssetDir, | ||||
| AssetInfo: AssetInfo, | AssetInfo: AssetInfo, | ||||
| AssetNames: AssetNames, | AssetNames: AssetNames, | ||||
| Prefix: "../../public", | |||||
| Prefix: "", | |||||
| }), | }), | ||||
| }, | }, | ||||
| ) | ) | ||||
| @@ -0,0 +1,103 @@ | |||||
| // +build !bindata | |||||
| // Copyright 2016 The Gitea 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 templates | |||||
| import ( | |||||
| "html/template" | |||||
| "io/ioutil" | |||||
| "path" | |||||
| "strings" | |||||
| "code.gitea.io/gitea/modules/log" | |||||
| "code.gitea.io/gitea/modules/setting" | |||||
| "github.com/Unknwon/com" | |||||
| "gopkg.in/macaron.v1" | |||||
| ) | |||||
| var ( | |||||
| templates = template.New("") | |||||
| ) | |||||
| // Renderer implements the macaron handler for serving the templates. | |||||
| func Renderer() macaron.Handler { | |||||
| return macaron.Renderer(macaron.RenderOptions{ | |||||
| Funcs: NewFuncMap(), | |||||
| Directory: path.Join(setting.StaticRootPath, "templates"), | |||||
| AppendDirectories: []string{ | |||||
| path.Join(setting.CustomPath, "templates"), | |||||
| }, | |||||
| }) | |||||
| } | |||||
| // Mailer provides the templates required for sending notification mails. | |||||
| func Mailer() *template.Template { | |||||
| for _, funcs := range NewFuncMap() { | |||||
| templates.Funcs(funcs) | |||||
| } | |||||
| staticDir := path.Join(setting.StaticRootPath, "templates", "mail") | |||||
| if com.IsDir(staticDir) { | |||||
| files, err := com.StatDir(staticDir) | |||||
| if err != nil { | |||||
| log.Warn("Failed to read %s templates dir. %v", staticDir, err) | |||||
| } else { | |||||
| for _, filePath := range files { | |||||
| if !strings.HasSuffix(filePath, ".tmpl") { | |||||
| continue | |||||
| } | |||||
| content, err := ioutil.ReadFile(path.Join(staticDir, filePath)) | |||||
| if err != nil { | |||||
| log.Warn("Failed to read static %s template. %v", filePath, err) | |||||
| continue | |||||
| } | |||||
| templates.New( | |||||
| strings.TrimSuffix( | |||||
| filePath, | |||||
| ".tmpl", | |||||
| ), | |||||
| ).Parse(string(content)) | |||||
| } | |||||
| } | |||||
| } | |||||
| customDir := path.Join(setting.CustomPath, "templates", "mail") | |||||
| if com.IsDir(customDir) { | |||||
| files, err := com.StatDir(customDir) | |||||
| if err != nil { | |||||
| log.Warn("Failed to read %s templates dir. %v", customDir, err) | |||||
| } else { | |||||
| for _, filePath := range files { | |||||
| if !strings.HasSuffix(filePath, ".tmpl") { | |||||
| continue | |||||
| } | |||||
| content, err := ioutil.ReadFile(path.Join(customDir, filePath)) | |||||
| if err != nil { | |||||
| log.Warn("Failed to read custom %s template. %v", filePath, err) | |||||
| continue | |||||
| } | |||||
| templates.New( | |||||
| strings.TrimSuffix( | |||||
| filePath, | |||||
| ".tmpl", | |||||
| ), | |||||
| ).Parse(string(content)) | |||||
| } | |||||
| } | |||||
| } | |||||
| return templates | |||||
| } | |||||
| @@ -2,7 +2,7 @@ | |||||
| // Use of this source code is governed by a MIT-style | // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | // license that can be found in the LICENSE file. | ||||
| package template | |||||
| package templates | |||||
| import ( | import ( | ||||
| "container/list" | "container/list" | ||||
| @@ -0,0 +1,109 @@ | |||||
| // +build bindata | |||||
| // Copyright 2016 The Gitea 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 templates | |||||
| import ( | |||||
| "html/template" | |||||
| "io/ioutil" | |||||
| "path" | |||||
| "strings" | |||||
| "code.gitea.io/gitea/modules/log" | |||||
| "code.gitea.io/gitea/modules/setting" | |||||
| "github.com/Unknwon/com" | |||||
| "github.com/go-macaron/bindata" | |||||
| "gopkg.in/macaron.v1" | |||||
| ) | |||||
| var ( | |||||
| templates = template.New("") | |||||
| ) | |||||
| // Renderer implements the macaron handler for serving the templates. | |||||
| func Renderer() macaron.Handler { | |||||
| return macaron.Renderer(macaron.RenderOptions{ | |||||
| Funcs: NewFuncMap(), | |||||
| AppendDirectories: []string{ | |||||
| path.Join(setting.CustomPath, "templates"), | |||||
| }, | |||||
| TemplateFileSystem: bindata.Templates( | |||||
| bindata.Options{ | |||||
| Asset: Asset, | |||||
| AssetDir: AssetDir, | |||||
| AssetInfo: AssetInfo, | |||||
| AssetNames: AssetNames, | |||||
| Prefix: "", | |||||
| }, | |||||
| ), | |||||
| }) | |||||
| } | |||||
| // Mailer provides the templates required for sending notification mails. | |||||
| func Mailer() *template.Template { | |||||
| for _, funcs := range NewFuncMap() { | |||||
| templates.Funcs(funcs) | |||||
| } | |||||
| for _, assetPath := range AssetNames() { | |||||
| if !strings.HasPrefix(assetPath, "mail/") { | |||||
| continue | |||||
| } | |||||
| if !strings.HasSuffix(assetPath, ".tmpl") { | |||||
| continue | |||||
| } | |||||
| content, err := Asset(assetPath) | |||||
| if err != nil { | |||||
| log.Warn("Failed to read embedded %s template. %v", assetPath, err) | |||||
| continue | |||||
| } | |||||
| templates.New( | |||||
| strings.TrimPrefix( | |||||
| strings.TrimSuffix( | |||||
| assetPath, | |||||
| ".tmpl", | |||||
| ), | |||||
| "mail/", | |||||
| ), | |||||
| ).Parse(string(content)) | |||||
| } | |||||
| customDir := path.Join(setting.CustomPath, "templates", "mail") | |||||
| if com.IsDir(customDir) { | |||||
| files, err := com.StatDir(customDir) | |||||
| if err != nil { | |||||
| log.Warn("Failed to read %s templates dir. %v", customDir, err) | |||||
| } else { | |||||
| for _, filePath := range files { | |||||
| if !strings.HasSuffix(filePath, ".tmpl") { | |||||
| continue | |||||
| } | |||||
| content, err := ioutil.ReadFile(path.Join(customDir, filePath)) | |||||
| if err != nil { | |||||
| log.Warn("Failed to read custom %s template. %v", filePath, err) | |||||
| continue | |||||
| } | |||||
| templates.New( | |||||
| strings.TrimSuffix( | |||||
| filePath, | |||||
| ".tmpl", | |||||
| ), | |||||
| ).Parse(string(content)) | |||||
| } | |||||
| } | |||||
| } | |||||
| return templates | |||||
| } | |||||
| @@ -0,0 +1,10 @@ | |||||
| // Copyright 2016 The Gitea 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 templates | |||||
| //go:generate go-bindata -tags "bindata" -ignore "\\.go" -pkg "templates" -o "bindata.go" ../../templates/... | |||||
| //go:generate go fmt bindata.go | |||||
| //go:generate sed -i.bak s/..\/..\/templates\/// bindata.go | |||||
| //go:generate rm -f bindata.go.bak | |||||
| @@ -11,12 +11,12 @@ import ( | |||||
| "code.gitea.io/git" | "code.gitea.io/git" | ||||
| "code.gitea.io/gitea/models" | "code.gitea.io/gitea/models" | ||||
| "code.gitea.io/gitea/modules/cron" | "code.gitea.io/gitea/modules/cron" | ||||
| "code.gitea.io/gitea/modules/highlight" | |||||
| "code.gitea.io/gitea/modules/log" | "code.gitea.io/gitea/modules/log" | ||||
| "code.gitea.io/gitea/modules/mailer" | "code.gitea.io/gitea/modules/mailer" | ||||
| "code.gitea.io/gitea/modules/markdown" | "code.gitea.io/gitea/modules/markdown" | ||||
| "code.gitea.io/gitea/modules/setting" | "code.gitea.io/gitea/modules/setting" | ||||
| "code.gitea.io/gitea/modules/ssh" | "code.gitea.io/gitea/modules/ssh" | ||||
| "code.gitea.io/gitea/modules/template/highlight" | |||||
| macaron "gopkg.in/macaron.v1" | macaron "gopkg.in/macaron.v1" | ||||
| ) | ) | ||||
| @@ -18,7 +18,7 @@ import ( | |||||
| "code.gitea.io/gitea/modules/context" | "code.gitea.io/gitea/modules/context" | ||||
| "code.gitea.io/gitea/modules/log" | "code.gitea.io/gitea/modules/log" | ||||
| "code.gitea.io/gitea/modules/setting" | "code.gitea.io/gitea/modules/setting" | ||||
| "code.gitea.io/gitea/modules/template" | |||||
| "code.gitea.io/gitea/modules/templates" | |||||
| ) | ) | ||||
| const ( | const ( | ||||
| @@ -74,7 +74,7 @@ func editFile(ctx *context.Context, isNewFile bool) { | |||||
| d, _ := ioutil.ReadAll(dataRc) | d, _ := ioutil.ReadAll(dataRc) | ||||
| buf = append(buf, d...) | buf = append(buf, d...) | ||||
| if content, err := template.ToUTF8WithErr(buf); err != nil { | |||||
| if content, err := templates.ToUTF8WithErr(buf); err != nil { | |||||
| if err != nil { | if err != nil { | ||||
| log.Error(4, "ToUTF8WithErr: %v", err) | log.Error(4, "ToUTF8WithErr: %v", err) | ||||
| } | } | ||||
| @@ -16,11 +16,11 @@ import ( | |||||
| "code.gitea.io/gitea/models" | "code.gitea.io/gitea/models" | ||||
| "code.gitea.io/gitea/modules/base" | "code.gitea.io/gitea/modules/base" | ||||
| "code.gitea.io/gitea/modules/context" | "code.gitea.io/gitea/modules/context" | ||||
| "code.gitea.io/gitea/modules/highlight" | |||||
| "code.gitea.io/gitea/modules/log" | "code.gitea.io/gitea/modules/log" | ||||
| "code.gitea.io/gitea/modules/markdown" | "code.gitea.io/gitea/modules/markdown" | ||||
| "code.gitea.io/gitea/modules/setting" | "code.gitea.io/gitea/modules/setting" | ||||
| "code.gitea.io/gitea/modules/template" | |||||
| "code.gitea.io/gitea/modules/template/highlight" | |||||
| "code.gitea.io/gitea/modules/templates" | |||||
| "github.com/Unknwon/paginater" | "github.com/Unknwon/paginater" | ||||
| ) | ) | ||||
| @@ -164,7 +164,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st | |||||
| } else { | } else { | ||||
| // Building code view blocks with line number on server side. | // Building code view blocks with line number on server side. | ||||
| var fileContent string | var fileContent string | ||||
| if content, err := template.ToUTF8WithErr(buf); err != nil { | |||||
| if content, err := templates.ToUTF8WithErr(buf); err != nil { | |||||
| if err != nil { | if err != nil { | ||||
| log.Error(4, "ToUTF8WithErr: %s", err) | log.Error(4, "ToUTF8WithErr: %s", err) | ||||
| } | } | ||||
| @@ -1 +0,0 @@ | |||||
| 0.9.99.0915 | |||||