* serve video files using the HTML5 video tag * lint fix: add comment to IsVideoFiletags/v1.0.0
@@ -431,6 +431,7 @@ file_history = History | |||
file_view_raw = View Raw | |||
file_permalink = Permalink | |||
file_too_large = This file is too large to be shown | |||
video_not_supported_in_browser = Your browser doesn't support HTML5 video tag. | |||
editor.new_file = New file | |||
editor.upload_file = Upload file |
@@ -494,3 +494,8 @@ func IsImageFile(data []byte) bool { | |||
func IsPDFFile(data []byte) bool { | |||
return strings.Index(http.DetectContentType(data), "application/pdf") != -1 | |||
} | |||
// IsVideoFile detectes if data is an video format | |||
func IsVideoFile(data []byte) bool { | |||
return strings.Index(http.DetectContentType(data), "video/") != -1 | |||
} |
@@ -198,6 +198,8 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st | |||
case base.IsPDFFile(buf): | |||
ctx.Data["IsPDFFile"] = true | |||
case base.IsVideoFile(buf): | |||
ctx.Data["IsVideoFile"] = true | |||
case base.IsImageFile(buf): | |||
ctx.Data["IsImageFile"] = true | |||
} |
@@ -43,6 +43,10 @@ | |||
<div class="view-raw ui center"> | |||
{{if .IsImageFile}} | |||
<img src="{{EscapePound $.RawFileLink}}"> | |||
{{else if .IsVideoFile}} | |||
<video controls src="{{EscapePound $.RawFileLink}}"> | |||
<strong>{{.i18n.Tr "repo.video_not_supported_in_browser"}}</strong> | |||
</video> | |||
{{else if .IsPDFFile}} | |||
<iframe width="100%" height="600px" src="{{AppSubUrl}}/plugins/pdfjs-1.4.20/web/viewer.html?file={{EscapePound $.RawFileLink}}"></iframe> | |||
{{else}} |