Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚀 功能建议:希望“快捷功能”增加一个“显示 Apple Dictionary快捷图标” #148

Closed
3 of 4 tasks
qq420100523 opened this issue Jul 28, 2023 · 41 comments
Labels
enhancement New feature or request fixed in next release The issue will be closed once next release is available help wanted

Comments

@qq420100523
Copy link

qq420100523 commented Jul 28, 2023

请先确认以下事项

  • 已仔细阅读了 README
  • issues 页面搜索过(包括已关闭的 issue),未发现类似功能建议
  • Easydict 已升级到最新版本

功能描述

“快捷功能”增加一个“显示 Apple Dictionary快捷图标”,方便在划词查询后调用系统字典查询单词

使用场景(可选)

No response

实现方案(可选)

No response

是否愿意提交 PR 实现该功能

  • 我愿意提交 PR!
@qq420100523 qq420100523 added the enhancement New feature or request label Jul 28, 2023
@qq420100523 qq420100523 changed the title 🚀 功能建议:希望“快捷功能”增加一个“显示 Apple Dictionaryn快捷图标” 🚀 功能建议:希望“快捷功能”增加一个“显示 Apple Dictionary快捷图标” Jul 28, 2023
@tisfeng
Copy link
Owner

tisfeng commented Jul 28, 2023

了解,不说我差点忘了,系统词典还没添加 😓

@tisfeng
Copy link
Owner

tisfeng commented Aug 1, 2023

添加了苹果的系统词典,效果不错 😌

image image

@qq420100523
Copy link
Author

qq420100523 commented Aug 1, 2023

添加了苹果的系统词典,效果不错 😌

非常棒,支持第三方词典吗?
像这些第三方的词典4a522efbb43e98fa67d044940dc65eb3.png
136dcc5a3247b85666e38f8153700f52.png

@tisfeng
Copy link
Owner

tisfeng commented Aug 1, 2023

还没写完,但感觉应该可以。 你好,你这些词典资源哪里来的,看起效果很不错,给个链接,我试一下看看。

@qq420100523
Copy link
Author

还没写完,但感觉应该可以。 你好,你这些词典资源哪里来的,看起效果很不错,给个链接,我试一下看看。

大部分都我转换mdx的,推荐你下载这部试试
https://placeless.net/blog/macos-dictionaries
这部非常完美

@tisfeng
Copy link
Owner

tisfeng commented Aug 1, 2023

Ok,感谢!

@tisfeng tisfeng added the fixed in next release The issue will be closed once next release is available label Aug 7, 2023
@qq420100523
Copy link
Author

qq420100523 commented Aug 11, 2023

Ok,感谢!

作者,新版本什么时候出呢,非常想体验这个集成系统词典功能,或者先给我个内测也行,我又转换了好几本大词典,可以帮忙测试一下🤣

b.png

https://i.miji.bid/2023/08/11/ac24cec0a16dcaa5faa8b665fd6853fb.png

@tisfeng
Copy link
Owner

tisfeng commented Aug 11, 2023

大体上弄好了,但是还有一些细节需要调整。

本来如果只是支持系统自带的词典就还好,但现在想要支持用户自己导入的词典,就会比较麻烦,因为自定义词典每个都有自己的 css,相互之间可能导致冲突,甚至影响到系统词典的显示,而这一块的调整涉及到了 html 和 js,我不太懂,就很抓瞎 😢

稍微再整理一下代码,明天后天我会把这部份功能的代码推上去。

image

@tisfeng
Copy link
Owner

tisfeng commented Aug 11, 2023

@qq420100523 你好,你熟悉 html 吗,可以帮忙一起来优化这个功能?

@qq420100523
Copy link
Author

@qq420100523 你好,你熟悉 html 吗,可以帮忙一起来优化这个功能?

我也仅限于瞎琢磨而已,达不到帮忙的水平😅
另:系统词典对于js的支持也很有限,就我了解,只支持在html标签内绑定事件执行行内js代码,不支持script标签内嵌或文件导入方式的js代码。

@tisfeng
Copy link
Owner

tisfeng commented Aug 13, 2023

@qq420100523 你好,代码推上去了,main 和 dev 分支都是同步的,你可以尝试自己编译运行,测试。

Easydict 的【苹果词典】整体架构基本已完工,但还有很多细节需要完完善。

目前【苹果词典】借用了系统词典 App 的部份功能,例如会自动加载词典 App 中所有启用的词典,查询结果显示顺序也遵从词典 App 设置中的排序。

image

@tisfeng
Copy link
Owner

tisfeng commented Aug 13, 2023

@qq420100523 <script> 内嵌 JS 代码也是支持的,例如

系统词典对于js的支持也很有限,就我了解,只支持在html标签内绑定事件执行行内js代码,不支持script标签内嵌或文件导入方式的js代码。

