如何将宽度和高度的 img 内联样式转换为属性

How to convert img inline styles for width & height to attributes

目前我的图像是从我的 CMS 中显示的,如下所示:

我正在努力创建 AMP 页面,但它们不接受样式中的图像尺寸。 AMP 页面要求:

<amp-img alt="stuff" src="welcome.jpg" height="200" width="203"></amp-img>

是否有使用 Rails/Ruby 进行此转换的简单方法?

如果你经常这样做,你可以创建一个视图助手,比如 image_tag:

module AmpHelper
  include AssetUrlHelper

  def amp_image_tag(source, options={})
    options = options.symbolize_keys
    src = options[:src] = path_to_image(source)

    options[:width], options[:height] = extract_dimensions(options.delete(:size)) if options[:size]

    content_tag("amp-img", nil, options)
  end

protected

  def extract_dimensions(size)
    size = size.to_s
    if size =~ %r{\A\d+x\d+\z}
      size.split('x')
    elsif size =~ %r{\A\d+\z}
      [size, size]
    end
  end
end

这将与资产管道一起工作,以在生产中提供资产哈希/指纹,并与 :size 选项一起工作:

amp_image_tag 'foo.jpg', size: '300x200', alt: 'Foo Bar!'

#=> <amp-img src="/assets/foo-abc123.jpg" width="300" height="200" alt="Foo Bar!"></amp-img>