V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
ccyixia
V2EX  ›  分享创造

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

  ccyixia · 2021-12-15 04:12:24 +08:00 · 34576 次点击
这是一个创建于 1109 天前的主题,其中的信息可能已经有所发展或是发生改变。

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 版本。

第 1 条附言  ·  2021-12-15 12:57:23 +08:00

@安装后没有反应的小伙伴们:请再次访问网站,试试下载64位版本。。正确安装后看到 OneNote 里多了个 tab,不需要任何额外多余的设置。

捕获5.PNG

如果64位的也不行,请加微信群沟通吧。

(欢迎大家加群,不过有一点要小声说明下:这几年卑躬屈膝做乙方,让我患上了严重的即时通讯恐惧症,特别怕消息提示音和电话。。所以,我本人在群里可能不会特别活跃,回复不一定及时,但每天还是会定时看的。

wechat.PNG

第 2 条附言  ·  2021-12-24 13:06:46 +08:00

上面的群满了无法扫码加入,又建了一个:

e93bff8fbd776137e521920f0c9f973.png

第 3 条附言  ·  2022-10-10 21:16:23 +08:00
🎉 OneMark 在 producthunt 发布啦!麻烦大家帮忙投票转发,跪谢! https://www.producthunt.com/posts/onemark
314 条回复    2024-05-24 12:54:49 +08:00
1  2  3  4  
wdssmq
    101
wdssmq  
   2021-12-15 13:53:25 +08:00
费了点儿事,,但是好像成功了。。
Windn0
    102
Windn0  
   2021-12-15 13:59:19 +08:00 via iPhone
啊这,Office365 里的 onenote 不适配吗?还打算马上安装试试呢
ccyixia
    103
ccyixia  
OP
   2021-12-15 14:02:37 +08:00   ❤️ 2
@Windn0 已经适配了,不过可能需要安装 64 位版本的,网站上有。
chilaoqi
    104
chilaoqi  
   2021-12-15 14:03:30 +08:00
求你去微软!
windrun
    105
windrun  
   2021-12-15 14:22:08 +08:00
支持一下~ 如果有 Mac 版就更棒了~
Unclev21x
    106
Unclev21x  
   2021-12-15 14:22:51 +08:00
高手高手高高手
tty1
    107
tty1  
   2021-12-15 14:35:12 +08:00
Update page fail
ccyixia
    108
ccyixia  
OP
   2021-12-15 14:37:40 +08:00
@polaa onenote 同步是个大坑,只不过我没有多端同步的需求,所以对我来说还算靠谱
Windn0
    109
Windn0  
   2021-12-15 14:43:25 +08:00 via iPhone   ❤️ 1
@ccyixia 挂代理,clash+tun 反正我目前同步很顺的
Kakarrot
    110
Kakarrot  
   2021-12-15 14:45:34 +08:00
已经 onenote 抛弃 换 notion 了

绑定
qq316107934
    111
qq316107934  
   2021-12-15 14:50:45 +08:00
@tty1 同情况,已经把日志反馈到作者了,在看问题。
xlpzhxhh
    112
xlpzhxhh  
   2021-12-15 14:59:29 +08:00
@ccyixia 我原来是输入的$a+b$,看你的反馈是$$a+b$$。我试了一下是可以的。再次感谢
zxxufo008
    113
zxxufo008  
   2021-12-15 15:02:15 +08:00
支持,office 365 的已经支持了,装的 64 位的
efaun
    114
efaun  
   2021-12-15 15:02:52 +08:00
可惜了没赶上, 已经转 notion 了
Windn0
    115
Windn0  
   2021-12-15 15:12:03 +08:00   ❤️ 1
L_{c}=-\sum_{i=1}^{M-1} \sum_{j=i+1}^{M}\left|P_{i}(x)-P_{j}(x)\right|
像这个公式就没办法显示,应该是中间有两个连续的求和符号···
哎···onenote 的公式是个硬伤
lovedebug
    116
lovedebug  
   2021-12-15 15:17:46 +08:00
赞,这个必须要给赞
ccyixia
    117
ccyixia  
OP
   2021-12-15 15:19:23 +08:00
FireKnight
    118
FireKnight  
   2021-12-15 15:19:27 +08:00
我超,兄弟 nb 。兄弟这是用什么写的? VB 还是 vsto ?之前想写个插件给 OneNote 修一下英文字体不受控制的 bug ,调研了一下开发方法,但我本身没写过 windows 应用,就搁浅了。兄弟太强了。
我大概查了一下 OneNote 的 API ,可以说基本没有 API ,仁兄太强了
AprilNovember
    119
AprilNovember  
   2021-12-15 15:28:10 +08:00   ❤️ 1
😂OneNote 重度用户,一直觉得 OneNote 非常好用,特别适合记笔记。大佬赶紧打入巨硬,然后把 OneNote 重启🙈
ccyixia
    120
ccyixia  
OP
   2021-12-15 15:30:18 +08:00
@Windn0 嗯 ,感谢反馈,这个确实有问题,不过应该能解决。onenote 公式只能说将就用吧,后面还是要提供渲染成图片的方案,更可靠些(其实实现上一点也不难,只是这个版本没加进去)。
cccer
    121
cccer  
   2021-12-15 15:35:50 +08:00
为什么 64 位版本也是默认安装在 Program Files (x86)目录的
bruce0hh
    122
bruce0hh  
   2021-12-15 15:50:34 +08:00 via Android
支持下~
dunn
    123
dunn  
   2021-12-15 15:51:35 +08:00
http://tva1.sinaimg.cn/large/008a8f9ggy1gxekhllatrj31ah0k3dmv.jpg
安装了 64 位的,提示:加载 com 时出现错误
Microsoft® OneNote® 适用于 Microsoft 365MSO (版本 2111 Build 16.0.14701.20240) 64 位
ccyixia
    124
ccyixia  
OP
   2021-12-15 15:53:15 +08:00
@FireKnight OneNote 是没有多少 API 。。但这是 Windows ,一切皆有可能。。。
ligiggy
    125
ligiggy  
   2021-12-15 15:57:38 +08:00
卧槽,太强了,牛皮
ccyixia
    126
ccyixia  
OP
   2021-12-15 16:02:19 +08:00
@dunn 这是个棘手的问题,目前还不知道怎么解决,我尽快研究下。
YuiTH
    127
YuiTH  
   2021-12-15 16:15:30 +08:00
我记得 OneNote 在国内是有 Team 的……建议您火速加入 MS
Windn0
    128
Windn0  
   2021-12-15 16:27:16 +08:00 via iPhone
@ccyixia onenote 的图片有个特性,就是不能放在文字中间,只能另启一行。希望作者完善插件的时候能留意一下这个问题,最好能够让公式图片可以夹在文字之间。这样就太棒了。
fcfangcc
    129
fcfangcc  
   2021-12-15 16:29:39 +08:00
牛批
shaunyoung
    130
shaunyoung  
   2021-12-15 16:32:29 +08:00
哥们儿太强了,赶紧入职微软
ulosggs
    131
ulosggs  
   2021-12-15 16:34:49 +08:00
🐮🍺
tairan2006
    132
tairan2006  
   2021-12-15 16:38:01 +08:00
linshenqi
    133
linshenqi  
   2021-12-15 16:41:14 +08:00
m1 mac 上的 onenote 能用么~
yEhwG10ZJa83067x
    134
yEhwG10ZJa83067x  
   2021-12-15 16:43:53 +08:00   ❤️ 1
我想楼主这种高质量帖子才是我一直在这里摸鱼的终极原因!
ahswch
    135
ahswch  
   2021-12-15 16:57:32 +08:00
建议加入软软,早一年有这个我就不转 notion 了😂
superchijinpeng
    136
superchijinpeng  
   2021-12-15 17:15:10 +08:00
牛啊
ETO
    137
ETO  
   2021-12-15 17:49:52 +08:00
@enchilada2020 强烈希望支持一下 UWP
ccyixia
    138
ccyixia  
OP
   2021-12-15 17:50:45 +08:00
@cccer 小声说,我也不知道。。安装程序用的是微软官方给的示例,我还没研究明白。。
ccyixia
    139
ccyixia  
OP
   2021-12-15 17:51:45 +08:00
@ETO 不太可能支持 UWP ,因为它没提供任何 api 接口。。
ccyixia
    140
ccyixia  
OP
   2021-12-15 17:53:43 +08:00
@ahswch 哈哈,没事,我会和 OneNote 一起努力,争取某一天惊艳到你。:)
buru
    141
