@@ -110,15 +110,18 @@ def relative_url(input)
110110 webp_list = [ ]
111111 site . each_site_file do |file |
112112 Link ::HtmlExtension . file [ file . relative_path ] = file
113- if ENV [ "JEKYLL_ENV" ] == "production" && ENV [ "WEBP" ] == "enabled"
114- require "webp-ffi"
115- if file . is_a? ( Jekyll ::StaticFile ) && %w[ .png .jpg .jpeg .tif .tiff ] . include? ( file . extname . downcase )
116- webp_url = "#{ file . url } .webp"
117- destination = File . join ( site . dest , webp_url )
118- FileUtils . mkdir_p ( File . dirname ( destination ) )
119- WebP . encode ( file . path , destination )
120- webp_list . push ( Link ::WebpFile . new ( site , site . dest , File . dirname ( webp_url ) , File . basename ( webp_url ) ) )
121- Link ::HtmlExtension . webp [ file . url ] = webp_url
113+ require "webp-ffi" if ENV [ "JEKYLL_ENV" ] == "production" && ENV [ "WEBP" ] == "enabled"
114+ if file . is_a? ( Jekyll ::StaticFile ) && %w[ .png .jpg .jpeg .tif .tiff ] . include? ( file . extname . downcase )
115+ url = "#{ file . url } .webp"
116+ source = "#{ file . path } .webp"
117+ destination = File . join ( site . dest , url )
118+ if File . exist? ( source ) || ENV [ "JEKYLL_ENV" ] == "production" && ENV [ "WEBP" ] == "enabled"
119+ unless File . exist? ( source )
120+ FileUtils . mkdir_p ( File . dirname ( destination ) )
121+ WebP . encode ( file . path , destination )
122+ end
123+ webp_list . push ( Link ::WebpFile . new ( site , site . dest , File . dirname ( url ) , File . basename ( url ) ) )
124+ Link ::HtmlExtension . webp [ file . url ] = url
122125 end
123126 end
124127 end
0 commit comments