Adds author names to span titles (shows on hover), works as authors change their name. Hover includes author color and fast switching between author spans. Hat tip to Martyn York for the initial work on this.
- Etherpad plugin framework (hooks declared in
ep.json) - EJS templates rendered server-side via
eejsBlock_*hooks - html10n for i18n (
locales/<lang>.json,data-l10n-idin templates)
ep_author_hover/
├── AGENTS.md
├── CONTRIBUTING.md
├── ep.json
├── index.js
├── locales/
│ ├── ar.json
│ ├── be-tarask.json
│ ├── be.json
│ ├── blk.json
│ ├── bn.json
│ ├── ca.json
│ └── ...
├── package.json
├── static/
│ ├── js/
│ ├── tests/
├── templates/
│ ├── settings.ejs
None — ep_plugin_helpers is not a dependency. Adoption is part of the helpers-adoption sweep (Phase 4).
To be audited in the helpers-adoption sweep (Phase 4).
ep_author_hover runs inside Etherpad's test harness. From an etherpad checkout that has installed this plugin via pnpm run plugins i --path ../ep_author_hover:
# Backend (Mocha) — harness boots its own server
pnpm --filter ep_etherpad-lite run test
# Playwright — needs `pnpm run dev` in a second terminal
pnpm --filter ep_etherpad-lite run test-ui- PRs target
main. Linear commits, no merge commits. - Every bug fix includes a regression test in the same commit.
- All user-facing strings in
locales/. No hardcoded English in templates. - No hardcoded
aria-labelon icon-only controls — etherpad's html10n auto-populatesaria-labelfrom the localized string when (a) the element has adata-l10n-idand (b) no author-suppliedaria-labelis present. Adding a hardcoded Englisharia-labelblocks that and leaves it untranslated. (Seeetherpad-lite/src/static/js/vendors/html10n.ts:665-678.) - No nested interactive elements (no
<button>inside<a>). - LLM/Agent contributions are explicitly welcomed by maintainers.
- Server:
eejsBlock_mySettings - Client:
postAceInit
When adding a hook, register it in both ep.json and the matching exports.<hook> = ... in the JS file.