jekyll-og-image 1.0.5 → 1.2.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/.rspec_status +7 -5
- data/README.md +45 -0
- data/examples/3.png +0 -0
- data/examples/4.png +0 -0
- data/lib/jekyll_og_image/config.rb +32 -3
- data/lib/jekyll_og_image/element/base.rb +8 -0
- data/lib/jekyll_og_image/element/canvas.rb +13 -2
- data/lib/jekyll_og_image/element/image.rb +2 -10
- data/lib/jekyll_og_image/generator.rb +29 -14
- data/lib/jekyll_og_image/version.rb +1 -1
- metadata +9 -8
- data/jekyll-og-image.gemspec +0 -34
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 3d7ab3e37756339d3435bb110e3e612476888bea4ba020115ebc25e45708e9d5
         | 
| 4 | 
            +
              data.tar.gz: 2940f89d8f183a158d8cb4da4a0ee5859ae1f414acf272ad5928c7302ad2f494
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 163fc1a8a585391ab60f6e233291497275b2902a0d13e397211af6a610606ad510e33e8d98fbb153ad1ee943cd86d00e5bcf359527a52c51c05bd51b97774a4e
         | 
| 7 | 
            +
              data.tar.gz: 946b88643e7b584ab44114e7fc6e94578b53ccfe156c5758b93ae93099b2e442f13edc10c23c5541215ba229fa2b76fa69af8dcb186ef777e5745fb5c48b0573
         | 
    
        data/.rspec_status
    CHANGED
    
    | @@ -1,5 +1,7 @@ | |
| 1 | 
            -
            example_id | 
| 2 | 
            -
             | 
| 3 | 
            -
            ./spec/ | 
| 4 | 
            -
            ./spec/ | 
| 5 | 
            -
            ./spec/ | 
| 1 | 
            +
            example_id                                     | status | run_time        |
         | 
| 2 | 
            +
            ---------------------------------------------- | ------ | --------------- |
         | 
| 3 | 
            +
            ./spec/jekyll_og_image/config_spec.rb[1:1:1:1] | passed | 0.00069 seconds |
         | 
| 4 | 
            +
            ./spec/jekyll_og_image/config_spec.rb[1:1:2:1] | passed | 0.00014 seconds |
         | 
| 5 | 
            +
            ./spec/jekyll_og_image/version_spec.rb[1:1]    | passed | 0.00031 seconds |
         | 
| 6 | 
            +
            ./spec/jekyll_og_image_spec.rb[1:1]            | passed | 0.26017 seconds |
         | 
| 7 | 
            +
            ./spec/jekyll_og_image_spec.rb[1:2]            | passed | 0.04281 seconds |
         | 
    
        data/README.md
    CHANGED
    
    | @@ -61,6 +61,51 @@ og_image: | |
| 61 61 |  | 
| 62 62 | 
             
            
         | 
| 63 63 |  | 
| 64 | 
            +
            ### Background Color and Text Color
         | 
| 65 | 
            +
             | 
| 66 | 
            +
            ```yaml
         | 
| 67 | 
            +
            og_image:
         | 
| 68 | 
            +
              output_dir: "/assets/og"
         | 
| 69 | 
            +
              image: "/assets/images/igor.jpeg"
         | 
| 70 | 
            +
              canvas:
         | 
| 71 | 
            +
                background_color: "#F9E065"
         | 
| 72 | 
            +
              header:
         | 
| 73 | 
            +
                font_family: "Roboto, Bold"
         | 
| 74 | 
            +
                color: "#333333"
         | 
| 75 | 
            +
              content:
         | 
| 76 | 
            +
                font_family: "Roboto, Regular"
         | 
| 77 | 
            +
                color: "#333333"
         | 
| 78 | 
            +
              force: false
         | 
| 79 | 
            +
              domain: "igor.works"
         | 
| 80 | 
            +
              border_bottom:
         | 
| 81 | 
            +
                width: 50
         | 
| 82 | 
            +
                fill:
         | 
| 83 | 
            +
                  - "#002B7F"
         | 
| 84 | 
            +
                  - "#FCD116"
         | 
| 85 | 
            +
                  - "#CE1126"
         | 
| 86 | 
            +
            ```
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            ### Background Image
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            ```yaml
         | 
| 93 | 
            +
            og_image:
         | 
| 94 | 
            +
              output_dir: "/assets/og"
         | 
| 95 | 
            +
              image: "/assets/images/igor.jpeg"
         | 
| 96 | 
            +
              canvas:
         | 
| 97 | 
            +
                background_image: "/assets/images/bc_3.jpg"
         | 
| 98 | 
            +
              header:
         | 
| 99 | 
            +
                font_family: "Roboto, Bold"
         | 
| 100 | 
            +
                color: "#333333"
         | 
| 101 | 
            +
              content:
         | 
| 102 | 
            +
                font_family: "Roboto, Bold"
         | 
| 103 | 
            +
                color: "#333333"
         | 
| 104 | 
            +
              force: false
         | 
| 105 | 
            +
              domain: "igor.works"
         | 
| 106 | 
            +
            ```
         | 
