increments/qiita-markdown

View on GitHub
lib/qiita/markdown/filters/image_link.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
module Qiita
  module Markdown
    module Filters
      class ImageLink < HTML::Pipeline::Filter
        def call
          doc.search("img").each do |img|
            next if img.ancestors.any? { |ancestor| ancestor.name == "a" }

            outer = Nokogiri::HTML.fragment(%(<a href="#{img['src']}" target="_blank"></a>))
            inner = img.clone
            outer.at("a").add_child(inner)
            img.replace(outer)
          end
          doc
        end
      end
    end
  end
end