我正在尝试在一个中间人应用程序中转换每个kramdown链接。
到目前为止,我已经尝试在Kramdown::Converter::Html模块前面加上前缀并覆盖convert_a方法。
module Kramdown
module Converter
module UrlConverter
def convert_a(el, indent)
"<a href=\"foo\">bar</a>"
end
end
end
end
Kramdown::Converter::Html.prepend Kramdown::Converter::UrlConverter但是由于某些原因,convert_a永远不会执行。像convert_p或convert_codeblock这样的方法会被执行,我可以改变它们的行为。
Kramdown 1.10.0中间人4.3.5
有什么想法吗?
发布于 2020-09-13 16:03:53
中间人通过从convert_a派生而不调用super来覆盖middleman-core/lib/middleman-core/renderers/kramdown.rb中的Kramdown::Converter::Html (和super)。
因此,通过前置到Kramdown::Converter::Html,您的方法将被中间人的版本所取代。
您可能会更成功地使用convert_a方法,但是您需要小心不要违背中间人对monkeypatching方法的期望。
https://stackoverflow.com/questions/63600552
复制相似问题