Code style update

This commit is contained in:
Mimi 2020-06-13 12:20:43 +08:00
parent b02c93dc3a
commit da9c1dda7c
6 changed files with 19 additions and 41 deletions

View File

@ -47,7 +47,7 @@
<link rel="stylesheet" href="{{ font_awesome_uri }}"> <link rel="stylesheet" href="{{ font_awesome_uri }}">
{%- if theme.fancybox %} {%- if theme.fancybox %}
{%- set fancybox_css_uri = theme.vendors.fancybox_css or next_vendors('//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.css') %} {%- set fancybox_css_uri = theme.vendors.fancybox_css or '//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.css' %}
<link rel="stylesheet" href="{{ fancybox_css_uri }}"> <link rel="stylesheet" href="{{ fancybox_css_uri }}">
{%- endif %} {%- endif %}

View File

@ -1,5 +1,5 @@
{%- if page.quicklink.enable %} {%- if page.quicklink.enable %}
{%- set quicklink_uri = theme.vendors.quicklink or next_vendors('//cdn.jsdelivr.net/npm/quicklink@1/dist/quicklink.umd.js') %} {%- set quicklink_uri = theme.vendors.quicklink or '//cdn.jsdelivr.net/npm/quicklink@1/dist/quicklink.umd.js' %}
<script src="{{ quicklink_uri }}"></script> <script src="{{ quicklink_uri }}"></script>
<script> <script>
{%- if page.quicklink.delay %} {%- if page.quicklink.delay %}

View File

@ -1,5 +1,5 @@
{%- set algolia_search_uri = theme.vendors.algolia_search or next_vendors('//cdn.jsdelivr.net/npm/algoliasearch@4/dist/algoliasearch-lite.umd.js') %} {%- set algolia_search_uri = theme.vendors.algolia_search or '//cdn.jsdelivr.net/npm/algoliasearch@4/dist/algoliasearch-lite.umd.js' %}
{%- set instant_search_uri = theme.vendors.instant_search or next_vendors('//cdn.jsdelivr.net/npm/instantsearch.js@4/dist/instantsearch.production.min.js') %} {%- set instant_search_uri = theme.vendors.instant_search or '//cdn.jsdelivr.net/npm/instantsearch.js@4/dist/instantsearch.production.min.js' %}
<script src="{{ algolia_search_uri }}"></script> <script src="{{ algolia_search_uri }}"></script>
<script src="{{ instant_search_uri }}"></script> <script src="{{ instant_search_uri }}"></script>

View File

