英文单词书写由空格分隔,因此双击英文单词会自动选中该单词。
只需要发音:有道 API + QuickAdd
得益于 DataviewJS 打字背诵练习 发现的有道 API。
基本配置参 QuickAdd JS & Templater JS 简介及相互修改
“QuickAdd Macro 加载 QuickAdd Capture”。
js quickadd 代码
document.ondblclick = ()=> {
const str = String(getSelection()); if (!str) return
const audio = document.createElement('audio')
audio.src = `https://dict.youdao.com/dictvoice?le=en&audio=${str}`
audio.autoplay = !0
}
- 首次重启 Ob 后,为
document
添加双击监听。
- HTML
<audio>
标签指定 autoplay
自动发音。
- 指定有道 API 语种为
en
,所以只有英语单词才发音。
需要发音和查词:沙拉查词
沙拉查词(Saladict)是一款多语种多词典聚合查词的开源浏览器扩展,支持自动发音、添加生词及 配合 Anki 制卡。为在浏览器外使用,需按照 Saladict 教程 - 浏览器外划词 做好设置给予权限。教程帖里也介绍了其他平台借助其他工具在浏览器外使用的方法。
本话题介绍供对照参考,如有遗漏以官方教程为准:
右键扩展图标的设置
→
- 基本选项 - 启用“后台保持运行”
- 快捷查词 - 全部启用
- 发音设置 - 英文自动发音 - 朗文词典或有道词典,美式口音(朗文词典好听!)
- 权限管理 - 启用“读取剪贴板”
浏览器管理扩展的设置
→
→
AutoHotKey(AHK)是一款创建热键的脚本语言和 Windows 开源软件,楼主使用 v1 版本 240923 已改用 v2 版本,想了解之前的可自行查看历史记录。
功能函数部分
act(exe) {
return WinActive('ahk_exe' exe)
}
saladict() {
prev := ClipboardAll()
Loop 2 {
Sleep 100
Send '^c'
}
if ClipWait(1)
&& RegExMatch(A_Clipboard, '[a-zA-Z\s]+', &m)
{
A_Clipboard := m[0]
Send '!+t'
Sleep 50
A_Clipboard := prev
prev := ''
}
}
设置热键部分
以“按住左键(划选)- 按下左 Win 键 - 松开左键”触发作为示例。
~LWin:: {
if act('vivaldi.exe') {
Send '{Blind}{vkE8}'
Return
}
if GetKeyState('LButton', 'P') {
Send '{Blind}{vkE8}'
if KeyWait('LButton')
saladict()
}
}
你可以为这个脚本创建快捷方式,将快捷方式移动到 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
,实现开机自启。
拓展:利用autohotkey一鍵查單字及作成筆記
2 个赞
虽然我看不懂 ,但我用欧路词典也很方便查词,几乎无延迟
2 个赞
彩蛋:日语五十音点读及笔顺
因为在“DataviewJS 打字背诵练习”储备了数据,单纯进行数据的充分利用。
可前往帖子“DataviewJS 的传参与复用”蓝奏云链接,选择“打字示例库”,执行库内“程序执行档.md”从上往下第二个代码块。若阅读本帖有疑问,可先阅读“DataviewJS 的传参与复用”。
- 所有假名单击自动发音。
- 清音单击额外显示笔顺。除点击其他假名自动清除外,可单击笔顺 GIF 立即清除。
- 存在拗音组合的假名单击在右下显示小假名,点击小假名自动发各自对应的组合音。
对了,用 DataviewJS 生成有交互的表不可以偷懒用 dv.paragraph()
+ Markdown 表格文本,渲染出来交互没了。
2 个赞
mac apple搜索欧路词典 然后里面有个鼠标取词功能 鼠标移动到有英文的地方秒识别
1 个赞
PlayerMiller大佬
多謝分享神操作,我看了好幾天才稍微看懂及依樣成功在Obsidian中實作有道playsound成功,謝謝您
因為希望以鍵盤操作(Obsidian/Vim)為主,有些js腳本延伸調整,不知能否實現。
一、在 Obsidian/Vim Mode(Normal) , 滑鼠在單字點二下後,會變 Vim Mode(Visual) ,還要再按一次 【ESC】才會跳回 Vim Mode(Normal)。
請問js腳本能增加送出一組 【Ctrl + [ 】 或 【ESC 】 (跳回 Vim Mode(Normal)嗎?
(註: 查找後,Ob/vim目前尚不知能否有選項,把鼠標doubleClick變Visual的設定ban掉,不知有人知道嗎?)
二、承上,如果希望能以鍵盤操作為主,在 Vim Mode(Normal) ,可以用 鍵盤指令 yiw 直接把 單字 copy 到windows 系統剪貼簿 (vim也可以用不同的指令指定不同的buffer)。
請問js腳本除了用 doubleClick 外,能有其他方法把單字取到系統剪貼簿後觸發有道playsound 嗎?
初步思路(理想狀況)是在Obsidian/Vim希望能把鍵盤游標移到單字上,如果是按 Alt + 1觸發時 , 能不去改變 Vim Normal Mode,就能 playsound。
謝謝大佬
查词的第一步是取词,双击只是其中比较快捷的一种方式, 专门为了快速编辑的 Vim 相比普通模式有更多可选方案,比如按 ve 就能快速选中整个单词,相关后续脚本的触发也可以由双击改为 ve 配合其他修饰键,比如 Ctrl 之类的,主要是不影响正常的 ve 取词但不查词的情况。
1 个赞
另外請問一個AHK的問題 :
有道的格式是
https://dict.youdao.com/dictvoice?le=en&audio=英文
https://dict.youdao.com/dictvoice?le=en&audio=excellent
上面的網址,點擊後的結果是開啟瀏覽器+播放聲音(playsound)
在AHK(AutoHotKey) ,如果已經可以取詞 +產生上面的網址字串,
請問ahk有什麼指令或語法能 不開啟瀏覽器就直接背景播放上面的網址playsound?
多謝指點
謝謝
~V::
KeyWait, E, D T1
KeyWait, Ctrl, D T2
if !ErrorLevel
ObSaladict()
Return
这是一个 AHK 示例,检测 V 键,然后在 1 秒内是否按下了 E 键,然后在 2 秒内是否按下了 Ctrl 键,都符合执行查词。你可以根据你的情况继续修改。
效果 GIF,点击展开
如果只需要用有道 API 发音,AHK 我不太熟,原来的代码是用 document 创建 audio 标签的,QuickAdd 这个插件我现在又没有在用了。你可以把下图红框两行代码设置为一个 QuickAdd Capture 快捷键,ve 选中之后再执行这个快捷键就可以发音了。
1 个赞
PlayerMiller大佬
太感謝您了 ,
程式語言(AHK,Vim,js ,quickadd…),我也都還是幼幼班。
我再研究一下您的改良示例,
謝謝您
竹翼
(张)
13
大佬666 等我搞明白大佬的思路搞出点读 ahk ob插件后 就是搞个性化艾宾浩斯遗忘曲线 突破四级 雅思 英文汉化 等关卡.