Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · MARKDOWN TEST

Why did a pasted email address become clickable after cleanup?

Deleting U+200B can make an angle-bracketed address match CommonMark’s email autolink syntax.

Tested 10 November 2026 · Synthetic fixture · CommonMark.js 0.31.2

What changed in the preview

The first render escapes the angle brackets and leaves the address as paragraph text. In the cleaned source the character between team and @ is gone. The next render emits an anchor whose destination starts with mailto: and whose label is the email address. This is a change in how the string is used by the reader, even though the same letters are visible. If the address is only an example and should stay literal, put it in an inline code span and check the preview.

What this test covers

No message was composed or sent, and address existence was not tested. Email autolinks written with angle brackets are distinct from extensions that link bare addresses.

Measured source and preview

Original Markdown

Contact <team\u200B@example.com>.

Cleaned Markdown

Contact <team@example.com>.

The original source and its preview contain a literal U+200B, displayed below as \u200B. The HTML is shown as text.

Before cleanup

<p>Contact &lt;team\u200B@example.com&gt;.</p>

After cleanup

<p>Contact <a href="mailto:team@example.com">team@example.com</a>.</p>

Reproduce locally

Save reproduce.cjs and tested-app.js together. Run npm install --no-save commonmark@0.31.2, then node reproduce.cjs. Compare with the recorded input, output and HTML. The test uses the homepage callback with a minimal DOM. It does not use Claude output or test statistical watermark detection.

See the CommonMark specification and another measured Markdown case.