@ -1,37 +1,19 @@
'use strict'; 'use strict';
function isObject(item) { const merge = require('hexo-util').deepMerge || require('lodash/merge');
return item && typeof item === 'object' && !Array.isArray(item);
}
function merge(target, source) {
for (const key in source) {
if (isObject(target[key]) && isObject(source[key])) {
merge(target[key], source[key]);
} else {
target[key] = source[key];
}
}
return target;
}
module.exports = hexo => { module.exports = hexo => {
let data = hexo.locals.get('data'); let data = hexo.locals.get('data');
/** /**
* Merge configs from _data/next.yml into hexo.theme.config. * Merge configs from _data/next.yml into hexo.theme.config.
* If `override`, configs in next.yml will rewrite configs in hexo.theme.config.
* If next.yml not exists, merge all `theme_config.*` into hexo.theme.config. * If next.yml not exists, merge all `theme_config.*` into hexo.theme.config.
*/ */
if (data.next) { if (data.next) {
if (data.next.override) { hexo.config = merge(hexo.config, data.next);
hexo.theme.config = data.next; hexo.theme.config = merge(hexo.theme.config, data.next);
} else { } else if (hexo.config.theme_config) {
merge(hexo.config, data.next); hexo.theme.config = merge(hexo.theme.config, hexo.config.theme_config);
merge(hexo.theme.config, data.next);
}
} else {
merge(hexo.theme.config, hexo.config.theme_config);
} }
if (hexo.theme.config.cache && hexo.theme.config.cache.enable && hexo.config.relative_link) { if (hexo.theme.config.cache && hexo.theme.config.cache.enable && hexo.config.relative_link) {

View File

@ -5,24 +5,24 @@
const crypto = require('crypto'); const crypto = require('crypto');
hexo.extend.helper.register('next_inject', function(point) { hexo.extend.helper.register('next_inject', function(point) {
return hexo.theme.config.injects[point] return this.theme.injects[point]
.map(item => this.partial(item.layout, item.locals, item.options)) .map(item => this.partial(item.layout, item.locals, item.options))
.join(''); .join('');
}); });
hexo.extend.helper.register('next_js', function(...urls) { hexo.extend.helper.register('next_js', function(...urls) {
const { js } = hexo.theme.config; const { js } = this.theme;
return urls.map(url => this.js(`${js}/${url}`)).join(''); return urls.map(url => this.js(`${js}/${url}`)).join('');
}); });
hexo.extend.helper.register('next_vendors', function(url) { hexo.extend.helper.register('next_vendors', function(url) {
if (url.startsWith('//')) return url; if (url.startsWith('//')) return url;
const internal = hexo.theme.config.vendors._internal; const internal = this.theme.vendors._internal;
return this.url_for(`${internal}/${url}`); return this.url_for(`${internal}/${url}`);
}); });
hexo.extend.helper.register('post_edit', function(src) { hexo.extend.helper.register('post_edit', function(src) {
const theme = hexo.theme.config; const { theme } = this;
if (!theme.post_edit.enable) return ''; if (!theme.post_edit.enable) return '';
return this.next_url(theme.post_edit.url + src, '<i class="fa fa-pen-nib"></i>', { return this.next_url(theme.post_edit.url + src, '<i class="fa fa-pen-nib"></i>', {
class: 'post-edit-link', class: 'post-edit-link',
@ -31,7 +31,7 @@ hexo.extend.helper.register('post_edit', function(src) {
}); });
hexo.extend.helper.register('post_nav', function(post) { hexo.extend.helper.register('post_nav', function(post) {
const theme = hexo.theme.config; const { theme } = this;
if (theme.post_navigation === false || (!post.prev && !post.next)) return ''; if (theme.post_navigation === false || (!post.prev && !post.next)) return '';
const prev = theme.post_navigation === 'right' ? post.prev : post.next; const prev = theme.post_navigation === 'right' ? post.prev : post.next;
const next = theme.post_navigation === 'right' ? post.next : post.prev; const next = theme.post_navigation === 'right' ? post.next : post.prev;

View File

@ -2,13 +2,11 @@
'use strict'; 'use strict';
hexo.extend.helper.register('next_font', () => { hexo.extend.helper.register('next_font', function() {
const config = hexo.theme.config.font; const config = this.theme.font;
if (!config || !config.enable) return ''; if (!config || !config.enable) return '';
const fontDisplay = '&display=swap';
const fontSubset = '&subset=latin,latin-ext';
const fontStyles = ':300,300italic,400,400italic,700,700italic'; const fontStyles = ':300,300italic,400,400italic,700,700italic';
const fontHost = config.host || '//fonts.googleapis.com'; const fontHost = config.host || '//fonts.googleapis.com';
@ -18,12 +16,10 @@ hexo.extend.helper.register('next_font', () => {
return config[item].family + fontStyles; return config[item].family + fontStyles;
} }
return ''; return '';
}); }).filter(item => item !== '');
fontFamilies = fontFamilies.filter(item => item !== ''); fontFamilies = [...new Set(fontFamilies)].join('|');
fontFamilies = [...new Set(fontFamilies)];
fontFamilies = fontFamilies.join('|');
// Merge extra parameters to the final processed font string // Merge extra parameters to the final processed font string
return fontFamilies ? `<link rel="stylesheet" href="${fontHost}/css?family=${fontFamilies.concat(fontDisplay, fontSubset)}">` : ''; return fontFamilies ? `<link rel="stylesheet" href="${fontHost}/css?family=${fontFamilies}&display=swap&subset=latin,latin-ext">` : '';
}); });