Refactor next_font helper & NexT.utils.loadComments

This commit is contained in:
Mimi 2020-07-23 15:16:28 +08:00
parent bfa9a75440
commit e953cbf4b0
9 changed files with 14 additions and 12 deletions

View File

@ -2,7 +2,7 @@
<script id="cy_cmt_num" src="https://changyan.sohu.com/upload/plugins/plugins.list.count.js?clientId={{ theme.changyan.appid }}"></script> <script id="cy_cmt_num" src="https://changyan.sohu.com/upload/plugins/plugins.list.count.js?clientId={{ theme.changyan.appid }}"></script>
{% elif page.comments %} {% elif page.comments %}
<script> <script>
NexT.utils.loadComments(document.querySelector('#SOHUCS'), () => { NexT.utils.loadComments('#SOHUCS', () => {
NexT.utils.getScript('https://changyan.sohu.com/upload/changyan.js', () => { NexT.utils.getScript('https://changyan.sohu.com/upload/changyan.js', () => {
window.changyan.api.config({ window.changyan.api.config({
appid: '{{ theme.changyan.appid }}', appid: '{{ theme.changyan.appid }}',

View File

@ -20,7 +20,7 @@
this.language = '{{ __('disqus') }}'; this.language = '{{ __('disqus') }}';
{% endif -%} {% endif -%}
}; };
NexT.utils.loadComments(document.querySelector('#disqus_thread'), () => { NexT.utils.loadComments('#disqus_thread', () => {
if (window.DISQUS) { if (window.DISQUS) {
DISQUS.reset({ DISQUS.reset({
reload: true, reload: true,

View File

@ -5,7 +5,7 @@
{%- set disqusjs_js_uri = theme.vendors.disqusjs_js or '//cdn.jsdelivr.net/npm/disqusjs@1/dist/disqus.js' %} {%- set disqusjs_js_uri = theme.vendors.disqusjs_js or '//cdn.jsdelivr.net/npm/disqusjs@1/dist/disqus.js' %}
<script> <script>
NexT.utils.loadComments(document.querySelector('#disqus_thread'), () => { NexT.utils.loadComments('#disqus_thread', () => {
NexT.utils.getScript('{{ url_for(disqusjs_js_uri) }}', () => { NexT.utils.getScript('{{ url_for(disqusjs_js_uri) }}', () => {
window.dsqjs = new DisqusJS({ window.dsqjs = new DisqusJS({
api : '{{ theme.disqusjs.api }}' || 'https://disqus.com/api/', api : '{{ theme.disqusjs.api }}' || 'https://disqus.com/api/',

View File

@ -5,7 +5,7 @@
{%- set gitalk_js_uri = theme.vendors.gitalk_js or '//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js' %} {%- set gitalk_js_uri = theme.vendors.gitalk_js or '//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js' %}
<script> <script>
NexT.utils.loadComments(document.querySelector('#gitalk-container'), () => { NexT.utils.loadComments('#gitalk-container', () => {
NexT.utils.getScript('{{ url_for(gitalk_js_uri) }}', () => { NexT.utils.getScript('{{ url_for(gitalk_js_uri) }}', () => {
var gitalk = new Gitalk({ var gitalk = new Gitalk({
clientID : '{{ theme.gitalk.client_id }}', clientID : '{{ theme.gitalk.client_id }}',

View File

@ -1,6 +1,6 @@
{%- if page.comments %} {%- if page.comments %}
<script> <script>
NexT.utils.loadComments(document.querySelector('#lv-container'), () => { NexT.utils.loadComments('#lv-container', () => {
window.livereOptions = { window.livereOptions = {
refer: location.pathname.replace(CONFIG.root, '').replace('index.html', '') refer: location.pathname.replace(CONFIG.root, '').replace('index.html', '')
}; };

View File

@ -1,7 +1,7 @@
{%- set valine_uri = theme.vendors.valine or '//cdn.jsdelivr.net/npm/valine@1/dist/Valine.min.js' %} {%- set valine_uri = theme.vendors.valine or '//cdn.jsdelivr.net/npm/valine@1/dist/Valine.min.js' %}
<script> <script>
NexT.utils.loadComments(document.querySelector('#valine-comments'), () => { NexT.utils.loadComments('#valine-comments', () => {
NexT.utils.getScript('{{ url_for(valine_uri) }}', () => { NexT.utils.getScript('{{ url_for(valine_uri) }}', () => {
new Valine(Object.assign({ new Valine(Object.assign({
el : '#valine-comments', el : '#valine-comments',

View File

@ -11,13 +11,14 @@ hexo.extend.helper.register('next_font', function() {
const fontHost = config.host || '//fonts.googleapis.com'; const fontHost = config.host || '//fonts.googleapis.com';
// Get a font list from config // Get a font list from config
let fontFamilies = ['global', 'title', 'headings', 'posts', 'codes'].map(item => { let fontFamilies = [];
['global', 'title', 'headings', 'posts', 'codes'].forEach(item => {
if (config[item] && config[item].family && config[item].external) { if (config[item] && config[item].family && config[item].external) {
return config[item].family + fontStyles; fontFamilies = fontFamilies.concat(config[item].family.split(','));
} }
return ''; });
}).filter(item => item !== '');
fontFamilies = fontFamilies.map(name => name.trim() + fontStyles);
fontFamilies = [...new Set(fontFamilies)].join('|'); fontFamilies = [...new Set(fontFamilies)].join('|');
// Merge extra parameters to the final processed font string // Merge extra parameters to the final processed font string

View File

@ -71,7 +71,7 @@ $menu-item-bg-color-dark = $black-light;
// -------------------------------------------------- // --------------------------------------------------
get_font_family(config) { get_font_family(config) {
$custom-family = hexo-config('font.' + config + '.family'); $custom-family = hexo-config('font.' + config + '.family');
return $custom-family is a 'string' ? $custom-family : null; return $custom-family is a 'string' ? unquote($custom-family) : null;
} }
// Font families. // Font families.

View File

@ -348,7 +348,8 @@ NexT.utils = {
} }
}, },
loadComments: function(element, callback) { loadComments: function(selector, callback) {
const element = document.querySelector(selector);
if (!CONFIG.comments.lazyload || !element) { if (!CONFIG.comments.lazyload || !element) {
callback(); callback();
return; return;