The HTML to Text Converter does one thing and does it inside your browser: you paste an HTML document, press Convert, and get back the readable text a person would see if the markup were stripped away. Nothing is stored and nothing is uploaded; the parser is the same DOMParser your browser already uses, and it runs on your machine.
Paste HTML and press Convert
There is no live conversion: the input sits untouched until you press the Convert button, and the output panel fills only then. One checkbox controls the output layout, Preserve paragraph structure, and it is switched on by default. Leave it on and the text keeps its block breaks; turn it off and everything becomes one continuous line of words. If the input is empty or contains only spaces, the button simply does nothing and no error appears, so an accidental paste of nothing is not a failure state.
Two output shapes: paragraphs or one line
With the checkbox on, the converter walks the document block by block. Every element that a browser renders as its own line, such as a paragraph, a heading, a list item, or a table row, starts on a new line separated from what came before by a blank line. With the checkbox off, all of those breaks become single spaces: the same document returns as one flat run of text with the words in the same order and no line breaks at all. Whitespace inside the text is normalized either way, so a run of spaces or a stray tab collapses to a single space.
What disappears: scripts, styles, and comments
Three kinds of content never reach the output. The converter removes every script, style, and noscript element before it reads anything, so inline JavaScript, CSS rules, and fallback blocks are gone completely. HTML comments are skipped the same way: a comment between two paragraphs leaves no trace, not even a blank line. What does survive is visible text and the entities inside it, because the parser decodes them on the way through: & comes back as a bare & and <tag> as literal angle brackets around the word.
Tables, lists, and images
A table comes back as plain lines: each row becomes its own line and each cell is separated from the next by a single space, with no tabs and no pipe characters anywhere in the output. A list behaves like a set of blocks, so each list item lands on its own line with a blank line between items. Images are where the output can surprise you: an img tag contributes nothing at all, and its alt attribute is never read, so a paragraph that wraps an image returns the text before and after joined directly, and an image sitting in the middle of a word can make two fragments run together.
br and hr: a line break, not a blank line
Not every break is a block break. A br or an hr inside a paragraph inserts a single line break: the next word starts on the next line, but there is no blank line between them, which keeps a poem or an address together as one visual block. That is different from what a closing paragraph tag does, which adds the full blank-line separation. In single-line mode both kinds of breaks end up as the same single space, so the distinction only matters when paragraph structure is preserved.
The one exception: pre blocks keep their whitespace
Everything in the converter runs through the same whitespace rule, except one tag. A pre block is copied out verbatim: its text content is taken exactly as written, indentation and blank lines included, and it is followed by a blank line like any other block. Put a code sample in a pre tag and it returns looking exactly the way you typed it, which is why pre is the standard place to keep code and column-aligned text when the rest of the document is being flattened.
Copy, clear, and where to go next
The workflow is deliberately small. A Copy button appears on the output only when there is something to copy, and Clear empties both the input and the output in one press. There is no swap control, because the output is plain text with no structure left to feed back in, and nothing on the page is stored between visits. If the markup is messy before you convert it, run the HTML Formatter first to normalize the indentation. If you need those special characters the other way around, the HTML Entities Encoder/Decoder encodes and decodes them for you, and if your content starts as Markdown instead, the Markdown Preview shows it rendered before you ever export it, while the HTML formatter walkthrough explains the formatting side in depth.