| 107 | 
            +
             | 
| 108 | 
            +
            
         | 
| 64 109 |  | 
| 65 110 |  | 
| 66 111 | 
             
            ## Contributing
         | 
    
        data/examples/3.png
    ADDED
    
    | Binary file | 
    
        data/examples/4.png
    ADDED
    
    | Binary file | 
| @@ -5,11 +5,36 @@ require "anyway_config" | |
| 5 5 | 
             
            class JekyllOgImage::Config < Anyway::Config
         | 
| 6 6 | 
             
              attr_config output_dir: "assets/images/og"
         | 
| 7 7 | 
             
              attr_config force: false
         | 
| 8 | 
            +
              attr_config verbose: false
         | 
| 9 | 
            +
              attr_config canvas: {
         | 
| 10 | 
            +
                background_color: "#FFFFFF",
         | 
| 11 | 
            +
                background_image: nil
         | 
| 12 | 
            +
              }
         | 
| 13 | 
            +
              attr_config header: {
         | 
| 14 | 
            +
                font_family: "Helvetica, Bold",
         | 
| 15 | 
            +
                color: "#2f313d"
         | 
| 16 | 
            +
              }
         | 
| 17 | 
            +
              attr_config content: {
         | 
| 18 | 
            +
                font_family: "Helvetica, Regular",
         | 
| 19 | 
            +
                color: "#535358"
         | 
| 20 | 
            +
              }
         | 
| 8 21 | 
             
              attr_config :image
         | 
| 9 22 | 
             
              attr_config :domain
         | 
| 10 | 
            -
              attr_config border_bottom | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 23 | 
            +
              attr_config :border_bottom
         | 
| 24 | 
            +
             | 
| 25 | 
            +
              coerce_types canvas: {
         | 
| 26 | 
            +
                background_color: { type: :string },
         | 
| 27 | 
            +
                background_image: { type: :string }
         | 
| 28 | 
            +
              }
         | 
| 29 | 
            +
             | 
| 30 | 
            +
              coerce_types header: {
         | 
| 31 | 
            +
                font_family: { type: :string },
         | 
| 32 | 
            +
                color: { type: :string }
         | 
| 33 | 
            +
              }
         | 
| 34 | 
            +
             | 
| 35 | 
            +
              coerce_types content: {
         | 
| 36 | 
            +
                font_family: { type: :string },
         | 
| 37 | 
            +
                color: { type: :string }
         | 
| 13 38 | 
             
              }
         | 
| 14 39 |  | 
| 15 40 | 
             
              coerce_types image: { type: :string }
         | 
| @@ -18,4 +43,8 @@ class JekyllOgImage::Config < Anyway::Config | |
| 18 43 | 
             
                width: { type: :integer },
         | 
| 19 44 | 
             
                fill: { type: :string, array: true }
         | 
| 20 45 | 
             
              }
         | 
| 46 | 
            +
             | 
| 47 | 
            +
              def margin_bottom
         | 
| 48 | 
            +
                80 + (border_bottom&.fetch("width", 0) || 0)
         | 
| 49 | 
            +
              end
         | 
