Go to Sign up
Note: Your files never leave your device. We don't upload, transfer, or store your data.
AsciiDoc is a plain-text markup language for writing technical documentation, articles, books, and man pages. It is designed to be readable as-is and convertible to HTML, PDF, EPUB, and DocBook.
| Property | Description |
|---|---|
| Readable | Plain text that looks like formatted documentation |
| Convertible | Renders to HTML, PDF, EPUB, DocBook, man pages |
| Extensible | Supports custom attributes, macros, and extensions |
| Standardized | Asciidoctor is the reference implementation (Ruby) |
| Platform / Use Case | How AsciiDoc Is Used |
|---|---|
| Antora | Multi-repository documentation sites powered by AsciiDoc |
| GitLab | AsciiDoc rendering in wiki pages and README files |
| GitHub | Renders .adoc files in repositories |
| Technical documentation | Software manuals, API docs, architecture docs |
| Book publishing | O'Reilly and other publishers accept AsciiDoc manuscripts |
| Spring Boot | Reference documentation written in AsciiDoc |
| Red Hat | Product documentation uses AsciiDoc |
| Asciidoctor | Toolchain for converting AsciiDoc to HTML/PDF |
| Corporate wikis | Internal documentation in AsciiDoc format |
|===
| Name | Age | City
| Alice | 30 | New York
| Bob | 25 | London
| Charlie | 35 | Tokyo
|===
|===
| Name | Age | City
| Alice | 30 | New York
| Bob | 25 | London
|===
The first row after |=== (followed by a blank line) is treated as the header.
| Element | Syntax | Description |
|---|---|---|
| Table start/end | |=== | Opens and closes the table |
| Column separator | | | Separates cells within a row |
| Header separator | Blank line after first row | Distinguishes header from body |
| Footer row | Last row before closing |=== | Optional footer |
| Table title | .Title text | Placed before |=== |
| Cell content | | text | Each cell starts with pipe |
| Feature | AsciiDoc | Markdown | reStructuredText |
|---|---|---|---|
| Table syntax | Pipe-based with |=== | Pipe-based (GFM) | Grid or simple |
| Table headers | Automatic (first row) | First row bold | Separate with === |
| Table title | .Title before table | Not standard | .. list-table:: directive |
| Table footer | Supported | Not supported | Not standard |
| Column spanning | Supported | Not in GFM | Supported |
| Nesting | Deep nesting supported | Limited | Supported |
| Include files | include:: directive | Not standard | .. include:: directive |
| Primary ecosystem | Antora, Asciidoctor, GitLab | GitHub, DevOps | Sphinx, Python docs |
| Best for | Technical docs, books | README, simple docs | Python documentation |
| Use Case | Description |
|---|---|
| Technical documentation | Embed data tables in AsciiDoc manuals and guides |
| Antora sites | Generate tables for Antora documentation portals |
| GitLab wikis | Paste data tables into GitLab AsciiDoc pages |
| README files | Add data tables to .adoc README files |
| API documentation | Present endpoint data, parameters, or responses as tables |
| Architecture docs | Embed system configuration data in AsciiDoc documents |
| PDF generation | Create AsciiDoc source that converts to PDF tables via Asciidoctor |
File Upload: Drag and drop or select a .json file.
Code Editor: Paste or type raw JSON with syntax highlighting and real-time validation.
Removes extra whitespace for compact output.
Regular format:
|===
| Name | Age | City
| Alice | 30 | New York
| Bob | 25 | London
|===
Minified format:
|===
|Name|Age|City
|Alice|30|New York
|Bob|25|London
|===
Use minified for smaller file sizes. Use regular for readability and editing.
Uses the first data row as the table header. In AsciiDoc, the header row is separated from body rows by a blank line.
Enabled:
|===
| Name | Age | City
| Alice | 30 | New York
| Bob | 25 | London
|===
Disabled:
|===
| Name | Age | City
| Alice | 30 | New York
| Bob | 25 | London
|===
Enable this when your JSON object keys should be column headers (most cases).
Treats the last data row as a footer row. In AsciiDoc, footer rows are rendered distinctly.
|===
| Product | Price
| Laptop | $1,299
| Phone | $699
| Total | $1,998
|===
Use this for summary rows, totals, or concluding data.
Adds a title above the table using AsciiDoc's .Title syntax:
.Employee Salary Report
|===
| Name | Department | Salary
| Alice | Engineering | $95,000
| Bob | Marketing | $78,000
|===
Table titles appear as captions when rendered to HTML or PDF.
All processing runs entirely in your browser. No data is uploaded to any server.
Choose one of two input methods:
Upload a file: Click "Choose File" and select a .json file, or drag it into the upload area.
Paste data: Click "Enter Data" to switch to the code editor. Paste your JSON array.
Important: The tool expects a JSON array of objects. Each object becomes a row; keys become columns.
Use the Properties panel:
Minify Format: Enable for compact output.
First Header: Enable to use first row as column headers.
Last Footer: Enable to treat last row as footer.
Table Title: Enter a title (e.g., "Employee Directory").
Click Convert. The AsciiDoc markup appears in the "Output Data" panel.
Click Copy to Clipboard to paste into your .adoc file.
Premium users can click Download File to save.
Input JSON:
[
{"product": "Laptop", "price": 1299.99, "stock": 45},
{"product": "Phone", "price": 699.99, "stock": 120},
{"product": "Tablet", "price": 499.99, "stock": 0},
{"product": "Total (3 products)", "price": 2499.97, "stock": 165}
]
Configuration:
Minify Format: Off
First Header: On
Last Footer: On
Table Title: Product Inventory
Output:
.Product Inventory
|===
| product | price | stock
| Laptop | 1299.99 | 45
| Phone | 699.99 | 120
| Total (3 products) | 2499.97 | 165
|===
Input JSON:
[
{"name": "Alice", "score": 95},
{"name": "Bob", "score": 88}
]
Configuration: All options off.
Output:
|===
| name | score
| Alice | 95
| Bob | 88
|===
Input JSON:
[
{"parameter": "query", "type": "string", "required": true, "description": "Search query text"},
{"parameter": "limit", "type": "integer", "required": false, "description": "Max results to return"},
{"parameter": "offset", "type": "integer", "required": false, "description": "Number of results to skip"},
{"parameter": "sort", "type": "string", "required": false, "description": "Sort field and direction"}
]
Configuration:
First Header: On
Table Title: API Parameters
Output:
.API Parameters
|===
| parameter | type | required | description
| query | string | true | Search query text
| limit | integer | false | Max results to return
| offset | integer | false | Number of results to skip
| sort | string | false | Sort field and direction
|===
| Tip | Details |
|---|---|
| Use First Header | Always enable for readable tables with column labels |
| Add Table Title | Improves rendered output with captions |
| Use Last Footer for totals | Summary rows stand out visually |
| Keep cell content short | Long text stretches columns horizontally |
| Use regular format for editing | Minified is harder to modify by hand |
| Preview with Asciidoctor | Render to HTML to verify table appearance |
No. All conversion happens locally in your browser using JavaScript. Your data never leaves your device.
AsciiDoc is a plain-text markup language for writing technical documentation. Files use the .adoc extension and can be converted to HTML, PDF, EPUB, and other formats using Asciidoctor.
Antora documentation sites, GitLab wikis, GitHub repositories (.adoc files), technical manuals, and any project using Asciidoctor or the AsciiDoc toolchain.
First Header treats the first row as a column header (visually distinct). Last Footer treats the last row as a footer (typically used for totals or summaries).
It removes extra whitespace and spaces around pipe characters for a more compact output. Disable for readable output that's easy to edit by hand.
A JSON array of objects: [{"key": "value"}, ...]. Each object becomes one row. Object keys become column headers.
Use Asciidoctor: asciidoctor document.adoc converts to HTML. Use asciidoctor-pdf document.adoc for PDF output. Or paste into any AsciiDoc-compatible platform (GitLab, Antora).
The tool processes data entirely in your browser. Files up to 10 MB typically convert without issues on modern hardware.
Yes. The tool is responsive and works on smartphones and tablets.