2017-11-06 8 views
1

방금 ​​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}}은 페이지에 대한 맞춤 변수를 선언하는 올바른 방법입니다. :) –