初めてのプラグイン

プラグインはあなたのニーズに合わせたJekyllの拡張動作を可能にします。Jekyllのプラグインには6種類あります。

Generatiors(ジェネレータ)

Generators(ジェネレータ)はサイトにコンテンツを作成します。 例えば、

  • jekyll-feed ブログポストのAtomフィードを作成する。
  • jekyll-archives ブログのカテゴリやタグのアーカイブページを作成する。
  • jekyll-sitemap sitemapを作成する。

Converters(コンバータ)

Converters(コンバータ)はマークアップ言語を他のフォーマットに変換します。 例えば、

コマンド

コマンド サブコマンドでjekyllの実行を拡張します。 例えば、

  • jekyll-compose ポストやページ、ドラフトを作成するサブコマンドを追加する。

タグ

タグはカスタムLiquidタグを作成します。 例えば、

フィルタ

フィルタはカスタムLiquidフィルタを作成します。 例えば、

Hooks(ホック)

Hooks(ホック)はビルドプロセスを拡張するためのきめ細かい制御を与えます。例えば:

  • jemoji 絵文字を表示 :+1:
  • jekyll-mentions メンション @jekyll をリンクに変換する
  • jekyll-spaceship - 高度な例。テーブル、mathjax、plantuml、ビデオなどの強力なサポートを提供します。

Flags

プラグインを書くときに気をつけるべき2つのFlagがあります。

Flag 説明

safe

任意のコードの実行が許可されていない環境でこのプラグインを安全に実行できるかどうかをJekyllに通知するboolean flag。これはGitHubページがどのコアプラグインを使うことができるか、そしてどれを実行するのが危険かを判断するために使われます。プラグインが任意のコードの実行を許可していない場合は、これをtrueに設定してください。GitHub Pagesはまだあなたのプラグインをロードすることはできませんが、コアに含めるために提出することが、使用するための最善の方法です!

priority

プラグインがロードされる順位を定義します。使用できる値は、:lowest, :low, :normal, :high, :highestです。highestが最初に適用され、lowestが最後に適用されます。

上記のことをプラグインで使用する例として、この2つのflagの指定方法を示します。

module Jekyll
  class UpcaseConverter < Converter
    safe true
    priority :low
    ...
  end
end

Best Practices

ガイドがプラグインの作成の助けとなるでしょう。プラグイン構築に関して、推奨することがあります。

プラグインにgemを使うことをお勧めします。依存関係の管理を助け、サイトのソースコードと切り分け、複数のプロジェクトに渡り共用できるようになります。gemの作成に関しては、Ruby gems guidejekyll-feed等既存のプラグインのソースを見てください。