ruby – 支持在Markdown中为图像添加延迟加载
发布时间:2020-12-17 02:24:36 所属栏目:百科 来源:网络整理
导读:我正在使用kramdown解析器将markdown转换为html.我想在不修改原始markdown语法的情况下对图像使用延迟加载.我可以通过编辑kramdown gems中的link.rb文件来实现这一点. 但我不想这样做.因为如果有人更新kramdown,我将失去这些编辑.有没有其他方法可以在不修改
我正在使用kramdown解析器将markdown转换为html.我想在不修改原始markdown语法的情况下对图像使用延迟加载.我可以通过编辑kramdown gems中的link.rb文件来实现这一点.
但我不想这样做.因为如果有人更新kramdown,我将失去这些编辑.有没有其他方法可以在不修改原始图像语法的情况下执行此操作 原始图像语法: 当前输出(没有上面的编辑):< img src =“some image link”alt =“”/> 预期输出:< img data-src =“some image link”alt =“”/> 解决方法
您可以使用
Nokogiri改变生成的HTML,这几乎是您的任务所需的所有代码.
def responsive_img_src(html_source) doc = Nokogiri::HTML::Document.parse('<html></html>',nil,'UTF-8') fragment = Nokogiri::HTML::DocumentFragment.new(doc,html_source) fragment.css('img').each { |img| img['data-src'] = img['src'] } return fragment.to_html end 您不能直接使用Nokogiri :: HTML(html_source)来解析您的源,因为它会将输出包装到格式良好的HTML文档中.这就是你需要DocumentFragment的原因. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |