Ara*_*RRK 5 ruby markdown jekyll jekyll-extensions 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
Run Code Online (Sandbox Code Playgroud)
您不能直接使用它Nokogiri::HTML(html_source)来解析您的源代码,因为它会将输出包装到格式良好的 HTML 文档中。这就是您需要 DocumentFragment 的原因。
| 归档时间: |
|
| 查看次数: |
474 次 |
| 最近记录: |