压缩时可能会报 parseError,可以在ignoreCustomFragments
里添加相应的规则忽略某些语法的解析。如添加/\$\$[\s\S]*?\$\$/]
,以忽略$$...$$
中的代码;不会写 js 正则表达式,可以询问 ai
Error in plugin "gulp-html-minifier-terser" Message: Parse Error: < W_{T} \lt 2^{n-1}; n为分组中的bit数 \\\\ & 若W_{T} = 1,则退化为停止等待协议;若W_{T} \gt 2^{n-1},则会造成接收方无法辨别新旧数据分组的问题\\\\ & 接收窗口尺寸W_{R}必须满足: 1 < W_{R} \leq W_{T}\\\\ & 若W_{R} = 1,则退化为回退 N 帧协议;W_{R} \gt W_{T}没有意义 \end{align*} $$ </div>
npm install hexo-native-lazy-load --save
lazy_load: enable: true onlypost: false
hexo clean
,部署后在页面打开 devtools;可以看到 img 已添加loading="lazy"
instant.page uses just-in-time preloading — it preloads a page right before a user clicks on it.
根目录创建scripts/instant-page.js
,注入以下代码
hexo.extend.injector.register( "body_end", '<script src="//instant.page/5.2.0" type="module" integrity="sha384-jnZyxPjiipYXnSU0ygqeac2q7CVYMbh84q0uHVRRxEtvFPiQYbXWUorga2aqZJ0z"></script>', "default");
目前 Icarus 仅初步支持 Pjax,详见https://github.com/ppoffice/hexo-theme-icarus/pull/1287
一种广泛采用的免费方案:github 作为图床,jsdelivr 作为 CDN;优点是免费,但国内访问效果一般。如果预算充足的话可以考虑替换掉
引用图片时:<img src="https://cdn.jsdelivr.net/gh/<user_name>/<repo_name>@<branch_name>/<path_to_your_image>" alt="">
此外 Cloudflare 也免费提供了一定额度的 R2 + CDN 服务,可以考虑使用;需要信用卡,下载 Paypal 绑定国内银联的信用卡即可。这也是本站目前使用的方案
Tools
更多优化方案
Blog性能优化记录