38

おそらく単純なものが欠けていますが、Jekyllをローカルでテストする方法がありません。

私はGitHubページを使用してJekyllをレンダリングしています。まず、1つのマークダウンページからメインのindex.htmlにマークダウンコンテンツをレンダリングしたいだけです 。

構造は次のとおりです。

Index.html

---
layout: default
---

_layouts
-default.html

//html stuff..
<section>

{{page.content}}

</section>

ルートフォルダに、レイアウトレンダリングcontent.md用にレンダリングしたいというページが{{page.content}}ありますが、液体タグセクションが空白です。

レンダリングするにはどうすればよいcontent.mdですか?

例:https ://github.com/wycks/wordpress-gears-jekyll

4

3 に答える 3

40

ここで起こっていることがいくつかあります。

  1. 次の代わりに、_layouts/default.htmlファイル(およびその他の_layoutsディレクトリファイル)で:

    {{ page.content }}
    

    使用する必要があります:

    {{ content }}
    
  2. _includesJekyllでは、サイトのルートレベルディレクトリからのファイルのみを含めることができます。したがって、ルートからそのディレクトリに移動する必要がありますcontent.md(まだ存在しない場合は移動します)。

  3. 最後に、index.htmlファイルからインクルードファイルを実際に呼び出す必要があります。これは、index.htmlファイルの内容を次のように変更することで実行できます。

    ---
    layout: default
    ---
    
    {% include content.md %}
    

それはあなたが探している振る舞いをセットアップします。


私は他に2つのことを指摘します:

  1. インデックスファイルの拡張子をからに変更すると、より効果的.htmlに機能する場合があります.md。ただし、重要な注意事項:.htmlページネーションが必要な場合は使用する必要があります。Jekyll Paginationのドキュメントによると、この機能はファイルの名前が。の場合にのみ機能しますindex.html

  2. インデックスファイルで行っているのが、そのページにのみ存在するインクルードを呼び出すことだけである場合は、コンテンツをインデックスファイルに直接配置するだけでも問題ない可能性があります。

于 2013-02-03T02:36:06.770 に答える
1

includeの直下にのみファイルを含めることができます_includes/。パスを使用したり、他の場所からインクルードしたりできるinclude_relativeもあります。ただし、インクルードは指定されたファイルに関連している必要があります。

{% include_relative somedir/footer.html %}

どちらのincludeメソッドにも解決できない問題が1つあります。インクルードするファイルにフロントマターがある場合、Jekyllはそれを削除しません。したがって、フロントマターを使用して、「タイトル」などの特定のメタデータを格納することはできません。もちろん、変数を使用することもできます{% assign title = "My Title" %}が、それは同等ではありません。インクルードをコレクションの一部にしたり、独立してレンダリングしたりする場合は、フロントマターが必要だからです。

于 2016-12-03T00:58:51.670 に答える
0

私はそれがただだと信じています

{{ content }}

よろしくお願いします。

ref

于 2013-02-03T02:16:26.597 に答える