在Yaml数据文件aaa.yml
中,我有:
yyy: |
[foo](http://example.com) bar.
我想从Haml文件(zzz.html.haml
)中提取此数据。
1 即可。如果我zzz.html.haml
:
%p
= data.aaa.yyy
Middleman呈现zzz.html
:
<p> [foo](http://example.com) bar</p>
2 即可。如果我这样做:
%p
:markdown
= data.aaa.yyy
Middleman渲染:
<p>= data.aaa.yyy</p>
如何渲染:
<p><a href="http://example.com">foo</a> bar</p>
答案 0 :(得分:1)
您有一个包含markdown的字符串,并且您希望呈现该markdown并将结果包含在输出中。
一种方法是使用Haml :markdown
过滤器。你不能在过滤器中使用普通的Haml语法(就像你尝试过的那样),但你可以在#{...}
中使用插值,所以你可以这样做
:markdown
#{data.aaa.yyy}
更好的方法,如果字符串是一个独立的块,可能是创建一个呈现markdown的帮助方法,然后调用它。
只要你的帮助者添加了以下内容:
def markdown s
# I'm using kramdown here, but you can use whatever processor you prefer.
Kramdown::Document.new(s).to_html
end
然后在你的Haml:
= markdown(data.aaa.yyy)
答案 1 :(得分:0)
耶!原来是this helper,它已经在我的config.rb中,但它本身不起作用:
def markdown(text)
Tilt['markdown'].new { text }.render
end
当我使用第一个帮助器安装此助手时(来自@matt's answer):
def markdown s
Kramdown::Document.new(s).to_html
end
然后= markdown(foo.bar)
工作,这使我的一天! :d