优化 Rime 英文输入体验

在 Rime 拼音方案中输入英文 用 easy_en 方案挂载到自己的主输入方案(全拼、双拼、五笔等),就可以同时输入英文单词。 我用的是 melt_eng 方案,差不多,就是拼写规则的大小写方面改了一点。 引入示例: schema: dependencies: - melt_eng engine: translators: - table_translator@melt_eng melt_eng: dictionary: melt_eng 这样挂载了英文方案与英文词库,在拼音方案下就可以输入英文单词。 因为不是同一个翻译器,英文不会和拼音共同造词,比如输入「applediannao」,并不会自动生成「Apple电脑」,只能给常用的中英混合词汇单独弄一个词典。 期望的行为: 拼音优先 输入「ma」,前几个候选项应为「吗 嘛 马」,而不是「Mac mad man」。 重码时拼音优先 如「四则」与 size 冲突时,希望「四则」排在第一位 短单词优先 输入 mac,第一候选项应为 Mac,而不是「马车」。 可以降低个别短单词在候选项的位置,在下文。 未输入完全时的英文长单词: 输入 googl,第一候选项应为 Google,而不是「个哦讴歌来」这种无意义的内容。 目前的问题: 目前的问题是这样的,输入完整的短单词权重低,输入不完整的长单词时第一候选项总是一个莫名其妙的中文。 权重设定 经过多次尝试,最后是给拼音和英文都设置一个权重来搞定的: # 拼音 translator: dictionary: rime_ice initial_quality: x # 英文 melt_eng: dictionary: melt_eng initial_quality: y 尝试过「不设置:-1」「不设置:0」「不设置:1」「1:0」「2:1」「3:2」「2:1.x」。。。 最后发现一个神奇的比例是 2 > x > y > 1。...

2022-05-12 · (updated: 2023-06-08)

判断字符是否为简体字或繁体字

判断一个字符是简体字还是繁体字。 Unicode 范围 开始以为可以用 Unicode 范围来表示,了解后发现简繁之间在 Unicode 字符集中位置存在交集,并且不是连续的,没办法用这种方法搞定。 如果真要靠这种办法,需要在茫茫字表中进行超级详细和繁杂的范围指定。 看到叶典网有一个字符集范围,但没有区分简繁。 Golang 也有一个 unicode.Han,也没有区分简繁。 Unihan_Variants.txt 在 http://www.unicode.org/Public/UCD/latest/ucd/ 下载 Unihan.zip,打开里面的 Unihan_Variants.txt。 比如「战斗」的「斗」(繁体是「鬥」)这两行: 「斗」是 U+6597,「鬥」是 U+9B25。 U+6597 kTraditionalVariant U+9B25 U+9B25 kSimplifiedVariant U+6597 kTraditionalVariant 前面是简体专用,后面是繁体专用; kSimplifiedVariant 前面是繁体专用,后面是简体专用。 另外有「后U+540E、後U+5F8C」这种的字,「皇后」是简繁体通用,但表示 behind 时,简体用「后面」,繁体用「後面」。 所以就有以下这些行: U+540E kSimplifiedVariant U+540E U+5F8C kSimplifiedVariant U+540E U+540E kTraditionalVariant U+540E U+5F8C ------- 翻译一下: ------- 后 kSimplifiedVariant 后 後 kSimplifiedVariant 后 后 kTraditionalVariant 后 後 这种一对多、多对一的转换,除了「后/後」,还有「干/幹」等。 还有 kSpecializedSemanticVariant 这种「井/丼」的。 还有 kSpoofingVariant 这种欺骗性变体,比如「胶 U+80F6」和「㬵 U+3B35」不是同一个字。 参照 http://www....

2022-04-28

Cloudflare 转入域名提示「出现了问题。请重试转移此域。尚未向您收费。」

Cloudflare 转入域名时出现错误提示: 「出现了问题。」 「请重试转移此域。尚未向您收费。」 英文版的: “Something went wrong.” “Please retry transferring this domain. You have not been charged.” 可能是付款问题。 提示的信息过于宽泛了没有想到是这个问题,也不知道其实 Cloudflare 会在这一步直接收取费用,应该提示「付款方式出现了问题」才对。 我 Cloudflare 一直都在用免费套餐,没想着会付款,忘记了之前有一次将它从 PayPal 的「自动付款」选项中删除了。 在 Cloudflare 「控制台 - 管理账户 - 账单」中重新添加或编辑一下,再绑定上 PayPal 就好了。 提示 “Account specified does not exist” 时也可能是付款信息问题,比如未添加付款方式。

2022-01-22

图片压缩:Squoosh、TinyPNG、ImageOptim、WebP

