升级到 Haml 5.0 会移除导致 Nokogiri 解析错误的动态引用支持

Upgrading to Haml 5.0 removes dynamic quote support leading to parsing error by Nokogiri

在 Haml github 中创建了这个问题:https://github.com/haml/haml/issues/1023

由于删除了动态报价功能,升级到 Haml 5.0 会导致更改

例如,如果我要使用 Nokogiri 来解析以下 haml(其中“...”是另一个部分)

%a.nav{:"data-content" => render ... }

我明白了

<a class='nav' data-content='<div id='...'>' >

当我想要的是

<a class='nav' data-content="<div id='...'>" >

运行

Nokogiri::HTML.fragment("<a class='nav' data-content='<div id='...'>'>")

给我

#(Attr:0x3f7ea6e9adcc { name = "data-content", value = "<div id=" })

运行

Nokogiri::HTML.fragment("<a class='nav' data-content=\"<div id='...'>\">")

还我

#(Attr:0x3f7ea6c0b4e4 { name = "data-content", value = "<div id='...'>" })

删除动态报价功能似乎影响了通过 HTML 输出进行解析的能力。有没有办法重新启用动态引用,或以其他方式解决问题?

我在这里找到了一个已经存在的问题:https://github.com/haml/haml/issues/925,它解决了我的问题。

解决方法好像是

%a.nav{:"data-content" => "#{render ... }" }