Why
Text-only posts are the v1 plan for #21, but an accompanying image would be neat and the site already has a "share card" concept.
Follows #21 — not started until that's live in practice.
Notes (bare-bones — sketching a theory, not a full spec)
The existing #CurrentTip share-card markup (pug/partials/_share.pug) is already rendered client-side via html2canvas for the site's manual "save as image" feature, but that mechanism needs a real DOM and can't run in a plain Node/GitHub Actions script as-is. This is genuine scope, not a quick add-on.
Two candidate approaches to explore later:
- (a) Headless browser (Puppeteer/Playwright) in the Action, loading a minimal version of the share-card markup and screenshotting it. Most faithful to current styling, reuses existing CSS.
- (b)
node-canvas/sharp rebuild of the card server-side: load one of the existing img/bg*.jpg backgrounds, draw the tint overlay and wrapped tip text. Lighter-weight in CI but requires reimplementing layout/text-wrapping from scratch.
No decision made on which yet — left for implementation time.
Why
Text-only posts are the v1 plan for #21, but an accompanying image would be neat and the site already has a "share card" concept.
Follows #21 — not started until that's live in practice.
Notes (bare-bones — sketching a theory, not a full spec)
The existing
#CurrentTipshare-card markup (pug/partials/_share.pug) is already rendered client-side viahtml2canvasfor the site's manual "save as image" feature, but that mechanism needs a real DOM and can't run in a plain Node/GitHub Actions script as-is. This is genuine scope, not a quick add-on.Two candidate approaches to explore later:
node-canvas/sharprebuild of the card server-side: load one of the existingimg/bg*.jpgbackgrounds, draw the tint overlay and wrapped tip text. Lighter-weight in CI but requires reimplementing layout/text-wrapping from scratch.No decision made on which yet — left for implementation time.