如何将宽度和高度的 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>
目前我的图像是从我的 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>