用于<a> html标签的Middleman Kramdown Converter

问题描述

我正在尝试转换Middlemanapp中的每个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_pconvert_codeblock之类的方法,我可以更改其行为。

Kramdown 1.10.0 中间人4.3.5

有什么想法吗?

解决方法

中间人通过从convert_a派生而不调用convert_img来覆盖middleman-core/lib/middleman-core/renderers/kramdown.rb中的Kramdown::Converter::Html(和super)。

因此,以Kramdown::Converter::Html开头,您的方法将被中间人的版本取代。

相反,通过猴子修补Middleman::Renderes::MiddlemanKramdownHTML可能会更成功,但是您需要注意不要违反中间人对convert_a方法的期望。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...