Repository navigation
wePaper v1.2.0
wePaper v1.2.0
Public library: https://wepaper.plainlist.space
First-page performance
- Reader mounts immediately (no metadata waterfall).
- PDF.js loads with Range only (
disableStream/disableAutoFetch), so page 1 is not held hostage to the rest of the file. - Gzip for JS/CSS (PDFs stay uncompressed so byte ranges stay valid).
- PDF.js worker is module-preloaded.
- nginx
proxy_cacheis off for this vhost — a cached206can no longer replace a PDF with a 64 KB fragment.
Target for ordinary small papers: click → readable first page P50 ≤ 2.0 s / P95 ≤ 3.0 s. Measured cold opens of a 228 KB paper: ~0.33–0.85 s.
PDF fidelity
- High-DPI canvas using
devicePixelRatio(cap 3, 16M pixel clamp). - Zoom 50–400% re-renders the page (not CSS stretch).
- Continuous vertical scroll, text layer, find, and select preserved.
Zotero sync
Unchanged: Local API → agent → server → public catalog.
Dedicated origin and repository
- Production: https://wepaper.plainlist.space
- Repository: https://github.com/rainhuang0220/wePaper
Security
Public read / bearer write. /openapi.json stays 404. PDF Cache-Control is private so shared proxies do not store Range fragments.