2作者: emsi1 天前原帖
在过去的15年里,我在OneNote中积累了数百条笔记。我非常喜欢这个应用程序,并且仍然认为它是最优秀、最独特的笔记工具之一。它的自由形式画布支持一种信息组织方式,这是基于Markdown的工具无法复制的。 问题在于,使用OneNote对我来说变得越来越不方便。微软从未发布过原生的Linux客户端,因此我一直保持着一个Windows虚拟机,后来甚至为了OneNote还专门买了一台小型Windows电脑。Firefox的OneNote网页剪辑工具最终停止了支持,失去了我定期捕捉信息的一种方式。 网页版并没有解决这个问题。尤其是,它无法一次性搜索我所有的笔记本。要找到一条笔记,我首先得记得它在哪个笔记本里,这实际上违背了拥有可搜索档案的目的。我还发现网页应用的速度很慢,功能也远不如桌面客户端。 我花了一段时间查看其他笔记应用,但由于我的很多历史资料仍然锁定在OneNote文件中,迁移变得困难。最终,我意识到我不需要重现整个应用程序。为了开始迁移,我首先需要一个好的查看器来浏览我已有的档案。 于是我构建了OneNoteViewer。 这是一个用Rust和GTK4编写的原生Linux应用程序。它可以直接打开本地的.one、.onetoc2和.onepkg文件,无需OneDrive、微软账户、Wine或转换为Markdown或HTML。它重建了OneNote的空间页面画布,并支持在多个笔记本之间浏览和搜索。 我在构建过程中得到了编码助手的帮助。最终的结果让我感到惊讶,尤其是在性能方面。在我的系统上,打开页面、在笔记之间切换和搜索我的档案感觉几乎是瞬时的,而我的笔记本大小达到数百兆字节。在多年来访问这些笔记时的种种不便之后,这种响应速度让我感受到了实质性的变化。 在我的档案中,我估计大约98%到99%的笔记都能正确或足够好地显示。仍然偶尔会出现布局问题:某些图片可能缺失或稍微过高,列表项可能对齐不当,某些文本可能包含意外字符。我的大多数网页剪辑和我关心的材料已经忠实地展示出来,但仍有很多内容需要进一步调查和改进。我的语料库只是一个,所以我预计其他档案会发现我尚未遇到的情况。 OneNoteViewer是故意设为只读的。我不想重建我试图离开的生态系统,也不打算将其变成另一个专有格式的编辑器。我的长期计划是将其查看和搜索功能与现代笔记应用集成,以便通过一个界面浏览旧的OneNote材料和新创建的笔记。 目前,我很想听听其他人的看法,尤其是那些拥有大量或特殊OneNote档案的人。肯定会有一些bug,更多的目光将有助于发现它们。欢迎提供兼容性报告、最小化的测试文件、技术批评和贡献。 代码库、截图、软件包、文档和源代码: [https://github.com/emsi/OneNoteViewer](https://github.com/emsi/OneNoteViewer) 感谢您的关注。