2017-11-06 8 views
1

私はちょうどJekyllを学び始めました。私は少しのスピードバンプに踏み出しました。Jekyll:レイアウトからカスタム変数を解析していないページ

default.htmlのhero.html

--- 
layout: default 
--- 
<section id="hero"> 
    <h3>{{ hero.descr }}</h3> 
</section> 
{{ content }} 

私のインデックスページ

<html> 
<head> <!-- Meta Tags etc --> </head> 
<body> 
    {{ content }} 
</body> 
</html> 

- :

は、私は基本的に次のようになり、私の_layoutフォルダ内の2つのレイアウトを持っていますヒーローのレイアウトを次のように拡張します: -

index.htmlを

--- 
layout: hero 
descr: Hello there. 
--- 

レイアウトがうまく動作、およびウェブサイトは、hero.descr変数を除いて、それが必要として表示されます。見出しタグは空です。

答えて

1

データのフローは単方向です。 default.html =>hero.html =>index.html

hero.htmlindex.html

で定義されている。しかし、レンダリングは親の{{ content }}変数に挿入され、反対方向(にある何を知ることができません。

index.html ==>hero.html ==>default.html

+0

それ以外の方法ではありませんか? hero.htmlは、index.htmlページの前面に配置されたプレースホルダ変数を含むレイアウトに過ぎません。 –

+0

この文脈では、ほぼ真実です。プレースホルダ変数は '{{content}}'です。他のすべては***親から***継承*** – ashmaroli

+0

明確にするための更新された答え.. – ashmaroli

1

私には、 le {{ hero.descr }}は存在しません。私はそれが{{ page.descr }}であるべきだと思います。

+1

あなたの返事をありがとう。あなたとashmaroliの答えを読んだ後、私はドキュメントに戻って徹底的に勉強し、Jekyllの変数とレイアウトの仕組みが間違っていることを理解しました。おそらくLiquidにまず慣れていたはずです。とにかく、はい、絶対に正しいですが、{{page.descr}}はページのカスタム変数を宣言する正しい方法です。 :) –

関連する問題