| 21 50 | 
             
            end
         | 
| @@ -22,6 +22,14 @@ class JekyllOgImage::Element::Base | |
| 22 22 | 
             
                end
         | 
| 23 23 | 
             
              end
         | 
| 24 24 |  | 
| 25 | 
            +
              def calculate_ratio(image, width, height, mode)
         | 
| 26 | 
            +
                if mode == :min
         | 
| 27 | 
            +
                  [ width.to_f / image.width, height.to_f / image.height ].min
         | 
| 28 | 
            +
                else
         | 
| 29 | 
            +
                  [ width.to_f / image.width, height.to_f / image.height ].max
         | 
| 30 | 
            +
                end
         | 
| 31 | 
            +
              end
         | 
| 32 | 
            +
             | 
| 25 33 | 
             
              def composite_with_gravity(canvas, overlay, x, y)
         | 
| 26 34 | 
             
                if gravity_nw?
         | 
| 27 35 | 
             
                  canvas.composite(overlay, :over, x: [ x ], y: [ y ]).flatten
         | 
| @@ -3,8 +3,19 @@ | |
| 3 3 | 
             
            require "vips"
         | 
| 4 4 |  | 
| 5 5 | 
             
            class JekyllOgImage::Element::Canvas < JekyllOgImage::Element::Base
         | 
