octopress-video-tag 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +3 -4
- data/lib/octopress-video-tag.rb +55 -32
- data/lib/octopress-video-tag/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6ebabbd607b450a0c46542c4646f25c3fa4dba6d
|
4
|
+
data.tar.gz: 58df246681b740999e7bbfda111477975dedbb1b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad4cda3fd9a36fb720ee3829747b84267dedfbf85a5c2f38b232cd849d1ea04ecec3a54116b693402291e53127831a055a9a13b5ce03876943ed60610ce0249b
|
7
|
+
data.tar.gz: c8f755880570c3b422dc272631dda8b1b5b5cbc4e0f83950de699c86991cf4f25345c82ef0b868b8f9efc60a708c0fd8d2f81470d56e606bfdf1127eee163677
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -56,16 +56,15 @@ Each video is embedded with a minuscule bit of javascript which plays videos whe
|
|
56
56
|
## Examples:
|
57
57
|
|
58
58
|
```
|
59
|
-
{% video /videos/clouds.mp4 %}
|
59
|
+
{% video {{ site.cdn }}/videos/clouds.mp4 %}
|
60
60
|
{% video featured wide /images/clouds.jpg /videos/clouds.mp4 /videos/clouds.webm /videos/clouds.ogv 1080px 608px preload:auto %}
|
61
61
|
```
|
62
62
|
|
63
63
|
This would output the following HTML
|
64
64
|
|
65
65
|
```html
|
66
|
-
<video controls
|
67
|
-
|
68
|
-
<source src='/videos/clouds.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
|
66
|
+
<video controls preload='metadata' onclick='(function(el){ if(el.paused) el.play(); else el.pause() })(this)'>
|
67
|
+
<source src='https://cdn.com/video/clouds.mp4' type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"'>
|
69
68
|
</video>
|
70
69
|
|
71
70
|
<video class='featured wide' controls poster='/images/clouds.jpg' width='1080px' height='608px' preload='auto'
|
data/lib/octopress-video-tag.rb
CHANGED
@@ -11,55 +11,78 @@ module Octopress
|
|
11
11
|
Preload = /(:?preload: *(:?\S+))/i
|
12
12
|
Size = /\s(auto|\d\S+)\s?(auto|\d\S+)?/i
|
13
13
|
URLs = /((https?:\/)?\/\S+)/i
|
14
|
+
Types = {
|
15
|
+
'.mp4' => "type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'",
|
16
|
+
'.ogv' => "type='video/ogg; codecs=\"theora, vorbis\"'",
|
17
|
+
'.webm' => "type='video/webm; codecs=\"vp8, vorbis\"'"
|
18
|
+
}
|
14
19
|
|
15
20
|
def initialize(tag_name, tag_markup, tokens)
|
16
21
|
@markup = tag_markup
|
17
|
-
|
22
|
+
super
|
23
|
+
end
|
18
24
|
|
19
|
-
|
20
|
-
markup
|
25
|
+
def render(context)
|
26
|
+
@markup = process_liquid(context)
|
21
27
|
|
22
|
-
|
23
|
-
|
28
|
+
if sources.size > 0
|
29
|
+
video = "<video #{classes} controls #{poster} #{sizes} #{preload} #{click_to_play(context)}>"
|
30
|
+
video += sources
|
31
|
+
video += "</video>"
|
32
|
+
else
|
33
|
+
raise "No video mp4, ogv, or webm urls found in {% video #{@markup} %}"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def click_to_play(context)
|
38
|
+
if context.environments.first['site']['click_to_play_video'] != false
|
39
|
+
"onclick='(function(el){ if(el.paused) el.play(); else el.pause() })(this)'"
|
40
|
+
end
|
41
|
+
end
|
24
42
|
|
25
|
-
|
26
|
-
@
|
27
|
-
|
28
|
-
markup.gsub!(URLs, '')
|
43
|
+
def sources
|
44
|
+
@sources ||= begin
|
45
|
+
vids = urls.select {|u| u.match /mp4|ogv|webm/i}
|
29
46
|
|
30
|
-
|
31
|
-
|
47
|
+
vids.collect do |v|
|
48
|
+
"<source src='#{v}' #{Types[File.extname(v)]}>"
|
49
|
+
end.join('')
|
32
50
|
end
|
51
|
+
end
|
33
52
|
|
34
|
-
|
53
|
+
def poster
|
54
|
+
p = urls.select {|u| u.match /jpe?g|png|gif/i}.first
|
55
|
+
"poster='#{p}'" if p
|
35
56
|
end
|
36
57
|
|
37
|
-
def
|
58
|
+
def urls
|
59
|
+
@markup.scan(URLs).map{ |m| m.first }
|
60
|
+
end
|
38
61
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
62
|
+
def sizes
|
63
|
+
s = @markup.scan(Size).flatten.compact
|
64
|
+
attrs = "width='#{s[0]}'" if s[0]
|
65
|
+
attrs += "height='#{s[1]}'" if s[1]
|
66
|
+
attrs
|
67
|
+
end
|
45
68
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
clickToPlay = ''
|
69
|
+
def preload
|
70
|
+
if p = @markup.scan(Preload).flatten.compact.last || "metadata"
|
71
|
+
"preload='#{p}'"
|
50
72
|
end
|
73
|
+
end
|
51
74
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
end
|
58
|
-
video += "</video>"
|
59
|
-
else
|
60
|
-
raise "No video mp4, ogv, or webm urls found in {% video #{@markup} %}"
|
75
|
+
def classes
|
76
|
+
leftovers = @markup.sub(Preload, '').sub(Size, '').gsub(URLs, '')
|
77
|
+
|
78
|
+
if !(classes = leftovers.strip).empty?
|
79
|
+
"class='#{classes}'"
|
61
80
|
end
|
62
81
|
end
|
82
|
+
|
83
|
+
def process_liquid(context)
|
84
|
+
Liquid::Template.parse(@markup).render!(context.environments.first)
|
85
|
+
end
|
63
86
|
end
|
64
87
|
end
|
65
88
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: octopress-video-tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Mathis
|
@@ -87,6 +87,7 @@ executables: []
|
|
87
87
|
extensions: []
|
88
88
|
extra_rdoc_files: []
|
89
89
|
files:
|
90
|
+
- CHANGELOG.md
|
90
91
|
- LICENSE.txt
|
91
92
|
- README.md
|
92
93
|
- lib/octopress-video-tag.rb
|