Start from what you pasted
Most visits start with a blob of text on the clipboard, not a tool name. Find the blob, then follow the link.
What the validator checks, all six lines
The HTML validator does not parse your page against the HTML spec. The script searches your text for six patterns. Here is the full list.
| Check | Level | What the result means |
|---|---|---|
No <!DOCTYPE in the text | Warning | Fragments always trip this one. |
No <html tag | Error | A snippet is not a page, so the validator marks the paste as broken. |
No <head tag | Error | Same story for any partial or component. |
No <body tag | Error | Same again. |
Count of opening tags differs from closing tags | Warning | Every <br>, <img>, <meta>, and the DOCTYPE count as an opener with no closer. |
An <img> with no alt= | Warning | One line per image. alt="" passes, which is correct for decoration. |
A valid fragment, four complaints
Paste one line of perfectly good markup:
<p>Order shipped<br>Tracking below</p>The result lists three errors for missing html, head, and body, a DOCTYPE warning, and a possible unclosed tag. The tag count sees two openers, p and br, against one closer. Nothing is wrong with the line.
Use this validator on full documents, as a quick scan for missing alt text and a forgotten head. For nesting errors, duplicate ids, or a div inside a span, I paste into the W3C Nu checker at validator.w3.org/nu. The Nu checker reads the spec and gives a line number per error.
Round trips drop things
Converting HTML out to another format and back is not lossless. Each target format has fewer places to store information than HTML does. The table says what survives each trip.
HTML to Pug or Jade, then back
KeepsTags, attributes, nesting by indent.
DropsThe return pages read Pug line by line. No mixins, no each loops, no if branches, no includes.
HTML to BBCode, then back
KeepsBold, italic, links, images, quotes, lists.
DropsTables, unless you tick Convert tables. Strip unsupported is on, so divs and spans go.
HTML to JSX
Keepsclass to className, for to htmlFor, onclick to onClick, a style string to an object when ticked.
DropsNo return page. JSX stays JSX.
HTML to PHP
KeepsThe markup, wrapped as echo lines, a heredoc, or one variable.
DropsNothing dynamic. You add the PHP logic.
HTML to XML
KeepsTags and attributes, with an XML declaration and self-closed void tags when ticked.
DropsHTML quirks a browser forgives. The output has to be well formed.
Keep the HTML as your source file. Generate Markdown, BBCode, or text from the HTML each time. Editing the Markdown and converting back puts your class names, ids, and table spans on the floor.
The Pug and Jade return pages deserve one more line. Jade to HTML Converter and Jade to HTML read indentation, tag names, classes, ids, and attributes. They do not execute template code. A file built on mixins and each loops needs the real Pug compiler in your build, not a paste box.
Three outputs worth reading before you paste them
The slug deletes accents
Type a recipe title into the HTML tools:
in Café Crème Brûlée Recipeout caf-crme-brle-recipeAnything outside a to z, digits, underscore, and hyphen is removed, not converted to its plain letter. English titles come through clean. French, German, Spanish, or Turkish titles do not. Type the ASCII spelling, or edit the slug, before the URL goes live. Changing a published URL later costs you a redirect.
Encode turns the slash into an entity
HTML Encode escapes six characters, the usual five plus the forward slash:
in <a href="/html/cleaner">Salt & Vinegar's list</a>out <a href="/html/cleaner">Salt & Vinegar's list</a>The output is safe to drop into a page as visible text. The string runs longer than needed. Accented letters pass through untouched. HTML Encode reverses named, decimal, and hex forms. Feed text showing &amp; was escaped twice, so decode twice.
Punycode leaves ASCII labels alone
in bücher.toolexe.comout xn--bcher-kva.toolexe.comThe Punycode converter encodes only the labels with non-ASCII characters. The xn-- form is what DNS records and certificate requests need. Browsers show the Unicode form to visitors.
Builders print one element and stop
The generators write markup for a single element or widget. Wiring the result into your app is still your job.
- HTML tools exports HTML, CSS, JS, or a JSON description of the form. The action URL and the server receiving the post are yours to supply.
- Dialog output includes a
showModal()call and amethod="dialog"close form. Delete the script and the dialog stays closed forever. - HTML tools is a gauge for a value inside a known range: disk use, a score, a battery level. Upload progress belongs in a
<progress>element. - HTML tools and HTML tools set the attributes. Browser validation on a url field checks the shape. A dead link with a valid shape passes.
- Menu offers horizontal, vertical, dropdown, mega, accordion, and tab layouts. Test the dropdown with a keyboard before shipping. Hover menus fail people who tab.
- Music code builds a basic, custom, or playlist audio player. The source must be a direct .mp3 or .ogg URL you host. A streaming service page link plays nothing.
- Meta tags warns when a title or description runs past the length search results show. The warning is a guide. Google rewrites snippets on its own terms.
- Markdown table writes the colons for left, center, or right alignment per column. GitHub honors them. Some static site themes ignore them.
Previews, and where they lie
Three pages render markup. They differ in what they let run.
HTML Viewer takes a full page and paints the result in a frame 390 pixels wide, 820 wide, or full width. Root-relative paths such as /css/site.css point at toolexe.com, so your stylesheet never loads. Paste the CSS inline or use absolute URLs. I would not ship a layout on the strength of one preview frame.
Real-Time HTML Editor re-renders on each keystroke and runs scripts. Test a snippet with an event handler here. Text to HTML previews too, with scripts blocked, since its job is wrapping a note in tags.
SVG Viewer pairs the drawing with its source and an element summary. Zoom in when a single path covers the rest of the icon.
Universal Code Formatter covers 20 languages and 8 themes. Colors are written as inline styles on each span. The snippet keeps its colors in a CMS or an email with no stylesheet, and a dark mode switch on your own site will not recolor the snippet.
HTML Color Picker reports contrast against white and black. Two limits: sRGB only, so a Display P3 color is clipped, and alpha is left out of the ratio because the page cannot see the layer underneath.
All 42 HTML tools, one note each
Filter by job or type a word. Each note names one thing the tool does and one place the tool stops.
Showing 29 of 29
- 01HTML BeautifierClean and checkSpaces or tabs, wrap width, script indenting. Moves whitespace only. A missing closing tag stays missing.
- 02HTML MinifierClean and checkComments and extra whitespace out, byte count live. Review the output when pre, textarea, or template tags sit inside.
- 03HTML CleanerClean and checkWord and Google Docs junk out. Word bullets become a real list. Bold set by a style survives.
- 04HTML ValidatorClean and checkSix string checks on structure and alt text. Not the W3C rule set.
- 05HTML ViewerPreviewRenders a full page in a sized frame. Root-relative stylesheets fail here.
- 06Real-Time HTML EditorPreviewCode left, render right, updated per keystroke. Scripts run in the frame.
- 07SVG ViewerPreviewRender plus source, with zoom and an element summary. Good for a stray path drawn on top.
- 08HTML Color PickerPreviewHEX, RGB, HSL, HSV, CMYK, plus contrast against white and black. sRGB only. Alpha is ignored in the ratio.
- 09HTML to TextHTML outAll tags out, entities decoded, tables turned into lines. Links kept, images off unless ticked.
- 10HTML to JSXHTML outclassName, htmlFor, camelCase events, optional component wrapper or fragment.
- 11HTML to PugHTML outIndent size, inline text, comment handling. Pug is the current name.
- 12HTML to PHPHTML outEcho per line, heredoc, or one variable, with quote escaping.
- 13HTML to BBCodeHTML outForum tags from markup. Tables off by default.
- 14HTML to XMLHTML outWell formed output, optional declaration, root element, encoding, and a validate button.
- 15Markdown to HTMLHTML inRegex based, not CommonMark. Sanitize is ticked, so raw HTML in the Markdown comes out escaped.
- 16Text to HTMLHTML inParagraphs on blank lines, URLs as links, a raw less-than kept as text. Lists stay off until ticked.
- 17Jade to HTMLHTML inSame line reader for .jade files, with doctype and compress options.
- 18BBCode to HTMLHTML inForum tags to markup, newlines to br, URLs linked. Raw HTML blocked unless Allow HTML is ticked.
- 19Excel to HTMLHTML in.xlsx, .xls, or .csv read in the tab by SheetJS. Pick a sheet. Formulas arrive as their values.
- 20HTML to CSVTablesRows out of a table element. Delimiter and quoting are yours. Nested tables are flattened.
- 21HTML to TSVTablesTab separated, ready for a spreadsheet paste. Tabs inside cells are escaped.
- 22Markdown Table GeneratorTablesGrid in, pipe table out, with left, center, or right colons per column.
- 23Dialog GeneratorBuildersA dialog element with showModal and a method="dialog" close form.
- 24Menu GeneratorBuildersHorizontal, vertical, dropdown, mega, accordion, or tab menus, with HTML, CSS, and JS out.
- 25Music Code GeneratorBuildersBasic, custom, or playlist audio players. The src has to be a direct audio file.
- 26Meta Tag GeneratorBuildersTitle, description, Open Graph, Twitter Card, with length warnings before truncation.
- 27HTML EncodeEntities and URLs& < > " ' and / into entities. Accented letters stay as they are.
- 28Punycode ConverterEntities and URLsUnicode domains to xn-- form and back. ASCII labels stay unchanged.
- 29BBCode EditorEditorsToolbar, templates, emoji, live preview. Size 6 here is not size 6 on every board.
No tool matches. Try a shorter word.
Questions about the HTML tools
Is the HTML validator the same as the W3C checker?
No. The Toolexe validator runs six string checks: DOCTYPE, html, head, body, a count of opening against closing tags, and alt on each img. A fragment fails three of those by design. For the full spec rule set, with line numbers on each error, paste the page into the W3C Nu checker at validator.w3.org/nu.
Why does a div from my Markdown show up as text in the HTML?
Markdown to HTML ships with Sanitize HTML ticked. Every less-than, ampersand, and quote in your source is escaped before conversion, so a raw div prints as text. Untick Sanitize when the Markdown is yours. Leave Sanitize on for text from a form or a stranger.
Why did my slug lose letters?
The slug generator deletes every character outside a to z, 0 to 9, underscore, and hyphen. Café Crème becomes caf-crme. Type the ASCII spelling first, cafe creme, or fix the slug by hand before you publish the URL.
Which converters keep my CSS classes?
JSX keeps them as className. Pug, Jade, PHP, XML, and YAML keep attributes. Markdown, BBCode, and plain text drop them, since those formats have no place to hold a class. Need classes in the final page? Keep the HTML as the source file. Generate the other formats from the HTML.
Does anything I paste get uploaded?
The HTML tools do their work in page JavaScript. The Excel converter reads your file with SheetJS inside the tab. The real-time editor runs any script you paste in its frame, so paste only code you trust there.
Jade or Pug?
Pug. Jade was renamed in 2016 over a trademark issue. The Jade pages exist for old .jade templates you still maintain. New work goes to HTML to Pug and Pug to HTML.
Not an HTML job?
Stylesheets, scripts, and data files have their own shelves. Escaping for JSON, URLs, or SQL sits under escape and unescape, not HTML Encode.