0.1.2
November 6th, 2026
Fixed
- Cloudflare Turnstile now works as documented:
polls.jsloads Cloudflare's script (or waits for the site's own copy) and renders the widget in each open poll. Before, nothing loaded the script, so with both keys set every vote was turned away. After a failed vote the widget is reset, so the visitor can try again; a vote sent before the check finishes asks the visitor to wait, and if the script or the widget fails the visitor is told so and it is retried. - A vote sent without JavaScript now shows its outcome ("Thanks for voting!") when the visitor comes back to the page, through the new
polls:outcometag inside{{ nocache }}. Left out withfullstatic caching, where voting needs JavaScript.
Changed
- The Turnstile placeholder in the default view is now
<div data-poll-turnstile data-sitekey="…">, and the error element carriesdata-poll-error-verifyinganddata-poll-error-unverified. Published views with the old.cf-turnstileplaceholder keep working; without the new attributes they show the generic error message.
Added
- README: setting up Turnstile, what it sends to Cloudflare, a privacy section and control panel screenshots.