比较麻烦的是,似乎不支持外置的图片和音频,如果想在 Easydict 使用外带图片音频的词典,可能需要参考柯林斯词典,提供一个设置页。

image image

@tisfeng
Copy link
Owner

tisfeng commented Aug 13, 2023

另外,我想参考系统词典 App,实现单个词典折叠功能,但这个需要调整插入的 css,以及要写 JS 代码,我不太熟悉。

@qq420100523 可以帮忙看看吗?欢迎提交 PR。

image

@qq420100523
Copy link
Author

比较麻烦的是,似乎不支持外置的图片和音频,如果想在 Easydict 使用外带图片音频的词典,可能需要参考柯林斯词典,提供一个设置页。

你是指mdx转换成苹果词典不支持外置的图片和音频吗?支持的,可以参考一下帖子:https://kaihao.io/2018/mdict-to-macos-dictionary/
因为mdx词典使用的路径是以/开头,而苹果词典是相对路径,需要处理一下,去掉/,如:
sed -i "" 's:src="/:src=":g' oald8.xml
而音频的话,需要转一下格式,苹果词典不支持.spx,可以转成.mp3

@qq420100523
Copy link
Author

qq420100523 commented Aug 13, 2023

另外,我想参考系统词典 App,实现单个词典折叠功能,但这个需要调整插入的 css,以及要写 JS 代码,我不太熟悉。

html5有一个<details> 标签,可以实现类似的折叠功能,不需要css和js代码,是html5纯原生的,可以参考一下。https://www.runoob.com/tags/tag-details.html

@tisfeng
Copy link
Owner

tisfeng commented Aug 14, 2023

不是的,苹果词典可以支持外置图片和音频,这个我知道,你仔细看截图就明白,我是说第三方应用,比如 Easydict,可能没办法支持外置的图片和音频,因为这些资源的文件路径不好处理。这个我后面再研究一下。

image

@tisfeng
Copy link
Owner

tisfeng commented Aug 14, 2023

details 这个我也略微知道一点 https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/details

但问题是,实际情况比较复杂,details 需要改动,左右两侧要有分割线,并且分割线的宽度要和词典标题自适应,默认展开的三角形是黑色,如果要适配深色模式,也要改。

image

@tisfeng
Copy link
Owner

tisfeng commented Aug 14, 2023

在添加了 details 后,还需要额外处理点击三角形的事件,无论是展开还是隐藏,都要重新计算 iframe 的高度,这个不写 js 能实现吗?我试过,好像不行,可能是我不太懂。

另一个比较坑的一点是,details 的三角形在 Safari 和 Chrome 上渲染不一样,同一份代码,在 Chrome 是正常的,但在 Safari 上三角形是在中间 😰

image

@qq420100523
Copy link
Author

另一个比较坑的一点是,details 的三角形在 Safari 和 Chrome 上渲染不一样,同一份代码,在 Chrome 是正常的,但在 Safari 上三角形是在中间 😰

刚好看到这个帖子,自定义details 的三角形:https://www.51cto.com/article/706468.html

@tisfeng
Copy link
Owner

tisfeng commented Aug 14, 2023

@qq420100523 你好,如果你对 html 这块比较熟,麻烦帮忙看看代码,在本地编译运行,调试一下上面我说的几个问题,我是真不太懂 html,写起来太累了 🫠

@qq420100523
Copy link
Author

不是的,苹果词典可以支持外置图片和音频,这个我知道,你仔细看截图就明白,我是说第三方应用,比如 Easydict,可能没办法支持外置的图片和音频,因为这些资源的文件路径不好处理。这个我后面再研究一下。

我明白你的意思了,不过看苹果的三指lookup也是没有实现对音频的支持,如果要读取到真实的资源文件,可能你需要先获取到这个词典的绝对路径,再对src路径进行补充才行。

@qq420100523
Copy link
Author

@qq420100523 你好,如果你对 html 这块比较熟,麻烦帮忙看看代码,在本地编译运行,调试一下上面我说的几个问题,我是真不太懂 html,写起来太累了 🫠

我也不熟html,更没编译mac的程序经验😅

@tisfeng
Copy link
Owner

tisfeng commented Aug 14, 2023

本地运行其实很简单的,参考这个文档几分钟应该就能搞定的

https://github.com/tisfeng/easydict#%E5%BC%80%E5%8F%91%E8%80%85%E6%9E%84%E5%BB%BA

要是实在不行,等会我先打个测试包给你。

details 这个三角形我再尝试一下,要是还不行,暂时只能搁置,等有缘人来 PR 了。我这半吊子水平,纯靠着 Google 和 ChatGPT 在写 html,效率太低了。

@tisfeng
Copy link
Owner

tisfeng commented Aug 15, 2023

@qq420100523 你好,我打包了一个版本,你可以测试一下各个词典的展示效果,有问题或建议都可以反馈。

