私はおそらく何か簡単なものを見逃していますが、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
をレンダリングするにはどうすればよいですか?
ここでいくつかのことが行われています。
以下の代わりに、_layouts/default.html
ファイル(およびその他の_layouts
ディレクトリファイル)で:
{{ page.content }}
あなたが使用する必要があります:
{{ content }}
Jekyllでは、サイトのルートレベル_includes
ディレクトリのファイルのみを含めることができます。そのため、content.md
をルートからそのディレクトリに移動する必要があります(まだ存在しない場合は作成します)。
最後に、実際にindex.htmlファイルからインクルードファイルを呼び出す必要があります。これを行うには、index.htmlファイルのコンテンツを次のように変更します。
---
layout: default
---
{% include content.md %}
これにより、探している動作が設定されます。
他に2つのことを指摘します。
インデックスファイルの拡張子を.html
から.md
に変更するとうまくいくことがあります。ただし、重要な注意事項:ページネーションが必要な場合は、.html
を使用する必要があります。 Jekyll Pagination documentation によると、この機能はファイルの名前がindex.html
の場合にのみ機能します。
インデックスファイルで実行しているのが、そのページにのみ存在するインクルードを呼び出している場合、単にコンテンツをインデックスファイルに直接配置するだけでも十分です。
include
では、_includes/
の直下にのみファイルを含めることができます。 include_relative もあり、パスを使用して他の場所からインクルードできます。ただし、インクルードは指定されたファイルに対して相対的でなければなりません。
{% include_relative somedir/footer.html %}
解決できないインクルードメソッドには1つの問題があります。インクルードするファイルに問題がある場合、Jekyllはそれを削除しません。そのため、「タイトル」など、特定のメタデータを含めるためにフロントマターを使用することはできません。もちろん、変数-{% assign title = "My Title" %}
を使用できますが、それは同等ではありません。インクルードするものをコレクションの一部にしたい場合や、独立してレンダリングしたい場合は、前処理が必要です。