更新:深度集成eaf-browser(直接读取数据库高亮网页上存在的单词,点击即可查词,paw-view-note里面加词,paw-view-note里面删词,自动取段落作为笔记,开启paw-annotation-mode即可启动,暂时每次刷新网页都要重新开启),添加多发声源(paw-say-word-cambridgepaw-say-word-oxfordpaw-say-word-jpod101-alternatepaw-edge-tts-say-wordpaw-youdao-say-wordpaw-say-word-forvo, 添加了新的按钮),添加文本wordlists(可以当词典用)。eaf-browser需要用我的定制版:GitHub - chenyanming/eaf-browser: A modern, customizable and extensible browser in Emacs (暂时无法上到upstream,因为我做了不少定制)
不是简单的取词查词动作,paw会取选中的单词所在段落作为笔记,还会把网页的地址取下来作为单词的原始地址,从而做到查词的同时保存所在的所有有用的上下文信息,所以才需要定制版的eaf-browser。同时,也对网页上所有的段落(html p tag)的句子划分为单词,给每个单词添加click event和鼠标underline标示,从而做到点击就能查词的动作,只要鼠标移动到单词且看到该单词有underline就代表这个单词可以点击,从而减少误操作。
开发它是因为,我发现我还是喜欢用外部浏览器和手机firefox看英语材料(新闻什么的),在手机上用firefox配合Emacs也能实现查词和管理单词的效果,同时能将单词的上下文传送到Emacs,用AI翻译,和用gtpel问AI问题,来进一步学习。再加上,我用Emacs nov看epub电子书和阅读Read it later文章(wallabag.el),我需要将一些付费文章加到wallabag中,然后在Eamcs中进一步学习。
paw en_search /home/damonchan/org/stardict.db MATCH "The GNU General Public License is a free, copyleft license forsoftware and other kinds of works." --tag "" --wordlists /home/damonchan/org/5000.csv --known-words-files /home/damonchan/org/eudic.csv,/home/damonchan/org/english.txt
[
{
"word": "cop",
"definition": "-->5000\n-->cop\nc1\nhttps://www.oxfordlearnersdictionaries.com/definition/english/cop_1\nhttps://www.oxfordlearnersdictionaries.com/media/english/uk_pron/c/cop/cop__/cop__gb_1.mp3\nhttps://www.oxfordlearnersdictionaries.com/media/english/us_pron/c/cop/cop__/cop__us_1.mp3"
},
{
"word": "license",
"definition": "-->5000\n-->license\nc1\nhttps://www.oxfordlearnersdictionaries.com/definition/english/license_1\nhttps://www.oxfordlearnersdictionaries.com/media/english/uk_pron/l/lic/licen/license__gb_1.mp3\nhttps://www.oxfordlearnersdictionaries.com/media/english/us_pron/l/lic/licen/license__us_1.mp3"
}
]
如果将sdcv更新为sdcv-20241227.319(链接Public Git Hosting - sdcv.el.git/summary) ,打开paw-view-note会出现let*: Symbol’s value as variable is void: sdcv-env-lang? 旧版本的sdcv.el没有问题。