anti_image_reflow 0.1.0 → 0.1.2
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 +8 -0
- data/anti_image_reflow.gemspec +2 -2
- data/lib/anti_image_reflow/version.rb +1 -1
- data/lib/anti_image_reflow.rb +38 -40
- metadata +6 -6
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 67b9298dfb8a7fa25139754f4d54829d120610bd2320976e8d04a34c8f5b9fd3
         | 
| 4 | 
            +
              data.tar.gz: c4feccce130d543aa25f2dcaf44a93cde86270ecb6d397be81285ea669c71593
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 7a7e0b3922f43ceed48ebd03e29d8ad688a4d9dd677f90a3931e098b14b311d761bc29f7b9affe57d9e73e4a29acefe48358e0dbf373a8b03cfb800eb65448e0
         | 
| 7 | 
            +
              data.tar.gz: f4935acdc2014ac7b9b56432556df2936b195b957dc9573ece0ebd317f2c8ab0f1d0b27ecf5caf126d0f97ebdc06bb4bfd89bdfa488e7739f39a149bac6fe2ed
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/anti_image_reflow.gemspec
    CHANGED
    
    | @@ -23,8 +23,8 @@ Gem::Specification.new do |spec| | |
| 23 23 |  | 
| 24 24 | 
             
              spec.platform = Gem::Platform::RUBY
         | 
| 25 25 | 
             
              spec.add_runtime_dependency "jekyll", "~> 4.3"
         | 
| 26 | 
            -
              spec.add_runtime_dependency "nokogiri", '~> 1. | 
| 27 | 
            -
              spec.add_runtime_dependency "fastimage", '~> 2.2'
         | 
| 26 | 
            +
              spec.add_runtime_dependency "nokogiri", '~> 1.14'
         | 
| 27 | 
            +
              spec.add_runtime_dependency "fastimage", '~> 2.2.6'
         | 
| 28 28 |  | 
| 29 29 | 
             
              # For more information and examples about making a new gem, check out our
         | 
| 30 30 | 
             
              # guide at: https://bundler.io/guides/creating_gem.html
         | 
    
        data/lib/anti_image_reflow.rb
    CHANGED
    
    | @@ -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 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 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 | 
            -
             | 
| 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. | 
| 4 | 
            +
              version: 0.1.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Zachary Smith
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2023-01-16 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: jekyll
         | 
| @@ -30,28 +30,28 @@ dependencies: | |
| 30 30 | 
             
                requirements:
         | 
| 31 31 | 
             
                - - "~>"
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '1. | 
| 33 | 
            +
                    version: '1.14'
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 38 | 
             
                - - "~>"
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: '1. | 
| 40 | 
            +
                    version: '1.14'
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: fastimage
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 45 | 
             
                - - "~>"
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 | 
            -
                    version:  | 
| 47 | 
            +
                    version: 2.2.6
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 52 | 
             
                - - "~>"
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version:  | 
| 54 | 
            +
                    version: 2.2.6
         | 
| 55 55 | 
             
            description:
         | 
| 56 56 | 
             
            email:
         | 
| 57 57 | 
             
            - zachsmith.dev@gmail.com
         |