feat(core): onenote importer (#15198)

#### PR Dependency Tree


* **PR #15198** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added OneNote import support for `.one`, `.onetoc2`, and `.onepkg`,
including OneNote-to-markdown content conversion.
* OneNote now appears in the import flow with a dedicated label and
format tooltip, and file pickers recognize the new OneNote type.

* **Bug Fixes**
* Import options that are desktop-only are now disabled when not running
in the desktop app, with clear messaging.
* Improved imported asset handling by converting non-image embedded
assets into attachments for more consistent results.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2026-07-06 06:20:52 +08:00
committed by GitHub
parent 8d72e4dc29
commit 9581432d21
22 changed files with 1621 additions and 112 deletions

View File

@@ -16,8 +16,8 @@ resolver = "3"
[workspace.dependencies]
aes-gcm = "0.10"
affine_common = { path = "./packages/common/native" }
affine_doc_loader = "0.1.0"
affine_importer = "0.1.0"
affine_doc_loader = "0.1.2"
affine_importer = "0.1.1"
affine_nbstore = { path = "./packages/frontend/native/nbstore" }
anyhow = "1"
assert-json-diff = "2.0"
@@ -32,7 +32,7 @@ resolver = "3"
criterion2 = { version = "3", default-features = false }
crossbeam-channel = "0.5"
dispatch2 = "0.3"
doc_extractor = "0.1.0"
doc_extractor = "0.1.1"
dotenvy = "0.15"
file-format = { version = "0.28", features = ["reader"] }
hex = "0.4"
@@ -69,6 +69,9 @@ resolver = "3"
objc2-foundation = "0.3"
ogg = "0.9"
once_cell = "1"
onenote_parser = { git = "https://github.com/msiemens/onenote.rs", rev = "5138a39a3f4e72b840932f9872fecde52fa9da60", package = "onenote_parser", features = [
"onepkg",
] }
p256 = { version = "0.13", features = ["ecdsa", "pem"] }
pulldown-cmark = "0.13"
rand = "0.9"
@@ -92,6 +95,7 @@ resolver = "3"
thiserror = "2"
tiktoken-rs = "0.7"
tokio = "1.45"
typed-path = "0.12.3"
typst = "0.14.2"
typst-as-lib = { version = "0.15.4", default-features = false, features = [
"packages",