| 6 | 
            -
              def initialize(width, height,  | 
| 7 | 
            -
                @canvas = Vips::Image.black(width, height).ifthenelse([ 0, 0, 0 ], hex_to_rgb( | 
| 6 | 
            +
              def initialize(width, height, background_color: "#ffffff", background_image: nil)
         | 
| 7 | 
            +
                @canvas = Vips::Image.black(width, height).ifthenelse([ 0, 0, 0 ], hex_to_rgb(background_color))
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                if background_image
         | 
| 10 | 
            +
                  overlay = Vips::Image.new_from_buffer(background_image, "")
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  ratio = calculate_ratio(overlay, width, height, :max)
         | 
| 13 | 
            +
                  overlay = overlay.resize(ratio)
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                  @canvas = @canvas.composite(overlay, :over, x: [ 0 ], y: [ 0 ]).flatten
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                @canvas
         | 
| 8 19 | 
             
              end
         | 
| 9 20 |  | 
| 10 21 | 
             
              def image(source, **opts, &block)
         | 
| @@ -15,13 +15,13 @@ class JekyllOgImage::Element::Image < JekyllOgImage::Element::Base | |
| 15 15 | 
             
                image = Vips::Image.new_from_buffer(@source, "")
         | 
| 16 16 | 
             
                image = round_corners(image) if @radius
         | 
| 17 17 |  | 
| 18 | 
            -
                result = block.call(canvas, image) if block_given?
         | 
| 19 | 
            -
             | 
| 20 18 | 
             
                if @width && @height
         | 
| 21 19 | 
             
                  ratio = calculate_ratio(image, @width, @height, :min)
         | 
| 22 20 | 
             
                  image = image.resize(ratio)
         | 
| 23 21 | 
             
                end
         | 
| 24 22 |  | 
| 23 | 
            +
                result = block.call(canvas, image) if block_given?
         | 
| 24 | 
            +
             | 
| 25 25 | 
             
                x, y = result ? [ result.fetch(:x, 0), result.fetch(:y, 0) ] : [ 0, 0 ]
         | 
| 26 26 |  | 
| 27 27 | 
             
                composite_with_gravity(canvas, image, x, y)
         | 
| @@ -53,12 +53,4 @@ class JekyllOgImage::Element::Image < JekyllOgImage::Element::Base | |
| 53 53 | 
             
                mask = Vips::Image.new_from_buffer(mask, "")
         | 
| 54 54 | 
             
                image.bandjoin mask[3]
         | 
| 55 55 | 
             
              end
         | 
| 56 | 
            -
             | 
| 57 | 
            -
              def calculate_ratio(image, width, height, mode)
         | 
| 58 | 
            -
                if mode == :min
         | 
| 59 | 
            -
                  [ width.to_f / image.width, height.to_f / image.height ].min
         | 
| 60 | 
            -
                else
         | 
| 61 | 
            -
                  [ width.to_f / image.width, height.to_f / image.height ].max
         | 
| 62 | 
            -
                end
         | 
| 63 | 
            -
              end
         | 
| 64 56 | 
             
            end
         | 
| @@ -15,10 +15,10 @@ class JekyllOgImage::Generator < Jekyll::Generator | |
| 15 15 | 
             
                  path = File.join(site.config["source"], base_path, "#{post.data['slug']}.png")
         | 
| 16 16 |  | 
| 17 17 | 
             
                  if !File.exist?(path) || JekyllOgImage.config.force?
         | 
| 18 | 
            -
                    Jekyll.logger.info "Jekyll Og Image:", "Generating image #{path}"
         | 
| 18 | 
            +
                    Jekyll.logger.info "Jekyll Og Image:", "Generating image #{path}" if JekyllOgImage.config.verbose?
         | 
| 19 19 | 
             
                    generate_image_for_post(site, post, path)
         | 
| 20 20 | 
             
                  else
         | 
| 21 | 
            -
                    Jekyll.logger.info "Jekyll Og Image:", "Skipping image generation #{path} as it already exists."
         | 
| 21 | 
            +
                    Jekyll.logger.info "Jekyll Og Image:", "Skipping image generation #{path} as it already exists." if JekyllOgImage.config.verbose?
         | 
| 22 22 | 
             
                  end
         | 
| 23 23 |  | 
| 24 24 | 
             
                  post.data["image"] ||= {
         | 
| @@ -35,11 +35,21 @@ class JekyllOgImage::Generator < Jekyll::Generator | |
| 35 35 | 
             
              def generate_image_for_post(site, post, path)
         | 
| 36 36 | 
             
                date = post.date.strftime("%B %d, %Y")
         | 
| 37 37 |  | 
| 38 | 
            -
                 | 
| 39 | 
            -
                  . | 
| 38 | 
            +
                background_image = if JekyllOgImage.config.canvas["background_image"]
         | 
| 39 | 
            +
                  File.read(File.join(site.config["source"], JekyllOgImage.config.canvas["background_image"]))
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                canvas = JekyllOgImage::Element::Canvas.new(1200, 600,
         | 
| 43 | 
            +
                  background_color: JekyllOgImage.config.canvas["background_color"],
         | 
| 44 | 
            +
                  background_image: background_image
         | 
| 45 | 
            +
                )
         | 
| 46 | 
            +
             | 
| 47 | 
            +
                if JekyllOgImage.config.border_bottom
         | 
| 48 | 
            +
                  canvas = canvas.border(JekyllOgImage.config.border_bottom["width"],
         | 
| 40 49 | 
             
                    position: :bottom,
         | 
| 41 50 | 
             
                    fill: JekyllOgImage.config.border_bottom["fill"]
         | 
| 42 51 | 
             
                  )
         | 
| 52 | 
            +
                end
         | 
| 43 53 |  | 
| 44 54 | 
             
                if JekyllOgImage.config.image
         | 
| 45 55 | 
             
                  canvas = canvas.image(
         | 
| @@ -53,34 +63,39 @@ class JekyllOgImage::Generator < Jekyll::Generator | |
| 53 63 |  | 
| 54 64 | 
             
                canvas = canvas.text(post.data["title"],
         | 
| 55 65 | 
             
                  width: JekyllOgImage.config.image ? 870 : 1040,
         | 
| 56 | 
            -
                  color: " | 
| 66 | 
            +
                  color: JekyllOgImage.config.header["color"],
         | 
| 57 67 | 
             
                  dpi: 400,
         | 
| 58 | 
            -
                  font: " | 
| 68 | 
            +
                  font: JekyllOgImage.config.header["font_family"]
         | 
| 59 69 | 
             
                ) { |_canvas, _text| { x: 80, y: 100 } }
         | 
| 60 70 |  | 
| 61 71 | 
             
                canvas = canvas.text(date,
         | 
| 62 72 | 
             
                  gravity: :sw,
         | 
| 63 | 
            -
                  color: " | 
| 73 | 
            +
                  color: JekyllOgImage.config.content["color"],
         | 
| 64 74 | 
             
                  dpi: 150,
         | 
| 65 | 
            -
                  font: " | 
| 66 | 
            -
                ) { |_canvas, _text| { x: 80, y: post.data["tags"].any? ?  | 
| 75 | 
            +
                  font: JekyllOgImage.config.content["font_family"]
         | 
| 76 | 
            +
                ) { |_canvas, _text| { x: 80, y: post.data["tags"].any? ? JekyllOgImage.config.margin_bottom + 50 : JekyllOgImage.config.margin_bottom } }
         | 
| 67 77 |  | 
| 68 78 | 
             
                if post.data["tags"].any?
         | 
| 69 79 | 
             
                  tags = post.data["tags"].map { |tag| "##{tag}" }.join(" ")
         | 
| 70 80 |  | 
| 71 81 | 
             
                  canvas = canvas.text(tags,
         | 
| 72 82 | 
             
                    gravity: :sw,
         | 
| 73 | 
            -
                    color: " | 
| 83 | 
            +
                    color: JekyllOgImage.config.content["color"],
         | 
| 74 84 | 
             
                    dpi: 150,
         | 
| 75 | 
            -
                    font: " | 
| 76 | 
            -
                  ) { |_canvas, _text| { x: 80, y:  | 
| 85 | 
            +
                    font: JekyllOgImage.config.content["font_family"]
         | 
| 86 | 
            +
                  ) { |_canvas, _text| { x: 80, y: JekyllOgImage.config.margin_bottom } }
         | 
| 77 87 | 
             
                end
         | 
| 78 88 |  | 
| 79 89 | 
             
                if JekyllOgImage.config.domain
         | 
| 80 | 
            -
                  canvas = canvas.text(JekyllOgImage.config.domain, | 
| 90 | 
            +
                  canvas = canvas.text(JekyllOgImage.config.domain,
         | 
| 91 | 
            +
                    gravity: :se,
         | 
| 92 | 
            +
                    color: JekyllOgImage.config.content["color"],
         | 
| 93 | 
            +
                    dpi: 150,
         | 
| 94 | 
            +
                    font: JekyllOgImage.config.content["font_family"]
         | 
| 95 | 
            +
                  ) do |_canvas, _text|
         | 
| 81 96 | 
             
                    {
         | 
| 82 97 | 
             
                      x: 80,
         | 
| 83 | 
            -
                      y: post.data["tags"].any? ?  | 
| 98 | 
            +
                      y: post.data["tags"].any? ? JekyllOgImage.config.margin_bottom + 50 : JekyllOgImage.config.margin_bottom
         | 
| 84 99 | 
             
                    }
         | 
| 85 100 | 
             
                  end
         | 
| 86 101 | 
             
                end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: jekyll-og-image
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0 | 
| 4 | 
            +
              version: 1.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Igor Alexandrov
         | 
| 8 | 
            -
            autorequire:
         | 
| 8 | 
            +
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2024-02- | 
| 11 | 
            +
            date: 2024-02-14 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: jekyll-seo-tag
         | 
| @@ -86,7 +86,7 @@ dependencies: | |
| 86 86 | 
             
                - - "<"
         | 
| 87 87 | 
             
                  - !ruby/object:Gem::Version
         | 
| 88 88 | 
             
                    version: '5.0'
         | 
| 89 | 
            -
            description:
         | 
| 89 | 
            +
            description: 
         | 
| 90 90 | 
             
            email:
         | 
| 91 91 | 
             
            - igor.alexandrov@gmail.com
         | 
| 92 92 | 
             
            executables: []
         | 
| @@ -102,7 +102,8 @@ files: | |
| 102 102 | 
             
            - Rakefile
         | 
| 103 103 | 
             
            - examples/1.png
         | 
| 104 104 | 
             
            - examples/2.png
         | 
| 105 | 
            -
            -  | 
| 105 | 
            +
            - examples/3.png
         | 
| 106 | 
            +
            - examples/4.png
         | 
| 106 107 | 
             
            - lib/jekyll-og-image.rb
         | 
| 107 108 | 
             
            - lib/jekyll_og_image.rb
         | 
| 108 109 | 
             
            - lib/jekyll_og_image/config.rb
         | 
| @@ -118,7 +119,7 @@ licenses: | |
| 118 119 | 
             
            - MIT
         | 
| 119 120 | 
             
            metadata:
         | 
| 120 121 | 
             
              homepage_uri: https://github.com/igor-alexandrov/jekyll-og-image
         | 
| 121 | 
            -
            post_install_message:
         | 
| 122 | 
            +
            post_install_message: 
         | 
| 122 123 | 
             
            rdoc_options: []
         | 
| 123 124 | 
             
            require_paths:
         | 
| 124 125 | 
             
            - lib
         | 
| @@ -133,8 +134,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 133 134 | 
             
                - !ruby/object:Gem::Version
         | 
| 134 135 | 
             
                  version: '0'
         | 
| 135 136 | 
             
            requirements: []
         | 
| 136 | 
            -
            rubygems_version: 3.5. | 
| 137 | 
            -
            signing_key:
         | 
| 137 | 
            +
            rubygems_version: 3.5.3
         | 
| 138 | 
            +
            signing_key: 
         | 
| 138 139 | 
             
            specification_version: 4
         | 
| 139 140 | 
             
            summary: Jekyll plugin to generate GitHub-style open graph images
         | 
| 140 141 | 
             
            test_files: []
         | 
    
        data/jekyll-og-image.gemspec
    DELETED
    
    | @@ -1,34 +0,0 @@ | |
| 1 | 
            -
            # frozen_string_literal: true
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            require_relative "lib/jekyll_og_image/version"
         | 
| 4 | 
            -
             | 
| 5 | 
            -
            Gem::Specification.new do |spec|
         | 
| 6 | 
            -
              spec.name = "jekyll-og-image"
         | 
| 7 | 
            -
              spec.version = JekyllOgImage::VERSION
         | 
| 8 | 
            -
              spec.authors = [ "Igor Alexandrov" ]
         | 
| 9 | 
            -
              spec.email = [ "igor.alexandrov@gmail.com" ]
         | 
| 10 | 
            -
             | 
| 11 | 
            -
              spec.summary = "Jekyll plugin to generate GitHub-style open graph images"
         | 
| 12 | 
            -
              spec.homepage = "https://github.com/igor-alexandrov/jekyll-og-image"
         | 
| 13 | 
            -
              spec.license = "MIT"
         | 
| 14 | 
            -
              spec.required_ruby_version = ">= 3.2.0"
         | 
| 15 | 
            -
             | 
| 16 | 
            -
              spec.metadata["homepage_uri"] = spec.homepage
         | 
| 17 | 
            -
             | 
| 18 | 
            -
              # Specify which files should be added to the gem when it is released.
         | 
| 19 | 
            -
              # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
         | 
| 20 | 
            -
              spec.files = Dir.chdir(__dir__) do
         | 
| 21 | 
            -
                `git ls-files -z`.split("\x0").reject do |f|
         | 
| 22 | 
            -
                  (File.expand_path(f) == __FILE__) ||
         | 
| 23 | 
            -
                    f.start_with?(*%w[bin/ test/ spec/ features/ .git .github appveyor Gemfile])
         | 
| 24 | 
            -
                end
         | 
| 25 | 
            -
              end
         | 
| 26 | 
            -
             | 
| 27 | 
            -
              spec.require_paths = [ "lib" ]
         | 
| 28 | 
            -
             | 
| 29 | 
            -
              spec.add_dependency "jekyll-seo-tag", "~> 2.8"
         | 
| 30 | 
            -
              spec.add_dependency "zeitwerk", "~> 2.6"
         | 
| 31 | 
            -
              spec.add_dependency "anyway_config", "~> 2.6"
         | 
| 32 | 
            -
              spec.add_dependency "ruby-vips", "~> 2.2.0"
         | 
| 33 | 
            -
              spec.add_runtime_dependency "jekyll", ">= 3.4", "< 5.0"
         | 
| 34 | 
            -
            end
         |