<!-- Raw Markdown twin of /compare. The block between the markers is generated by scripts/compare-capture/render.ts. -->

# Clipper comparison on hard pages — Markdown Web Clipper

The official Obsidian Web Clipper is the right choice for most people. This page is about the pages where clippers break: tables that span cells, equations, fenced code, chat transcripts, footnotes.

Every output is the unedited clipboard result. Each check is a regular expression run on the raw Markdown; the one-line verdict is the author's. If this clipper loses a row, the row stays.

<!-- compare:generated:start -->
Captured 2026-09-16 · Chromium 147.0.7727.15 · Obsidian Web Clipper 1.7.1, MarkSnip 5.2.0, Markdown Web Clipper 0.9.0

## Wikipedia: Periodic table

Source: https://en.wikipedia.org/wiki/Periodic_table

What usually breaks: Cells that span rows or columns get flattened, shifted or dropped. GFM tables cannot express rowspan, so the only lossless output is HTML.

| Check | Obsidian Web Clipper | MarkSnip | Markdown Web Clipper |
|---|---|---|---|
| Simple tables become GFM tables | ✓ | ✓ | ✓ |
| Spanning grid kept intact as an HTML table | ✓ | ✗ | ✓ |
| No table row broken across lines | ✓ | ✗ | ✓ |
| No MediaWiki attributes leaked into prose | ✓ | ✗ | ✓ |

Raw outputs: [Obsidian Web Clipper](/compare-raw/wikipedia-periodic-table--obsidian-web-clipper.md) · [MarkSnip](/compare-raw/wikipedia-periodic-table--marksnip.md) · [Markdown Web Clipper](/compare-raw/wikipedia-periodic-table--clipper.md)

Verdict: No clipper produces a correct GFM periodic table, because GFM has no rowspan. Obsidian Web Clipper and Markdown Web Clipper keep the spanning grid as an intact HTML table, which Obsidian renders. MarkSnip forces it into GFM: rows break across lines, cell text runs together ("Hydrogen1H1.0080"), and MediaWiki attributes leak into the prose.

## arXiv HTML: Attention Is All You Need

Source: https://arxiv.org/html/1706.03762v7

What usually breaks: Equations come out as Unicode soup, get dropped, or leak MathML.

| Check | Obsidian Web Clipper | MarkSnip | Markdown Web Clipper |
|---|---|---|---|
| Display equations as $$ blocks on their own lines | ✓ | ✗ | ✓ |
| No equation duplicated as Unicode glued to LaTeX | ✓ | ✗ | ✓ |
| Inline math as $…$ or \(…\) | ✓ | ✓ | ✓ |
| The √d_k scaling survives as LaTeX | ✓ | ✓ | ✓ |
| No raw <math> HTML | ✗ | ✓ | ✗ |

Raw outputs: [Obsidian Web Clipper](/compare-raw/arxiv-attention--obsidian-web-clipper.md) · [MarkSnip](/compare-raw/arxiv-attention--marksnip.md) · [Markdown Web Clipper](/compare-raw/arxiv-attention--clipper.md)

Verdict: All three keep inline math as $…$ with \sqrt{d_{k}} intact. Obsidian Web Clipper and Markdown Web Clipper put each display equation in a $$ block; MarkSnip turns every display equation into a one-row table whose cell is the Unicode rendering glued to the LaTeX. The results tables leave <math> inside HTML in the two Defuddle-based clippers; Markdown Web Clipper's copy carries the LaTeX in a data-latex attribute, so it is recoverable.

## GitHub README: kepano/defuddle

Source: https://github.com/kepano/defuddle

What usually breaks: Code fences lose their language tag, or indentation is reflowed.

| Check | Obsidian Web Clipper | MarkSnip | Markdown Web Clipper |
|---|---|---|---|
| A fence carries a language hint | ✗ | ✓ | ✗ |
| An import statement survives verbatim | ✓ | ✓ | ✓ |
| No raw <pre> HTML | ✓ | ✓ | ✓ |

Raw outputs: [Obsidian Web Clipper](/compare-raw/github-defuddle-readme--obsidian-web-clipper.md) · [MarkSnip](/compare-raw/github-defuddle-readme--marksnip.md) · [Markdown Web Clipper](/compare-raw/github-defuddle-readme--clipper.md)

Verdict: MarkSnip wins this one: it keeps ```js and ```shell on every fence. Obsidian Web Clipper and Markdown Web Clipper emit bare fences, so syntax highlighting is lost. GitHub marks the language on a wrapper div, not on the code element, and neither Defuddle-based clipper reads it. Markdown Web Clipper fixed this on 2026-09-16; the row gets recaptured when that release is in the Chrome Web Store.

## ChatGPT shared conversation

Source: 

What usually breaks: Who said what is lost, and code inside answers is mangled.

| Check | Obsidian Web Clipper | MarkSnip | Markdown Web Clipper |
|---|---|---|---|
| Speaker turns are labelled | ✓ | ✗ | ✓ |
| The first message of the thread is present, not just the visible tail | ✗ | ✗ | ✓ |
| A code fence exists | ✓ | ✓ | ✓ |
| Display equations as $$ blocks | ✗ | ✗ | ✓ |
| No raw <div> HTML | ✓ | ✓ | ✓ |

Raw outputs: [Obsidian Web Clipper](/compare-raw/chatgpt-share--obsidian-web-clipper.md) · [MarkSnip](/compare-raw/chatgpt-share--marksnip.md) · [Markdown Web Clipper](/compare-raw/chatgpt-share--clipper.md)

Verdict: A 24-turn thread with code and math. Markdown Web Clipper captured all 12 user and 12 assistant turns with ## User / ## ChatGPT labels, fenced code and $$ math blocks. Obsidian Web Clipper captured the last 5 messages only, labelled, with the display math dropped. MarkSnip captured the final answer alone, with no speaker labels. ChatGPT's share page renders the conversation lazily, and only one clipper pulls the whole transcript.

## gwern.net: The Scaling Hypothesis

Source: https://gwern.net/scaling-hypothesis

What usually breaks: Footnotes get inlined, dropped, or left as dangling links.

| Check | Obsidian Web Clipper | MarkSnip | Markdown Web Clipper |
|---|---|---|---|
| Footnote references as [^n] | ✓ | ✗ | ✓ |
| Footnote definitions as [^n]: | ✓ | ✗ | ✓ |
| No footnotes left as #fn links | ✓ | ✗ | ✓ |

Raw outputs: [Obsidian Web Clipper](/compare-raw/gwern-scaling-hypothesis--obsidian-web-clipper.md) · [MarkSnip](/compare-raw/gwern-scaling-hypothesis--marksnip.md) · [Markdown Web Clipper](/compare-raw/gwern-scaling-hypothesis--clipper.md)

Verdict: Obsidian Web Clipper and Markdown Web Clipper produce real footnotes: [^n] references in the text and [^n]: definitions at the end. MarkSnip leaves each footnote as a superscript link back to gwern.net, so the note text is not in the file.

<!-- compare:generated:end -->

## Method

Each page was opened in a fresh Chromium profile with exactly one extension loaded, at default settings, and clipped to the clipboard. Obsidian Web Clipper was driven through its popup's "Copy to clipboard"; MarkSnip and Markdown Web Clipper through their keyboard shortcuts. The capture script lives in the repository under `scripts/compare-capture/`; rerun it and the page regenerates.

Suggest a page that breaks this clipper: support@markdownwebclipper.com
