Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
|
|
|
|
|---|---|---|
|
|
|
The Markdown To HTML Table Converter on A.Tools transforms Markdown pipe-delimited tables into clean, semantic HTML <table> markup. Eight settings let you control table structure, styling attributes, HTML escaping, DIV-based output, and code formatting. All processing runs in your browser. No data leaves your device.
HTML tables are the standard way to display tabular data on web pages, in email templates, and in rich-text editors. This converter bridges the gap between Markdown's simple pipe syntax and the full expressiveness of HTML — including <thead>, <th>, <caption>, CSS classes, and responsive DIV layouts.
Click Enter Data to paste a Markdown table into the input area, or click Choose File to drag and drop a .md file. Press Sample to load example data.
Once parsed, an interactive spreadsheet appears. Use the toolbar to:
Add or delete rows and columns
Transpose the table (swap rows and columns)
Remove duplicate rows
Delete empty rows and columns
Change text case (UPPERCASE, lowercase, Capitalize)
Find and replace values — supports case-sensitive search and regex
Toggle First Row as Header to define field names
Right-click any cell for context-menu operations.
In the Properties panel:
| Setting | Default | Description |
|---|---|---|
| Table Caption | (empty) | Add a <caption> element inside the table |
| Table Class | (empty) | Add a CSS class attribute to the <table> tag |
| Table ID | (empty) | Add an id attribute to the <table> tag |
| Escape HTML Characters | Off | Escape <, >, &, " in cell values |
| DIV Table | Off | Use <div> elements instead of <table>, <tr>, <td> |
| Table Head Structure | Off | Use <thead> and <tbody> semantic elements |
| Column Header | Off | Render first row with <th> instead of <td> |
| Minify Code | Off | Remove whitespace for compact output |
Click Convert to generate HTML output. Use Copy to Clipboard or Download File to save as an .html file.
Two input modes: Paste Markdown directly or upload a .md file via drag-and-drop
Full table editor: Edit, transpose, deduplicate, find-and-replace before converting
8 configurable settings: Caption, class, ID, escaping, DIV mode, semantic structure, headers, minify
Semantic HTML: Generate <thead>, <tbody>, <th>, and <caption> for accessible markup
DIV table mode: Create responsive layouts using <div> elements with CSS Grid or Flexbox
CSS class and ID injection: Add Bootstrap classes, Tailwind utilities, or custom identifiers
HTML character escaping: Prevent XSS and rendering issues in cell content
Minified output: Strip whitespace for production-ready compact HTML
Client-side processing: Files never leave the browser — zero data upload
Undo/Redo: Full edit history with revert support
Context menu: Right-click for quick row/column/cell operations
Header toggle: Treat the first row as field names or regular data
Validation indicator: Real-time feedback on input validity
Given this Markdown input:
| Name | Age | City |
|-------|-----|-------------|
| Alice | 30 | New York |
| Bob | 25 | Los Angeles |
<table>
<tr>
<td>Name</td>
<td>Age</td>
<td>City</td>
</tr>
<tr>
<td>Alice</td>
<td>30</td>
<td>New York</td>
</tr>
<tr>
<td>Bob</td>
<td>25</td>
<td>Los Angeles</td>
</tr>
</table>
<table>
<thead>
<tr>
<th>Name</th>
<th>Age</th>
<th>City</th>
</tr>
</thead>
<tbody>
<tr>
<td>Alice</td>
<td>30</td>
<td>New York</td>
</tr>
<tr>
<td>Bob</td>
<td>25</td>
<td>Los Angeles</td>
</tr>
</tbody>
</table>
<table id="user-table" class="table table-striped">
<caption>Employee Directory</caption>
<tr>
<td>Name</td>
<td>Age</td>
<td>City</td>
</tr>
<tr>
<td>Alice</td>
<td>30</td>
<td>New York</td>
</tr>
</table>
<div class="table">
<div class="tr">
<div class="td">Name</div>
<div class="td">Age</div>
<div class="td">City</div>
</div>
<div class="tr">
<div class="td">Alice</div>
<div class="td">30</div>
<div class="td">New York</div>
</div>
</div>
If a cell contains <b>bold</b>, the output becomes <b>bold</b> — displaying as literal text rather than rendering as bold HTML.
<table>
<tr>
<td>Name</td>
<td>Age</td>
<td>City</td>
</tr>
<tr>
<td>Alice</td>
<td>30</td>
<td>New York</td>
</tr>
</table>
A well-structured HTML table uses semantic elements for accessibility and SEO:
| Element | Purpose | Required |
|---|---|---|
<table> | Container for the entire table | Yes |
<caption> | Table title/description (visible, aids screen readers) | Recommended |
<thead> | Groups header rows | Recommended |
<tbody> | Groups body rows | Recommended |
<tfoot> | Groups footer rows (summaries, totals) | Optional |
<tr> | Table row | Yes |
<th> | Header cell (bold, centered by default) | For header rows |
<td> | Data cell | For body rows |
Accessibility — Screen readers use <thead>, <th>, and <caption> to announce table structure to visually impaired users. Without these elements, assistive technology cannot distinguish headers from data.
SEO — Search engines interpret semantic HTML tables more accurately. The <caption> element provides context, and <th> cells signal column or row headers.
Styling — CSS frameworks like Bootstrap and Tailwind target <thead>, <tbody>, and <th> for distinct styling. Semantic structure enables class-based styling without extra markup.
Email templates — Many email clients strip <style> blocks. Semantic elements like <th> carry default bold styling that works without CSS.
<table> vs <div> tables | Feature | <table> | <div> table |
|---|---|---|
| Semantics | Correct for tabular data | Not semantic |
| Accessibility | Screen reader support | Requires ARIA roles |
| Responsiveness | Harder on mobile | Easier with Flexbox/Grid |
| Email support | Universal | Limited |
| SEO | Correct | Neutral |
| Use case | Data display | Layouts, responsive designs |
Use <table> for actual data. Use DIV tables only when you need responsive behavior that <table> cannot provide — for example, cards that reflow on mobile.
Adds a <caption> element as the first child of <table>. The caption is visible above the table and describes its contents.
<table>
<caption>Q4 Sales Report</caption>
...
</table>
Captions improve accessibility (screen readers announce them) and SEO (provides table context to search engines).
Adds a class attribute to the <table> tag. Useful for applying CSS framework styles:
| Framework | Example Class | Effect |
|---|---|---|
| Bootstrap | table table-striped | Striped rows |
| Bootstrap | table table-bordered | Cell borders |
| Tailwind | min-w-full divide-y | Full-width with dividers |
| Bulma | table is-hoverable | Hover-highlight rows |
| Custom | data-table responsive | Custom styles |
Adds an id attribute to the <table> tag. Use for JavaScript targeting, CSS selectors, or anchor links:
<table id="employee-data">
...
</table>
Reference in JavaScript: document.getElementById("employee-data")
When enabled, special HTML characters in cell values are converted to HTML entities:
| Character | Entity | Prevents |
|---|---|---|
< | < | Unintended HTML tags |
> | > | Unintended HTML tags |
& | & | Broken entities |
" | " | Attribute injection |
Enable this when your data contains code snippets, HTML tags, or user-generated content that should display as text rather than render as HTML.
Replaces <table>, <tr>, <td> with <div> elements using corresponding class names:
<table> → <div class="table">
<tr> → <div class="tr">
<td> → <div class="td">
DIV tables are useful for:
Responsive layouts — Rows can reflow as cards on mobile
CSS Grid/Flexbox — More layout control than <table>
Email templates — Some modern email builders prefer DIV-based layouts
Note: DIV tables lose semantic meaning. Add ARIA roles (role="table", role="row", role="cell") for accessibility.
Wraps the first row in <thead> and remaining rows in <tbody>:
<table>
<thead>
<tr>...</tr>
</thead>
<tbody>
<tr>...</tr>
<tr>...</tr>
</tbody>
</table>
Benefits: Screen readers announce headers separately, CSS can style <thead> distinctly, and print browsers may repeat <thead> on each page.
Renders first-row cells as <th> instead of <td>. Header cells are bold and centered by default:
<tr>
<th>Name</th>
<th>Age</th>
</tr>
Combine with Table Head Structure for the most semantic output: <thead> containing <th> cells.
Removes all whitespace, newlines, and indentation. The entire table becomes a single line — significantly smaller in file size. Use for production HTML, email templates, or embedded code.
| Scenario | Recommended Settings |
|---|---|
| Blog post or CMS content | Column Header, Table Head Structure |
| Bootstrap-styled page | Table Class: table table-striped, Column Header |
| Tailwind CSS page | Table Class: min-w-full, Column Header |
| Email template | Column Header, Minify Code, Escape HTML Characters |
| Accessible data table | Caption, Column Header, Table Head Structure |
| Responsive mobile layout | DIV Table, Table Class: responsive-table |
| Documentation site | Caption, Table Head Structure, Table ID |
| Data dashboard | Table Class: table table-hover, Table ID for JS |
| User-generated content | Escape HTML Characters, Minify Code |
| Static site generator | Column Header, Table Head Structure, Minify Code |
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>Feature</th>
<th>Free</th>
<th>Pro</th>
</tr>
</thead>
<tbody>
<tr>
<td>API Access</td>
<td>No</td>
<td>Yes</td>
</tr>
<tr>
<td>Storage</td>
<td>1 GB</td>
<td>100 GB</td>
</tr>
</tbody>
</table>
<table class="email-table" style="width:100%;border-collapse:collapse;">
<tr>
<th style="background:#333;color:#fff;padding:8px;">Item</th>
<th style="background:#333;color:#fff;padding:8px;">Price</th>
</tr>
<tr>
<td style="padding:8px;">Widget A</td><td style="padding:8px;">$29.99</td>
</tr>
</table>
<div class="table" style="display:grid;grid-template-columns:repeat(3,1fr);">
<div class="td">Name</div>
<div class="td">Age</div>
<div class="td">City</div>
<div class="td">Alice</div>
<div class="td">30</div>
<div class="td">New York</div>
</div>
No. All file parsing and conversion runs in your browser using JavaScript. Your data stays on your device. A.Tools never receives, stores, or transmits your file contents.
The tool supports standard pipe-delimited Markdown tables following the CommonMark specification, including tables with or without leading/trailing pipes and alignment indicators.
Column Header changes the first row's cells from <td> to <th> (bold header cells). Table Head Structure wraps the first row in <thead> and the rest in <tbody> (semantic grouping). For best results, enable both together.
It replaces <table>, <tr>, <td> with <div> elements using class names like class="table", class="tr", class="td". This allows CSS Grid or Flexbox layouts — useful for responsive designs where rows reflow as cards on mobile.
Enable it when your data contains HTML tags, code snippets, or special characters (<, >, &, ") that should display as text rather than render as HTML. This also prevents XSS when inserting user-generated content into pages.
A brief description of the table's contents. Captions appear above the table, help screen readers announce the table's purpose, and provide SEO context. Example: "Q4 2025 Revenue by Region".
Yes. Enter any CSS class string in the Table Class field. For Bootstrap: table table-striped table-bordered. For Tailwind: min-w-full divide-y divide-gray-200.
Yes. After parsing, the full table editor lets you modify cells, add or remove rows and columns, transpose, deduplicate, change text case, and find-and-replace values.