【MN插件】OhMyMN —— MarginNote 插件开发框架,也是一个可以自动处理摘录的工具箱 #Ver 4.4.3 适配 MN4#

image

同步之前 QQ 频道版本 (4.1.1 - 4.3.3)所有功能更新,简单适配 MN4,不保证完全兼容。
全部更新内容:https://ohmymn.marginnote.cn/update.html

OhMyMN 已停止功能更新,不定期修复 bug,不回复相关提问,请互相帮助。

简介

对于 插件开发者

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/


:ear: 普通用户 要注意听了

模块可以类比于插件,是 OhMyMN 内部的插件。

首先要明白 OhMyMN 本质上是一个工具箱。里面所有的功能都是单独的模块,每个模块都被赋予了三种能力:

  1. 摘录时,修改摘录的内容或者获取摘录内容并进行其他操作。
  2. 脑图中选中卡片后,对卡片进行修改或获取信息并进行其他操作。
  3. 文档中选中文字后,获取文字或选区信息并进行其他操作。

有的模块可能三种能力都用了,有的可能只用了其中一个,也有的一个都没有,仅仅只是一些选项。

使用第一种能力的模块通常以 Auto 开头,比如 AutoTitle,AutoDef,表示可以在摘录时自动执行(默认不执行,需要开启 摘录时自动执行)。使用第一种能力的模块通常还会使用第二种能力,以便处理已经存在的卡片。

第二种能力和第三种能力也通常同时使用,比如用来复制,搜索,导出。它们有一个共同的名字 —— 动作(Action)。所有模块的动作都会出现在 MagicAction for CardMagicAction for Text 中,也就是一个按钮,点击就会执行相应的动作。

除此之外,所有模块被分为了两大类:

  1. 必选模块:无法关闭的模块。
  1. 可选模块:可以选择开启的模块,可以在 OhMyMN-模块快捷开关 中启用
  • Shortcut:使用 URL Scheme 触发动作,可自行设置快捷键来打开 URL Scheme。
  • Gesture:使用手势触发动作。
  • Toolbar:在点击卡片或者选择文字时添加动作工具栏。
  • CopySearch:复制或搜索选中的文字或选中的卡片。
  • AI: AI 动作,自定义 Prompts。
  • AutoX
    • Another AutoTitle:自动转标题。
    • Another AutoDef:自动拆分摘录为标题和摘录两部分,提取标题。
    • AutoFormat:自动格式化摘录,比如自动添加空格。
    • AutoComplete:自动补全英文单词词形,填充单词信息,制成单词卡片。
    • AutoReplace:自动替换摘录中的内容。
    • AutoList:自动在指定位置换行,添加序号。
    • AutoTag:自动添加标签或者提取部分内容为标签。
    • AutoComment:自动添加评论或者提取部分内容为评论。
    • AutoStyle:自动设置摘录颜色和填充样式。
    • AutoOCR:自动对摘录的选区进行 OCR 识别或者矫正。
    • AutoTranslate:自动翻译摘录的内容。
    • AutoSimplify:自动将繁体转为简体中文。

这里就展示几个基本操作吧:

1、根据字数自动将摘录转为标题,有标题时直接合并标题,充分利用标题链接。

2、英文单词制卡,补全单词词形,充分利用标题链接。

3、对脑图卡片分层进行编号。

  1. 新增的工具栏,再一次增强 MagicAction。

20230904120059

  1. 公式识别
  • 常规操作
    20240520174628_rec_
  • 进阶操作
    20240520174754_rec_

使用方法

使用指南:https://ohmymn.marginnote.cn/guide/
PDF 版本的使用指南:
OhMyMN v4.4.0 文档.marginpkg (17.9 MB)