一些方便的图片压缩方法: 用 Squoosh 进行格式转换、压缩。 用 TinyPNG 对 JPEG、PNG、WebP 的压缩。 用 ImageOptim 进行本地的 JPEG、PNG 压缩。 用 Google 的 WebP CLI 工具转换为 WebP。(速度最快,推荐) Squoosh 可以直接在浏览器打开 https://squoosh.app/ 进行压缩,支持即时预览、格式转换和很多参数调节。 也可以用 Squoosh 的 CLI 在本地压缩或转换。 TinyPNG 支持 JPEG、PNG、WebP,压缩效果和 Squoosh 差不太多,但是速度快了很多。 可以直接在浏览器打开 https://tinypng.com/ 上传 - 压缩 - 下载。 点击导航栏的 THIRD-PARTY,下面也有一些第三方的客户端,比如这个 kyleduo/TinyPNG4Mac 就不错。 Compress PNG/JPG https://www.websiteplanet.com/zh-hans/webtools/imagecompressor/ 免费又方便的线上工具,可选三种压缩模式。 ImageOptim https://imageoptim.com/ ImageOptim 也超棒,提供了 Windows/macOS/Linux 客户端,完全本地操作,但是不支持 WebP。 WebP WebP 是 Google 于 2010 年 09 月 30 日推出的,同时提供了有损压缩与无损压缩(可逆压缩)的图片文件格式。WebP 的设计目标是在减少文件大小的同时,达到和 JPEG、PNG、GIF 格式相同的图片质量。压缩率很高,10M 的 PNG 图片转换成 WebP 只需要大约 1~2M,而肉眼几乎不可分辨的有损压缩能压到 500KB 左右。...

2022-01-21 · (updated: 2022-05-23)

macOS grep + sed 批量替换多个文件的内容

偶尔的替换用 VSCode 或 JetBrains IDE 的类似 Cmd + Shift + H 的文件替换就可以了。 经常或快捷的使用,可以用 grep + sed 命令进行替换。 搜索试了几个命令,发现有空格的路径会导致一些错误。 一顿搜索,找到了一个解决办法,参考 Grep word within a file then copy the file: --null 告诉 grep 以 NUL 字符分割文件名 -0 告诉 sed 以 NUL 分割输入 最终命令示例,以 bar 替换 foo。 区分大小写: $ grep -lr --null 'foo' * | xargs -0 sed -i '' 's/foo/bar/g' 不区分大小写: $ grep -ilr --null 'foo' * | xargs -0 sed -i '' 's/foo/bar/gI' grep -i, --ignore-case 查找文件时不区分大小写 -l, --files-with-matches 返回文件名 -R, -r, --recursive 递归搜索子目录 sed -i 默认 sed 会打印到标准输出,使用 -i 将直接在文件内编辑替换 s 替换 g 全局替换标志 I 大小写不敏感标志 示例。...

2022-01-14 · (updated: 2022-02-19)

在 macOS 根目录创建文件夹

可能有一些无法更改源码的老项目或智障项目会使用根目录来搞事情,但现在默认已经不支持对根目录进行修改了。 macOS 10.15 Catalina 在恢复模式关闭 SIP: 重启并按住 Cmd + R 进入恢复模式 菜单栏 - 实用工具 - 终端 输入命令 csrutil disable 重启 后接着执行: $ sudo mount -uw / 重启后就可以在根目录创建文件夹了。 macOS 11 Big Sur 和 macOS 12 Monterey 不需要关闭 SIP。 直接对根目录进行软链接会报错: $ ln -s /Users/dvel/foo/bar /bar ln: /bar: Read-only file system 现在根目录是只读的,但可以使用 synthetic.conf 文件来创建一个虚拟链接连接到数据盘,类似 ln -s 的软链接。 假设要在根目录创建 abc 文件夹。 编辑或创建 synthetic.conf: $ sudo vim /etc/synthetic.conf 输入内容(中间是 Tab,不是空格,切勿敲错): abc /Users/dvel/abc 第一个是要创建的文件夹名,第二个是要链接到的现有路径。 保存后重启即可。 示例,创建后的文件夹:...

2022-01-13

博客图床小妙招

