jekyll-picture-tag 0.2.3 → 0.3.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/jekyll-picture-tag.gemspec +2 -2
- data/lib/jekyll-picture-tag.rb +20 -5
- data/readme.md +3 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8aa94e4a07e2076e502bb11471d4bed3cb6fd90
|
4
|
+
data.tar.gz: d0f17151a2d776a335fa89ecde5b39ad8ad412ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57583d5abe715eefb55b29da796ae45ec95a3ee97bc6d082f4d00babaefd9f5fdcc043209ce51ba8e0b41384069cfdeccbe01d9f5ed2247185898e271ca0e6ab
|
7
|
+
data.tar.gz: cdd134f5929466984007ba9d598ad61e64b07054ea4bd2af7e2230ad1f6e848cc2d81116ec7637ba9bcc15ec1392f552fb5a31c0cb4a73efda2725e14ca8c3fa
|
data/jekyll-picture-tag.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "jekyll-picture-tag"
|
8
|
-
spec.version = '0.
|
8
|
+
spec.version = '0.3.0'
|
9
9
|
spec.authors = ['Robert Wierzbowski', "Brendan Tobolaski"]
|
10
10
|
spec.email = ['hello@robwierzbowski.com', "brendan@tobolaski.com"]
|
11
11
|
|
@@ -28,5 +28,5 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.add_dependency 'mini_magick', '~> 3.8.0'
|
30
30
|
spec.add_dependency 'fastimage', '~> 1.6.4'
|
31
|
-
spec.add_runtime_dependency 'jekyll', '<
|
31
|
+
spec.add_runtime_dependency 'jekyll', '< 4'
|
32
32
|
end
|
data/lib/jekyll-picture-tag.rb
CHANGED
@@ -39,6 +39,7 @@ module Jekyll
|
|
39
39
|
# Gather settings
|
40
40
|
site = context.registers[:site]
|
41
41
|
settings = site.config['picture']
|
42
|
+
url = site.config['url']
|
42
43
|
markup = /^(?:(?<preset>[^\s.:\/]+)\s+)?(?<image_src>[^\s]+\.[a-zA-Z0-9]{3,4})\s*(?<source_src>(?:(source_[^\s.:\/]+:\s+[^\s]+\.[a-zA-Z0-9]{3,4})\s*)+)?(?<html_attr>[\s\S]+)?$/.match(render_markup)
|
43
44
|
preset = settings['presets'][ markup[:preset] ] || settings['presets']['default']
|
44
45
|
|
@@ -150,17 +151,26 @@ module Jekyll
|
|
150
151
|
if settings['markup'] == 'picture'
|
151
152
|
|
152
153
|
source_tags = ''
|
153
|
-
source_keys.each
|
154
|
+
source_keys.each do |source|
|
154
155
|
media = " media=\"#{instance[source]['media']}\"" unless source == 'source_default'
|
155
|
-
source_tags += "#{markdown_escape * 4}<source srcset=\"#{instance[source][:generated_src]}\"#{media}>\n"
|
156
|
-
|
156
|
+
source_tags += "#{markdown_escape * 4}<source srcset=\"#{url}#{instance[source][:generated_src]}\"#{media}>\n"
|
157
|
+
end
|
157
158
|
|
158
159
|
# Note: we can't indent html output because markdown parsers will turn 4 spaces into code blocks
|
159
160
|
# Note: Added backslash+space escapes to bypass markdown parsing of indented code below -WD
|
160
161
|
picture_tag = "<picture>\n"\
|
161
162
|
"#{source_tags}"\
|
162
|
-
"#{markdown_escape * 4}<img
|
163
|
+
"#{markdown_escape * 4}<img src=\"#{url}#{instance['source_default'][:generated_src]}\" #{html_attr_string}>\n"\
|
163
164
|
"#{markdown_escape * 2}</picture>\n"
|
165
|
+
elsif settings['markup'] == 'interchange'
|
166
|
+
|
167
|
+
interchange_data = Array.new
|
168
|
+
source_keys.reverse.each do |source|
|
169
|
+
interchange_data << "[#{url}#{instance[source][:generated_src]}, #{source == 'source_default' ? '(default)' : instance[source]['media']}]"
|
170
|
+
end
|
171
|
+
|
172
|
+
picture_tag = %Q{<img data-interchange="#{interchange_data.join ', '}" #{html_attr_string} />\n}
|
173
|
+
picture_tag += %Q{<noscript><img src="#{url}#{instance['source_default'][:generated_src]}" #{html_attr_string} /></noscript>}
|
164
174
|
|
165
175
|
elsif settings['markup'] == 'img'
|
166
176
|
# TODO implement <img srcset/sizes>
|
@@ -171,7 +181,12 @@ module Jekyll
|
|
171
181
|
end
|
172
182
|
|
173
183
|
def generate_image(instance, site_source, site_dest, image_source, image_dest, baseurl)
|
174
|
-
|
184
|
+
begin
|
185
|
+
digest = Digest::MD5.hexdigest(File.read(File.join(site_source, image_source, instance[:src]))).slice!(0..5)
|
186
|
+
rescue Errno::ENOENT
|
187
|
+
warn "Warning:".yellow + " source image #{instance[:src]} is missing."
|
188
|
+
return ""
|
189
|
+
end
|
175
190
|
|
176
191
|
image_dir = File.dirname(instance[:src])
|
177
192
|
ext = File.extname(instance[:src])
|
data/readme.md
CHANGED
@@ -128,6 +128,9 @@ Defaults to `{compiled Jekyll site}/generated`.
|
|
128
128
|
|
129
129
|
Choose `picture` to output markup based on the `<picture>` element. Future options may include `srcset` but have not yet been implemented.
|
130
130
|
|
131
|
+
Choose `interchange` to use markup compatible with
|
132
|
+
[ZURB Foundation's Interchange](http://foundation.zurb.com/docs/components/interchange.html).
|
133
|
+
|
131
134
|
#### presets
|
132
135
|
|
133
136
|
Presets contain reusable settings for a Jekyll Picture Tag. Each is made up of a list of sources, and an optional attributes list and ppi array.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-picture-tag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Robert Wierzbowski
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-10-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -73,14 +73,14 @@ dependencies:
|
|
73
73
|
requirements:
|
74
74
|
- - "<"
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
version: '
|
76
|
+
version: '4'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
81
|
- - "<"
|
82
82
|
- !ruby/object:Gem::Version
|
83
|
-
version: '
|
83
|
+
version: '4'
|
84
84
|
description: |2
|
85
85
|
Jekyll Picture Tag is a liquid tag that adds responsive images to your Jekyll static site. It follows the picture
|
86
86
|
element pattern, and polyfills older browsers with Picturefill. Jekyll Picture Tag automatically creates resized
|