Skip to content

feat(plugin-url)!: initial release#444

Merged
shellscape merged 2 commits into
mainfrom
feat/plugin-urls/init
May 13, 2026
Merged

feat(plugin-url)!: initial release#444
shellscape merged 2 commits into
mainfrom
feat/plugin-urls/init

Conversation

@shellscape
Copy link
Copy Markdown
Owner

Component / Package Name:

@jsx-email/plugin-url

This PR contains:

  • bugfix
  • feature
  • refactor
  • documentation
  • other

Are tests included?

  • yes (bugfixes and features will not be merged without tests)
  • no

Breaking Changes?

  • yes (breaking changes will not be merged unless absolutely necessary)
  • no

List any relevant issue numbers:

N/A

Description

Adds @jsx-email/plugin-url, a new plugin for modifying URLs in rendered email HTML.

The initial feature is append, which appends URL parameters to matching URL attributes. It supports Maizzle-style
behavior without adding any default jsx-email render integration. Users opt in by adding urlPlugin(...) to their
config plugins array.

Included behavior:

  • Defaults to processing a tags.
  • Defaults to URL attributes src, href, poster, srcset, and background.
  • Defaults to strict URL matching.
  • Defaults to unencoded query parameter serialization.
  • Correctly inserts ? for URLs without query strings and & for URLs with existing query strings.
  • Preserves URL fragments.
  • Supports custom tags, selector-based tags, custom attributes, srcset, strict mode, and query string encoding.

This also adds plugin documentation and sidebar entries for the URL Plugin.

@shellscape shellscape changed the title feat(plugin-url): initial release feat(plugin-url)!: initial release May 13, 2026
@shellscape shellscape merged commit 86f7759 into main May 13, 2026
8 checks passed
@shellscape shellscape deleted the feat/plugin-urls/init branch May 13, 2026 03:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant