jekyll-flickr 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 881a1741332d21f044fadeecdb3fa58dab7e1ab16f9e6479de353543deca1014
4
- data.tar.gz: a4db748b22cd0a44aa7e649dca5b518aac1fd3e5b53dc4cb0cc9f5d54d729326
3
+ metadata.gz: eb2f0ca419b0edf09cc93e3c122d8bf8c9325c9619951d3be4b35c5f18a0fd39
4
+ data.tar.gz: 78b24210551fd30062797d42460f94abc1a876c90731fe1dca938db93d2f8975
5
5
  SHA512:
6
- metadata.gz: 9c1fe75600c0451107d435ee325889ef0317935329652d1e38e35993270bb1dc9afee2364feef7383ff3b865e052044e183b4a9ffd7c0ad11baf9ba0a50645f7
7
- data.tar.gz: f24e90e92c7c4cda30a8d1ad83d7d34d5fb8b63df36058402c8eee799571b6155c7c5a71d4ffae560e7045163a78e200654b969b768f7b77ae0639dfd570ee7f
6
+ metadata.gz: d681c5b700606cf9547bd8215387f76cdc0cd65c7d51357d313eb474551e69c5e6f850e4807fa94f179aff18d98ecd8c50c0673f5cb6cfacb2641aacfe166b0d
7
+ data.tar.gz: 0f00350dabab634676e742fb53380565a882fbe0e920f4359b4091b40729c13c3fa384d3a84658e9295792ba70596a2790481525778ca168a05457d0028bc95d
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  ## HEAD
2
2
 
3
- ## master 0.2.0 / 2021-02-25
3
+ ## 0.2.1 / 2024-01-01
4
+
5
+ * fix: change cache name according to recommendation from <https://jekyllrb.com/tutorials/cache-api/>
6
+ * feature: Add flexibility to searching for the right picture width and some minor issues (courtesy of <akarwande@coredigital.com>)
7
+
8
+ ## 0.2.0 / 2021-02-25
4
9
 
5
10
  * dependencies: require Jekyll 4.x and use gem flickr instead of flickraw
6
11
  * use native Jekyll cache API (<https://jekyllrb.com/tutorials/cache-api/>) instead of jekyll-cache
@@ -5,6 +5,7 @@ require 'flickr'
5
5
  module Jekyll
6
6
  module Flickr
7
7
  class FlickrTag < Liquid::Tag
8
+ CACHE_NAME = "Jekyll::Flickr::FlickrTag"
8
9
 
9
10
  # selection of sizes from those offered by Flickr API
10
11
  DEFAULT_CONFIG = {
@@ -78,7 +79,7 @@ module Jekyll
78
79
  end
79
80
 
80
81
  def cache
81
- @@cache ||= Jekyll::Cache.new("flickr")
82
+ @@cache ||= Jekyll::Cache.new(CACHE_NAME)
82
83
  end
83
84
 
84
85
  def config
@@ -87,7 +88,7 @@ module Jekyll
87
88
 
88
89
  def render(context)
89
90
 
90
- match = /(?<photo_id>\d+)(\s(\"(?<caption>[^"]+)\"))?(?<attr>.*)/.match @text
91
+ match = /(?<photo_id>\d+)(\s(\"(?<caption>[^"]*)\"))?(?<attr>.*)/.match @text
91
92
 
92
93
  photo_id = match.named_captures['photo_id']
93
94
  photo_caption = match.named_captures['caption']
@@ -104,6 +105,25 @@ module Jekyll
104
105
  photo_sizes = photo_data[:sizes].select{ |photo| widths.include?(photo['width'].to_i) }
105
106
  photo_legacy = photo_data[:sizes].find{ |photo| photo['width'].to_i == config['width_legacy']} || photo_data[:sizes].find{ |photo| photo['label'] == 'Original'}
106
107
 
108
+ # if these sizes are not found, pick the one closes to width_legacy
109
+ unless photo_legacy
110
+ candidate = nil
111
+ smallest_delta = nil
112
+ photo_data[:sizes].each do |photo|
113
+ current_delta = (photo['width'].to_i - config['width_legacy']).abs
114
+ if !smallest_delta || (current_delta < smallest_delta)
115
+ candidate = photo
116
+ smallest_delta = current_delta
117
+ end
118
+ end
119
+ photo_legacy = candidate
120
+ end
121
+
122
+ # if no photo is found return
123
+ unless photo_legacy
124
+ return ""
125
+ end
126
+
107
127
  srcset = photo_sizes.map{|photo| "#{photo['source']} #{photo['width']}w"}.join(", ")
108
128
 
109
129
  sizes = unless photo_attr.include?('sizes=') then
@@ -118,7 +138,7 @@ module Jekyll
118
138
 
119
139
  img_tag = "<img class=\"flickr\" src=\"#{photo_legacy.source}\" srcset=\"#{srcset}\" sizes=\"#{sizes}\" #{photo_attr}>"
120
140
 
121
- return img_tag if not config['figcaption']
141
+ return compute_html_tag(img_tag) if not config['figcaption']
122
142
 
123
143
  photo_license = if config['license'] then
124
144
  license = LICENSES[photo_data[:info].license.to_i]
@@ -141,12 +161,24 @@ module Jekyll
141
161
  ""
142
162
  end
143
163
 
144
- return img_tag if photo_license.empty? and photo_caption.empty?
164
+ return compute_html_tag(img_tag) if photo_license.empty? and photo_caption.empty?
145
165
 
146
166
  return <<-HTML
147
167
  <figure class="flickr">
148
168
  #{img_tag}
149
169
  <figcaption>#{photo_caption}#{photo_license}</figcaption>
170
+ </figure>
171
+ HTML
172
+ end
173
+
174
+ #######
175
+ private
176
+ #######
177
+
178
+ def compute_html_tag(img_tag)
179
+ return <<-HTML
180
+ <figure class="flickr">
181
+ #{img_tag}
150
182
  </figure>
151
183
  HTML
152
184
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Jekyll
4
4
  module Flickr
5
- VERSION = "0.2.0".freeze
5
+ VERSION = "0.2.1".freeze
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-flickr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Riemann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-25 00:00:00.000000000 Z
11
+ date: 2024-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: flickr