2017-01-20 35 views
1

目前我的图像是从我的CMS显示像这样:如何IMG内联样式转换为宽度和高度属性

我正在创造AMP网页,他们不接受图像尺寸样式。 AMP页面要求:

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

是否有简单的方法使用rails/ruby​​来进行此转换?

感谢

+0

什么是AMP页面?你可以添加一些代码吗?你试过什么了? – spickermann

+0

AMP网页:https://www.ampproject.org/docs/get_started/create/include_image – AnApprentice

回答

3

如果你这样做了很多,你可以创建一个像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> 
相关问题