<clean> <convert> <build> <check>

HTML tools guide: 42 tools, sorted by where your markup is headed

Markup rarely stays in one place. A Word paste is headed for a CMS. A Markdown file is headed for a page. A static mockup is headed for React. Each trip has a tool on this shelf, and each trip drops something on the way.

This guide maps every HTML tool on Toolexe to the job in front of you. Each section names what a converter keeps, what the converter throws away, and the cases where a page here is the wrong pick. Everything below runs in your browser tab.

word-paste.html
  1. <!-- one paste, four passes -->
  2. <pass to="cleaner">mso- styles out</pass>
  3. <pass to="beautifier">indent to read</pass>
  4. <pass to="validator">six checks</pass>
  5. <pass to="minifier">bytes down</pass>
42
tools
8
jobs
0
sign-ups

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.

CheckLevelWhat the result means
No <!DOCTYPE in the textWarningFragments always trip this one.
No <html tagErrorA snippet is not a page, so the validator marks the paste as broken.
No <head tagErrorSame story for any partial or component.
No <body tagErrorSame again.
Count of opening tags differs from closing tagsWarningEvery <br>, <img>, <meta>, and the DOCTYPE count as an opener with no closer.
An <img> with no alt=WarningOne 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 Markdown, then back

KeepsHeadings, links, lists, images, and tables. Tables and images are ticked by default.

DropsClasses, ids, inline styles, colspan. Markdown has no syntax for them.

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.

HTML to YAML

KeepsA tree of tag, attributes, and text per element.

DropsMeaning. A product list becomes nested li entries, not product names.

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. Pug to HTML 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 URL slug generator:

in  Café Crème Brûlée Recipe
out caf-crme-brle-recipe

Anything 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 &lt;a href=&quot;&#x2F;html&#x2F;cleaner&quot;&gt;Salt &amp; Vinegar&#39;s list&lt;&#x2F;a&gt;

The output is safe to drop into a page as visible text. The string runs longer than needed. Accented letters pass through untouched. HTML Decode reverses named, decimal, and hex forms. Feed text showing &amp;amp; was escaped twice, so decode twice.

Punycode leaves ASCII labels alone

in  bücher.toolexe.com
out xn--bcher-kva.toolexe.com

The 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.

  • Form Builder 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 a method="dialog" close form. Delete the script and the dialog stays closed forever.
  • Meter is a gauge for a value inside a known range: disk use, a score, a battery level. Upload progress belongs in a <progress> element.
  • URL input and textarea 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.

Code Highlighter 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 42 of 42

  1. 01 HTML Beautifier Clean and check Spaces or tabs, wrap width, script indenting. Moves whitespace only. A missing closing tag stays missing.
  2. 02 HTML Minifier Clean and check Comments and extra whitespace out, byte count live. Review the output when pre, textarea, or template tags sit inside.
  3. 03 HTML Cleaner Clean and check Word and Google Docs junk out. Word bullets become a real list. Bold set by a style survives.
  4. 04 HTML Validator Clean and check Six string checks on structure and alt text. Not the W3C rule set.
  5. 05 HTML Viewer Preview Renders a full page in a sized frame. Root-relative stylesheets fail here.
  6. 06 Real-Time HTML Editor Preview Code left, render right, updated per keystroke. Scripts run in the frame.
  7. 07 SVG Viewer Preview Render plus source, with zoom and an element summary. Good for a stray path drawn on top.
  8. 08 Code Highlighter Preview 20 languages, 8 themes. Colors ship as inline styles, so no stylesheet is needed.
  9. 09 HTML Color Picker Preview HEX, RGB, HSL, HSV, CMYK, plus contrast against white and black. sRGB only. Alpha is ignored in the ratio.
  10. 10 HTML to Markdown HTML out Heading, list, link, and code styles to pick. Classes and inline styles drop.
  11. 11 HTML to Text HTML out All tags out, entities decoded, tables turned into lines. Links kept, images off unless ticked.
  12. 12 HTML to JSX HTML out className, htmlFor, camelCase events, optional component wrapper or fragment.
  13. 13 HTML to Pug HTML out Indent size, inline text, comment handling. Pug is the current name.
  14. 14 HTML to Jade HTML out Same idea for old .jade codebases. Jade became Pug in 2016.
  15. 15 HTML to PHP HTML out Echo per line, heredoc, or one variable, with quote escaping.
  16. 16 HTML to BBCode HTML out Forum tags from markup. Tables off by default.
  17. 17 HTML to XML HTML out Well formed output, optional declaration, root element, encoding, and a validate button.
  18. 18 HTML to YAML HTML out The DOM as a YAML tree of tag, attributes, text. A structure dump, not data extraction.
  19. 19 Markdown to HTML HTML in Regex based, not CommonMark. Sanitize is ticked, so raw HTML in the Markdown comes out escaped.
  20. 20 Text to HTML HTML in Paragraphs on blank lines, URLs as links, a raw less-than kept as text. Lists stay off until ticked.
  21. 21 Pug to HTML HTML in Tags, classes, ids, attributes by indent. No mixins, loops, conditionals, or includes.
  22. 22 Jade to HTML HTML in Same line reader for .jade files, with doctype and compress options.
  23. 23 BBCode to HTML HTML in Forum tags to markup, newlines to br, URLs linked. Raw HTML blocked unless Allow HTML is ticked.
  24. 24 Excel to HTML HTML in .xlsx, .xls, or .csv read in the tab by SheetJS. Pick a sheet. Formulas arrive as their values.
  25. 25 HTML to CSV Tables Rows out of a table element. Delimiter and quoting are yours. Nested tables are flattened.
  26. 26 HTML to TSV Tables Tab separated, ready for a spreadsheet paste. Tabs inside cells are escaped.
  27. 27 Markdown Table Generator Tables Grid in, pipe table out, with left, center, or right colons per column.
  28. 28 HTML Form Builder Builders Drag fields in. Export HTML, CSS, JS, or the form as JSON. The submit target is your job.
  29. 29 Textarea Generator Builders rows, cols, placeholder, maxlength, required. One element.
  30. 30 URL Input Generator Builders type="url" with pattern and required. The browser checks shape, not whether the link resolves.
  31. 31 Meter Generator Builders min, max, low, high, optimum. A gauge for a known range, not a task progress bar.
  32. 32 Dialog Generator Builders A dialog element with showModal and a method="dialog" close form.
  33. 33 Menu Generator Builders Horizontal, vertical, dropdown, mega, accordion, or tab menus, with HTML, CSS, and JS out.
  34. 34 Music Code Generator Builders Basic, custom, or playlist audio players. The src has to be a direct audio file.
  35. 35 Meta Tag Generator Builders Title, description, Open Graph, Twitter Card, with length warnings before truncation.
  36. 36 HTML Encode Entities and URLs & < > " ' and / into entities. Accented letters stay as they are.
  37. 37 HTML Decode Entities and URLs Named, decimal, and hex entities back to characters. Run twice on text escaped twice.
  38. 38 HTML Symbols Library Entities and URLs 282 symbols in 10 groups, each with entity, decimal, and hex forms.
  39. 39 URL Slug Generator Entities and URLs Separator, stop words, a 60 character default cap. Accented letters are deleted, not converted.
  40. 40 Punycode Converter Entities and URLs Unicode domains to xn-- form and back. ASCII labels stay unchanged.
  41. 41 Markdown Editor Editors Toolbar, live preview, export. For writing, not converting a finished file.
  42. 42 BBCode Editor Editors Toolbar, templates, emoji, live preview. Size 6 here is not size 6 on every board.

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.