初めてのプラグイン
プラグインはあなたのニーズに合わせたJekyllの拡張動作を可能にします。Jekyllのプラグインには6種類あります。
Generatiors(ジェネレータ)
Generators(ジェネレータ)はサイトにコンテンツを作成します。 例えば、
- jekyll-feed ブログポストのAtomフィードを作成する。
- jekyll-archives ブログのカテゴリやタグのアーカイブページを作成する。
- jekyll-sitemap sitemapを作成する。
Converters(コンバータ)
Converters(コンバータ)はマークアップ言語を他のフォーマットに変換します。 例えば、
- jekyll-textile-converter textileをHTMLに変換する。
- jekyll-coffeescript CoffeescriptをJavaScriptに変換する。
- jekyll-opal RubyをJavaScriptに変換する。
コマンド
コマンド サブコマンドでjekyll
の実行を拡張します。
例えば、
- jekyll-compose ポストやページ、ドラフトを作成するサブコマンドを追加する。
タグ
タグはカスタムLiquidタグを作成します。 例えば、
- jekyll-youtube YouTubeビデオを埋め込む。
- jekyll-asset-path-plugin アセットの相対パスを出力する。
- jekyll-swfobject SWFオブジェクトを埋め込む。
フィルタ
フィルタはカスタムLiquidフィルタを作成します。 例えば、
- jekyll-time-ago 2つの日付の間隔。
- jekyll-toc 目次を作成する。
- jekyll-email-protect スパムボットから保護するために電子メールを難読化する。
Hooks(ホック)
Hooks(ホック)はビルドプロセスを拡張するためのきめ細かい制御を与えます。例えば:
- jemoji 絵文字を表示
- jekyll-mentions メンション @jekyll をリンクに変換する
- jekyll-spaceship - 高度な例。テーブル、mathjax、plantuml、ビデオなどの強力なサポートを提供します。
Flags
プラグインを書くときに気をつけるべき2つのFlagがあります。
Flag | 説明 |
---|---|
|
任意のコードの実行が許可されていない環境でこのプラグインを安全に実行できるかどうかをJekyllに通知するboolean flag。これはGitHubページがどのコアプラグインを使うことができるか、そしてどれを実行するのが危険かを判断するために使われます。プラグインが任意のコードの実行を許可していない場合は、これを |
|
プラグインがロードされる順位を定義します。使用できる値は、 |
上記のことをプラグインで使用する例として、この2つのflagの指定方法を示します。
module Jekyll
class UpcaseConverter < Converter
safe true
priority :low
...
end
end
Best Practices
ガイドがプラグインの作成の助けとなるでしょう。プラグイン構築に関して、推奨することがあります。
プラグインにgemを使うことをお勧めします。依存関係の管理を助け、サイトのソースコードと切り分け、複数のプロジェクトに渡り共用できるようになります。gemの作成に関しては、Ruby gems guideやjekyll-feed等既存のプラグインのソースを見てください。