我正在使用在数据文件中编写的 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!
为了将此降价转换为 HTML,我使用了以下定义的自定义帮助程序config.rb
:
helpers do
def markdown(text)
Tilt['markdown'].new { text }.render
end
end
然后我在我的 HAML 模板中使用它,如下所示:
= markdown(data.faq.dog.answerA)
一切正常,直到我尝试呈现写入数据文件的降价链接。
下面是我的faq.haml
模板:
- 直接用 HAML 编写的 Markdown 链接,通过 HAML 的 markdown 过滤器呈现
answerA
使用直接编写的 HTML 链接引用from 数据answerB
使用降价语法编写的具有相同链接的数据引用
faq.haml
:
.answer
:markdown
(HAML) Just [Google](https://google.com) it!
= markdown(data.faq.dog.answerA)
= markdown(data.faq.dog.answerB)
前 2 个链接正确呈现,但 markdown 链接answerB
引发以下错误:
undefined method `link_to' for #<Object:0x000000044f9e18>
追溯:
/home/myself/.rvm/gems/ruby-2.4.0/gems/middleman-core-4.2.1/lib/middleman-core/renderers/kramdown.rb: in convert_a
48. scope.link_to(content, link, attr)
为什么当通过引用数据文件的自定义帮助程序“要求”转换降价链接时,Kramdown 无法转换降价链接,但是当直接在 HAML 中使用相同的语法时,它是否正确?可以做些什么,以便= markdown(data.faq.dog.answerB)
正确渲染中的降价链接?
附言。我的最终目标是引用已经在单独data
文件中定义的链接,但我认为首先解决这个问题对于实现该目标是必要的。