是否可以在Ghost中注册自定义帮助程序?

时间:2016-06-29 15:50:40

标签: javascript node.js handlebars.js ghost

我在this guide之后使用Ghost作为npm模块。

我想添加一些我可以在我的主题中使用的自定义助手。有没有办法在不更改Ghost模块内的代码的情况下执行此操作?

这是我目前的代码:

const ghost = require('ghost');
const path = require('path');
const hbs = require('express-hbs');

const config = path.join(__dirname, 'config.js');
const coreHelpers = {};

coreHelpers.sd_nls  = require('./sd_nls');

// Register a handlebars helper for themes
function registerThemeHelper(name, fn) {
  hbs.registerHelper(name, fn);
}

registerThemeHelper('sd_nls', coreHelpers.sd_nls);

ghost({ config: config })
  .then(ghostServer => ghostServer.start());

我认为一个可能的问题是我的hbs是一个新的手柄实例,与Ghost使用的实例不同,因此当Ghost运行时它并不包括我注册的任何帮助者。

1 个答案:

答案 0 :(得分:0)

不幸的是,即使使用最新版本,这仍然是一个新问题。我试图提出自己的基于3文件的解决方案,该解决方案将采用原始的Ghost Dockerfile并从那里构建,仅从一个目录添加自定义帮助程序。

在这里找到它