不想单弄个图床了,Pages 又不花钱。 我是用在 Cloudflare Pages 或 GitHub Pages 等服务搭建的博客。 macOS 环境。 我想实现的样子: 本地 Typora 能直接看图 不修改图片路径就 push 提交部署后,在网站也能直接看到图 Markdown 写法 Hugo 的 static/ 目录中的内容会自动放到网站根目录。 ![](/img/xxx.webp) 但是这样只能在网站上显示。 只要在本机电脑上的根目录创建相同的 /img/ 文件夹就可以了。 在 macOS 根目录创建文件夹 详细的 在 macOS 根目录创建文件夹,以下是 Big Sur 和 Monterey 的方法。 编辑 synthetic.conf: $ sudo vim /etc/synthetic.conf 输入内容(中间是 Tab,不是空格): img /Users/dvel/Dropbox/hugo/static/img 重启后就能看到根目录有了。 大功告成了,使用 ![](/img/xxx.webp) 同时支持本地和网站看图。 Typora 贴图 设置好,直接把图片粘贴到 Typora 就能得到正确路径了。 删除也方便,不用找到文件夹,在 Typora 里右键删除文件就可以了。 其他设备 缺点就是没有发布的博文和笔记只能在自己的电脑上看图,如果经常用手机或别的电脑看的话 只能修改成完整的路径如 ![](https://example.com/img/xxx.webp) 才可以。 有多设备观看需求的,可以用一个小命令快速快捷地进行替换。 详细:macOS 批量替换多个文件的内容...

2022-01-12 · (updated: 2022-01-28)

折腾 Hugo & PaperMod 主题

无意浏览了一下 Hugo 官网的主题目录,发现了一个简约风格的 Paper 主题,非常喜欢,第二天发现了一个 PaperMod,差不多算是增强版。 之前就没遇到过心爱的主题,一直将就着,好多功能也没有弄,这两天一顿折腾,记录一下折腾经过。 使用的版本是 hugo-PaperMod-7.0。 开始 更新 Hugo,新建站点,导入 PaperMod 主题。 示例配置在另一个分支里,导入 PaperMod 演示站的 config.yml。 配置时可以参考着 Hugo 官方文档的 Configure Hugo。 另外要看看 PaperMod Wiki,PaperMod 的示例文件里好多参数都没写,比如这些参数很好用: params: # ... DateFormat: "2006-01-02" # 日期格式化 ShowFullTextinRSS: true # RSS 输出全文 HTML lang 单语言的站点可以直接设置 languageCode 并在 baseof.html 修改为: - <html lang="{{ .Site.Language }}" dir="{{ .Language.LanguageDirection | default "auto" }}"> + <html lang="{{ .Site.LanguageCode }}"> PaperMod 的悬浮目录 参考一:Hugo博客目录放在侧边 | PaperMod主题 | Sulv’s Blog...

2022-01-11 · (updated: 2023-02-14)

利用 Cloudflare Workers 进行批量 301 重定向

在 Cloudflare 的「网站 - 规则 - 页面规则」中可以设置 URL 转发,免费默认可以使用 3 个规则,可以进行简单的通配符转换,如果这个能满足需求那最好了。 如下:将带 www 的网址 301 重定向到不带 www 的。 匹配 URL 转发 URL 重定向 www.dvel.me/* https://dvel.me/$1 301 但是很多时候需要更复杂的 URL 转发,比如个人博客瞎折腾,网站的后缀甚至域名来回改,无法仅仅通过通配符做到全部的 301 重定向,这时候还得用 Workers。 Update:批量重定向 今天打开 Cloudflare 一看,出了个「批量重定向 Beta」。。。 但是免费版限制了 5 个列表,每个列表 20 个,如果量小的话建议用用这个,量大的用 Workers。 创建一个 Worker 创建后选择「资源 - 快速编辑」,默认代码: // 事件监听 fetch addEventListener("fetch", event => { event.respondWith(handleRequest(event.request)) }) // 返回一个只包含"Hello world"的响应 async function handleRequest(request) { return new Response("Hello world") } 点击「发送」即可测试:...

2022-01-09 · (updated: 2022-01-12)

将博客部署在 Cloudflare Pages

Cloudflare Pages 的免费政策 以下摘自 Cloudflare Pages 首页 和 Cloudflare Pages 文档 - Limits(里面有更详细的)。 同一时间只能部署一个 Pages 每月 500 次提交 无限站点 无限请求 无限带宽 每个项目最多 10 个自定义域名 每个站点最多 20000 个文件 单个文件最大 25 MB 总之对于个人博客来说是绰绰有余了。 实测每次部署大概是 2~3 分钟,今天发现出了 Fast builds 功能,可以在设置中启用,在 2022-04-01 后将自动启用,新版的快速部署大约就 10 秒钟。 特点 相比 GitHub Pages,可以直接从 GitHub 的私有仓库部署,GitHub Pages 却不能。 支持 Hugo、Hexo 等自动部署。 CDN 大陆效果一般,直连大约至少 几百毫秒 一千毫秒。 可以配合 Workers 等其他免费或付费功能完成多种类的 URL 转发。 另外 Cloudflare 的 DNS 支持裸域的 CNAME 与 MX 共存,自动搞定,这太方便了,之前 CloudXNS 至少还要自己手动操作一个其自定义的 LINK 类型及另一个域名作为跳板,Cloudflare 完全自动处理。我自己的的邮件用的也是裸域,在 Google Workspace,完全没有影响,收发件正常。...

2022-01-08 · (updated: 2022-02-26)