Permalink
Browse files

Video tag plugin now supports mp4,ogv,webm formats, closes #931

  • Loading branch information...
1 parent cd6926e commit 8bf09b178d513a264b900186d20f5c0b928c7287 @imathis committed Jan 13, 2013
Showing with 17 additions and 8 deletions.
  1. +17 −8 plugins/video_tag.rb
View
@@ -22,22 +22,31 @@ class VideoTag < Liquid::Tag
@width = ''
def initialize(tag_name, markup, tokens)
- if markup =~ /((https?:\/\/|\/)(\S+))(\s+(\d+)\s(\d+))?(\s+(https?:\/\/|\/)(\S+))?/i
- @video = $1
- @width = $5
- @height = $6
- @poster = $7
+ if markup =~ /(https?:\S+)(\s+(https?:\S+))?(\s+(https?:\S+))?(\s+(\d+)\s(\d+))?(\s+(https?:\S+))?/i
+ @video = [$1, $3, $5].compact
+ @width = $7
+ @height = $8
+ @poster = $10
end
super
end
def render(context)
output = super
- if @video
+ type = {
+ 'mp4' => "type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'",
+ 'ogv' => "type='video/ogg; codecs=theora, vorbis'",
+ 'webm' => "type='video/webm; codecs=vp8, vorbis'"
+ }
+ if @video.size > 0
video = "<video width='#{@width}' height='#{@height}' preload='none' controls poster='#{@poster}'>"
- video += "<source src='#{@video}' type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'/></video>"
+ @video.each do |v|
+ t = v.match(/([^\.]+)$/)[1]
+ video += "<source src='#{v}' #{type[t]}>"
+ end
+ video += "</video>"
else
- "Error processing input, expected syntax: {% video url/to/video [width height] [url/to/poster] %}"
+ "Error processing input, expected syntax: {% video url/to/video [url/to/video] [url/to/video] [width height] [url/to/poster] %}"
end
end
end

0 comments on commit 8bf09b1

Please sign in to comment.