使用applescript自动化trilium的数学公式环境

众所周知,trilium什么都好,就是对数学公式的支持以及markdown格式的导入导出功能太拉了,而最拉的时刻当属把这两个功能结合起来的时候:导入markdown文件之后,原来的数学公式全没了,需要一个一个手动用ctrl+m丢进来。因此,为了避免血压升高以及浪费时间,我们希望在trilium中把markdown自动化。

从开发者的角度来看这个功能应该是比较容易的,可惜我们既不是开发者,也不懂SQL,所以只能进行基于脚本的开发,而不是基于代码的开发了。

9.22 ver0

恰好最近切换到mac进行工作,发现了一个很有意思的内建脚本工具"自动操作"。基于自动操作,我们可以实现很多有趣的脚本功能,特别是在各个app之间串联开发是很爽的。据说alfred这个软件的pro版本甚至支持可视化开发,可惜需350。我囊中羞涩,因此只能自己开始造轮子了。

因为是初学者,我们先实现一个最简单的功能,就是把"复制公式+创建公式环境+粘贴公式+退出公式环境"这四个操作合成为一个快捷键就能执行的内容。

好在,这四个功能都是支持快捷键的。因此,我们只需要用脚本连续使用这四个快捷键:"ctrl+c, ctrl+m, ctrl+v, enter"即可。google一下如何用applescript模拟按键,得到了这篇很好的回答:https://apple.stackexchange.com/questions/36943/how-do-i-automate-a-key-press-in-applescript

于是,我们写出了下面的代码:

applescript 复制代码
tell application "System Events" to keystroke "c" using command down
tell application "System Events" to keystroke "m" using command down
tell application "System Events" to keystroke "v" using command down
tell application "System Events" to keystroke return

注意,似乎applescript里面对修饰键和主要键分得很开,所以ctrl+c其实写成了keystroke "c" using command down的形式

然后,我们打开"自动操作"的软件(可以用快速访问搜索),选择新建一个快速操作(因为快速操作可以赋予快捷键),然后在右边的栏目里面选择工作流程是运行applescript,复制上面的代码,并且配置如下:没有输入是显然的,我们只是定义一个快捷键组合;然后操作的位置当然是放在trilium notes里面,这样存储后我们在trilium note的服务一栏里面就能找到这个功能了。

用ctrl+s保存这个服务,随便取个名字(玄学起见,里面最好不要带空格),然后我们为这个服务添加一个快捷键。打开系统设置-键盘与输入法-键盘快捷键-服务-通用,就能找到我们新建的这个服务,然后为它添加快捷键就行了,我选择的快捷键是ctrl+shift+m.

下面是执行过程中我遇到的一些错误:

问题处置

直接运行的话可能会提示没有权限,一般来说会提示要怎么添加权限,如果没有的话,在系统设置-隐私与安全性-辅助功能里面把相关应用都添加上权限就行了:

另外,我在实际使用中还观察到一个问题,就是当连续使用这个脚本太多次的时候系统会突然报错说没有权限,此后就要冷静一段时间(5分钟左右)才能继续使用。我在overflow上也看到了类似的提问,但是除了玄学处理之外没什么特别好的解决方案。我猜测这可能和苹果的系统安全设置有关系,比如不能在一定时间内连续使用太多次脚本什么的,以防止恶性脚本操纵系统。目前还没有特别好的解决方案。

下一个版本(如果有)的话,我想实现的功能是直接把整段markdown复制进trilium时自动给所有公式添加公式环境。但是这涉及到模式识别和自动分割什么的,比较麻烦,所以只是挖个坑,有时间了再说。

相关推荐
朗宇芯工控12 小时前
跨越欧亚 链接全球|朗宇芯亮相2026土耳其欧亚国际工业博览会
机器人·自动化·制造·工业·运动控制系统
w32963627113 小时前
八、OpenCode 高阶玩法:CLI 自动化、CI/CD 集成与远程协作
运维·ci/cd·自动化·ai编程·开发工具·opencode
Esaka_Forever14 小时前
Zapier 云端无代码 AI 工作流编排自动化平台
运维·自动化
哈德森hh14 小时前
从手动操作到自动化管理:Twitter多账号运营效率优化实践
运维·自动化·twitter
梦想的旅途214 小时前
企业微信外部群消息自动推送实战
机器人·自动化·企业微信
Li#14 小时前
web端电商项目自动下单发货评价晒图需要用到的能力
python·自动化
专注搞钱14 小时前
FAB设备OEE自动化分析工具:月度报表从2天缩短到30秒
运维·自动化
疯狂学习GIS16 小时前
基于Python earthaccess库批量下载全球MODIS GPP(MOD17A2HGF)数据
python·脚本·批量下载·遥感影像·nasa·earthdata·自动处理
实在智能RPA18 小时前
投诉处理Agent合规校验实现:2026年企业级智能自动化的风控底座与技术路径解析
运维·人工智能·ai·自动化
KIO no way18 小时前
AI发布工作流配置指南_用CSDN_AI数字营销把分发自动化
人工智能·python·自动化