gpt4 book ai didi

ghost-blog - 主题开发 : Adding custom handle bar helpers

转载 作者:行者123 更新时间:2023-12-04 00:16:38 27 4
gpt4 key购买 nike

对于techno theme我想让用户可以使用自定义 hb 助手和配置。为此,我对 [ghost root]/index.js 应用了覆盖。

下面的代码在当前主题文件夹中搜索 index.js 并运行它。

var ghost = require('./core'),
errors = require('./core/server/errorHandling');

ghost()
.then(function (param) {

var settings = require('./core/server/api').settings;

settings
.read({key: 'activeTheme', context: {internal: true}})
.then(function (result) {

try {
require('./content/themes/' + result.value + '/index')();
}
catch (e) {
//No custom index found, or it wasn't a proper module.
}

});
})
.otherwise(function (err) {
errors.logErrorAndExit(err, err.context, err.help);
});

主题级别 index.js 注入(inject)自定义博客变量(来自配置文件)和 hb 助手。

var hbs = require('express-hbs'),
_ = require('lodash'),
downsize = require('downsize'),
blogVariable = require('../../../core/server/config/theme');

module.exports = function() {

//This block allows configuration to be available in the hb templates.
var blogConfig = blogVariable();
var config = require('./config') || {};
blogConfig.theme = config;
//console.log(JSON.stringify(blogConfig));

////Custom hb helpers////

hbs.registerHelper('excerpt', function (options) {

...

return new hbs.handlebars.SafeString(excerpt);
});

...

};

下面是使用自定义博客变量的示例。

<ul class="list-inline">
<li><a href="{{@blog.theme.author.github}}" class="btn-social btn-outline" data-toggle="tooltip" data-placement="top" title="Github"><i class="fa fa-fw fa-github"></i></a>
</li>
...

在 Ghost 0.4.2 中有更好的方法吗?我不喜欢让用户覆盖幽灵核心 index.js 文件。

最佳答案

有一篇博文解释了如何仅通过修改 config.js 文件并将文件添加到根目录来完成此操作。我同意作者的观点,这更有可能是防更新的。 http://zackehh.com/safely-creating-custom-handlebars-helpers/

添加:

require('./helpers')();

config.js的顶部

然后将助手添加到您的 helpers.js 文件中,如下所示:

var hbs = require('express-hbs');

module.exports = function(){
hbs.registerHelper('json', function(context) {
return JSON.stringify(context);
});
};

关于ghost-blog - 主题开发 : Adding custom handle bar helpers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25162787/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com