大家好,我是 OhMyMN 的开发者 ourongxing,现在已经加入了 MarginNote 团队,目前负责插件这块。
[image]
经过在 QQ 频道里近 3 个月的测试,OhMyMN 更新了 16 个测试版,现在发布 v4.1.0 签名版本,你如果从 v4.0.0 升级过来,可能你需要查看一下 更新记录 ,部分功能进行了删减和调整。由于 v4.0.0 版本发布的有点急,导致一些 bug 没有修复。一些功能也没来的急写,v4.1.0 才算得上完全体的 v4。
简介
对于 插件开发者
MarginNote 开放的 API 比较底层,导致上手比较困难,需要大量 Objective-C 以及 iOS 开发相关知识。OhMyMN 做的就是简化这一切,首先是将所有 API 翻译成 TypeScript 版本,并且封装了大量好用的方法,使得你不用接触到底层 API 也能进行开发。
其次,OhMyMN 提供了一套非常好用的模块化开发框架,将其与控制面板以及配置管理相绑定。想要开发一个和 OhMyMN 一样复杂的插件,离不开这些东西。
最后,OhMyMN 完全使用 TypeScript 进行开发,配合 VS Code,可以实现代码提示,类型检查,在编译期就能杜绝大多数的问题,进行功能重构时也非常方便。
目前 TypeScript 版 API 已经发布到 NPM ,随着 OhMyMN v4.1.0 的发布,API 基本已经稳定,OhMyMN 的整体架构也已经稳定,基本不会进行大的调整。
API 文档:https://ohmymn.marginnote.cn/api/
开发文档: https://ohmymn.marginnote.cn/dev/
普通用户 要注意听了
模块可以类比于插件,是 OhMyMN 内部的插件。
首先要明白 OhMyMN 本质上是一个工具箱。里面所有的功能都是单独的模块,每个模块都被赋予了三种能力:
摘录时,修改摘录的内容或者获取摘录内容并进行其他操作。
脑图中选中卡片后,对卡片进行修改或获取信息并进行其他操作。
文档中选中文字后,获取文字或选区信息并进行其他操作。
有的模块可能三种能力都用了,有的可能只用了其中一个,也有的一个都没有,仅仅只是一些选项。
使用第一种能力的模块通常以 Auto 开头,比如 AutoTitle,AutoDef,表示可以在摘录时自动执行(默认不执行,…
OhMyMN 作为插件控制面板,会继续开发,覆盖的面会更广。下个版本会开放选中文字后的搜索这块,利用局部区域的手势操作,不会带来误触问题,也不需要随时关闭。
下个版本会完善开发文档,OhMyMN 封装了非常多好用的方法和现代化的工具链。在 OhMyMN 的基础上开发会更简单,有问题也能更好的得到解决,使用同一个签名也更加方便。最重要的是,以后迁移到 MN5 会更容易。
诚挚邀请大家参与开发,如果大家对插件开发有疑惑,可以在这里讨论,我会尽可能解答。
https://github.com/mnaddon/ohmymn
Wein
(Dr.Wien)
2022 年3 月 10 日 06:56
2
功能跟All In One 一样吗?那我是不是可以收了?(想放更多精力在开发自己的app上 )
有计划,但暂时是仅使用 url scheme。all in one 太依赖于开发者主动适配这些网站,我以后的打算是完全自定义,也欢迎你参与开发,ohmymn 是完全开源的。
Wein
(Dr.Wien)
2022 年3 月 10 日 15:26
4
不用了 谢谢邀请。之所以不开放自定义单纯就是因为超过一半的网站需要特殊调整才会好用,不然我开发版这边是可以自定义的,个人觉得純自定义開發方无法插手调整的话就只是另一个research而已。
你可能是没用过油猴脚本,注入的 js 都可以自定义。
byheaven
(byheaven)
2022 年3 月 12 日 16:16
6
hi @ourongxing !恭喜加入marginnote团队!真的非常感谢你开发这么强大的插件,不知道能否考虑开发一个将marginnote标注和笔记同步到readwise的插件?readwise 是另一个非常强大的标注+记忆软件,也和obsidian等双链笔记有直接的联动,并且也提供了比较丰富的 API 可以使用。
我看到在mn的论坛上(包括中英文)都有人提出类似的需求,但是我并不太熟悉marginnote插件的开发,所以想请你看看能不能开发一个类似的插件?十分感谢!
这段时间的工作重点是将 ohmymn 打造成一个平台,开放更多能力,这样就能基于 ohmymn 更方便的开发插件,同时我也会编写更详细的开发文档和 API 文档。ohmymn 下次更新还会带来自定义 OCR 服务商的功能,以及支持公式 OCR。
与其他软件的联动也是目前的重中之重,在 ohmymn 新版更新之后就会着手开始进行此类插件的开发。我不清楚你说的软件是否支持 url scheme,如果支持,你可以先使用 ohmymn 里的 copy search 来自定义 url scheme。
2 个赞