buru  
   2021-12-15 18:06:49 +08:00
牛逼啊 可惜用的 MAC
ccyixia
    142
ccyixia  
OP
   2021-12-15 18:07:27 +08:00
@Windn0 图文混排我已经试过各种办法了,无解。只能自己建一个 table ,左边放表格,右边放文字。然后表格设置为隐藏边框。这也是为啥我优先选择用 onenote 自带的数学公式,因为这样可以和普通文字混排。
gutu
    143
gutu  
   2021-12-15 18:24:40 +08:00
求你去微软!
弃坑 OneNote 的主要原因就是因为不支持 markdown
hushiwei
    144
hushiwei  
   2021-12-15 18:31:47 +08:00
很好很强大,几年前就希望有这个功能。感谢感谢
HFX3389
    145
HFX3389  
   2021-12-15 18:47:08 +08:00
MS OneNote team 出来学习学习,我就不信 MS 的人不用自己的笔记软件,用的时候不想用 Markdown ,还是说 MS 都放弃了?
ccyixia
    146
ccyixia  
OP
   2021-12-15 18:51:45 +08:00
@sarlanori 是不是不小心按了快捷键把实时模式关了?重启 onenote 试试。
ccyixia
    147
ccyixia  
OP
   2021-12-15 18:53:39 +08:00
