Я пытаюсь использовать функцию Nunjucks, которую я создал для публикации Markdown в Hexo, но я не могу заставить ее работать.
Я использую hexo-renderer-njcks
и hexo-renderer-marked
и добавил такую глобальную функцию:
hexo.extend.filter.register('before_render:nunjucks', function SplitFilter (env) {
env.addGlobal('render_img_tag', function (path) {
return '<img src="' + path + '" />';
})
})
Когда я проверяю env.globals
, функция присутствует правильно, но когда я пытаюсь сгенерировать файлы, я получаю следующую ошибку:
Nunjucks Error: [Line 3, Column 12] Error: Unable to call `render_img_tag`, which is undefined or falsey
===== Context Dump Ends =====
at formatNunjucksError (/home/user/www/dsite.com/node_modules/hexo/lib/extend/tag.js:102:13)
at Promise.fromCallback.catch.err (/home/user/www/dsite.com/node_modules/hexo/lib/extend/tag.js:124:34)
at tryCatcher (/home/user/www/dsite.com/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/user/www/dsite.com/node_modules/bluebird/js/release/promise.js:517:31)
at Promise._settlePromise (/home/user/www/dsite.com/node_modules/bluebird/js/release/promise.js:574:18)
at Promise._settlePromise0 (/home/user/www/dsite.com/node_modules/bluebird/js/release/promise.js:619:10)
at Promise._settlePromises (/home/user/www/dsite.com/node_modules/bluebird/js/release/promise.js:695:18)
at _drainQueueStep (/home/user/www/dsite.com/node_modules/bluebird/js/release/async.js:138:12)
at _drainQueue (/home/user/www/dsite.com/node_modules/bluebird/js/release/async.js:131:9)
at Async._drainQueues (/home/user/www/dsite.com/node_modules/bluebird/js/release/async.js:147:5)
at Immediate.Async.drainQueues [as _onImmediate] (/home/user/www/dsite.com/node_modules/bluebird/js/release/async.js:17:14)
at processImmediate (timers.js:632:19)
Как мне это сделать?
(Примечание: я могу изменить модули, если это необходимо).