1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
module.exports.config = {
serviceWorker: { cacheName: "CiraosBlogCache", escape: 0 }, register: { onerror: undefined }, dom: { onsuccess: () => { caches.match('https://id.v3/').then(function (response) { if (response) { response.json().then(function (data) { anzhiyuPopupManager && anzhiyuPopupManager.enqueuePopup('通知📢', `已刷新缓存,更新为${data.global + "." + data.local}版本最新内容`, null, 5000); }); } else { console.info('未找到匹配的缓存响应'); } }).catch(function (error) { console.error('缓存匹配出错:', error); }); }, }, json: { merge: ['page', 'archives', 'categories', 'tags'] }, external: { stable: [ /^https:\/\/npm\.elemecdn\.com\/[^/@]+\@[^/@]+\/[^/]+\/[^/]+$/, /^https:\/\/cdn\.cbd\.int\/[^/@]+\@[^/@]+\/[^/]+\/[^/]+$/, /^https:\/\/cdn\.jsdelivr\.net\/npm\/[^/@]+\@[^/@]+\/[^/]+\/[^/]+$/, ], replacer: srcUrl => { if (srcUrl.startsWith('https://npm.elemecdn.com')) { const url = new URL(srcUrl) return [ srcUrl, `https://cdn.cbd.int` + url.pathname, `https://cdn.jsdelivr.net/npm` + url.pathname, `https://cdn1.tianli0.top/npm` + url.pathname, `https://fastly.jsdelivr.net/npm` + url.pathname ] } else { return srcUrl } }, } };
module.exports.skipRequest = request => request.url.startsWith('https://i0.hdslb.com') || request.url.startsWith('https://hm.baidu.com') || request.url.startsWith('https://meting.qjqq.cn') || request.url.startsWith('https://api.i-metro.com');
module.exports.cacheRules = { simple: { clean: true, search: false, match: (url, $eject) => { const allowedHost = $eject.domain; const allowedPaths = ["/404.html", "/css/index.css"]; return url.host === allowedHost && allowedPaths.includes(url.pathname); }, }, cdn: { clean: true, match: url => [ "cdn.cbd.int", "lf26-cdn-tos.bytecdntp.com", "lf6-cdn-tos.bytecdntp.com", "lf3-cdn-tos.bytecdntp.com", "lf9-cdn-tos.bytecdntp.com", "cdn.staticfile.org", "npm.elemecdn.com", ].includes(url.host) && url.pathname.match(/\.(js|css|woff2|woff|ttf|cur)$/), }, };
module.exports.getSpareUrls = srcUrl => { if (srcUrl.startsWith("https://npm.elemecdn.com")) { return { timeout: 3000, list: [srcUrl, `https://cdn.cbd.int/${new URL(srcUrl).pathname}`], }; } };
module.exports.ejectValues = (hexo, rules) => { return { domain: { prefix: "const", value: new URL(hexo.config.url).host, }, }; };
|