anti_image_reflow 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f44d39bbd484acb93d0a7b81c95aba1487dee78ffbc2becb445f91f6c07a140b
4
- data.tar.gz: fb3e9c5e592c8069c076c2cf0d3d78fa5fea013b1e65fdcc34b43119310c2d27
3
+ metadata.gz: 866a8a309fffb2d9e7b3b72d232cebf094ce2cf52bdd9e1d4ea1bd1e6ddea2d1
4
+ data.tar.gz: a3ca9fc75e290ff8c1c2454bfa821b37c7e7e3b77986977ab3e7d0ee3a5c2f83
5
5
  SHA512:
6
- metadata.gz: 30d7b71050eb05e4d0c7441f257e07ce48bd991a65ab27852c88a308e0ca60a6b3ee8ad2423a80ec50acba1a3aa7e9fa06f9ca2c43e598040df492df40867137
7
- data.tar.gz: 4d4ce5945808868b276739100f06828915673a2a07dd980b172c4654f640707fbd70c5a3953cecd92625f25e0493ddfa101ae0c3e29aa871eec6714b830c8a90
6
+ metadata.gz: 0105d7930937c65c4246ea9fdfc0d2478af1ee5885f325f313a360900b761c4f00c1ebe19fb70bcb69b96d96fe0f2402695ed9612c83035546fd735526559ac9
7
+ data.tar.gz: c117487d6bba3a53764084fa40fb9b3de45088cce3b3adfe5659479fa32dea28a4ce98c63aa965f186ba21148b4be9ed52006ee436b9fb2f0cac9998a55712d9
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AntiImageReflow
4
- VERSION = "0.1.0"
4
+ VERSION = "0.1.1"
5
5
  end
@@ -6,48 +6,46 @@ require "jekyll"
6
6
  require "nokogiri"
7
7
  require "fastimage"
8
8
 
9
- #module AntiImageReflow
10
- # class Error < StandardError; end
11
- # # Your code goes here...
12
- #end
13
-
14
9
  module Jekyll
15
- class AntiImageReflow
16
- def self.process(content)
17
- html = content.output
18
- content.output = process_tags(html) if process_tags?(html)
19
- end
20
-
21
- def self.process?(doc)
22
- (doc.is_a?(Jekyll::Page) || doc.write?) && doc.output_ext == ".html" || doc.permalink&.end_with?("/")
23
- end
24
-
25
- def self.process_tags?(html)
26
- html.include?("<img") || html.include?("<iframe")
27
- end
28
-
29
- def self.process_tags(html)
30
- content = Nokogiri.HTML(html)
31
- tags = content.css("img[src]")
32
-
33
- tags.each do |tag|
34
- # add height and width attributes
35
- if tag.name == "img"
36
- size = FastImage.size(File.join(Dir.pwd, tag["src"]))
37
- tag["width"] = size[0] unless tag["width"] || size.nil?
38
- tag["height"] = size[1] unless tag["height"] || size.nil?
39
- tag["loading"] = "lazy" unless tag["loading"]
40
- end
41
- end
42
-
43
- content.to_html
44
- end
45
-
46
- private_class_method :process_tags
47
- private_class_method :process_tags?
48
- end
10
+ class AntiImageReflow
11
+ def self.process(content)
12
+ html = content.output
13
+ content.output = process_tags(html) if process_tags?(html)
14
+ end
15
+
16
+ def self.process?(doc)
17
+ (doc.is_a?(Jekyll::Page) || doc.write?) && doc.output_ext == ".html" || doc.permalink&.end_with?("/")
18
+ end
19
+
20
+ def self.process_tags?(html)
21
+ html.include?("<img") || html.include?("<iframe")
22
+ end
23
+
24
+ def self.process_tags(html)
25
+ content = Nokogiri.HTML(html)
26
+ tags = content.css("img[src]")
27
+
28
+ tags.each do |tag|
29
+ # add height and width attributes
30
+ if tag.name == "img"
31
+ path = File.join(Dir.pwd, tag["src"])
32
+ # check if file exists
33
+ if File.exist?(path)
34
+ size = FastImage.size(path)
35
+ tag["width"] = size[0] unless tag["width"] || size.nil?
36
+ tag["height"] = size[1] unless tag["height"] || size.nil?
37
+ tag["loading"] = "lazy" unless tag["loading"]
38
+ end
39
+ end
40
+ end
41
+ content.to_html
42
+ end
43
+
44
+ private_class_method :process_tags
45
+ private_class_method :process_tags?
46
+ end
49
47
  end
50
48
 
51
49
  Jekyll::Hooks.register [:pages, :documents], :post_render do |doc|
52
- Jekyll::AntiImageReflow.process(doc) if Jekyll::AntiImageReflow.process?(doc)
50
+ Jekyll::AntiImageReflow.process(doc) if Jekyll::AntiImageReflow.process?(doc)
53
51
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: anti_image_reflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zachary Smith
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-27 00:00:00.000000000 Z
11
+ date: 2023-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll