An EmDash plugin (native, content:write only) with one admin page: a diigo username and an ISO week. It reads diigo-cache's public page (?in=<week>&by=created) as microformats, follows rel=next, and creates a draft in issues shaped like seed/issues.json. Transport is a DIIGO_CACHE service binding rather than ctx.http.fetch: EmDash's SSRF guard refuses localhost, and the binding names one worker. Logic lives in src/week.ts with the fetcher passed in; tests read fixtures in diigo-cache's markup. The checklist's goal 2 now names potluck; DiigoBridge waits. Generated-by: Claude Opus 5.5
1.2 KiB
diigo-week
An EmDash plugin that drafts a potluck issue from a week of your shared diigo bookmarks. It reads them as microformats from diigo-cache's public page, so you edit a draft instead of copy-pasting links.
Getting started
Run diigo-cache (with a filled public cache) and potluck, each in its own terminal:
pnpm install
(cd ../diigo-cache && pnpm dev) # → http://localhost:8787/
(cd ../potluck && pnpm dev) # → http://localhost:4321/_emdash/admin
In potluck's admin: Plugins → Draft from diigo → Draft issue. The draft shows up under Issues.
How it reads the week
It asks diigo-cache for /public/<user>?in=<week>&by=created over the DIIGO_CACHE service binding (potluck's wrangler.jsonc), reads the page's h-feed of h-entry bookmarks, follows rel=next, and creates a draft in issues: title, week, dek, and a paragraph per bookmark with its description and tag links, as in potluck's seed/issues.json. The binding is its only reach outside the site; it declares content:write and taxonomies:write (the issue gets its bookmarks' tags, as the sample issues do), nothing else.
Checks: pnpm lint && pnpm test.