Easydict 1.4.0.zip

@qq420100523
Copy link
Author

@qq420100523 你好,我打包了一个版本,你可以测试一下各个词典的展示效果,有问题或建议都可以反馈。

Easydict 1.4.0.zip
试用了一下,下面是我的一点建议
113919463fc3218b0d06213bf02236bd.png
cb66cd0e1b0b1cf8effb782978894e41.png

@qq420100523
Copy link
Author

c39cfe512a97ebd64462e93b5c1e6b2a.png

@qq420100523
Copy link
Author

还缺了个右上角的苹果词典跳转功能,这还是最初的需求呢🤣,毕竟有时也会想打开苹果词典app看详细的内容。

@tisfeng
Copy link
Owner

tisfeng commented Sep 19, 2023

@qq420100523 感谢反馈,上面是之前的版本,后面我又优化迭代了几个版本:

  • 修复了最小高度问题
  • 简单实现了自动适配深色模式
  • 右上角添加了快捷打开苹果词典图标
image image

@qq420100523
Copy link
Author

qq420100523 commented Sep 19, 2023

@qq420100523 感谢反馈,上面是之前的版本,后面我又优化迭代了几个版本:

  • 修复了最小高度问题
  • 简单实现了自动适配深色模式
  • 右上角添加了快捷打开苹果词典图标

看起来完成度很高,什么时候放出一版试用呢😆

@tisfeng
Copy link
Owner

tisfeng commented Sep 19, 2023

快了,等我做一下收尾工作。

关于单词头的显示,一是为了和目前已有的有道词典渲染格式保持一致,二来,有些词典的内容比较复杂,不容易一眼看出查询的单词。

image

@tisfeng
Copy link
Owner

tisfeng commented Sep 19, 2023

用你提到的颜色转换代码试了一下,效果可以,但还是赶不上苹果自定义的,不知道它这个到底如何实现的,我琢磨了好久,还是没搞明白。

我对这个 css 不了解,如果你熟悉的话,可以帮忙调一下吗?

filter: invert(0.8235) hue-rotate(180deg) saturate(300%);
image

@qq420100523
Copy link
Author

有了苹果词典的加持,查词的专业性上提升了一大

用你提到的颜色转换代码试了一下,效果可以,但还是赶不上苹果自定义的,不知道它这个到底如何实现的,我琢磨了好久,还是没搞明白。

我对这个 css 不了解,如果你熟悉的话,可以帮忙调一下吗?

filter: invert(0.8235) hue-rotate(180deg) saturate(300%);
image

我感觉是saturate(300%)饱和度太高的问题,我试试调底一点看看效果

@qq420100523
Copy link
Author

汗死,越调越拉垮,只能这样了,你试试

filter: invert(0.8235) hue-rotate(175deg) saturate(200%) brightness(120%);

@tisfeng
Copy link
Owner

tisfeng commented Sep 20, 2023

可以,感觉这个效果已经比较接近了,这种使用 css 适配深色模式的方式,比我之前的方案效果好,也更简单高效。暂时就这个了,后续可以再慢慢优化。

image

@tisfeng
Copy link
Owner

tisfeng commented Sep 20, 2023

争取这周末发个新版。

你可以先试试 Easydict.zip

@tisfeng
Copy link
Owner

tisfeng commented Sep 20, 2023

@qq420100523 发现一个问题,filter 会导致图片失真,应该排除在外的,但我尝试了一番,不知道怎么修改 😢

image

@qq420100523
Copy link
Author

@qq420100523 发现一个问题,filter 会导致图片失真,应该排除在外的,但我尝试了一番,不知道怎么修改 😢

我也试了一下,filter是属于简单暴力的方式对元素进行滤镜处理,还是比不过苹果的处理。要是能支持苹果的那种方式才是比较完美的。

@tisfeng
Copy link
Owner

tisfeng commented Oct 6, 2023

基本整理完了,文档也写好了,过两天就发新版本。

@Jerry23011 有空帮忙过一下整体功能,也检查一下文档有没有问题,及时查漏补缺。

苹果系统词典 这部份是新加的,重点看一下,最好照着流程过一遍,这些操作在我电脑上没问题,但不确定其他用户的电脑环境是否一致。

@Jerry23011
Copy link
Collaborator

Jerry23011 commented Oct 6, 2023

也检查一下文档有没有问题

英文文档没更新,我回头可以整一下,最近比较忙,可能要延后一些

@tisfeng
Copy link
Owner

tisfeng commented Oct 7, 2023

赞,这个就麻烦你了。

@tisfeng
Copy link
Owner

tisfeng commented Oct 25, 2023

你好,2.0.1 版本已添加苹果词典。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request fixed in next release The issue will be closed once next release is available help wanted
Projects
None yet
Development

No branches or pull requests

3 participants