Markdown To TOML

Login

Email
Password

Don't have an account yet?

Go to Sign up

Input Data
Sample {{ showCoderInput ? 'Choose File' : 'Enter Data' }}

                                
Valid Data Invalid Data — Cannot parse as table
Online Table Editor
Row Col Row Col
Transpose Clear Delete Empty Deduplicate
ABC abc Abc
Replace
First Row as Header
{{ displayRows.length }} rows x {{ displayHeaders.length }} columns{{ firstRowAsHeader ? ' (1 header)' : '' }} {{ selectedRows.length > 0 ? selectedRows.length + ' selected' : '' }}
Output Data ({{ tomlFormatDisplayName }})
{{ copied ? 'Copied!' : 'Copy to Clipboard' }} Download File
Properties
Convert Markdown Table to TOML online — paste, edit, and download.

TOML Format:
Section Name:
Parse Values
Convert Restart
Insert Row Below
Insert Row Above
Insert Column Right
Insert Column Left
Delete Row {{ contextMenu.row + 1 }}
Delete Column {{ contextMenu.col + 1 }}
Clear Cell
Clear Row
Case sensitive Use regex Cancel Replace All

What Is the Markdown To TOML Converter?

The Markdown To TOML Converter on A.Tools transforms Markdown pipe-delimited tables into structured TOML data — directly in your browser, without uploading any file to a server.

Developers write Markdown tables in documentation and README files. Rust, Python, Go, and Hugo projects use TOML for configuration. This tool converts between the two formats with three output styles: Array of Tables, Column Array, and Keyed.

All processing runs client-side using JavaScript. No data leaves your device.

How to Convert Markdown Tables to TOML?

Step 1: Provide Your Markdown Data

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.

Step 2: Edit in the Online Table Editor

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 with one click

  • Delete empty rows and columns

  • Change text case (UPPERCASE, lowercase, Capitalize)

  • Find and replace values — supports case-sensitive search and regular expressions

  • Toggle First Row as Header to treat the first row as column names

Right-click any cell for context-menu operations: insert rows above/below, insert columns left/right, delete, or clear.

Step 3: Configure TOML Output

In the Properties panel:

SettingOptionsDescription
TOML FormatArray of Tables / Column Array / KeyedControls the structure of the output (see below)
Section NameCustom textAdds a [section_name] header before the data
Parse ValuesOn / OffWhen on, converts numeric and boolean strings to native TOML types

Step 4: Export

Click Convert to generate the TOML output. Use Copy to Clipboard or Download File to save the result.

Key Features

  • 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

  • Three TOML formats: Array of Tables, Column Array, Keyed

  • Section name support: Wrap output in a named TOML section

  • Type inference: Parse Values toggle converts strings to integers, floats, and booleans

  • 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 a header or regular data

  • Validation indicator: Real-time feedback on input validity

What Is TOML?

