mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-14 14:49:32 +01:00
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> (cherry picked from commit 65d96725bb6cb0d0616c17844aca6c753aa5c851)
This commit is contained in:
parent
e702e79625
commit
8dcc7d9e8c
1 changed files with 7 additions and 8 deletions
|
@ -12,6 +12,7 @@ import (
|
||||||
"code.gitea.io/gitea/modules/charset"
|
"code.gitea.io/gitea/modules/charset"
|
||||||
"code.gitea.io/gitea/modules/context"
|
"code.gitea.io/gitea/modules/context"
|
||||||
"code.gitea.io/gitea/modules/git"
|
"code.gitea.io/gitea/modules/git"
|
||||||
|
"code.gitea.io/gitea/modules/log"
|
||||||
"code.gitea.io/gitea/modules/markup"
|
"code.gitea.io/gitea/modules/markup"
|
||||||
"code.gitea.io/gitea/modules/typesniffer"
|
"code.gitea.io/gitea/modules/typesniffer"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
|
@ -44,20 +45,17 @@ func RenderFile(ctx *context.Context) {
|
||||||
isTextFile := st.IsText()
|
isTextFile := st.IsText()
|
||||||
|
|
||||||
rd := charset.ToUTF8WithFallbackReader(io.MultiReader(bytes.NewReader(buf), dataRc), charset.ConvertOpts{})
|
rd := charset.ToUTF8WithFallbackReader(io.MultiReader(bytes.NewReader(buf), dataRc), charset.ConvertOpts{})
|
||||||
|
ctx.Resp.Header().Add("Content-Security-Policy", "frame-src 'self'; sandbox allow-scripts")
|
||||||
|
|
||||||
if markupType := markup.Type(blob.Name()); markupType == "" {
|
if markupType := markup.Type(blob.Name()); markupType == "" {
|
||||||
if isTextFile {
|
if isTextFile {
|
||||||
_, err = io.Copy(ctx.Resp, rd)
|
_, _ = io.Copy(ctx.Resp, rd)
|
||||||
if err != nil {
|
} else {
|
||||||
ctx.ServerError("Copy", err)
|
http.Error(ctx.Resp, "Unsupported file type render", http.StatusInternalServerError)
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
ctx.Error(http.StatusInternalServerError, "Unsupported file type render")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
ctx.Resp.Header().Add("Content-Security-Policy", "frame-src 'self'; sandbox allow-scripts")
|
|
||||||
err = markup.Render(&markup.RenderContext{
|
err = markup.Render(&markup.RenderContext{
|
||||||
Ctx: ctx,
|
Ctx: ctx,
|
||||||
RelativePath: ctx.Repo.TreePath,
|
RelativePath: ctx.Repo.TreePath,
|
||||||
|
@ -71,7 +69,8 @@ func RenderFile(ctx *context.Context) {
|
||||||
InStandalonePage: true,
|
InStandalonePage: true,
|
||||||
}, rd, ctx.Resp)
|
}, rd, ctx.Resp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ctx.ServerError("Render", err)
|
log.Error("Failed to render file %q: %v", ctx.Repo.TreePath, err)
|
||||||
|
http.Error(ctx.Resp, "Failed to render file", http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue