🏷️ 2.3.0發佈

This commit is contained in:
Jerry committed 2020-04-26 23:37:37 +08:00
commit e2cb0242bb
79 files changed
+1642 -744

No files matched your search

+9 -2
View File
@@ -1,8 +1,15 @@
hexo.extend.generator.register('404', function(locals){
/**
* Butterfly
* 404 error page
*/
'use strict'
hexo.extend.generator.register('404', function (locals) {
if (!hexo.theme.config.error_404.enable) return
return {
path: '404.html',
data: locals.posts,
layout: ['404']
}
});
})
@@ -2,6 +2,8 @@
* Note: configs in _data/butterfly.yml will replace configs in hexo.theme.config.
*/
'use strict'
hexo.on('generateBefore', function () {
const rootConfig = hexo.config
if (hexo.locals.get) {
@@ -9,4 +11,4 @@ hexo.on('generateBefore', function () {
data && data.butterfly && (hexo.theme.config = data.butterfly)
}
hexo.theme.config.rootConfig = rootConfig
})
})
-63
View File
@@ -1,63 +0,0 @@
/**
* global hexo
* from printempw/hexo-hide-posts
* modify by Jerry
*/
'use strict';
var public_generators = [];
hexo.extend.filter.register('before_generate', function () {
this._bindLocals();
const all_posts = this.locals.get('posts');
const hidden_posts = all_posts.find({
'hide': true
});
const normal_posts = all_posts.filter(post => !post['hide']);
this.locals.set('all_posts', all_posts);
this.locals.set('hidden_posts', hidden_posts);
this.locals.set('posts', normal_posts);
});
hexo.extend.filter.register('after_init', function () {
const original = {};
for (const name in hexo.extend.generator.list()) {
original[name] = hexo.extend.generator.get(name);
}
hexo.extend.generator.register('post', async function (locals) {
const fg = original.post.bind(this);
const generated_public = await fg(locals);
const generated_hidden = await fg(Object.assign({}, locals, {
posts: locals.hidden_posts
}));
// Remove post.prev and post.next for hidden posts
generated_hidden.forEach(ele => {
ele.data.prev = ele.data.next = null;
});
return generated_public.concat(generated_hidden);
});
// Then we hack into other generators if necessary
public_generators.filter(
name => Object.keys(original).includes(name)
).forEach(name => {
// Overwrite original generator
hexo.extend.generator.register(name, function (locals) {
const fg = original[name].bind(this);
return fg(Object.assign({}, locals, {
posts: new locals.posts.constructor(
locals.posts.data.concat(locals.hidden_posts.data)
)
}));
});
});
});
Loaded 3 of 79 files, more files were not shown because too many files have changed in this diff. Show more