您访问的是非正式的站点,不是最新内容哦,请点击这里前往Dnocm ヾ(=゚・゚=)ノ喵♪

若白驹过隙,忽然而已

自定义

Cake提供强大的自定义功能,确保你能在不修改主题文件的情况下,注入新的组件,或者使用外部文件替换主题文件

Inject

Cake提供新的过滤类型theme_inject,你能通过它,在提供的注入点中,添加你的自定义内容。插件便是基于此开发

例如:

1
2
3
4
hexo.extend.filter.register('theme_inject', function(injects) {
injects.head.file('custom', 'source/_data/head.swig', {}, {cache: true});
injects.sidebar.raw('custom', 'Put some in sidebar!');
});

目前拥有的注入点: 查看injects-point.js

Api:

  • View: injects.[point].file/raw(name, file/raw[, locals][, options])
  • Css: injects.[point].push(file)

已在NexT中添加Inject,前往NexT文档中查看更详细的使用

Replace

这部分是hexo的功能,在大部分主题中都支持(需要使用partial替换include,Cake除layout根目录下无法替换外,其余都支持)

1
2
3
4
const fs = require('fs');
hexo.extend.filter.register('before_generate', function (data) {
hexo.theme.setView('需要替换的文件路径', fs.readFileSync('你的自定义文件').toString());
});

你也可以使用hexo-theme-plus简化这部分工作