Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · MARKDOWN TEST

Can a hidden space stop Markdown from decoding a named entity?

A hidden U+200B before the semicolon stopped this named reference from becoming ©. Removing that character restored the reference.

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

What changed in the preview

The raw preview escaped the ampersand and displayed the entity spelling. The cleaned preview emitted the copyright character. If the spelling is intentional, write an escaped ampersand or put the example in a code span.

What this test covers

The test isolates one named reference and does not establish how numeric references behave. Compare the two rendered outputs below with the original and cleaned source.

Measured source and preview

Original Markdown

Tea &copy\u200B;

Cleaned Markdown

Tea ©

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

Before cleanup

<p>Tea &amp;copy\u200B;</p>

After cleanup

<p>Tea ©</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.