Web page to Markdown, without the menus

Paste a link and get the readable text back as Markdown: headings, lists and table rows where the page has them, navigation and cookie banners dropped. No model call, so it comes back in a second.

Drop a file here or click anywhere in this box PDF · DOCX · PPTX · XLSX · EPUB · MD · PNG · JPG · ZIP
or paste

Markdown is what notes apps and language models read best. Getting a page into it is normally a copy-paste fight with a sidebar: half of what lands in your editor is menu, footer and cookie notice.

This converter fetches the page, keeps the main content and turns it into Markdown. It does not rewrite, summarise or translate — that is the other mode. Images are dropped (a link to an image is not worth a line of your notes), links and emphasis stay.

What the output looks like

Real output: one documentation page in, 59078 characters of Markdown out, 4.1 seconds, zero model calls. Unedited:

# Coroutines and tasks

This section outlines high-level asyncio APIs to work with coroutines
and Tasks.

## [Coroutines](#id2)

**Source code:** [Lib/asyncio/coroutines.py](https://github.com/python/cpython/tree/3.15/Lib/asyncio/coroutines.py)

---

[Coroutines](../glossary.html#term-coroutine) declared with the async/await syntax is the
preferred way of writing asyncio applications. For example, the following
snippet of code prints “hello”, waits 1 second,
and then prints “world”:

```
>>> import asyncio

>>> async def main():
...     print('hello')
...     await asyncio.sleep(1)
...     print('world')

>>> asyncio.run(main())
hello
world
```

Note that simply calling a coroutine will not

Who it is for

  • Feeding a page to a language model without the navigation noise
  • Clipping an article into Obsidian with its heading structure intact
  • Turning documentation into a file you can grep

Not a good fit: Pages that build their text with JavaScript, and pages behind a login — there is nothing to convert until the text exists in the HTML.

Three things that improve the result

  1. Use the print version of a page when the site offers one; it is usually cleaner than the normal view.
  2. This is the mode to use when you want the page as it is, not a summary of it.
  3. Tables survive as Markdown rows; merged cells do not.

How it works

  1. Paste the page link into the box under the text area.
  2. Keep Markdown selected as the output type and press the button.
  3. Copy the text, or download the .md file and open it in Obsidian, Notion or your editor.

Questions

Is this the same as the notes mode?

No. Notes mode reads the page and writes structured notes with a model. This mode only converts: what the page says is what you get, word for word, in Markdown.

How fast is it?

Usually one to three seconds: fetch plus conversion, no generation. Pages that are slow to load are the only bottleneck, and fetching gives up after twenty seconds.

Are images kept?

No. Images and image links are dropped, because they clutter the text and never survive a paste into a notes app. Text links are kept.

What about a page behind a login?

It fails with a clear message instead of returning the login page. Open the page in your browser, copy the text and paste it into the text area — Markdown mode works on pasted text too.

Is there a length limit?

The first 60,000 characters of the readable text, which is far longer than most articles. Anything beyond that is dropped rather than silently truncated mid-sentence.

Other things this tool does