2017-07-29 63 views
0

在我的默認佈局,我引用一個變量{{page.headline}},並按如下我引用它:Jekyll front matter變量未設置在中間佈局中?

# _layouts/default.html 
{{page.headline}} 

# index.md 
--- 
layout: default 
headline: Great site 
--- 

# _layouts/post.html 
--- 
layout: default 
headline: Great articles 
--- 

# _posts/some-post.md 
--- 
layout: post 
headline: Great post # just for testing, and omitted when setting in post layout 
--- 

的索引處的標題變量 - 在級別1 - 正常工作,以及在水平3,在一個特定的職位。但是,當我在帖子佈局中設置「優秀文章」(並從some-post.md的前端事件中刪除變量設置)時,默認佈局的變量佔位符中不會呈現任何內容。

換句話說,在帖子佈局中,我沒有看到「好文章」「好網站」,所以它就像默認版面中的「好網站」的初始變量設置 - 帖子佈局參考 - 正在被覆蓋,但未被替換。

然而,這種工作在與some-post.md --setting headline這裏,第三級在具體職位使用後佈局,佈局後本身使用默認情況下,確實原因page.headline設置爲「偉大的職位。」

應該以我在這裏希望的方式工作嗎?要在基於第一個佈局的第二個佈局的前端設置變量, (再次,它是奇怪的,它在底層工作,與帖子本身。)謝謝。

(實際上,我不想在每個帖子的第三級設置它,因爲它只是一個通用的「文章」標題 - 我在這裏包括它,因爲它在該級別工作,正如解釋)

+0

您使用的是什麼版本的Jekyll?運行'bundle exec jekyll -v'來檢查 – ashmaroli

+0

我所有的gemz都是最新的。任何想法爲什麼變量沒有被設置(或不會顯示)?奇怪的部分是它在職位級別(3深)。 – SexxLuthor

+1

*我猜*這種行爲是因爲'page'變量命名空間僅適用於站點中的文檔。 (因此,在例子中使用'index.md'和'some-post.md'),佈局不響應該命名空間。 – ashmaroli

回答

0

解決方法是通過佈局引用變量,而不是頁面,如所述。

所以,引用變量在佈局{{ layout.headline }}代替{{ page.headline }},這現在可以通過繼承模板的扉頁(設置即,本身指定了自己的前面的問題父模板的模板:layout: default )。