Techioz Blog

Jekyll: GitHub ページでカスタム プラグインを使用するにはどうすればよいですか?

概要

セキュリティ上の懸念から、カスタム Ruby プラグインは GitHub ページでは動作しないことが判明しました。

Jekyll プロジェクトの _plugins フォルダーにプラグイン (これ) を追加しようとしていますが、GitHub にデプロイすると無視されます。

質問: これを回避する方法はありますか?誰かが解決策を見つけましたか?

注: 明らかに、ローカルで HTML ファイルを生成し、それをリポジトリにコミットできます。しかし、それは私が望んでいることではありません。

解決策

読書時間スクリプトにはプラグインは必要ありません。プラグインを使用せずに追加できるスクリプトのコレクションを作成しました。ここで見つけることができます。読書時間のスクリプトもその 1 つです。

ここにコードがあります:

{% capture words %}
{{ content | number_of_words | minus: 180 }}
{% endcapture %}
{% unless words contains '-' %}
{{ words | plus: 180 | divided_by: 180 | append: ' minutes to read' }}
{% endunless %}

このコードには Liquid のみが含まれており、Ruby は含まれていないことに注意してください。したがって、レイアウトまたはインクルード (プラグインなし) で使用できます。

次のようなものがあるとします。

<p>lorem ipsum</p>
<p>lorem ipsum</p>
<code>lorem ipsum</code>
<p>lorem ipsum</p>
<code>lorem ipsum</code>
<p>lorem ipsum</p>

次に、次のように上記のコード ブロックを削除できます。

{% assign preprocessed_content=post.content | replace: '<p>', '__p__' %}
{% assign preprocessed_content=preprocessed_content | replace: '</p>', '__/p__' %}
{% assign truncated_content=preprocessed_content | strip_html %}
{% assign cleaned_content=truncated_content | replace: '__p__', '<p>' %}
{% assign cleaned_content=cleaned_content | replace: '__/p__', '</p>' %}

もちろん、これを拡張してさらに多くのタグをサポートすることもできます。

本当にプラグインを使用したい場合は、ローカル マシンまたは CloudCannon にサイトを構築させ、結果を Github Pages にプッシュすることができます。参照: https://learn.cloudcannon.com/jekyll/using-jekyll-plugins/