Convert TOML to Textile

Drag and drop files here or click to select.
Max file size 100mb.
Uploading progress:

TOML vs Textile Format Comparison

Aspect TOML (Source Format) Textile (Target Format)
Format Overview
TOML
Tom's Obvious Minimal Language

A minimal configuration file format created by Tom Preston-Werner in 2013. Designed to be easy to read due to obvious semantics. Maps unambiguously to a hash table and supports typed values including strings, integers, floats, booleans, dates, arrays, and tables.

Configuration Format Formally Specified
Textile
Textile Markup Language

A lightweight markup language created by Dean Allen in 2002 for writing formatted text. Produces valid HTML output and is known for its concise syntax for tables, links, images, and text formatting. Popular in content management systems and wikis.

Markup Language Human-Readable
Technical Specifications
Structure: Key-value pairs with tables and arrays
Encoding: UTF-8 required
Format: Plain text with minimal syntax
Type System: Strings, integers, floats, booleans, dates, arrays, tables
Extensions: .toml
Structure: Inline markup with formatting codes
Encoding: UTF-8 supported
Format: Plain text with special characters
Output: Generates valid XHTML
Extensions: .textile
Syntax Examples

TOML configuration syntax:

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

[database]
name = "myapp"
max_connections = 25

Textile markup syntax:

h1. Server Configuration

*Host:* localhost
*Port:* 8080
*Debug:* enabled

h2. Database Settings

|_. Key |_. Value |
| Name | myapp |
| Max Connections | 25 |
Content Support
  • String values (basic and literal)
  • Integer and float numbers
  • Boolean values
  • Date and time values (RFC 3339)
  • Arrays (typed)
  • Tables and inline tables
  • Array of tables
  • Comments
  • Headings (h1-h6)
  • Bold, italic, underline, strikethrough
  • Ordered and unordered lists
  • Tables with headers
  • Links and images
  • Block quotes
  • Code blocks
  • Footnotes
  • CSS class/id attributes
Advantages
  • Extremely readable syntax
  • Formally specified (TOML v1.0)
  • Strong typing system
  • Native date/time support
  • Unambiguous parsing
  • Growing ecosystem adoption
  • Concise markup syntax
  • Excellent table support
  • CSS class integration
  • Clean XHTML output
  • Easy to learn
  • Good for documentation
Disadvantages
  • Limited to configuration data
  • Verbose for deeply nested structures
  • Smaller ecosystem than JSON/YAML
  • No schema validation built-in
  • Not suited for document content
  • Less popular than Markdown
  • Limited tooling support
  • Complex syntax for advanced features
  • Fewer rendering engines available
  • Not widely adopted in new projects
Common Uses
  • Rust project configuration (Cargo.toml)
  • Python project metadata (pyproject.toml)
  • Hugo static site configuration
  • Netlify deployment settings
  • Application configuration files
  • Redmine wiki pages
  • Content management systems
  • Blog post formatting
  • Documentation writing
  • Forum post formatting
Best For
  • Application configuration
  • Project metadata
  • Build system settings
  • Deployment configuration
  • Wiki-style documentation
  • CMS content authoring
  • Formatted text with tables
  • Redmine/Trac content
Version History
Introduced: 2013 (Tom Preston-Werner)
Current Version: TOML v1.0.0 (2021)
Status: Stable, formally specified
Evolution: Reached 1.0 stability milestone
Introduced: 2002 (Dean Allen)
Current Version: Textile 2
Status: Stable, maintained
Evolution: Incremental improvements over time
Software Support
Rust: toml crate (native)
Python: tomllib (stdlib 3.11+), tomli
JavaScript: @iarna/toml, toml-js
Other: Go, Java, C#, Ruby libraries
Ruby: RedCloth gem
Python: textile library
PHP: PHP Textile
Other: Redmine, Trac built-in

Why Convert TOML to Textile?

Converting TOML configuration files to Textile markup is useful when you need to present configuration data in a human-readable, formatted document. Textile's excellent table support makes it ideal for displaying TOML key-value pairs and nested structures in a visually organized way, particularly for teams that use Redmine or similar project management tools where Textile is the native markup language.

TOML files such as Cargo.toml, pyproject.toml, or application configuration files often need to be documented for team members who don't directly work with code. By converting to Textile, you can create well-structured documentation with headers, formatted tables, and styled text that renders beautifully in wikis and content management systems without requiring technical knowledge to read.

Textile's concise syntax for tables, with pipe-delimited columns and header markers, maps naturally to TOML's key-value structure. Each TOML section becomes a Textile heading, and nested key-value pairs can be rendered as formatted tables. This makes Textile an excellent intermediate format for creating configuration documentation that can be published to wikis, project management tools, or web-based knowledge bases.

