summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslene <vslene@gmail.com>2014-03-28 00:30:20 +0800
committerslene <vslene@gmail.com>2014-03-28 00:30:20 +0800
commit346db02d89ae0337956607eec43a0cd3f184fda8 (patch)
tree5caaf3f50191b211f44b5ff8253df5856afab50c
parent16cb1e974ca2e34384cd7882886f46f860ea5640 (diff)
downloadgitea-346db02d89ae0337956607eec43a0cd3f184fda8.tar.gz
gitea-346db02d89ae0337956607eec43a0cd3f184fda8.zip
fix image display
-rw-r--r--modules/base/markdown.go8
-rw-r--r--routers/repo/repo.go19
-rw-r--r--templates/repo/single_file.tmpl8
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>