分类 编一点代码 下的文章

一个英文字体文件通常只有 20KB-50KB,而一个包含全量汉字的中文字体(如 SourceHanSansCN-Regular.ttf)体积往往在 4MB 到 25MB 之间。

过去博客是这样加载字体的:

用户打开网页 -> 浏览器尝试下载一个 NMB 的 .woff2 文件 -> 页面文字留白数秒 -> 字体下载完成 -> 文字突然跳动变化。

直到发现了 unicode-range分层子集化(Subsetting) 技术,配合 HTTP/2,彻底解决了这个问题。

- 阅读剩余部分 -

很久没登录,不出意外又忘了密码。搜了一圈,全是教你手动改 typecho_users 表的,不仅操作繁琐,由于 Hash 加密版本问题还不见得适合。

分享一个通过 Typecho 内置 Hash 方法重置密码的脚本。不操作数据库,直接调用程序内核,确保 100% 成功。
操作步骤:

将以下代码保存为 reset-pwd.php。上传至网站根目录。
访问 https://你的域名/reset-pwd.php?k=123,即可。

增加了安全访问 ?k=123,防止忘记删除还有被别人扫描并访问。
自动识别:变量 $user 填数字就是改 UID,填字符串就是改 用户名,一行代码自动切换。

【重要!重要!重要!】 用完一定记得立即删除该脚本。重置为简单密码后,立即登录修改为强密码,或者直接重置为一个强密码(生成密码工具)。最后不要长期保留任何运维脚本在公网目录。

- 阅读剩余部分 -

有需求啦。
有同学需要一个每次访问只能费1kb的流量。那就是连上包含 HTTP 头和 html 页面的能够正好达到1024Bytes。
技术拆解:这其实是个数学题
要让一个页面的 Content-Length 精确稳定在 1024 字节,我们面临三个问题:
Gzip 压缩:现代服务器都很“贴心”,会自动压缩文本。你写了 1KB 的代码,传输过来可能只有 几百 字节。
Favicon 图标:浏览器会自动请求 /favicon.ico,这又是额外的请求和流量。
动态长度:因为要显示“访问次数”,9 是 1 个字符,100 是 3 个字符。数字位数变化会导致总长度变化。必须自动填充!

- 阅读剩余部分 -

note.mk 笔记在使用中,会遇到一行文字太长,而不好复制的问题或者滚动条左右拖着查看的难题。解决这个问题很简单加一个warp="hard" 就好了,但是如果要左边的行数也能对齐的话,就需要花一点小心思了。

用来实现的是采用画布来计算每个文字的宽度,文字宽度累加,超过 textarea 的可视宽度后进行换行。同时在数组设置一个值,记录触发换行的次数,然后左侧行数根据文档换行的次数进行空行。这样可以做到了和实际行数的一致。

- 阅读剩余部分 -