Я вхожу в Jekyll в большой путь и хотел бы использовать его как общую платформу для разработки на переднем плане, но я сталкиваюсь с ограничениями языка шаблонов Liquid, в частности его отличием от шаблонов Django.
Я обнаружил жемчужину жидкого наследования, которая добавляет все важные синтаксисы Extends и Block из Django. Это сообщение в блоге дополнительно расширяет жемчужину в соответствии с файловой системой Jekyll: http://www.sameratiani.com/2011/10/22/get-jekyll-working-with-liquid-inheritance.html
Проблема заключается в том, что он не реализует блоки точно так же, как это делает Django, что по существу делает бесполезный камень.
У меня есть два jekyll "layouts", которые называются - для понимания - parent.html и child.html. Ни один из них не содержит разделы YAML.
Родитель
<html>
{% block foo %} {% endblock %}
</html>
Ребенок
{% extends _layouts/parent.html %}
{% block foo %}
<div>
Bar comes next:
{% block bar %} {% endblock %}
</div>
{% endblock %}
И тогда у меня есть страница jekyll, которая включает раздел YAML, таким образом:
---
title: test
---
{% extends _layouts/child.html %}
{% block bar %}My title is {{ page.title }} {% endblock %}
Что я ожидаю:
<html>
<div>
Bar comes next:
My title is test
</div>
</html>
Что я получаю:
<html>
<div>
Bar comes next:
</div>
</html>My title is test
Кажется, что не удается обработать блоки в mypage.html как подходящие для вставки в подходящие места родителя/ребенка, хотя он явно все еще что-то делает.
Я не разработчик ruby и не знаю для Jekyll, поэтому мне нужна помощь в определении того, какая часть этого стека терпит неудачу. Проблемы с жидкостным наследованием github указывают на то, что другие испытывают эту проблему с блочным вложением: https://github.com/danwrong/liquid-inheritance/issues/3
Я пробовал несколько вилок жидкого наследования, многие из которых, по-видимому, исправляют это регулярное выражение, но никто, кажется, не решает этого.
Это то, что я делаю принципиально невозможно? Кажется, что я, по крайней мере, 85% от того, что нужно, и последний бит нуждается в исправлении.