MN 插件(OhMyMN)
OhMyMN 是 MarginNote 插件开发框架,提供了一套完整的插件开发体系,是开发复杂插件的首选,OhMyMN 自身也是一个强大的插件,是你开发复杂插件最好的模板。
OhMyMN 作为插件时,专注于摘录自动处理和卡片处理。如果你想开发这部分的功能,建议直接开发 OhMyMN 模块。避免重复实现,以及避免冲突。
在这个部分,将暂时不介绍摘录处理和卡片处理相关的内容。如果需要了解,请查看 OhMyMN 模块。
OhMyMN 从插件起步,逐步发展出一套完整的插件开发体系,提供强大的配置管理能力,模块化能力,控制面板,以及手势,快捷键。但是由于 MN 插件底层的混乱,导致 OhMyMN 变得复杂,各部分耦合得比较严重,目前只抽取出了 MN 插件通用的 API,也就是 marginnote
包。但是其它的部分,仍然耦合在一起,无法变得可选。目前我采取的办法是提供模板。
如果你用过 OhMyMN 插件,完整看过 使用指南,那么你应该对 OhMyMN 有一个大致的了解。
OhMyMN 的大致逻辑:
- 将插件拆分成多个模块,每个模块负责一个功能,模块之间可以相互调用,也可以相互独立。可以选择启用。
- 所有模块手动执行的动作都统一放在一起,方便点击,形成了 MagicAction 模块。并且提供多种触发动作的方式,比如手势,URL Scheme。
- 复杂的配置,有 5 套全局配置,单独的笔记本配置,单独的文档配置。强大的配置管理功能,可以导出和导入配置,也可以初始化配置。
不过除了摘录场景外,很少需要这么复杂的功能。不需要有这么多的模块,也不需要这么复杂的配置。现在我提供了 3 个模板,可以根据自己的需求选择。
- 基础模板
没有控制面板,没有配置,没有模块,没有动作,没有手势,没有快捷键。
ts
pnpm create ohmymn -t base
pnpm create ohmymn -t base
- 基础模板 + 控制面板
有控制面板,但是配置更加简单,不包括配置导出导入以及初始化,有动作,支持 URL Scheme 调用。
ts
pnpm create ohmymn -t panel
pnpm create ohmymn -t panel
- 基础模板 + 控制面板 + 配置管理
有控制面板,有动作,支持 URL Scheme 调用。
ts
pnpm create ohmymn -t profile
pnpm create ohmymn -t profile