私はなど、特定のlayout
のページが自分のYAMLが検証されますようにビルドが特定のフィールドが不足している場合erroringで、ジキルのサイトにロジックを構築、または値の間違った型を持っていると思いYAMLフィールドが指定されていない場合、Jekyllビルド中に例外を発生させますか?
一つの回避策は、単にエラー・メッセージを取得し、例外を発生させ、液体フィルタの場しのぎのプラグインを書き込むことによるものである。
{% unless page.necessary_field %}
{{ "You're missing necessary_field" | raise_error }}
{% endunless %}
:
module Jekyll
module ExceptionFilter
def raise_error(msg)
bad_file = @context.registers[:page]['path']
err_msg = "On #{bad_file}: #{msg}"
raise err_msg
end
end
end
Liquid::Template.register_filter(Jekyll::ExceptionFilter)
を次に、テンプレート内に、例えば、私はこれを含むことができ
この種のジョブは完了です。
私が持っている1つの問題は、1つのエラーを見つけたらすぐにビルドプロセスが停止することです。私はリポジトリ内のすべての.mdファイルをまたいだビルドを続け、最後に表示するすべてのページにわたるエラーのリストを収集したいと考えています。 Based on the Jekyll docsの場合はliquid: error_mode: warn
に_config.yml
があると思いますが、そうはありません。
はい、ジェネレータは、最終的に例外を発生させる前にすべてのページを繰り返し処理できるので、より意味があります。 – mdlincoln
テンプレート/液体フィルターソリューションで得られる利点の1つは、液体マークアップによってロジックを定義できることです。このサイトは数多くの貢献者によって編集されていますが、必要に応じてロジックを維持したり変更するのに十分な液体マークアップを理解していますが、ルビーで書かれたエクステンション内でルールを入れたり変更したりするのは自信がありません。 – mdlincoln
もちろん。それはすべて依存します:-) – Christian