Overview
Paste HTML source and get back the plain text content with every tag removed - no markup, just the words. Two modes control how structure is handled: "Preserve line breaks" converts block-level tags like <br>, <p>, and <li> into actual line breaks before stripping the rest, so a paragraph or list still reads as separate lines afterward; "Flatten to one block" strips everything down to a single space-separated block with no structure at all, useful when you specifically want a word count or a plain-text blob rather than a readable layout. Common HTML entities like &amp; and &mdash; are decoded back into their actual characters rather than left as literal entity codes in the output. Useful for pulling readable text out of a scraped page, an email template, or a CMS export. Runs entirely client-side.
Best for: Pulling readable plain text out of a scraped page or CMS export
How to use this tool
- Paste your HTML. Full page source or just a fragment both work.
- Choose how to handle structure. Preserve line breaks from block-level tags, or flatten everything into one block.
- Tags are stripped. Every remaining tag is removed, leaving only the text content.
- Entities are decoded. Common HTML entities like &amp; become their actual characters instead of literal codes.
Why use this tool
Two structure modes
Keep paragraph and list breaks readable, or flatten to a single block - your choice per paste.
Entity decoding included
Output text uses real characters, not literal &amp;/&mdash;-style entity codes.
No markup leaks through
Every tag is removed, including ones a simpler find-and-replace approach might miss.
Works on fragments or full pages
Paste a full HTML document or just a snippet - both strip down to clean text the same way.
Frequently asked questions
"Preserve line breaks" converts structural tags - <br>, <p>, <li>, headings, and table rows - into actual newlines before stripping everything else, so a paragraph or bulleted list still reads as separate lines in the output. "Flatten to one block" skips that step and strips every tag down to a single space-separated line, which is useful when you want a raw word count or a plain-text blob rather than a readable, line-broken layout.
Yes - common named entities (&amp;, &lt;, &gt;, &quot;, &nbsp;, &mdash;, and others) and numeric entities (like &#39; or &#x27;) are decoded into their actual characters, so the output reads as normal text instead of leaving literal entity codes behind.
Content inside <script> and <style> tags is treated like any other tag content - the tags themselves are stripped, but the code or styles inside them are text-content as far as a tag-stripping regex is concerned, so they can appear in the output. For a full page with embedded scripts or styles, review the result before using it, or remove those sections from the input first.