]> source.dussan.org Git - gitea.git/commitdiff
fix image display
authorslene <vslene@gmail.com>
Thu, 27 Mar 2014 16:30:20 +0000 (00:30 +0800)
committerslene <vslene@gmail.com>
Thu, 27 Mar 2014 16:30:20 +0000 (00:30 +0800)
modules/base/markdown.go
routers/repo/repo.go
templates/repo/single_file.tmpl

index c722f04b2ecbdcfc8141b21508b9f4862c502407..a98ca8cf003ded4244274844fc93b998e599b3f8 100644 (file)
@@ -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 {
index 3c8d24a6a62a0b8158671516ffe3a278075a5e05..4573a3e48cd363c3af62751110aaeb8ded967f7c 100644 (file)
@@ -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")
        }
index cf398595e5ec386851d798f7e0fdad68a4915f65..9199ca91f74c09e646ed29ad4a01eaf2ef9aafc4 100644 (file)
     </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>