Markdown 中间人:未定义的方法“链接到';从数据文件渲染标记时

Markdown 中间人:未定义的方法“链接到';从数据文件渲染标记时,markdown,middleman,kramdown,tilt,Markdown,Middleman,Kramdown,Tilt,我正在使用数据文件中编写的Markdown,用Middleman静态页面生成器在HAML模板中呈现HTML 我的数据文件,data/faq.yaml如下所示: dog: question: I want to know more about a dog. answerA: (HTML in data) Just <a href="https://google.com">Google</a> it! answerB: (Markdown link in data

我正在使用数据文件中编写的Markdown,用Middleman静态页面生成器在HAML模板中呈现HTML

我的数据文件,
data/faq.yaml
如下所示:

dog:
  question: I want to know more about a dog.
  answerA: (HTML in data) Just <a href="https://google.com">Google</a> it!
  answerB: (Markdown link in data) Just [Google](https://google.com) it!
= markdown(data.faq.dog.answerA)
然后我在HAML模板中使用如下内容:

dog:
  question: I want to know more about a dog.
  answerA: (HTML in data) Just <a href="https://google.com">Google</a> it!
  answerB: (Markdown link in data) Just [Google](https://google.com) it!
= markdown(data.faq.dog.answerA)
在我尝试渲染数据文件中编写的降价链接之前,一切都很正常

下面是我的
faq.haml
模板,包含:

  • 标记链接直接写在HAML中,通过HAML的标记过滤器呈现
  • 直接编写HTML链接,从数据中引用
    answerA
  • 从数据中引用
    answerB
    ,该数据具有使用标记语法编写的相同链接
faq.haml

.answer
    :markdown
        (HAML) Just [Google](https://google.com) it!
    = markdown(data.faq.dog.answerA)
    = markdown(data.faq.dog.answerB)
前两个链接正确渲染,但
answerB
中的降价链接引发以下错误:

undefined method `link_to' for #<Object:0x000000044f9e18>
为什么Kramdown在通过引用数据文件的自定义帮助器“被要求”转换标记链接时无法转换标记链接,但在HAML中直接使用相同语法时转换正确吗?如何才能使
=markdown(data.faq.dog.answerB)
中的markdown链接正确呈现


注:我的最终目标是引用已在单独的
数据
文件中定义的链接,但我认为,为了实现该目标,必须首先解决此问题。

应用程序上下文需要传递给Tilt

def markdown(text)
  Tilt['markdown'].new(context: @app) { text }.render
end