私は大々的に Jekyll に取り組んでおり、一般的なフロントエンド開発プラットフォームとして使用したいと考えていますが、Liquid テンプレート言語の制限、特に Django テンプレートとの違いに直面しています。
Django の非常に重要な Extends および Block 構文を追加する、liquid-inheritance gem を発見しました。このブログ投稿では、gekyll のファイル システムに合わせて gem をさらに拡張しています 。
問題は、Django とまったく同じ方法でブロックを実装していないように見えることです。これにより、基本的に gem が役に立たなくなります。
わかりやすくするために、parent.html と child.html という 2 つの jekyll の「レイアウト」があります。どちらにも YAML セクションは含まれていません。
親
<html>
{% block foo %} {% endblock %}
</html>
子
{% extends _layouts/parent.html %}
{% block foo %}
<div>
Bar comes next:
{% block bar %} {% endblock %}
</div>
{% endblock %}
そして、YAMLセクションを含むjekyllページがあります:
---
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 の Liquid-inheritance の問題は、他の人がこのブロックのネストの問題を経験していることを示唆しています: https://github.com/danwrong/liquid-inheritance/issues/3
私は Liquid-inheritance のいくつかのフォークを試しましたが、その多くは問題の正規表現を明らかに修正しましたが、これを解決するものはないようです。
私がやろうとしていることは根本的に不可能ですか?少なくとも 85% は進んでいるようで、最後の部分を修正する必要があります。