爱意满满的作品展示区。
ccyixia

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

  ccyixia · Dec 15, 2021 · 40617 views
This topic created in 1636 days ago, the information mentioned may be changed or developed.

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

Supplement 1  ·  Dec 15, 2021

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

捕获5.PNG

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

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

wechat.PNG

Supplement 2  ·  Dec 24, 2021

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

e93bff8fbd776137e521920f0c9f973.png

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

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

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

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




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

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

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

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

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

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

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