メニュー

プラグインの基本

Grav は、ページのみを扱うだけで良いように、 シンプル に、 集中して 設計されています。
基本的な方針として、 Grav それ自体は 超薄く 作られ、基本的な機能のみが提供されます。
たとえば、ルーティングや、マークダウンの HTML へのコンパイル、 Twig テンプレート、そしてキャッシュなどです。

しかし、 Grav を成長させ、強力な機能を必要なときに提供したい場合があります。
そのために、システムの処理中に、 イベントフック (event hooks) が差し込んであります。
これにより、 プラグイン を使って、どんな拡張でもできるようになっています。

パワフル!

Grav では、すべての重要なオブジェクトは、パワフルな DI コンテナ(Dependency Injection Container) からアクセス可能です。
Grav が動作しているすべての期間で、 Grav のイベントフックによって、 Grav が認識し、計算するものすべてにアクセスできます。
このシステムにより、必要な機能の追加を完全に制御できます。

プラグインは、簡単に書けて、柔軟でパワフルなので、これらを作らない手はありません!
Grav にはすでに、 300を超えるダウンロード可能なプラグインがあります
なんでもできます。
たとえば、 sitemap を表示したり、 パンくずリスト を提供したり、ブログの アーカイブ を表示したり、シンプルな 検索エンジン を作ったり、 JavaScript によって完全に機能する ショッピングカート も提供できます。

プラグインに何ができるかを知るベストな方法は、いくつかをダウンロードしてみて、何をどのようにやっているのか、見てみることです。
後の章で、簡単なプラグインを作ってみましょう!

必要最小限

すべてのプラグインは、 user/plugins フォルダ内に置かれます。
通常の Grav (スケルトンではない Grav) をインストールしたとき、既存のプラグインは、2つだけ置かれています: errorproblems です。

[!訳注]
もしかすると、markdown-notices というプラグインも入っているかもしれません。あったら便利だけどなくても良いプラグインです。

error プラグインは、 HTTP エラーを制御します。
たとえば、 404 Page Not Found

problems プラグインは、新しく Grav をインストールするときに便利です。
このプラグインは、 ホスティングの設定 や、 フォルダが見つからない もしくは パーミッション などの問題が Grav に起きていないかを調べてくれます。
適切な運用中は、 error プラグインだけが、本当に必要最小限のプラグインです。

user/plugins フォルダ内のすべてのプラグインは、固有の名前を持っており、その名前は機能を表しているべきです。
スペースや、アンダースコア、大文字を、プラグイン名には使わないでください。

Twig からプラグインの設定値にアクセス

プラグインの設定に、(たとえばテーマ内の) Twig からアクセスしたいとき、一般的な方法は:

config.plugins.pluginname.pluginproperty

プラグイン名にダッシュが含まれている場合、プロパティを使った参照をしてください:

config.plugins['plugin-name'].pluginproperty

プラグイン中に flex を使う

プラグイン中で flex objects を使い始めるときのおすすめの方法は、 devtools を使い、 flex objects の基本的なサポート生成によって、プラグインを作ることです。

Flexプラグインの章 を見てください。