The conversion is especially valuable in software development workflows where configuration files need to be reviewed by project managers, stakeholders, or documentation teams. Textile output can be directly pasted into Redmine issues, wiki pages, or Trac tickets, making configuration changes visible and trackable as part of the project management process.

Key Benefits of Converting TOML to Textile:

  • Wiki Integration: Direct use in Redmine, Trac, and other wiki systems
  • Table Formatting: Textile's native table syntax displays config data clearly
  • Human-Readable Output: Non-technical stakeholders can read the documentation
  • CMS Compatibility: Works with content management systems supporting Textile
  • Documentation Quality: Structured headings and formatted text for config docs
  • Project Management: Embed configuration details in project tracking tools
  • Clean XHTML: Textile generates valid XHTML for web publishing

Practical Examples

Example 1: Application Configuration Documentation

Input TOML file (config.toml):

[application]
name = "WebPortal"
version = "2.4.1"
debug = false

[application.server]
host = "0.0.0.0"
port = 443
workers = 4
ssl = true

Output Textile file (config.textile):

h1. Application Configuration

h2. Application

|_. Parameter |_. Value |
| Name | WebPortal |
| Version | 2.4.1 |
| Debug | false |

h3. Server Settings

|_. Parameter |_. Value |
| Host | 0.0.0.0 |
| Port | 443 |
| Workers | 4 |
| SSL | true |

Example 2: Cargo.toml Project Documentation

Input TOML file (Cargo.toml):

[package]
name = "my-cli-tool"
version = "0.3.0"
edition = "2021"
authors = ["Alice "]

[dependencies]
clap = "4.0"
serde = { version = "1.0", features = ["derive"] }
tokio = { version = "1", features = ["full"] }

Output Textile file (Cargo.textile):

h1. Rust Project: my-cli-tool

h2. Package Information

|_. Field |_. Value |
| Name | @my-cli-tool@ |
| Version | 0.3.0 |
| Edition | 2021 |
| Authors | Alice |

h2. Dependencies

|_. Crate |_. Version |_. Features |
| clap | 4.0 | - |
| serde | 1.0 | derive |
| tokio | 1 | full |

Example 3: Deployment Configuration Report

Input TOML file (deploy.toml):

[environment]
name = "production"
region = "us-east-1"

[scaling]
min_instances = 2
max_instances = 10
cpu_threshold = 75.0

[[services]]
name = "api-gateway"
port = 8080

[[services]]
name = "worker"
port = 9090

Output Textile file (deploy.textile):

h1. Deployment Configuration

h2. Environment

* *Name:* production
* *Region:* us-east-1

h2. Scaling Rules

|_. Parameter |_. Value |
| Min Instances | 2 |
| Max Instances | 10 |
| CPU Threshold | 75.0% |

h2. Services

# *api-gateway* - Port 8080
# *worker* - Port 9090

Frequently Asked Questions (FAQ)

Q: What is Textile markup?

A: Textile is a lightweight markup language created by Dean Allen in 2002. It converts plain text with simple formatting codes into valid XHTML. Textile is known for its intuitive syntax for tables, lists, and text formatting, and is widely used in Redmine, Trac, and various content management systems.

Q: How are TOML tables represented in Textile?

A: TOML tables (sections like [server]) are converted to Textile headings (h2., h3., etc.), and their key-value pairs become Textile table rows using pipe-delimited syntax. This creates a clear, hierarchical document structure that mirrors the original TOML organization.

Q: Are TOML data types preserved in the Textile output?

A: Textile is a markup language, not a data format, so data types are represented as formatted text. Strings, numbers, booleans, and dates are all rendered as readable text values. The conversion focuses on presenting the data clearly rather than preserving type information.

Q: Can I use the Textile output in Redmine?

A: Yes! Redmine uses Textile as its default markup language. The converted output can be directly pasted into Redmine wiki pages, issue descriptions, or comments and will render with proper formatting, tables, and headings.

Q: How are nested TOML structures handled?

A: Nested TOML tables are represented using hierarchical Textile headings (h2 for top-level tables, h3 for sub-tables, etc.). Deeply nested values can also be displayed as indented lists or nested tables to maintain readability in the Textile output.

Q: What happens to TOML arrays in the conversion?

A: TOML arrays are converted to Textile lists (ordered or unordered depending on context), and arrays of tables are rendered as repeated sections with consistent formatting. This preserves the sequential nature of the data in a readable format.

Q: Is Textile the same as Markdown?

A: No, they are different markup languages. Textile predates Markdown and has different syntax. Textile uses notations like *bold*, _italic_, and h1. for headings, while Markdown uses **bold**, *italic*, and # for headings. Textile has superior built-in table syntax but is less widely used than Markdown today.

Q: Can I convert the Textile output back to TOML?

A: Converting back to TOML is not straightforward because Textile is a document markup format that loses the strict data typing and structure of TOML. The conversion to Textile is intended for documentation and presentation purposes, not for round-trip data exchange.