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 中使用
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 文件包含的对象。这包括解决所有引用,例如查找页面段落。
相关资源
- [MS-ONESTORE]: OneNote 修订存储文件格式
- [MS-ONE]: OneNote 文件格式
- [MS-FSSHTTPB]: 通过 SOAP 协议进行文件同步的二进制请求
- LibMsON:一个正在进行中的 C++ 编写的 OneNote® 修订存储文件解析器
- FSSHTTP - FSSHTTP/B/D 协议的解析工具:一个 FSSHTTPB 数据解析器
免责声明
该项目与微软无关,也不受微软支持。作者与微软没有任何关联。
依赖关系
~5.5MB
~162K SLoC