Obsidian and GitHub render each newline as a line break, so the hard-wrapped READMEs and CONTRIBUTINGs rendered ragged. Whitespace only, except a note in potluck's CONTRIBUTING that other workerd hosts are untested: they'd have to supply the D1 and R2 bindings. Generated-by: Claude Opus 5.5
27 lines
1.5 KiB
Markdown
27 lines
1.5 KiB
Markdown
# diigo-cache
|
|
|
|
Your diigo bookmarks, cached in a [workerd](https://github.com/cloudflare/workerd) worker, with a public page you can filter by week: `/public/<you>?in=2026-W41`. Your diigo session cookie is stored in one Durable Object and nowhere else.
|
|
|
|
## Getting started
|
|
|
|
```sh
|
|
pnpm install
|
|
pnpm dev # → http://localhost:8787/
|
|
```
|
|
|
|
Then, in the browser:
|
|
|
|
1. **mint the diigo session at webapp**: paste the `Cookie` header from diigo.com (devtools, any logged-in request).
|
|
2. **wire** it, mode **public**. Save the cache id it shows (the password-manager button does this).
|
|
3. **open this cache** → **fill**, and watch it walk your bookmarks.
|
|
4. Visit `/public/<your diigo username>?days=7`.
|
|
|
|
## Bookmarks you hold, a page anyone can read
|
|
|
|
- **Filter by date and search:** `?days=7`, `?in=2026-W41` (ISO week, UTC), `?after=2026-01-01&before=2026-02-01`, `?by=created`, and `?q=` with words, `"phrases"`, `#tags`, `-negation`, and gmail-style `newer_than:7d`. Add `Accept: application/json` for JSON.
|
|
- **Private stays private:** the public cache drops private bookmarks before storing anything, so it never holds them.
|
|
- **Ids are capabilities:** the cache id is a bearer key you keep in your password manager. It rides URL fragments and POST bodies, never a path or query string, so it stays out of logs and history.
|
|
- **Cheap to read:** pages come from Durable Object SQLite storage, and a fill job in the background fetches each diigo page once.
|
|
|
|
Design, tests, and deploying: [CONTRIBUTING](CONTRIBUTING.md).
|