ヘルパー

ヘルパーを使用すると、テンプレートにスニペットを簡単に追加できます。より複雑なコードを扱う場合は、テンプレートの代わりにヘルパーを使用することをお勧めします。

ヘルパーは source ファイルからはアクセスできません。

概要

hexo.extend.helper.register(name, function () {
// ...
});

hexo.extend.helper.register("js", function (path) {
return '<script src="' + path + '"></script>';
});
<%- js('script.js') %>
// <script src="script.js"></script>

よくある質問

カスタムヘルパーの配置場所

scripts/ または themes/<yourtheme>/scripts/ フォルダーに配置します。

カスタムヘルパーで別の登録済みヘルパーを使用するにはどうすればよいですか?

すべてのヘルパーは同じコンテキストで実行されます。たとえば、カスタムヘルパー内で url_for() を使用するには

hexo.extend.helper.register("lorem", function (path) {
return '<script src="' + this.url_for(path) + '"></script>';
});

別の拡張機能(例:フィルター、インジェクター)で登録済みヘルパーを使用するにはどうすればよいですか?

hexo.extend.helper.get はヘルパー関数を返しますが、hexoをコンテキストとして持つ必要があるため、

const url_for = hexo.extend.helper.get("url_for").bind(hexo);