フィルターは特定のデータを変更します。 Hexoはデータをフィルターに順番に渡し、フィルターがデータを1つずつ変更します。 このコンセプトはWordPressに基づいています。
概要
hexo.extend.filter.register(type, function() { |
priority
の設定が可能です。 低いpriority
が先に実行されます。 デフォルトのpriority
は10です。 この値は、ユーザーが設定ファイルで指定可能な値を利用することをお勧めします。 例: hexo.config.your_plugin.priority
。
フィルターの実行
hexo.extend.filter.exec(type, data, options); |
オプション | 説明 |
---|---|
context |
コンテキスト |
args |
引数。 配列でなければなりません。 |
各フィルターに渡される最初の引数はdata
です。 新たな値を返却することで、次のフィルターに渡されるdata
を変更できます。 何も返却しない場合データは変更されません。 args
を使用してフィルターに他の引数を指定することもできます。 例えば:
hexo.extend.filter.register("test", function (data, arg1, arg2) { |
フィルターを実行するために以下の方法も使用できます:
hexo.execFilter(type, data, options); |
フィルターの登録解除
hexo.extend.filter.unregister(type, filter); |
例
// 名前付き関数で登録されたフィルターを登録解除 |
// commonjsモジュールで登録されたフィルターを登録解除 |
フィルターリスト
Hexoで使用されるフィルターの一覧です。
before_post_render
記事がレンダリングされる前に実行されます。 実行手順については、記事のレンダリングを参照してください。
例えば、タイトルを小文字に変換するには:
hexo.extend.filter.register("before_post_render", function (data) { |
after_post_render
記事がレンダリングされた後に実行されます。 実行手順については、記事のレンダリングを参照してください。
例えば、@username
をTwitterプロファイルへのリンクに置き換えるには:
hexo.extend.filter.register("after_post_render", function (data) { |
before_exit
Hexoが終了する直前、つまりhexo.exit
が呼び出された直後に実行されます。
hexo.extend.filter.register("before_exit", function () { |
before_generate
生成が開始される直前に実行されます。
hexo.extend.filter.register("before_generate", function () { |
after_generate
生成が終了した直後に実行されます。
hexo.extend.filter.register("after_generate", function () { |
template_locals
テンプレートのローカル変数を変更します。
例えば、テンプレートのローカル変数に現在の時間を追加するには:
hexo.extend.filter.register("template_locals", function (locals) { |
after_init
Hexoが初期化、つまりhexo.init
が完了した直後に実行されます。
hexo.extend.filter.register("after_init", function () { |
new_post_path
新しい記事を作成する際のパスを決定するために実行されます。
hexo.extend.filter.register("new_post_path", function (data, replace) { |
post_permalink
記事のパーマリンクを決定するために使用されます。
hexo.extend.filter.register("post_permalink", function (data) { |
after_render
レンダリングが完了した直後に実行されます。 詳細については、レンダリングを参照してください。
after_clean
hexo clean
コマンドで生成されたファイルとキャッシュが削除された後に実行されます。
hexo.extend.filter.register("after_clean", function () { |
server_middleware
サーバーにミドルウェアを追加します。 app
はConnectインスタンスです。
例えば、レスポンスヘッダーにX-Powered-By: Hexo
を追加するには:
hexo.extend.filter.register("server_middleware", function (app) { |