UNPKG

hexo-theme-butterfly

Version:

A Simple and Card UI Design theme for Hexo

32 lines (25 loc) 985 B
/** * Butterfly * lazyload * replace src to data-lazy-src */ 'use strict' const urlFor = require('hexo-util').url_for.bind(hexo) const lazyload = htmlContent => { if (hexo.theme.config.lazyload.native) { return htmlContent.replace(/(<img.*?)(>)/ig, '$1 loading=\'lazy\'$2') } const bg = hexo.theme.config.lazyload.placeholder ? urlFor(hexo.theme.config.lazyload.placeholder) : 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7' return htmlContent.replace(/(<img.*? src=)/ig, `$1 "${bg}" data-lazy-src=`) } hexo.extend.filter.register('after_render:html', data => { const { enable, field } = hexo.theme.config.lazyload if (!enable || field !== 'site') return return lazyload(data) }) hexo.extend.filter.register('after_post_render', data => { const { enable, field } = hexo.theme.config.lazyload if (!enable || field !== 'post') return data.content = lazyload(data.content) return data })