Repository navigation
Refresh the help and rules pages, and fix the popup at longer translations - #133
Merged
Merged
Conversation
…tions
Screenshots
Every popup screenshot was stale: they showed the green-and-white redesign
that was never shipped, and some illustrated nothing at all (the WordPress
one had empty fields and no options ticked). scripts/screenshots.mjs now
renders assets/popup.html itself over the DevTools Protocol, so the images
cannot drift from the real markup again. Run with `npm run screenshots`.
Each shot is written at 1x and 2x and offered through srcset: a 2x image
displayed at half size is visibly soft on an ordinary monitor. 15 obsolete
images are deleted, which were shipping ~500KB of dead weight in the zip.
Help text
The WordPress section claimed "WordPress is currently on version 6.6, as of
March 2023" and gave separate WP5/WP6 setups; the extension now reaches into
the block editor's own frame, so no special options are needed. Save_apply_p1
ended mid-sentence. The contents list linked #case while the heading's id was
Matching_case. Two strings described checkboxes that do not exist. Added an
option-by-option reference, a section on History/Swap/language, and a
troubleshooting checklist.
Design
New assets/pages.css for the two full-tab pages, in the popup's greys, with
Bootstrap dropped from them: 232KB of CSS for a handful of utility classes.
Help gets a sticky contents rail with scrollspy, section cards, framed
figures and callouts. Saved Rules gets a card grid.
Popup
About is rebuilt with the version, author, licence and links. History entries
were a bare "term -> term" string on white and grey stripes that ran off the
edge; they are now cards that wrap, listing the options that were set.
Fitting
"Reemplazar Todo" and "Заменить все" were clipped by the popup edge, and the
form ran past the 600px at which Chrome scrolls the whole popup in German,
Spanish and Russian. Every section now fits in all ten locales.
Also fixed
- No `change` event was ever dispatched, only `input`, so sites wired to
Angular's ngModel, jQuery handlers or plain onchange attributes kept using
the pre-replacement text. This is the likely cause of the Jira report about
changes only appearing after clicking save. Replacements outside inputs
also announced themselves three times over.
- Saved rule fields could not show a URL pattern longer than the card.
- The Replace Term field was labelled "Search Term", rule inputs had no name
attribute and duplicated ids across cards, and values were not escaped.
- version_number was a duplicated id, so the footer copy was never set.
All 131 strings are translated into all ten locales; scripts/merge-locale.mjs
merges a batch of translations and reorders a locale file to match English.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Sep 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Screenshots
Every popup screenshot was out of date — they showed the green-and-white redesign that was never shipped, and some illustrated nothing at all (
setup-wordpress-6.pnghad empty fields and no options ticked).scripts/screenshots.mjs(npm run screenshots) now rendersassets/popup.htmlitself over the DevTools Protocol, so the images can't drift from the real markup orstyle.cssagain. Each shot is written at 1x and 2x and offered throughsrcset— a 2x image displayed at half size is visibly soft on an ordinary monitor. 15 obsolete images are deleted, which were shipping ~500 KB of dead weight in the release zip.--headless=new --screenshotcouldn't be used: it gives a viewport ~87 CSS px shorter than the requested--window-sizewhile writing an image of the full requested size, so the popup's footer was silently cropped out of every shot.Help text
Save_apply_p1ended mid-sentence: "These will take and re-opened your browser."#case; the heading's id wasMatching_caseAdded an option-by-option reference, a section on History/Swap/language, and a troubleshooting checklist.
Design
New
assets/pages.cssfor the two full-tab pages, in the popup's greys, with Bootstrap dropped from them (232 KB of CSS for a handful of utility classes). Help gets a sticky contents rail with scrollspy, section cards, framed figures and callouts; Saved Rules gets a card grid.In the popup, About is rebuilt with the version, author, licence and links, and History entries — previously a bare
term -> termstring on white and grey stripes that ran off the edge — are now cards that wrap and list the options that were set.Fitting the popup
Rendered the popup in all 10 locales and had it report any element wider than its box:
white-space: nowrap;flex: 1 1 0combined with the blanketbutton { width: 100% }, which made the basis resolve to the full row width for both so they always collapsed to exact halves; and Bootstrap's 16px.btn, oversized next to the popup's 13px body text.Also fixed
changeevent was ever dispatched, onlyinput. Enough for React, but Angular'sngModel, jQuery.change()handlers and plainonchangeattributes never saw the replacement, so the site kept using the pre-replacement text. This is the likely cause of the store report about Jira changes only appearing after clicking save — I could not reproduce against a real Jira instance, so it's a strong lead rather than a confirmed fix. All six dispatch sites now go through one helper firing a realInputEvent(inputType: 'insertText') thenchange, bothcomposed. Replacements outside inputs also announced themselves three times over.nameattribute and duplicated ids across cards (getFieldValuerelies onform.elements.namedItem); values weren't HTML-escaped.version_numberwas a duplicated id, so the footer copy was never set.Translations
All 131 strings are translated into all 10 locales.
scripts/merge-locale.mjsmerges a batch of translations and reorders a locale file to match English. Nine now-inaccurate translations of the old WordPress paragraph were dropped rather than left saying something untrue.Checks
npm run checkspasses — typecheck, lint, format, 627 tests, build.🤖 Generated with Claude Code