jekyll-thumbnail-img 0.1.2 → 0.1.3

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/jekyll-thumbnail-img.rb +23 -9
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2aac91c9210d6650d7870b5a70c2477ddac7d7f72b754adcdd02af0b1a7b988
4
- data.tar.gz: f5234e4e9f262d3036d4ca62bb2d1cddaf747978cd4ebda013c18ff4ccfb138d
3
+ metadata.gz: 4610d0ffe9ada041ca0c4e403704035b7289e88aff074f197232899198587d3d
4
+ data.tar.gz: fef606de0dc20dac143b832ecf2c4cd2eb9507f46aa0378fe933763a6cd69ab2
5
5
  SHA512:
6
- metadata.gz: 358d4723d03ee22488fef29ace01225445fb668152600219a28323369c242478d2f173204993bcd739e55d22510dcf104deaf98c022940138129dd63912843ba
7
- data.tar.gz: f720d8d0bd21ec8cd054113ce8ff9aba228d2617523e8c3c5113961c8db81dc7650272c68c987389ad950bf59c187284a13e5eee1963c7cddb82baf8cf951930
6
+ metadata.gz: 602cbf1217eb6c9cbd2934d34900ddd4294e65daf5af5b8abe1355af95f2f0142f7d9ea634b49e3e31dd87663b6874c4b158a6988c3be2041637310a330a6a84
7
+ data.tar.gz: 04ccd21c66b4e7f1ff3e65388cc609db794255cbe2e2c1fc12327f51f8823af11929215cb04fcc5fc7d646da8256cec75a7d69df12f4514c9e8b6cc10b803aa3
@@ -12,30 +12,44 @@ module Jekyll
12
12
 
13
13
  def render(context)
14
14
  source, width = @markup.split.map(&:strip)
15
- source = context[source] if context[source] # resolve liquid vars
15
+ # resolve liquid vars
16
+ source = context[source] if context[source]
17
+ width = context[width] if context[width]
16
18
 
17
19
  raise "Usage: {% thumbnail_img /path/to/image.png 500 %}" unless source && width
18
- raise "File #{source} not found" unless File.exist?(File.join(context.registers[:site].source, source))
20
+
21
+ site = context.registers[:site]
22
+ raise "File #{source} not found" unless File.exist?(File.join(site.source, source))
19
23
 
20
24
  # Queue thumbnail for generation
21
- dest = File.join(File.dirname(source), "thumbnails", "#{File.basename(source, '.*')}_#{width}w#{File.extname(source)}")
25
+ thumb_filename = "#{File.basename(source, '.*')}_#{width}w#{File.extname(source)}"
26
+ cache_dir = File.join(site.config["cache_dir"], "jekyll-thumbnail-img/img-cache", File.dirname(source), "thumbnails")
27
+ dest = File.join(File.dirname(source), "thumbnails", thumb_filename)
28
+
29
+ # Add to pending list if not already there
22
30
  @@pending << {
23
- source: File.join(context.registers[:site].source, source),
24
- dest: File.join(context.registers[:site].dest, dest),
31
+ source: File.join(site.source, source),
32
+ cache: File.join(cache_dir, thumb_filename),
33
+ dest: File.join(site.dest, dest),
25
34
  width: width
26
- }
35
+ } unless @@pending.any? { |thumb| thumb[:source] == source && thumb[:width] == width }
27
36
 
28
37
  dest
29
38
  end
30
39
 
31
40
  def self.generate_thumbnails(site)
32
41
  @@pending.each do |thumb|
42
+ FileUtils.mkdir_p(File.dirname(thumb[:cache]))
33
43
  FileUtils.mkdir_p(File.dirname(thumb[:dest]))
34
- # Check if thumbnail doesn't exist or if the source file was modified more recently than the thumbnail
35
- if !File.exist?(thumb[:dest]) || File.mtime(thumb[:dest]) <= File.mtime(thumb[:source])
44
+
45
+ # Generate thumbnail if not already generated or source is newer
46
+ if !File.exist?(thumb[:cache]) || File.mtime(thumb[:cache]) <= File.mtime(thumb[:source])
36
47
  Jekyll.logger.info "JekyllThumbnailImg:", "Generating: #{thumb[:dest].sub(site.dest + '/', '')}"
37
- MiniMagick::Image.open(thumb[:source]).resize("#{thumb[:width]}x").write(thumb[:dest])
48
+ MiniMagick::Image.open(thumb[:source]).resize("#{thumb[:width]}x").write(thumb[:cache])
38
49
  end
50
+
51
+ # Copy from cache to destination
52
+ FileUtils.cp(thumb[:cache], thumb[:dest])
39
53
  end
40
54
  @@pending.clear
41
55
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-thumbnail-img
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abhishek Paudel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-26 00:00:00.000000000 Z
11
+ date: 2025-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll