Sha256: e32fc5b0d73c7f709034d94d3427d3955147070e3bd5d0317bb98075d1fae5fc

Contents?: true

Size: 973 Bytes

Versions: 3

Compression:

Stored size: 973 Bytes

Contents

module Panda
  module CMS
    module EditorJs
      module Blocks
        class Image < Base
          def render
            url = data["url"]
            caption = sanitize(data["caption"])
            with_border = data["withBorder"]
            with_background = data["withBackground"]
            stretched = data["stretched"]

            css_classes = ["prose"]
            css_classes << "border" if with_border
            css_classes << "bg-gray-100" if with_background
            css_classes << "w-full" if stretched

            html_safe(<<~HTML)
              <figure class="#{css_classes.join(" ")}">
                <img src="#{url}" alt="#{caption}" />
                #{caption_element(caption)}
              </figure>
            HTML
          end

          private

          def caption_element(caption)
            return "" if caption.blank?
            "<figcaption>#{caption}</figcaption>"
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
panda-cms-0.7.3 lib/panda/cms/editor_js/blocks/image.rb
panda-cms-0.7.2 lib/panda/cms/editor_js/blocks/image.rb
panda-cms-0.7.0 lib/panda/cms/editor_js/blocks/image.rb