Инъектор используется для добавления статического фрагмента кода в <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) => { |