@suotm onenote:扶我起来,我还能打!
ccyixia
    148
ccyixia  
OP
   2021-12-15 18:55:17 +08:00
@Itoktsnhc 请问是 windows 11 吗?
ccyixia
    149
ccyixia  
OP
   2021-12-15 18:56:46 +08:00
@cat9life 只是稍微了解下 Web3 ,要是真去搞了恐怕你看不到这个软件了。:D
sarlanori
    150
sarlanori  
   2021-12-15 19:13:20 +08:00
@ccyixia #146 我是在一篇之前写的笔记里试的,刚刚新建了一篇又可以了,我再接着用用看。
wtks1
    151
wtks1  
   2021-12-15 19:23:17 +08:00 via Android
厉害了,哪天试试
qiuyue0
    152
qiuyue0  
   2021-12-15 19:34:21 +08:00 via Android
厉害,回去试用一下
HK560
    153
HK560  
   2021-12-15 19:49:44 +08:00
强烈支持!
rooftop64
    154
rooftop64  
   2021-12-15 19:54:58 +08:00
已使用,佩服佩服~
binghe
    155
binghe  
   2021-12-15 20:09:32 +08:00
我这里好像是有 bug ,具体就是```后在“黑框”里面粘贴代码,然后就黑了。

hadronw
    156
hadronw  
   2021-12-15 20:14:39 +08:00
安装后重启一下软件
ccyixia
    157
ccyixia  
OP
   2021-12-15 20:29:21 +08:00
@binghe 光标放到代码块最后一行,然后按 ctrl+enter 试试,看会不会自动着色
hanliu
    158
hanliu  
   2021-12-15 20:32:48 +08:00 via iPhone
支持!
Seayon
    159
Seayon  
   2021-12-15 20:34:05 +08:00   ❤️ 1
太强了 给大佬点个赞
llk
    160
llk  
   2021-12-15 20:38:42 +08:00   ❤️ 1
支持!!感謝樓主,想請你喝咖啡~
ccyixia
    161
ccyixia  
OP
   2021-12-15 20:45:01 +08:00
@binghe “黑掉”的原因可能是代码是黑色的,恰好背景色也是暗色的,于是就看不清了。。按 ctrl+v 粘贴代码,或者粘贴完毕后再按 ctrl+enter 可以强制整体着色。麻烦确认下是不是这种情况。
yixinlove
    162
yixinlove  
   2021-12-15 20:50:34 +08:00
太牛逼了,支持!!

不过刚试了下,代码块写的时候有几个问题:
1. 第一个字符总是默认大写了
2. 跳出代码块后,自动搞成一行了,还得点进去一个一个换行
chejg
    163
chejg  
   2021-12-15 20:57:21 +08:00
支持,目前体验不错。
ccyixia
    164
ccyixia  
OP
   2021-12-15 20:58:42 +08:00
@yixinlove 首字母大写是 onenote 搞的,你可以在 onenote 设置里关掉。问题 2 我第一次听说,方便加下群,让我具体看看吗?
Godykc
    165
Godykc  
   2021-12-15 20:59:48 +08:00
啥也不说了 作者真牛 B !
paranoiddemon
    166
paranoiddemon  
   2021-12-15 21:49:30 +08:00
太牛了 onenote 转 obsidian 就是因为不支持 markdown
binghe
    167
binghe  
   2021-12-15 21:53:29 +08:00
@ccyixia #157 新问题,CTRL+V 后,什么都没动,会自动多一行出来。
粘贴过去会变黑,这个我复制同一段代码,只是偶尔出现,刚才出现一次,然后我按 ctrl+enter 后,也是会多出一行。




YaakovZiv
    168
YaakovZiv  
   2021-12-15 22:16:33 +08:00   ❤️ 1
体验了一下,我的电脑环境是 win10 21H1 ,office365 带的 OneNote ,因为买过 gem 的 OneNote 插件,对比了楼主的插件,楼主这个反应更快一些,gem 那个会在内容多的时候直接卡死。楼主这个即便是内容很多,也可以正常使用,给楼主点赞。
liuser666
    169
liuser666  
   2021-12-15 22:48:39 +08:00   ❤️ 1
艹, 这是真大神
Ruohua3kou
    170
Ruohua3kou  
   2021-12-15 23:43:24 +08:00
支持了,感谢 lz 的分享!
tengyufei
    171
tengyufei  
   2021-12-15 23:45:35 +08:00 via Android
牛逼拉,希望大佬能一直更新,冲冲冲
est
    172
est  
   2021-12-16 00:15:25 +08:00   ❤️ 1
这个也太厉害了
sfqtsh
    173
sfqtsh  
   2021-12-16 00:45:35 +08:00 via Android
厉害!

还没用,不知 lz 这个 C++写的?

之前曾用 C++ ATL/COM 写过 OneNote 的插件测试,后面就放下了。

用过几个 C#写的插件,感觉反应都有点慢就没再用了。比如开源的 https://github.com/stevencohn/OneMore
enchilada2020
    174
enchilada2020  
   2021-12-16 03:07:11 +08:00 via Android
想知道怎样才能变得像楼主这样强
n1dragon
    175
n1dragon  
   2021-12-16 06:13:07 +08:00
牛!期待 Mac 版
matthewzhong
    176
matthewzhong  
   2021-12-16 08:57:03 +08:00
typora 瞬息间不香了
hanswu
    177
hanswu  
   2021-12-16 11:20:27 +08:00
感谢老哥 已经好用了 。 弥补了 不能以前一直不能 记 markdown 的遗憾
ccyixia
    178
ccyixia  
OP
   2021-12-16 12:30:50 +08:00
@binghe 感谢,确认 bug
ddzzhen
    179
ddzzhen  
   2021-12-16 12:37:26 +08:00 via Android
看起来很牛,确实之前因为网页和 onenote 格式不统一相互转化的时候很苦恼
IC0ZB
    180
IC0ZB  
   2021-12-16 12:54:58 +08:00 via iPhone
牛🍺,因为 onenote 不支持代码以及同步问题转向了 notion ,这下可以考虑回来了哈哈
almclong
    181
almclong  
   2021-12-16 12:56:09 +08:00 via Android
需要联网才能使用吗?公司内网 office 2016 安装 64 位也没有反应啊
shyling
    182
shyling  
   2021-12-16 13:02:48 +08:00
厉害了,回去体验一下
irainsoft
    183
irainsoft  
   2021-12-16 13:27:54 +08:00
code block 真不错,之前也是单独拿插件才在 OneNote 上实现的

另外,收集 bug 也许可以拿 Github ?即使不开源,也可以拿来做产品展示并使用 issue 功能,不用拿 IM 软件来收集信息了
GGMM
    184
GGMM  
   2021-12-16 13:42:16 +08:00
感谢老哥,我用的是 32 位的。
gulugu
    185
gulugu  
   2021-12-16 13:44:50 +08:00
牛 B ,干翻微软他丫的那一群不思进取的阿三
ccyixia
    186
ccyixia  
OP
   2021-12-16 14:08:58 +08:00
@almclong 不需要联网的 安装完成后可能需要在 onenote 选项里开启插件 如果还有问题请加群。
shangyu7
    187
shangyu7  
   2021-12-16 14:13:51 +08:00
大佬牛逼
tmacLiu9527
    188
tmacLiu9527  
   2021-12-16 14:14:38 +08:00
支持! 非常好!!
plmsuper8
    189
plmsuper8  
   2021-12-16 15:01:11 +08:00
支持一个 issue:按 F5 会把普通的标记和缩进都丢失,有缩进时还会引起文字复制;

btw 如果全局快捷键能有个开关就好了

版本:Microsoft® OneNote® 2016MSO (版本 2109 Build 16.0.14430.20292) 64 位
ccyixia
    190
ccyixia  
OP
   2021-12-16 15:10:04 +08:00
@plmsuper8 F5 的使用场景应该是复制外部的 markdown 内容到 OneNote 进行渲染,不是对已有的 OneNote 笔记就行操作,如果是已有笔记,确实会因为被当做纯文本而丢失样式。
molika
    191
molika  
   2021-12-16 15:35:54 +08:00
有 Mac 端的吗? +1
djv
    192
djv  
   2021-12-16 16:00:15 +08:00
选 just me 路径没自动改成
C:\Users\用户名\AppData\Local\Programs\OneMark\
64 位默认是( x86 )下。
0x11901
    193
0x11901  
   2021-12-16 17:25:50 +08:00
太好了,刚准备自建 Joplin 服务器,有了这个还要什么自行车!
binghe
    194
binghe  
   2021-12-16 17:42:01 +08:00
@0x11901 #193 joplin 也挺好的,在挺久之前,因为 OneNote 不支持 md ,我换成了 joplin+坚果云,只是我之前两次设置了主密码后。换系统搞得同步错误。密码是保存在 enpass 上的。。直到后来我才知道是坚果云限制了同步频率。再后来换成 joplin+onedrive 。
0x11901
    195
0x11901  
   2021-12-16 17:50:22 +08:00
@binghe 我本来打算自己搭他那个 Joplin server ,结果我没有域名,只用 ip+端口号不好使。这下好了,省的折腾了
ccyixia
    196
ccyixia  
OP
   2021-12-16 18:10:20 +08:00
@0x11901
@binghe 你们比我勤快,我最烦自己搭服务了。。可能是日常工作需要折腾的东西已经够多了,不想事事操心
ccyixia
    197
ccyixia  
OP
   2021-12-16 18:12:09 +08:00
@irainsoft 感谢建议,后面会用 github 收集的,目前阶段微信群是最快最方便的手段。
ccyixia
    198
ccyixia  
OP
   2021-12-16 18:13:43 +08:00
@sfqtsh c++用来做黑魔法,c#用来写业务逻辑,哈哈。
cyersvet
    199
cyersvet  
   2021-12-16 18:41:51 +08:00 via Android   ❤️ 1
这么说来,估计把 word 变为 markdown 编辑器应该也不难
shazhou
    200
shazhou  
   2021-12-16 18:48:51 +08:00
真的好用,感谢大佬无私奉献。
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   941 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 31ms · UTC 20:58 · PVG 04:58 · LAX 12:58 · JFK 15:58
Developed with CodeLauncher
♥ Do have faith in what you're doing.