/* global hexo */ 'use strict'; hexo.extend.helper.register('next_font', () => { const config = hexo.theme.config.font; if (!config || !config.enable) return ''; const fontDisplay = '&display=swap'; const fontSubset = '&subset=latin,latin-ext'; const fontStyles = ':300,300italic,400,400italic,700,700italic'; const fontHost = config.host || '//fonts.googleapis.com'; //Get a font list from config let fontFamilies = ['global', 'title', 'headings', 'posts', 'codes'].map(item => { if (config[item] && config[item].family && config[item].external) { return config[item].family + fontStyles; } return ''; }); fontFamilies = fontFamilies.filter(item => item !== ''); fontFamilies = [...new Set(fontFamilies)]; fontFamilies = fontFamilies.join('|'); // Merge extra parameters to the final processed font string return fontFamilies ? `` : ''; });