web-dev-qa-db-ja.com

Github PagesのJekyll:別のマークダウンファイルにマークダウンを含める

GithubPagesのJekyllでkramdownを使用しています。 2回使用したいマークダウンがあり、2つのバージョンを維持したくありません。これを他のマークダウンファイルに含めるにはどうすればよいですか?

たとえば、次のように入力したい

{: include otherFile.md }

otherFile.mdの内容をこのコマンドがある場所に直接レンダリングします。親ファイルもマークダウンファイルであり、HTMLテンプレートではないことに注意してください。

追加の考慮事項:デフォルトのGitHubページワークフローでこれを実行でき、GHページによって無効にされているプラ​​グインを使用する必要がなく、サイトのコンパイル済みバージョンを手動でプッシュする必要がないのは素晴らしいことです。

11
Andrew Mao

行く方法は include_relative のようです。私は古い Jekyllフォーラム でユーザーgeraldbによってこの答えを見つけました:

はい、簡単な方法があります。 Jekyll(およびGitHub Pages)では「すぐに使用できる」状態で動作します。試してみました。例:Vienna.htmlテストページを参照してください。

---
layout: default
---

some text here

{% include_relative test_header.md %}

some more text here

{% include_relative test_footer.md %}

ソース-> test.md および ライブページ を参照してください。

そのように呼びたい場合の「トリック」は、ビルディングブロックテキスト(例:include_relativeintro.mdexplanation.mdなど)が必要な場合はconclusion.mdを使用することです。 。)ページと一緒に(同じフォルダに)。乾杯。ハッピージェキリング。


この回答を最初に書いたので、元のフォーラムの投稿は完全になくなったようで、archive.orgにアーカイブされていません。古いフォーラムの回答リンクは this で、新しいフォーラムのgeraldbのプロファイルは here です。

引用された回答のリンクは機能しなくなりましたが、ここに viennahtml.github.io リポジトリへのリンクがあります。

12
Benjamin W.

私の場合、include_relativeでインポートしても問題を解決できず、normalincludeを使用してもレンダリングされません含まれているMarkdownファイル。

ただし、インクルードをキャプチャしてmarkdownifyにパイプすることは、かなり良い回避策です。

{% capture my_include %}{% include a_markdown_file.md %}{% endcapture %}
{{ my_include | markdownify }}

私はこれを GH:/ jekyll/jekyll#1303(コメント) で見つけました。これは、キャプチャを回避するための機能要求です。残念ながら閉鎖されています。

0
biolauri

インクルードファイルをサポートするRuby gem markdown_helper があります。

0
Cato