OhMyMN 非常的自由,功能强大。使用指南只提供最基本的使用方法,你需要自行探索使用技巧。现在你还可以在论坛 方法、技巧、工作流 学习到更多 OhMyMN 使用技巧,也欢迎分享你的使用技巧。

  1. 【OhMyMN 使用技巧分享】Another AutoTitle —— 自动转标题,自动合并标题
  2. 【OhMyMN 使用技巧分享】Another AutoDef —— 将摘录一分为二,提取标题
  3. 【OhMyMN 使用技巧分享】AutoComplete —— 摘录单词自动制卡
  4. 【OhMyMN 使用技巧分享】AntoFormat —— 中文格式优化
  5. 【OhMyMN 使用技巧分享】AutoList —— 摘录列表自动换行,自动编号
  6. 【OhMyMN 使用技巧分享】AntoStyle —— 自动设置摘录颜色和样式
  7. 【OhMyMN 使用技巧分享】重命名标题 —— 把卡片标题批量重命名这块彻底拿捏住!
  8. 【OhMyMN 使用技巧分享】MagicAction & Gesture —— 一键转标题,一键 OCR 公式
  9. 【OhMyMN 使用技巧分享】CopySearch —— 跳转欧陆词典查词只是冰山一角
  10. 【OhMyMN 使用技巧分享】AutoTranslate —— 自动翻译摘录
  11. 【OhMyMN 使用技巧分享】AutoOCR —— 小语种在线矫正,公式识别

:warning: 注意事项

请认真阅读

  1. OhMyMN 的使用逻辑与以往的插件均不相同,尤其是以 Auto 开头的模块,是真正的自动化。你需要设定执行的条件并开启 摘录时自动执行,让它可以在你需要的时候自动执行。模块通常会提供预设,你可以直接选用,也可以自定义。OhMyMN 不推荐无差别执行,所以没有提供全局的开关来一键开启或关闭 OhMyMN。

  2. 所有模块的预设中自定义的优先级始终最高。

  3. 如果你正在创建笔记本,需要在创建完成后重新进入,让 OhMyMN 知道你刚导入的文档。

  4. OhMyMN 只能处理摘录,从浏览器中拖进来的或者自己输入的都属于评论。

  5. 不要将 OhMyMN 和其他在摘录时自动执行的插件同时使用,可能会出现冲突。

  6. 自定义输入时需要 回车 确认,会出现保存成功的提示,同时输入法关闭。否则就是输入错误。

  7. 在插件设置中停用 OhMyMN 可以 清空配置,如果出现错误导致崩溃,可以停用再启用插件。当然,大部分情况下都不需要清空配置,不然重新设置起来会非常的麻烦。

  8. 如果你划重点,MN 会重新获取新的摘录内容,进而导致 OhMyMN 的处理失效。可以在划完重点后稍微修改一下摘录选区,即可重新处理摘录。

  9. 划完重点后,OhMyMN 获取到的重点两边会出现两个 *,比如 **这是重点**,在替换,筛选,提取等操作时要格外注意。

  10. 如果安装插件后看不到笑脸 Logo,可以尝试重新安装,如果还是不行,说明系统版本太低,可以尝试升级系统。

  11. 想要让 Auto 模块协同工作,必须先了解一下模块的执行顺序。

下载

:partying_face: 我该如何安装一款插件?

MN4 目前只能在插件页面导入
ohmymn_v4_4_3.unsigned.mnaddon (618.6 KB)

AutoComplete 数据库彻底外置,现在支持导入两种数据库。第一次使用 AutoComplete 摘录会自动检测是否存在数据库,根据提示导入即可。不需要解压,直接导入压缩包。

  • AutoCompleteData.online.zip: 之前在线 API 使用的数据库,可能更简洁一些。
  • AutoCompleteData.zip: 单词更多,解释更详细。

数据库下载:Release AutoComplete Database · ourongxing/ohmymn · GitHub
备用下载地址(网络不好的):https://www.123pan.com/s/Ns8lVv-arEq.html

源码

marginnoteapp/ohmymn: MarginNote Addon Development Framework (github.com)

74 个赞