Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · MARKDOWN TEST

Can a hidden character make closing Markdown heading hashes appear in the title?

Removing U+200B after the trailing hash run made those hashes act as the closing sequence instead of visible heading text.

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

What changed in the preview

The opening hash was valid in both inputs, so the preview kept the same heading level. Only the heading text changed. Compare the rendered heading and any generated anchor after editing; anchor generation is outside this CommonMark test.

What this test covers

The preview does not generate heading IDs. Check those in the destination editor before updating inbound links. 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

<h1>Draft ###\u200B</h1>

After cleanup

<h1>Draft</h1>

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.