我正在以一种很大的方式进入Jekyll,并希望将其用作一般的前端开发平台,但是我遇到了Liquid模板语言的局限性,特别是它与Django模板的区别.
我发现了液体继承宝石,它添加了Django中最重要的Extends和Block语法.此博客文章进一步扩展了宝石以适应Jekyll的文件系统:http: //www.sameratiani.com/2011/10/22/get-jekyll-working-with-liquid-inheritance.html
问题是它似乎没有以与Django完全相同的方式实现块,这实际上使得gem无用.
为了理解,我有两个jekyll"布局" - parent.html和child.html.这些都不包含YAML部分.
亲
<html>
{% block foo %} {% endblock %}
</html>
Run Code Online (Sandbox Code Playgroud)
儿童
{% extends _layouts/parent.html %}
{% block foo %}
<div>
Bar comes next:
{% block bar %} {% endblock %}
</div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
然后我有一个jekyll页面,其中包含一个YAML部分:
---
title: test
---
{% extends _layouts/child.html %}
{% block bar %}My title is {{ page.title }} {% endblock %}
Run Code Online (Sandbox Code Playgroud)
我期待的是:
<html>
<div>
Bar comes next:
My title is test
</div>
</html>
Run Code Online (Sandbox Code Playgroud)
我得到了什么:
<html>
<div>
Bar …Run Code Online (Sandbox Code Playgroud)