-
Notifications
You must be signed in to change notification settings - Fork 1
Development
zzm edited this page Aug 31, 2026
·
2 revisions
VS Code command
→ PaperReaderPanel
→ ReaderStorage
→ TranslationService
↔ Webview messages
→ React reader UI
→ PDF.js / react-pdf-highlighter-plus
- The extension host owns file access, clipboard access, local processes, secrets, and remote API calls.
- The Webview owns PDF rendering and reading interaction.
-
ReaderStorageowns atomic sidecar persistence and recovery. -
TranslationServiceprovides one boundary for interchangeable providers.
See project_map.md for a file-by-file guide and AGENTS.md for product and engineering constraints.
Use Node.js 20.19 or newer, or Node.js 22.12+.
git clone https://github.com/WORMMMMMM/inleaf-reader.git
cd inleaf-reader
npm ci
npm run compilePress F5 in VS Code to launch an Extension Development Host. Open a normal
text PDF and run Inleaf Reader: Open Paper Reader.
Fast checks while developing:
npm run test:unit
npm run typecheckRequired before committing source changes:
npm testWebview source changes regenerate assets under media/; those generated assets
are committed because the installed extension loads them at runtime. Generated
files under out/ are not committed.
Do not commit:
-
.vscode/or local virtual environments; -
node_modules/orout/; - PDFs or
.inleaf-reader/runtime data; - packaged VSIX files;
- API keys or credentials.
See CONTRIBUTING.md before opening a pull request.