5.1 KiB
OneNote Tools
OneNote Tools is a standalone, local-first browser reader and exporter for a
tested subset of Microsoft OneNote .one sections and CAB-based .onepkg
packages. Its native TypeScript parser runs in a dedicated module worker; the
selected notebook is neither uploaded nor persisted.
It is also an independent application in the add·ideas Toolbox contract. The
source uses the Toolbox SDK shell and manifest, builds with Vite base: './',
and is delivered to Toolbox Portal as a checksummed static ZIP.
Version 0.3.4 uses the stable shared top bar, with the Toolbox icon and
add·ideas Toolbox label in a fixed far-left block; the app title and one
tagline centered; and Help, the OneNote source link, Apps, and Personalize in a
fixed far-right cluster. Personalize uses the shared portal-style appearance
panel while catalogue counts and preference import/export stay in the portal.
The application content uses the same min(100%, 90rem) span as the shell bar.
What version 0.3.4 supports
- Desktop revision-store and unfragmented FSSHTTPB package-store
.onesections from the tested producer families. - Complete single- or multi-cabinet
.onepkgsets using uncompressed, MSZIP, Quantum, or LZX CAB folders. Split packages can be selected as one.onepkgfile together with all of its.cabcompanions, in any selection order. - Desktop and FSSHTTPB
.onetoc2stores inside packages. Section groups, authored section order, recycle-bin filtering, pages, and subpages are presented as a notebook tree; unresolved entries retain a deterministic fallback rather than hiding readable sections. - Structured page content: outlines and layout hints, rich-text runs, safe links, tables, PNG/JPEG images, decoded ink strokes, and declared embedded attachments. Resource bytes remain lazy until previewed, explicitly downloaded, or included in an explicit export.
- Local exports as structured JSON, plain text, Markdown, inert semantic HTML, or a deterministic static notebook ZIP. Exports retain parser diagnostics and unsupported-content summaries; they do not create or modify OneNote files.
The redistributable golden corpus covers desktop and unfragmented FSSHTTPB
sections, a real LZX .onepkg, all four CAB compression modes, a five-part
spanning CAB set, TOC hierarchy behavior, rich content, resources, and every
export format. The generic MSZIP, Quantum, and multi-cabinet fixtures establish
CAB behavior; they are not claims about every OneNote producer.
This remains a deliberately bounded compatibility subset. Fragmented FSSHTTPB data-element reconstruction, equations, audio/video, and untested producer variants are not supported. Visual placement is approximate rather than a pixel-perfect OneNote layout. See format support for the precise matrix.
There is no Rust/Wasm runtime, notebook-processing application backend, upload proxy, telemetry, or notebook storage. All parsing and CAB decompression is ordinary browser JavaScript produced from the TypeScript source.
Use
Run the static build or open it through Toolbox Portal, then:
- choose one local
.onefile; or - choose one
.onepkgfile and, for a split package, all linked.cabparts in the same file-picker action.
Use Clear file to terminate the current worker and release application references. Browser garbage collection does not provide a secure-erasure guarantee.
Development
Node.js 22 or newer is required. The checked-in .npmrc contains only the
public package registry mapping and no credential.
npm ci
npm run dev
npm run check
npm run check validates manifest synchronization, TypeScript, ESLint,
Prettier, fixture-backed Vitest tests, the production build, and
toolbox-check dist.
The application works standalone. A same-origin Toolbox catalogue can be
supplied through the SDK's ?toolbox= context mechanism. The app uses the SDK
AppShell and does not add a second suite-level switcher.
Release artifact
npm run release:artifact
(cd release && sha256sum -c onenote-tools-0.3.4.sha256)
The ZIP root contains the built static app and manifest plus the changelog,
corresponding-source information, security/support/provenance documents, and
the required project and third-party licence texts. File order and ZIP
timestamps are fixed. Existing artifacts are not overwritten unless --force
is passed after --.
Toolbox Portal expands the reviewed ZIP below an apps/<target>/ path and
locks its exact SHA-256. It does not build this repository or import this app
into the portal React tree.
Design and provenance
- Format support
- Security model and active limits
- Pinned references and normative specifications
- Port provenance
- Fixture provenance
Licence
OneNote Tools is primarily MPL-2.0; the adapted multi-cabinet module is
LGPL-2.1-only. The complete licence texts are in LICENSES/, and
adapted/third-party material remains under the terms recorded in
THIRD_PARTY_NOTICES.md.