Extracts information from parkrun event result pages for inclusion in reports.
It is not a run report generator, but it helps you write a weekly parkrun event report — milestones, first-timers, personal bests, volunteers, and community facts — as soon as the results page loads.
I wrote it while volunteering as a Run Director at Brimbank parkrun, to celebrate our community on the Facebook page, and shared it so other events can use it too. Install it as a browser extension, or use the userscript or bookmarklet (including on Safari / iOS).
- Install Eventuate from the Firefox Add-ons site or the Chrome Web Store (Safari and iOS: use the userscript or bookmarklet instead).
- Open a parkrun latest results page, for example https://www.parkrun.com.au/timboon/results/latestresults/.
- Read the Eventuate summary inserted above the results table — ready to paste into your event report. Drafts use given names only, keeping reports simple.
Eventuate detects your browser language (English and German today) and lets you switch with the flag buttons on the output. Preference is remembered across sessions.
- Project site and install options: https://www.johnsy.com/eventuate/
- Bugs and questions: GitHub Issues
Maintained by Pete Johns (@johnsyweb).
Maintained. Started as a personal afternoon project for Brimbank parkrun, then
grown with TypeScript, tests, and automated releases. Current version is in
package.json; history is in CHANGELOG.md.
This project uses mise for tools and tasks, and aube for Node dependencies (paranoid mode).
curl https://mise.run | sh # if you do not already have mise
mise install # tools from mise.toml
mise trust # first time only
mise run setup # install dependencies
mise run test # lint + unit tests
mise tasks # list available tasksGit hooks are managed by hk and installed with
mise install. Bypass for one command with HK=0 git commit.
Useful tasks:
| Task | Description |
|---|---|
mise run build |
Extension, userscript, and bookmarklet |
mise run watch |
Rebuild bundles while developing |
mise run server |
Run the extension in Firefox |
mise run package |
Package Firefox and Chromium zips |
mise run docs:serve |
Jekyll docs at localhost:4000/eventuate/ |
mise run cibuild |
Full CI checks locally (includes audit) |
mise run build writes artefacts that are not checked into git:
- Userscript:
docs/eventuate.user.js - Bookmarklet:
docs/bookmarklet/index.md
CI publishes those on GitHub Pages and GitHub Releases.
Tool versions live only in mise.toml. Dependency security
overrides and build-script approvals live in
aube-workspace.yaml.
Load a temporary add-on from source: open
about:debugging#/runtime/this-firefox in Firefox, choose Load Temporary
Add-on…, and select manifest.json from this repo.
Bug reports and pull requests are welcome on GitHub. See
CONTRIBUTING.md for semantic commit conventions. To add a
language, copy src/translations/en.ts, translate it, register it in
src/translations/index.ts, and open a PR (use Australian English spelling in
English strings).
Everyone interacting in this project is expected to follow the code of conduct.
Releases are automated with semantic-release on pushes to
main. The pipeline analyses commits, updates CHANGELOG.md, creates a GitHub
release, and attaches Firefox and Chromium zips plus the userscript and
bookmarklet page.
Dry-run locally:
GITHUB_TOKEN=your-token mise run release:dry-runVersion bumps follow conventional commits: fix: → patch, feat: → minor,
BREAKING CHANGE: → major.
See .github/SECURITY.md for how to report
vulnerabilities. Pull requests also run automated security scanning (including
CodeQL); dependencies are updated via Dependabot and aube.
Available under the MIT License.
