忍不了了,做了个插件让 OneNote 支持 Markdown

2021-12-15 04:12:24 +08:00
 ccyixia

1 年多前,由于工作原因,主力开发机换成了 Windows ,还入了 Office 365 全家桶。于是在时隔多年后,再次用起了 OneNote 。不得不说,都快 2022 年了,OneNote 的码字体验还停留在十多年前,一堆大大小小的遗留问题。但我实在懒得折腾什么 Notion Obsidian (没有复杂的知识管理需求),只想找个本地 /靠谱 /大厂出品 /开箱即用的笔记软件,简单记录下工作相关内容。 毕竟人一旦习惯了 Markdown 的符号 #-,就真的回不去了。于是研究了下 OneNote 的 api ,决定自己动手,丰衣足食。

废话不多说,直接上动图。

简单来说,实现了基于行的实时渲染,每次按回车时自动渲染当前行。当然,这个实时 跟新世代编辑器字符级别的没法比,但已经足够好用了。

不仅如此,终于在 OneNote 上实现了可用级别的代码高亮,输入```创建代码块后,每敲一行自动着色。(之前要在 OneNote 里插入代码简直反人类,心疼自己)

以及 LaTex 转换到 OneNote 原生的数学公式(不是图片)。

除此之外,还支持TOC / todo / 水平线 / 脚注 等常见的语法,直接拿已有的 Markdown 内容粘贴到 OneNote 中, 然后按 F5 渲染,大概率是可以完美还原的(强行自信。。不过毕竟是 beta 版本,出现意外欢迎反馈)。

你可能会问:这种转换是单向的吗?我如果有一天想导出 Markdown 纯文本怎么办?在我看来,原始 Markdown 丢失是绝对不能接受的,所以我花了很大力气来解决这个问题:笔记中每个段落的 Markdown 原文都以某种格式隐藏存储在自身之中,可以随时读取,不依赖外部文件,任意编辑也不会破坏。而且这种格式是公开透明的,只需要用 OneNote api 拿到 XML 格式的笔记内容,所有秘密一览无余。

更重要的是,渲染后的内容可以原地随意增删修改,不必再重新切换回 Markdown 形态编辑;而且在导出 Markdown 时,内容也会相应更新——是的,实现了双向更新。当然,如果由于某些原因,你想切换回 Markdown 形态编辑,也是支持的。按 ctrl + , ,即可在编辑和预览之间切换。

说完实时渲染和双向更新,接下来夸一下 OneNote 。。其实 OneNote 编辑器在刚推出的时候还是很超前的,有了现在流行的 block level 编辑器的雏形。无论是列表、段落、表格,书写和调整起来都非常得心应手。(可惜之后多年编辑器层面都没什么大的更新,逐渐有点落伍了。不过微软家产品向后兼容都做的非常好,所以估计只能保守,不敢太激进。这里顺便提一下某老牌笔记软件,每一次大更新确实有新的东西,但后果就是会有不少用户抱怨之前的笔记格式乱了。微软的产品是绝对不会出现这种情况的)说回正题。。也多亏了这些设计,结合 Markdown 之后居然毫不违和,整体体验下来有点现代编辑器的味道了。个中玄妙,就待各位亲自上手把玩了。

One more little thing ,被吐槽无数的英文自动变成 Calibri 字体的问题好像也因为这种二次渲染模式的引入无意中解决了。。

最后,隆重介绍下,插件的名字:OneMark (毫无创意但也顺理成章),官网: https://onemark.neuxlab.cn 欢迎大家试用反馈。

ps: 只支持 OneNote Windows 桌面版,不支持 UWP 版本。

34644 次点击
所在节点    分享创造
314 条回复
skykale
2021-12-15 13:10:32 +08:00
强啊!
Itoktsnhc
2021-12-15 13:11:40 +08:00
安装了 64 位的,在 Office 365 OneNote 里面显示为非活动应用程序加载项
ccyixia
2021-12-15 13:14:29 +08:00
@lemonloving 哈哈,老黄瓜如今新刷了绿漆,何日君再来?:)
he1a2s0
2021-12-15 13:14:38 +08:00
测试了,卸载了 32 位重新装 64 位,安装后在加载项中启用 OneMark 才正常
hahawode
2021-12-15 13:16:16 +08:00
不行没有效果

Microsoft® OneNote® 适用于 Microsoft 365MSO (版本 2111 Build 16.0.14701.20206) 64 位
.net v4.0.30319
ccyixia
2021-12-15 13:16:29 +08:00
@Itoktsnhc 看看上面 @he1a2s0 这位兄弟说的,可能要在加载项中启用 OneMark 才行。如果还有问题,加微信群吧。
ccyixia
2021-12-15 13:17:00 +08:00
ccyixia
2021-12-15 13:17:40 +08:00
@Iaoceot 试试安装 64 位的
hahawode
2021-12-15 13:19:35 +08:00
卸载重装 现在可以了
seaswalker
2021-12-15 13:20:50 +08:00
awesome man
lemonloving
2021-12-15 13:24:16 +08:00
@ccyixia 主要喜欢上了 Obisidian 的双向链接,之后考虑靠这个插件把 Onenote 当做知识沉淀的中间站点。谢谢你的开发,这的 tql !
ccyixia
2021-12-15 13:26:09 +08:00
@dunn
@ddzy
@TOUJOURSER
@ijk0
@mafeifan
@outtime

mac 端估计有点悬,几乎所有 office 的 VSTO 插件都没法直接在 mac 上运行。不过我个人也是需要 mac 端的,后面看看有没有其他技术方案,即使能实现部分功能,也是有很大帮助和提升的。
ccyixia
2021-12-15 13:34:49 +08:00
@lemonloving 双向链接 OneNote 也不是不能实现,总之我会想办法把各种牛逼的功能加进来的,哈哈~不是说服你哈,只是单纯讨论。
u823tg
2021-12-15 13:39:33 +08:00
老哥 666.试用了不错
perpetually
2021-12-15 13:40:50 +08:00
OneNote 搭载了极为先进的 markdown 格式
spacebound
2021-12-15 13:44:05 +08:00
终于出现了,太强了!
zhq566
2021-12-15 13:45:09 +08:00
好用 期待不断完善 感谢!
VersionD
2021-12-15 13:45:15 +08:00
@ccyixia 已试用,感觉还行,体验一段时间再说,顺便问问楼主这玩意儿未来会有什么收费标准吗。。毕竟有可能在公司电脑上使用
ccyixia
2021-12-15 13:45:43 +08:00
@xlpzhxhh 感谢反馈,请问能把测试不成功的 LaTex 发我试一下吗?我在网上搜了一个,好像没问题

$$
\begin{aligned} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{aligned}
$$

底层的渲染都是支持的,只是翻译到微软 office 数学公式这边,可能会有点差异,出现问题一个个解决就好:)
ccyixia
2021-12-15 13:49:29 +08:00
@xlpzhxhh 不过我试过很多公式,确实有各种微小的差异或不兼容,只能达到能看的级别,要想完美展示,还是需要渲染成图片。这个后面会加入支持的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/822262

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX