Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · MARKDOWN TEST

Why did a Markdown link turn into an image after cleanup?

The image syntax needs the exclamation mark directly before the opening bracket. Deleting U+200B makes those markers adjacent.

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

What changed in the preview

With the hidden point present, the original HTML has a literal exclamation mark followed by a link labeled Diagram. After cleanup, the renderer emits img with the same URL as its src and Diagram as its alt text. No URL text was removed or added. Check image syntax in a destination preview if a pasted draft begins to embed content that used to be linked. If you want a text link, remove the image marker and keep the brackets.

What this test covers

The parser only produced HTML text. It did not load the example image, test availability, or measure whether a specific publisher permits external images.

Measured source and preview

Original Markdown

!\u200B[Diagram](https://example.com/diagram.png)

Cleaned Markdown

![Diagram](https://example.com/diagram.png)

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

Before cleanup

<p>!\u200B<a href="https://example.com/diagram.png">Diagram</a></p>

After cleanup

<p><img src="https://example.com/diagram.png" alt="Diagram" /></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.