Class: Bridgetown::ImagePipeline::Helpers
- Inherits:
-
Object
- Object
- Bridgetown::ImagePipeline::Helpers
- Defined in:
- lib/bridgetown/image_pipeline/helpers.rb
Instance Method Summary collapse
- #bg_image_block(src, breakpoint_only: nil, class_suffix: nil) ⇒ Object
- #bg_image_class(src, class_suffix: nil) ⇒ Object
-
#initialize(manifest:, config:) ⇒ Helpers
constructor
A new instance of Helpers.
- #picture_tag(src, alt: "", sizes: nil, priority: false, **attrs) ⇒ Object
Constructor Details
#initialize(manifest:, config:) ⇒ Helpers
Returns a new instance of Helpers.
9 10 11 12 |
# File 'lib/bridgetown/image_pipeline/helpers.rb', line 9 def initialize(manifest:, config:) @manifest = manifest @config = config end |
Instance Method Details
#bg_image_block(src, breakpoint_only: nil, class_suffix: nil) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/bridgetown/image_pipeline/helpers.rb', line 29 def bg_image_block(src, breakpoint_only: nil, class_suffix: nil) class_name = bg_image_class(src, class_suffix: class_suffix) variants = @manifest.variants_by_width(src) if variants.empty? warn "[bridgetown-image-pipeline] no manifest entry for #{src}; bg_image_block falling back to url(#{src})" body = ".#{class_name}{background-image:url(#{src})}" body = "@media (min-width:#{breakpoint_only}px){#{body}}" if breakpoint_only return "<style>#{body}</style>" end css = BgImageSet.css( class_name: class_name, variants: variants, breakpoints: @config.breakpoints, default_width: @config.default_width, breakpoint_only: breakpoint_only ) "<style>#{css}</style>" end |
#bg_image_class(src, class_suffix: nil) ⇒ Object
23 24 25 26 27 |
# File 'lib/bridgetown/image_pipeline/helpers.rb', line 23 def bg_image_class(src, class_suffix: nil) slug = File.basename(src, ".*").downcase.gsub(/[^a-z0-9]+/, "-").gsub(/\A-+|-+\z/, "") suffix = class_suffix ? "-#{class_suffix.to_s.downcase.gsub(/[^a-z0-9]+/, "-").gsub(/\A-+|-+\z/, "")}" : "" "bg-img-#{slug}#{suffix}" end |
#picture_tag(src, alt: "", sizes: nil, priority: false, **attrs) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/bridgetown/image_pipeline/helpers.rb', line 14 def picture_tag(src, alt: "", sizes: nil, priority: false, **attrs) entry = @manifest.find_by_src(src) return fallback_img(src, alt: alt, sizes: sizes, priority: priority, attrs: attrs) unless entry sources_html = picture_sources(entry, sizes: sizes) img_html = img_for_entry(entry, src: src, alt: alt, sizes: sizes, priority: priority, attrs: attrs) "<picture>#{sources_html}#{img_html}</picture>" end |