Sha256: 9260851ab5d12a0de850cdccebf47597e64e4f3ca88cf1e78d30b5171420a327

Contents?: true

Size: 1.08 KB

Versions: 6

Compression:

Stored size: 1.08 KB

Contents

class Rad::TextUtils::ImageBox < Rad::TextUtils::Processor
  # !![img] => [![img_thumb]][img]
  def process markdown, env
    img_urls = {}
    markdown = markdown.gsub(/!!\[(.+?)\]/) do
      img_key = $1 || ''
      if url = markdown.scan(/\[#{img_key}\]:\s*([^\s]+)$/).first.try(:first)
        unless url =~ /\.[^\.]+\.[^\.]+$/ # image.png
          thumb_img_key = "#{img_key}_thumb"
      
          # building url with thumb (foo.png => foo.thumb.png)
          img_urls[thumb_img_key] = url.sub(/\.([^\.]+)$/){".thumb.#{$1}"}

          "[![][#{thumb_img_key}]][#{img_key}]"
        else # image.(icon|thumb|...).png
          img_key_full = "#{img_key}_full"
      
          # building url with thumb (foo.png => foo.thumb.png)
          img_urls[img_key_full] = url.sub(/\.([^\.]+)\.([^\.]+)$/){".#{$2}"}
      
          "[![][#{img_key}]][#{img_key_full}]"
        end
      else
        $& || ''
      end
    end
  
    unless img_urls.blank?
      markdown << "\n"
      markdown << img_urls.to_a.collect{|k, v| "[#{k}]: #{v}"}.join("\n")
    end
    
    call_next markdown, env
  end    
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
rad_kit-0.0.6 lib/kit/text_utils/image_box.rb
rad_kit-0.0.5 lib/kit/text_utils/image_box.rb
rad_kit-0.0.4 lib/kit/text_utils/image_box.rb
rad_kit-0.0.3 lib/kit/text_utils/image_box.rb
rad_kit-0.0.2 lib/kit/text_utils/image_box.rb
rad_kit-0.0.1 lib/kit/text_utils/image_box.rb