Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · MARKDOWN TEST

Can U+200B between closing asterisks prevent Markdown bold?

Removing U+200B joined the two closing asterisks and restored strong emphasis around draft.

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

What changed in the preview

The split closing run wrapped only the invisible character in ordinary emphasis and left the opening asterisks visible. The joined run wrapped the visible word instead. Compare the exact HTML before deciding whether to remove the character or escape the asterisks.

What this test covers

The fixture has paired asterisks with no nesting. Underscores and nested runs have separate delimiter rules. Compare the two rendered outputs below with the original and cleaned source.

Measured source and preview

Original Markdown

**draft*\u200B*

Cleaned Markdown

**draft**

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

Before cleanup

<p>**draft<em>\u200B</em></p>

After cleanup

<p><strong>draft</strong></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.