私のJekyllサイトに/patterns
というディレクトリがあります。その構造は一般に次のようになります。
_includes _layouts _site /patterns index.html
いくつかの理由で/patterns
ディレクトリを_includes
の外に保持する必要がありますが、主な理由は、/patterns
内のファイルをiframeにプルしてパターンライブラリに表示する必要があるためです)。
Jekyllページに/patterns
のファイルを含めたいのですが、{% include /patterns/file.html %} doesn't work as it points to the
_ includesfolder. How would I go about including a file from a directory that isn't
_ includes`を使用しますか?
include
タグが使用するディレクトリをincludes_dir
の_config.yml
で変更できます。複数のパスを設定できるようには見えません(ソース: https://jekyllrb.com/docs/configuration/ )。
いずれの場合でも、_includes
のファイルは出力に含まれません。パターン固有のインクルードを_includes/patterns/
に分けることもできますが、ライブサイトに影響を与えるのは、それらのファイルがインクルードされた場所だけです。
collections は必要なことを行うと思います。それらは、パブリックhtmlとして含めてレンダリングできます。
これが サンプルプロジェクト これだけです。
include_relative
に/patterns/file.html
タグを使用して、 現在のファイルに関連するファイルフラグメントを含める を選択できます。
あなたが持っているディレクトリ構造のために:
_includes
_layouts
_site
/patterns/file.html
index.html
この場合、以下は機能しません。
{% include /patterns/file.html %}
include_relative
as /pattern
is relatifto index.html
as current file
:
{% include_relative patterns/file.html %}
注:
レイアウトフォルダ内のファイルでinclude_relative
タグを使用することはできません。 include_relative
は、ページまたは投稿でのみ使用できます。レイアウトコードはページ/ポストレンダリングのコンテキストで実行され、include_relativeはこのページまたはポストを基準にして計算されます レイアウト自体からではありません 。
この場合、index.html
のコードは次のようになります。
---
layout: null
---
(put all code from _layouts/default.html)
{% include_relative patterns/file.html %}
_config.ymlで、次のようにディレクトリを追加できます。
includes:
- patterns
それと同じくらい簡単です!
私のJekyllサイトのここでの動作: https://github.com/pschfr/pschfr.github.io/blob/master/_config.yml
_includes
は相対(1つ以上のディレクトリの上位)パスを指定するためにincludes_dir
を好まないようであるため、必要な場所を指す../
ディレクトリの代わりにシンボリックリンクを配置しました。
これについて私が見つけた唯一の解決策は、このプラグインを使用することです