インジェクターは、生成された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
の場合)。- カスタムレイアウト名も使用可能です。 詳細は執筆 - レイアウトを参照してください。
他にも内部関数があります。 詳細は、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) => { |