diff --git a/routers/repo/view.go b/routers/repo/view.go
index 4f1deeae40cd8..ea1f18838d73a 100644
--- a/routers/repo/view.go
+++ b/routers/repo/view.go
@@ -100,13 +100,24 @@ func renderDirectory(ctx *context.Context, treeLink string) {
} else {
d, _ := ioutil.ReadAll(dataRc)
buf = append(buf, d...)
+
+ var fileContent string
+ if content, err := templates.ToUTF8WithErr(buf); err != nil {
+ if err != nil {
+ log.Error(4, "ToUTF8WithErr: %v", err)
+ }
+ fileContent = string(buf)
+ } else {
+ fileContent = content
+ }
+
if markup.Type(readmeFile.Name()) != "" {
ctx.Data["IsMarkup"] = true
- ctx.Data["FileContent"] = string(markup.Render(readmeFile.Name(), buf, treeLink, ctx.Repo.Repository.ComposeMetas()))
+ ctx.Data["FileContent"] = string(markup.Render(readmeFile.Name(), []byte(fileContent), treeLink, ctx.Repo.Repository.ComposeMetas()))
} else {
ctx.Data["IsRenderedHTML"] = true
ctx.Data["FileContent"] = strings.Replace(
- gotemplate.HTMLEscapeString(string(buf)), "\n", `
`, -1,
+ gotemplate.HTMLEscapeString(fileContent), "\n", `
`, -1,
)
}
}
@@ -203,28 +214,28 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st
d, _ := ioutil.ReadAll(dataRc)
buf = append(buf, d...)
+ // Building code view blocks with line number on server side.
+ var fileContent string
+ if content, err := templates.ToUTF8WithErr(buf); err != nil {
+ if err != nil {
+ log.Error(4, "ToUTF8WithErr: %v", err)
+ }
+ fileContent = string(buf)
+ } else {
+ fileContent = content
+ }
+
readmeExist := markup.IsReadmeFile(blob.Name())
ctx.Data["ReadmeExist"] = readmeExist
if markup.Type(blob.Name()) != "" {
ctx.Data["IsMarkup"] = true
- ctx.Data["FileContent"] = string(markup.Render(blob.Name(), buf, path.Dir(treeLink), ctx.Repo.Repository.ComposeMetas()))
+ ctx.Data["FileContent"] = string(markup.Render(blob.Name(), []byte(fileContent), path.Dir(treeLink), ctx.Repo.Repository.ComposeMetas()))
} else if readmeExist {
ctx.Data["IsRenderedHTML"] = true
ctx.Data["FileContent"] = strings.Replace(
- gotemplate.HTMLEscapeString(string(buf)), "\n", `
`, -1,
+ gotemplate.HTMLEscapeString(fileContent), "\n", `
`, -1,
)
} else {
- // Building code view blocks with line number on server side.
- var fileContent string
- if content, err := templates.ToUTF8WithErr(buf); err != nil {
- if err != nil {
- log.Error(4, "ToUTF8WithErr: %v", err)
- }
- fileContent = string(buf)
- } else {
- fileContent = content
- }
-
var output bytes.Buffer
lines := strings.Split(fileContent, "\n")
//Remove blank line at the end of file