12

テンプレート「_layouts/template1.html」でテンプレート_layouts/default.htmlを拡張(Djangoスタイル)したいと考えています。

これを _layouts/template1.html の YAML フロント マターとして入れています。

---
layout: default 
---
{{page.content}}

しかし、どうやらそれは私が望むようには機能しません(template1.htmlに存在するがdefault.htmlにはない追加のマークアップはすべてレンダリングされません)。template1 レイアウトを使用するファイルは、default.html を純粋に拡張しているように見えます。

Jekyllでレイアウトを継承する方法はありますか?

4

4 に答える 4

10

あなたが意味するのは、単純{{ content }}です。

はい、レイアウトはパイプできます。あなたの場合、ページがtemplate1レイアウトを使用している場合、それはtemplate1のコンテンツです。次に、template1の結果がdefaultコンテンツです。

于 2014-04-17T13:18:48.633 に答える
5

Jekyll の Liquid テンプレートは非常に簡単に拡張できます。必要なテンプレートを拡張していて、上書きしていないことを確認する必要があります。

デフォルトではなく、実際にページを拡張したい場合があります。

したがって、テンプレートの Front Matter では次のようになります。

---
layout:page
---
于 2015-03-02T23:12:50.937 に答える
4

Liquid Inheritance Gem をお試しください: https://github.com/danwrong/liquid-inheritance

参照: http://www.sameratiani.com/2011/10/22/get-jekyll-working-with-liquid-inheritance.html

于 2012-05-02T21:53:57.377 に答える
0

template1.htmlあなたの例から、後者がブロックdefault.htmlを含んでいる限り拡張されます。たとえば、ここ{{ content }}を参照してください。それがしないのは、すでに含まれているものを上書きしないということです。そのためには、@ juddlyonが述べているように、LiquidInheritanceGemが必要です。default.html

于 2012-05-02T23:07:49.847 に答える