Фильтры используются для изменения указанных данных. Hexo передает данные для фильтров в определенной последовательности и фильтров изменения данных один за другим. Эта концепция была заимствована из WordPress
Краткий обзор
hexo.extend.filter.register(type, function(){ |
Вы можете определить приоритет. Низкий приоритет означает, что он будет выполняться в первую очередь. Приоритет по умолчанию равен 10
Использование фильтров
hexo.extend.filter.exec(type, data, options); |
Опция | Описание |
---|---|
context |
Контекст |
args |
Аргументы. Должны быть в виде массива. |
Первый аргумент, передаваемый в каждый фильтр, это data
. Данные data
, передаваемые в следующий фильтр, могут быть изменены путем возврата нового значения. Если же ничего не возвращается, данные остаются без изменений. Вы даже можете использовать аргументы, чтобы указать другие аргументы в фильтрах. Например:
hexo.extend.filter.register('test', function(data, arg1, arg2){ |
Также можно использовать следующие методы для выполнения фильтров:
hexo.execFilter(type, data, options); |
Отмена фильтров
hexo.extend.filter.unregister(type, filter); |
Список фильтров
Здесь находится список фильтров, используемых в Hexo.
before_post_render
Выполняется перед началом обработки поста. См. post rendering для изучения этапов обработки.
Например, перевести название в нижний регистр:
hexo.extend.filter.register('before_post_render', function(data){ |
after_post_render
Выполняется после завершения обработки поста. См. post rendering для изучения этапов выполнения.
Например, чтобы заменить @username
ссылкой на профиль в Twitter:
hexo.extend.filter.register('after_post_render', function(data){ |
before_exit
Выполняется перед выходом из Hexo. Срабатывает сразу после выполнения hexo.exit
.
hexo.extend.filter.register('before_exit', function(){ |
before_generate
Выполнится перед началом генерации.
hexo.extend.filter.register('before_generate', function(){ |
after_generate
Выполнится после окончания генерации.
hexo.extend.filter.register('after_generate', function(){ |
template_locals
Позволяет изменять локальные переменные в шаблонах.
Например, чтобы добавить переменную текущего времени в шаблон:
hexo.extend.filter.register('template_locals', function(locals){ |
after_init
Выполнится после начала инициализации Hexo - запустится только после того, как полностью отработает команда hexo.init
.
hexo.extend.filter.register('after_init', function(){ |
new_post_path
Используется при создании поста для определения пути постоянной ссылки.
hexo.extend.filter.register('new_post_path', function(data, replace){ |
post_permalink
Выполняется при создании поста для определения пути постоянной ссылки.
hexo.extend.filter.register('post_permalink', function(data){ |
after_render
Выполнится после завершения обработки. См. рендеринг для подробностей.
server_middleware
Добавляет промежуточные задачи для сервера. app
является экземпляром Connect.
Например, чтобы добавить X-Powered-By: Hexo
в заголовке ответа:
hexo.extend.filter.register('server_middleware', function(app){ |