Zerowidth CleanerMeasured guides

CLAUDE WATERMARK REMOVER · MARKDOWN TEST

Why did Markdown emphasis disappear inside a raw HTML block?

Check whether cleanup repaired a block-level HTML tag. In our safe preview, an intact `<div>` made the next line part of a raw HTML block, so the renderer stopped emitting emphasis for that line.

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

What changed in the preview

The broken opening tag did not start a `div` block; CommonMark.js rendered `note` inside an `em` element. Removing U+200B completed the opening name, and the following line belonged to a raw HTML block. The safe renderer emitted an omission comment for that block rather than separately rendering the asterisks.

What this test covers

The cleaned source still contains `*note*`. The omission is a property of the parser and safe renderer used for this fixture. To publish Markdown emphasis in a destination that follows these block rules, move the emphasized line outside the raw block and verify the preview.

Measured source and preview

Original Markdown

<di\u200Bv>
*note*
</div>

Cleaned Markdown

<div>
*note*
</div>

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

Before cleanup

<p>&lt;di\u200Bv&gt;
<em>note</em></p>
<!-- raw HTML omitted -->

After cleanup

<!-- raw HTML omitted -->

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.