5 个不稳定版本

0.3.1 2022年11月19日
0.3.0 2021年2月20日
0.2.1 2020年10月27日
0.2.0 2020年10月24日
0.1.0 2020年10月16日

#1393解析器实现


one2html 中使用

MPL-2.0 许可证

690KB
7.5K SLoC

Rust OneNote® 文件解析器

用 Rust 实现的 Microsoft OneNote® 文件解析器。

状态

正在进行中。目前它可以解析 OneNote 文件的大部分内容,但前提是文件是以 FSSHTTP 封装格式 [MS-ONESTORE] 2.8。由 OneNote 2016 桌面应用程序创建和存储的 OneNote 文件尚未支持。

目标

  • 读取通过 OneNote 2016 应用程序和 OneDrive 下载均可访问的 OneNote 文件
  • 将 OneNote 笔记本和部分转换为 HTML(请参阅 one2html 项目)

非目标

  • 写入 OneNote 文件的能力

架构

代码组织和架构遵循 OneNote 文件格式,该格式由多层编码构建而成

  • fsshttpb/:这实现了在 [MS-FSSHTTPB]:通过 SOAP 协议进行文件同步的二进制请求 中指定的 FSSHTTP 二进制封装格式。这是文件格式的最低层,指定了对象及其关系如何从二进制流(在我们的情况下是文件)中编码(和解码)。
  • onestore/:这实现了在 [MS-ONESTORE]:OneNote 修订存储文件格式 中指定的 OneStore 格式,该格式描述了包含所有 OneNote 对象的 OneNote 修订存储文件(也称为 OneStore)如何在 FSSHTTP 二进制封装文件中存储。这还包括文件头 ([MS-ONESTORE] 2.8),然后是如何从 FSSHTTP 对象和修订中构建 OneNote 修订存储 ([MS-ONESTORE] 2.7)。
  • one/:这实现了如[MS-ONE]: OneNote 文件格式中所述的 OneNote 文件格式。这指定了从 OneStore 修订文件中解析 OneNote 文件中的对象的方式。
  • onenote/:最终实现了提供对 OneNote 文件中存储的数据的访问的 API。它解析 FSSHTTPB 数据、修订存储数据,然后构建 OneNote 文件包含的对象。这包括解决所有引用,例如查找页面段落。

免责声明

该项目与微软无关,也不受微软支持。作者与微软没有任何关联。

依赖关系

~5.5MB
~162K SLoC