实现液体模板引擎的布局标签

时间:2011-02-11 07:05:30

标签: ruby liquid

我想主题我的博客使用液体模板引擎,但默认情况下,引擎只支持一些基本标签,我想编写自定义标签{%layout'layline_name'%}

布局文件:dark.liquid

<html>
...
{% content_for_body %}
...
</html>

模板文件:blog.liquid

{% layout 'dark' %}
welcome to my blog!

输出

<html>
...
welcome to my blog!
...
</html>

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为除了抓住第一行并在传递blog.liquid的其余部分之前提取布局名称之外,我不认为这样的事情可能是这样的,例如:

post = "{{ layout 'dark' }}\nWelcome to my blog!"

layout_name = post.split("\n").first.match(/\{\{ layout '(.+)' \}\}/)[1]
#=> "dark"
content = post.split("\n")[1..-1].join("\n")
#=> "Welcome to my blog!"

也应该是“{{content_for_body}}”; “{%...%}”用于标记块,如if语句。