Module: Bridgetown::Cloudinary::Utils

Defined in:
lib/bridgetown-cloudinary/utils.rb

Class Method Summary collapse

Class Method Details

.add_image_urls_to_documents(site, config) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/bridgetown-cloudinary/utils.rb', line 21

def self.add_image_urls_to_documents(site, config)
  (site.documents + site.pages).each do |page|
    next unless page.data[:cloudinary_id] && !page.data[:image]

    page.data[:image] = {
      path: url(
        config: config,
        id: page.data[:cloudinary_id],
        transformation: nil
      ),
    }
    next unless config[:add_transformed_urls_to_image_front_matter]

    config[:transformations].each_key do |transformation|
      page.data[:image][transformation] = url(
        config: config,
        id: page.data[:cloudinary_id],
        transformation: transformation
      )
    end
  end
end

.url(config:, id:, transformation:) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/bridgetown-cloudinary/utils.rb', line 6

def self.url(config:, id:, transformation:)
  transformation = if transformation
                     "/#{config[:transformations][transformation]}"
                   else
                     "/#{config[:transformations][config[:default_transformation]]}"
                   end
  image_format = config[:default_image_format]

  cloudinary_url = ::Cloudinary::Utils.cloudinary_url(
    id, { format: image_format }
  )

  cloudinary_url&.sub("/image/upload", "/image/upload#{transformation}")
end