hexo-theme-amane/include/helper/page.js

35 lines
1.0 KiB
JavaScript

/**
* Helper functions for page/post.
*
* @example
* <%- is_categories(page) %>
* <%- is_tags(page) %>
* <%- has_thumbnail(post) %>
* <%- get_thumbnail(post) %>
*/
module.exports = function(hexo) {
hexo.extend.helper.register('is_categories', function(page = null) {
return (page === null ? this.page : page).__categories;
});
hexo.extend.helper.register('is_tags', function(page = null) {
return (page === null ? this.page : page).__tags;
});
hexo.extend.helper.register('has_thumbnail', function(post) {
const { article } = this.config;
if (typeof post !== 'object') {
return false;
}
if (article && article.thumbnail === false) {
return false;
}
return 'thumbnail' in post && post.thumbnail;
});
hexo.extend.helper.register('get_thumbnail', function(post) {
const { url_for, has_thumbnail } = this.helper;
return url_for(has_thumbnail.call(this, post) ? post.thumbnail : '/img/thumbnail.svg');
});
};