使用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时自动给所有公式添加公式环境。但是这涉及到模式识别和自动分割什么的,比较麻烦,所以只是挖个坑,有时间了再说。

相关推荐
迁移科技44 分钟前
AI+3D视觉赋能铝制静盘自动化上下料,破解反光堆叠难题
人工智能·3d·自动化
老王谈企服2 小时前
2026制造业供应链韧性提升,智能化将成为核心解决方案吗?基于实在Agent的端到端自动化实践
运维·人工智能·ai·自动化
Agent手记2 小时前
工厂货物智能入库全流程自动化:基于实在Agent与ISSUT技术的2026工业自动化实战指南
运维·人工智能·ai·自动化
Agent手记4 小时前
供应商资质智能审核自动化、落地方法与合规校验方案:AGI时代下的企业级风控重塑
运维·人工智能·ai·自动化·agi
Python私教5 小时前
跨境电商浏览器自动化:Claude Code 集成 AdsPower MCP 实战
运维·自动化
挨踢学霸5 小时前
MsgHelper 5.0 全新发布:微信群发+微信群发群双引擎,按标签群发/定时群发/多于500人群发,数据本地化守护企业隐私安全
人工智能·安全·微信·自动化
IT召唤狮7 小时前
【Spug】面向中小企业的轻量级无 Agent 自动化运维平台 — 开源运维平台的破局者
运维·开源·自动化
wzl202612138 小时前
从精细化运营视角,基于企销宝实现企微私域提速增效的技术实践
人工智能·自动化·企业微信
志栋智能9 小时前
超自动化巡检:实现精细化运维管理的基础
运维·服务器·网络·人工智能·自动化
TOSUN同星9 小时前
同星多工位自动化刷写台架,助力汽车电子高效量产与质量追溯
运维·自动化·汽车