Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
|
|
|
|
|---|---|---|
|
|
|
The Markdown To ASCII Table Converter on A.Tools transforms Markdown pipe-delimited tables into plain-text ASCII art tables. Choose from 9 border styles, 13 code comment wrappers, 3 text alignment options, and optional row separators. All processing runs in your browser. No data leaves your device.
ASCII tables render correctly in every text environment — terminals, code editors, README files, email, Slack, and documentation. Unlike HTML or Markdown tables, ASCII tables are truly plain text: no special rendering required.
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 |
|---|---|---|
| Border Style | (varies) | Choose from 9 visual border styles |
| Comment Wrapper | None | Wrap output in code comment syntax for 13 languages |
| Text Alignment | Left | Align cell text left, center, or right |
| Row Separators | Off | Add separator lines between each row |
Click Convert to generate the ASCII table. Use Copy to Clipboard or Download File to save the result.
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
9 border styles: MySQL, Unicode, reStructuredText, Markdown, Dashed, Double, Compact, and more
13 comment wrappers: SQL, Python, JavaScript, C, HTML, Ruby, PHP, Go, and more
3 alignment options: Left, center, or right cell text alignment
Row separators: Add horizontal lines between every row for readability
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 |
+-------+-----+-------------+
| Name | Age | City |
+-------+-----+-------------+
| Alice | 30 | New York |
| Bob | 25 | Los Angeles |
+-------+-----+-------------+
┌───────┬─────┬─────────────┐
│ Name │ Age │ City │
├───────┼─────┼─────────────┤
│ Alice │ 30 │ New York │
│ Bob │ 25 │ Los Angeles │
└───────┴─────┴─────────────┘
+-------+-----+-------------+
| Name | Age | City |
+=======+=====+=============+
| Alice | 30 | New York |
+-------+-----+-------------+
| Bob | 25 | Los Angeles |
+-------+-----+-------------+
-------+-----+--------------
Name | Age | City
-------+-----+--------------
Alice | 30 | New York
Bob | 25 | Los Angeles
-------+-----+--------------
# +-------+-----+-------------+
# | Name | Age | City |
# +-------+-----+-------------+
# | Alice | 30 | New York |
# | Bob | 25 | Los Angeles |
# +-------+-----+-------------+
-- +-------+-----+-------------+
-- | Name | Age | City |
-- +-------+-----+-------------+
-- | Alice | 30 | New York |
-- | Bob | 25 | Los Angeles |
-- +-------+-----+-------------+
<!-- +-------+-----+-------------+ -->
<!-- | Name | Age | City | -->
<!-- +-------+-----+-------------+ -->
<!-- | Alice | 30 | New York | -->
<!-- | Bob | 25 | Los Angeles | -->
<!-- +-------+-----+-------------+ -->
+-------+-----+-------------+
| Name | Age | City |
+-------+-----+-------------+
| Alice | 30 | New York |
+-------+-----+-------------+
| Bob | 25 | Los Angeles |
+-------+-----+-------------+
| Style | Characters | Best For |
|---|---|---|
| MySQL | +, -, | | Terminal output, SQL results, CLI tools |
| Unicode | ┌, ─, │, ┐ | Modern terminals, documentation, presentations |
| reStructuredText Grid | +, -, =, | | RST documentation, Sphinx docs |
| reStructuredText Simple | =, - | RST simple table format |
| Markdown | |, - | README files, Markdown docs |
| Dashed | -, | | Minimal style, plain text |
| Double | ╔, ═, ║, ╗ | Emphasis, visual distinction |
| Compact | No borders | Dense data, space-constrained layouts |
| ASCII (Plain) | -, | | Maximum compatibility, email-safe |
| Wrapper | Syntax | Languages |
|---|---|---|
| None | (no prefix) | Plain text, Markdown |
| Hash | # | Python, Ruby, YAML, Shell, Perl |
| Double dash | -- | SQL, Lua, Ada, Haskell |
| Double slash | // | JavaScript, Java, C, C++, C#, Go, Rust |
| Slash-star | /* ... */ | C, C++, Java, CSS |
| HTML | <!-- ... --> | HTML, XML, SVG |
| Semicolon | ; | Assembly, INI, Lisp, Clojure |
| Rem | REM | Batch files, BASIC |
| Percent | % | LaTeX, MATLAB, Erlang, Prolog |
| Triple quote | """ | Python docstrings |
| Triple backtick | ``` | Markdown code blocks |
| Xml | <!-- ... --> | XML config files |
| Single quote | ' | Visual Basic, VBScript |
Controls the characters used to draw table borders. 9 options range from minimal (Compact) to decorative (Unicode, Double) to documentation-standard (reStructuredText).
Choose based on your target environment:
Terminal/CLI: MySQL or Unicode
Documentation: reStructuredText Grid or Simple
README files: Markdown
Email: ASCII (Plain) — safe in all mail clients
Presentations: Unicode or Double for visual impact
Wraps every line of the ASCII table in code comment syntax, allowing you to embed tables directly in source code without triggering syntax errors.
This is useful for:
Documenting database schemas in SQL files
Adding reference tables in Python docstrings
Including lookup data in JavaScript constants
Embedding tables in configuration files
Controls how text is positioned within cells:
| Alignment | Example | Use Case |
|---|---|---|
| Left | Alice | Default, natural reading |
| Center | Alice | Headers, emphasis |
| Right | Alice | Numbers, monetary values |
When enabled, adds a horizontal separator line between every data row (not just between the header and body). This improves readability for wide tables with many columns.
Without row separators:
+-------+-----+-------------+
| Name | Age | City |
+-------+-----+-------------+
| Alice | 30 | New York |
| Bob | 25 | Los Angeles |
+-------+-----+-------------+
With row separators:
+-------+-----+-------------+
| Name | Age | City |
+-------+-----+-------------+
| Alice | 30 | New York |
+-------+-----+-------------+
| Bob | 25 | Los Angeles |
+-------+-----+-------------+
| Scenario | Border Style | Comment Wrapper |
|---|---|---|
| SQL schema documentation | MySQL | SQL (--) |
| Python reference tables | Unicode | Hash (#) |
| JavaScript lookup data | MySQL | Double slash (//) |
| README files | Markdown | None |
| Terminal/CLI output | MySQL or Unicode | None |
| Sphinx documentation | reStructuredText Grid | None |
| Email plain-text tables | ASCII (Plain) | None |
| LaTeX documentation | MySQL | Percent (%) |
| C/C++ header comments | MySQL | Slash-star (/* */) |
| HTML source comments | MySQL | HTML (<!-- -->) |
| Go source code tables | MySQL | Double slash (//) |
| Shell script documentation | MySQL | Hash (#) |
| Configuration file comments | Compact | Semicolon (;) |
-- +------------+----------+-----------+
-- | Column | Type | Nullable |
-- +------------+----------+-----------+
-- | id | INT | NOT NULL |
-- | name | VARCHAR | NOT NULL |
-- | email | VARCHAR | NULL |
-- | created_at | DATETIME | NOT NULL |
-- +------------+----------+-----------+
# +--------+-------+------------+
# | Name | Age | Role |
# +--------+-------+------------+
# | Alice | 30 | Admin |
# | Bob | 25 | Developer |
# | Carol | 28 | Designer |
# +--------+-------+------------+
┌──────────┬───────┬────────────┐
│ Endpoint │ Method │ Auth │
├──────────┼───────┼────────────┤
│ /users │ GET │ Token │
│ /users │ POST │ Token │
│ /login │ POST │ Public │
└──────────┴───────┴────────────┘
/* +----------+--------+---------+ */
/* | Register | Offset | Default | */
/* +----------+--------+---------+ */
/* | CTRL | 0x00 | 0x00 | */
/* | STATUS | 0x01 | 0xFF | */
/* | DATA | 0x02 | 0x00 | */
/* +----------+--------+---------+ */
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.
An ASCII table is a plain-text table drawn using characters like +, -, |, and = for borders. It renders correctly in every text environment — terminals, code editors, email, and documentation — without requiring any special renderer.
Use MySQL for terminal output and SQL documentation. Use Unicode for modern terminals and presentations. Use reStructuredText Grid for Sphinx/RST docs. Use Markdown for README files. Use Compact when you need minimal formatting.
It adds code comment syntax (like #, --, //, /* */) to the beginning and end of each line, so you can embed the ASCII table directly in source code files without causing syntax errors.
Enable Row Separators when the table has many columns or when visual distinction between rows is important — such as wide lookup tables, terminal output with many rows, or printed reference cards.
Most modern terminals (iTerm2, Windows Terminal, GNOME Terminal, Konsole) support Unicode box-drawing characters. Older terminals or restricted environments may not. If unsure, use the MySQL style for maximum compatibility.
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.