Инъектор используется для добавления статического фрагмента кода в <head> и/или <body> генерируемых HTML-файлов. Hexo производит вставку до того, как будет выполнен фильтр after_render:html.
Краткий обзор
hexo.extend.injector.register(entry, value, to); |
ввод <string>
Используется там, где необходимо ввести код внутрь HTML напрямую.
Support those values:
head_begin: ввод фрагмента кода сразу после<head>(по умолчанию).head_end: введите фрагмент кода прямо перед `‘.body_begin: введите фрагмент кода сразу после<body>.body_end: введите фрагмент кода прямо перед `
значение <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); |
Вышеуказанная настройка добавит APlayer.min.css (с тегом <link>) в </head> любой страницы, макет которой установлен как music, и APlayer.min.js (тег <script>) в </body> этих страниц. Кроме того, jquery.js (с тегом <script>) будет вставлен в </body> каждой сгенерированной страницы.
Доступ к пользовательской конфигурации
Используйте любой из следующих вариантов:
const css = hexo.extend.helper.get("css").bind(hexo); |
/* global hexo */ |
module.exports = function () { |
function injectFn() { |
/* global hexo */ |
module.exports = (hexo) => () => { |
const injectFn = (hexo) => { |