インジェクターは、生成されたHTMLファイルの<head>
または/および<body>
に静的コードスニペットを追加するために使用されます。Hexoは、after_render:html
フィルターが実行される**前**にインジェクターを実行します。
概要
hexo.extend.injector.register(entry, value, to); |
entry <string>
HTML内のどこにコードが挿入されるかを示します。
以下の値をサポートしています。
head_begin
:<head>
の直後にコードスニペットを挿入します(デフォルト)。head_end
:</head>
の直前にコードスニペットを挿入します。body_begin
:<body>
の直後にコードスニペットを挿入します。body_end
:</body>
の直前にコードスニペットを挿入します。
value <string> | <Function>
文字列を返す関数がサポートされています。
挿入されるコードスニペット。
to <string>
どのページにコードスニペットが挿入されるかを示します。
default
: すべてのページに挿入します(デフォルト)。home
: ホームページ(is_home()
ヘルパーがtrue
を返すページ)にのみ挿入します。post
: 投稿ページ(is_post()
ヘルパーがtrue
を返すページ)にのみ挿入します。page
: 固定ページ(is_page()
ヘルパーがtrue
を返すページ)にのみ挿入します。archive
: アーカイブページ(is_archive()
ヘルパーがtrue
を返すページ)にのみ挿入します。category
: カテゴリページ(is_category()
ヘルパーがtrue
を返すページ)にのみ挿入します。tag
: タグページ(is_tag()
ヘルパーがtrue
を返すページ)にのみ挿入します。- カスタムレイアウト名も使用できます。詳しくはWriting - Layoutをご覧ください。
その他の内部関数もあります。詳しくはhexojs/hexo#4049をご覧ください。
例
const css = hexo.extend.helper.get("css").bind(hexo); |
上記のセットアップでは、レイアウトがmusic
のページの</head>
にAPlayer.min.css
(<link>
タグ)が挿入され、それらのページの</body>
にAPlayer.min.js
(<script>
タグ)が挿入されます。また、生成されるすべてのページの</body>
にjquery.js
(<script>
タグ)が挿入されます。
ユーザー設定へのアクセス
以下のいずれかのオプションを使用してください。
const css = hexo.extend.helper.get("css").bind(hexo); |
/* global hexo */ |
module.exports = function () { |
function injectFn() { |
/* global hexo */ |
module.exports = (hexo) => () => { |
const injectFn = (hexo) => { |