TOML (Tom's Obvious Minimal Language) is a configuration file format designed to be unambiguous and easy to read. It uses key-value pairs and supports tables, arrays, and nested structures.

Key facts:

  • Created by Tom Preston-Werner in 2013

  • Current version: 1.0 (specification at toml.io)

  • File extension: .toml

  • Used in: Rust (Cargo.toml), Python (pyproject.toml), Go (module config), Hugo (config.toml), InfluxDB, and more

TOML syntax example:

[server]
host = "localhost"
port = 8080
debug = true

[
[users]]
name = "Alice"
age = 30

[[users]]
name = "Bob"
age = 25

TOML is designed to map unambiguously to a hash table (dictionary), making it straightforward for parsers to implement.

TOML Format Options Explained

Given this input table:

nameagecity
Alice30New York
Bob25Los Angeles

Array of Tables

[[data]]
name = "Alice"
age = "30"
city = "New York"

[
[data]]
name = "Bob"
age = "25"
city = "Los Angeles"

Each row becomes a [[table]] entry. This is the most common TOML format for lists of records. Each entry is a separate TOML Table.

Column Array

name = ["Alice", "Bob"]
age = ["30", "25"]
city = ["New York", "Los Angeles"]

Each column becomes a TOML array. Useful when you need to access all values of a single field at once.

Keyed

[data.Alice]
age = "30"
city = "New York"

[
data.Bob]
age = "25"
city = "Los Angeles"

Each row becomes a keyed sub-table, using the first column value as the key. Requires unique values in the first column. Useful for lookup-style configurations.

Section Name

When a Section Name is provided (e.g., "users"), the output wraps in a named section:

[users]

[
[users]]
name = "Alice"
age = "30"

Leave blank for no section wrapper.

Parse Values

When Parse Values is enabled, the converter detects:

  • Integers: "30"30

  • Floats: "3.14"3.14

  • Booleans: "true" / "false"true / false

When disabled, all values remain as quoted strings.

TOML vs. YAML vs. JSON

FeatureTOMLYAMLJSON
CommentsYes (#)Yes (#)No
Multiline stringsYes (""")Yes (|)No (escaped)
Dates/TimesNative typeNative typeString only
ArraysYesYesYes
Nested tablesYesYesYes
AmbiguityLowHigh (indentation)None
Primary useConfigurationConfiguration, dataData interchange
Parser complexitySimpleComplexSimple
File extension.toml.yaml / .yml.json

TOML avoids YAML's indentation sensitivity and JSON's lack of comments. It is best suited for configuration files where human readability and unambiguous parsing both matter.

Markdown Tables vs. TOML: When to Convert

ScenarioUse MarkdownUse TOMLConvert
Technical documentationYesNo
Rust Cargo.toml configurationNoYesMarkdown → TOML
Python pyproject.tomlNoYesMarkdown → TOML
Hugo site configurationNoYesMarkdown → TOML
Data lookup tables in configNoYesMarkdown → TOML
Version-controlled docs (Git)YesNo
Application settingsNoYesMarkdown → TOML

Markdown tables are for human-readable documentation. TOML is for machine-readable configuration with type support. This converter handles the transition when tabular data from documentation needs to become part of a configuration file.

Frequently Asked Questions (FAQ)

  • Does this tool upload my files to a server?

    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.

  • What Markdown table formats are supported?

    The tool supports standard pipe-delimited Markdown tables following the CommonMark specification, including tables with or without leading/trailing pipes and alignment indicators (:---, :---:, ---:).

  • What is the difference between Array of Tables, Column Array, and Keyed formats?

    Array of Tables creates a [[table]] entry per row. Column Array creates one TOML array per column. Keyed uses the first column value as a sub-table name. See the "TOML Format Options Explained" section above for examples.

  • What does the Parse Values toggle do?

    When enabled, the converter detects integers, floats, and boolean strings in your data and outputs them as native TOML types (unquoted). When disabled, all values remain as quoted strings.

  • When should I use a Section Name?

    Add a Section Name when the TOML output needs to be part of a larger configuration file. The section name creates a [name] header before the data. Leave blank for standalone output.

  • What happens if the Keyed format has duplicate first-column values?

    TOML requires unique table keys. If the first column contains duplicate values, the last occurrence overwrites earlier ones. Ensure the first column has unique values when using Keyed format.

  • Is there a file size limit?

    Processing is client-side, so the limit depends on your browser's memory. Tables with tens of thousands of rows work reliably on modern browsers.

  • Can I use the output directly in Cargo.toml or pyproject.toml?

    Yes. The output is valid TOML 1.0. Copy the result and paste it into your configuration file, or use a Section Name to match the expected structure.

Featured Tools

Featured tools that you might find useful.

Popular Tools

List of popular tools that users love and frequently use.

New Tools

The latest tools added to our collection, designed for you.

Topics

The tools grouped by topics to quickly find what you need.
Free online Excel to JSON converter. Transform XLSX, XLS, XLSM files into JSON arrays, objects, or keyed formats instantly in your browser — no upload, 100% private.

Excel To JSON

Free online Excel to JSON converter. Transform XLSX, XLS, XLSM files into JSON arrays, objects, or keyed formats instantly in your browser — no upload, 100% private.
Free Excel to CSV converter. Convert XLSX, XLS, XLSM to CSV instantly in your browser. No upload, 100% private. Edit, transpose, deduplicate before exporting.

Excel To CSV

Free Excel to CSV converter. Convert XLSX, XLS, XLSM to CSV instantly in your browser. No upload, 100% private. Edit, transpose, deduplicate before exporting.
Free online Excel to SQL converter. Generate CREATE TABLE and INSERT statements from spreadsheets for MySQL, PostgreSQL, SQLite, and SQL Server. Supports batch insert, primary keys, and type inference.

Excel To SQL

Free online Excel to SQL converter. Generate CREATE TABLE and INSERT statements from spreadsheets for MySQL, PostgreSQL, SQLite, and SQL Server. Supports batch insert, primary keys, and type inference.
Free online Excel to ASCII table converter with 10 border styles (MySQL, Unicode, reStructuredText, and more). Add code comment wrappers in 8 languages. Supports text alignment. Client-side processing.

Excel To ASCII Table

Free online Excel to ASCII table converter with 10 border styles (MySQL, Unicode, reStructuredText, and more). Add code comment wrappers in 8 languages. Supports text alignment. Client-side processing.