初めてのプラグイン
プラグインを使用すると、Jekyllの動作をニーズに合わせて拡張できます。Jekyllには6種類のプラグインがあります。
ジェネレーター
ジェネレーターは、サイトにコンテンツを作成します。例えば
- jekyll-feedは、ブログ投稿のAtomフィードを作成します。
- jekyll-archivesは、ブログのカテゴリとタグのアーカイブページを作成します。
- jekyll-sitemapは、サイトマップを作成します。
コンバーター
コンバーターは、マークアップ言語を別の形式に変換します。例えば
- jekyll-textile-converterは、TextileをHTMLに変換します。
- jekyll-coffeescriptは、CoffeeScriptをJavaScriptに変換します。
- jekyll-opalは、RubyをJavaScriptに変換します。
コマンド
コマンドは、jekyll
実行可能ファイルにサブコマンドを追加します。例えば
- jekyll-composeは、投稿、ページ、または下書きを作成するためのサブコマンドを追加します。
タグ
タグは、カスタムLiquidタグを作成します。例えば
- jekyll-youtubeは、YouTubeビデオを埋め込みます。
- jekyll-asset-path-pluginは、アセットの相対URLを出力します。
- jekyll-swfobjectは、SWFオブジェクトを埋め込みます。
フィルター
フィルターは、カスタムLiquidフィルターを作成します。例えば
- jekyll-time-ago - 2つの日付間の期間を言葉で表します。
- jekyll-toc - 目次を生成します。
- jekyll-email-protect - スパムボットから保護するためにメールアドレスを難読化します。
フック
フックは、ビルドプロセスを拡張するためのきめ細かい制御を提供します。例えば
-
jemoji 絵文字を表示します
- jekyll-mentionsは、メンション@jekyllをリンクに変換します
- jekyll-spaceship - 高度な例。テーブル、MathJax、PlantUML、ビデオなどを強力にサポートします。
フラグ
プラグインを作成する際に注意すべき2つのフラグがあります
フラグ | 説明 |
---|---|
|
このプラグインが、任意のコード実行が許可されていない環境で安全に実行できるかどうかをJekyllに知らせるブール値のフラグ。これは、GitHub Pagesで使用され、どのコアプラグインを使用できるか、どれが実行するには安全でないかを判断します。プラグインが任意のコード実行を許可しない場合は、これを |
|
このフラグは、プラグインがロードされる順序を決定します。有効な値は、 |
上記のサンプルプラグインの1つを例として使用すると、これら2つのフラグを指定する方法は次のとおりです
module Jekyll
class UpcaseConverter < Converter
safe true
priority :low
...
end
end
ベストプラクティス
このガイドは、プラグインの作成に関する具体的な手順を説明しています。また、プラグインの構造化に役立つ推奨されるベストプラクティスもいくつかあります。
プラグインにはgemを使用することをお勧めします。これにより、依存関係を管理し、サイトのソースコードから分離し、複数のプロジェクトで機能を共有できます。gemの作成に関するヒントについては、Ruby gemsガイドを参照するか、jekyll-feedなどの既存のプラグインのソースコードを確認してください。