diff options
author | slene <vslene@gmail.com> | 2014-03-28 00:30:20 +0800 |
---|---|---|
committer | slene <vslene@gmail.com> | 2014-03-28 00:30:20 +0800 |
commit | 346db02d89ae0337956607eec43a0cd3f184fda8 (patch) | |
tree | 5caaf3f50191b211f44b5ff8253df5856afab50c | |
parent | 16cb1e974ca2e34384cd7882886f46f860ea5640 (diff) | |
download | gitea-346db02d89ae0337956607eec43a0cd3f184fda8.tar.gz gitea-346db02d89ae0337956607eec43a0cd3f184fda8.zip |
fix image display
-rw-r--r-- | modules/base/markdown.go | 8 | ||||
-rw-r--r-- | routers/repo/repo.go | 19 | ||||
-rw-r--r-- | templates/repo/single_file.tmpl | 8 |
3 files changed, 26 insertions, 9 deletions
diff --git a/modules/base/markdown.go b/modules/base/markdown.go index c722f04b2e..a98ca8cf00 100644 --- a/modules/base/markdown.go +++ b/modules/base/markdown.go @@ -51,6 +51,14 @@ func IsTextFile(data []byte) (string, bool) { return contentType, false } +func IsImageFile(data []byte) (string, bool) { + contentType := http.DetectContentType(data) + if strings.Index(contentType, "img/") != -1 { + return contentType, true + } + return contentType, false +} + func IsReadmeFile(name string) bool { name = strings.ToLower(name) if len(name) < 6 { diff --git a/routers/repo/repo.go b/routers/repo/repo.go index 3c8d24a6a6..4573a3e48c 100644 --- a/routers/repo/repo.go +++ b/routers/repo/repo.go @@ -120,15 +120,20 @@ func Single(ctx *middleware.Context, params martini.Params) { data := blob.Contents() _, isTextFile := base.IsTextFile(data) + _, isImageFile := base.IsImageFile(data) ctx.Data["FileIsText"] = isTextFile - readmeExist := base.IsMarkdownFile(repoFile.Name) || base.IsReadmeFile(repoFile.Name) - ctx.Data["ReadmeExist"] = readmeExist - if readmeExist { - ctx.Data["FileContent"] = string(base.RenderMarkdown(data, "")) + if isImageFile { + ctx.Data["IsImageFile"] = true } else { - if isTextFile { - ctx.Data["FileContent"] = string(data) + readmeExist := base.IsMarkdownFile(repoFile.Name) || base.IsReadmeFile(repoFile.Name) + ctx.Data["ReadmeExist"] = readmeExist + if readmeExist { + ctx.Data["FileContent"] = string(base.RenderMarkdown(data, "")) + } else { + if isTextFile { + ctx.Data["FileContent"] = string(data) + } } } } @@ -236,9 +241,9 @@ func SingleDownload(ctx *middleware.Context, params martini.Params) { data := blob.Contents() contentType, isTextFile := base.IsTextFile(data) + _, isImageFile := base.IsImageFile(data) ctx.Res.Header().Set("Content-Type", contentType) if !isTextFile { - ctx.Res.Header().Set("Content-Type", contentType) ctx.Res.Header().Set("Content-Disposition", "attachment; filename="+filepath.Base(treename)) ctx.Res.Header().Set("Content-Transfer-Encoding", "binary") } diff --git a/templates/repo/single_file.tmpl b/templates/repo/single_file.tmpl index cf398595e5..9199ca91f7 100644 --- a/templates/repo/single_file.tmpl +++ b/templates/repo/single_file.tmpl @@ -23,7 +23,11 @@ </div> {{if not .FileIsText}} <div class="panel-footer text-center"> - <a href="{{.FileLink}}" class="btn btn-default">View Raw</a> + {{if .IsImageFile}} + <img src="{{.FileLink}}"> + {{else}} + <a href="{{.FileLink}}" class="btn btn-default">View Raw</a> + {{end}} </div> {{else}} {{if .ReadmeExist}} @@ -43,4 +47,4 @@ </div> {{end}} {{end}} -</div>
\ No newline at end of file +</div> |