Convert JIRA to TOML

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

JIRA vs TOML Format Comparison

Aspect JIRA (Source Format) TOML (Target Format)
Format Overview
JIRA
Jira Markup Language

JIRA markup is Atlassian's text formatting language used across Jira, Confluence, and Bitbucket. It provides a lightweight syntax for bold, italic, headings, tables, code blocks, lists, and links without requiring HTML knowledge. The format is designed for quick issue descriptions and project documentation.

Markup Language Atlassian
TOML
Tom's Obvious Minimal Language

TOML is a minimal configuration file format designed to be easy to read and write. Created by Tom Preston-Werner, TOML maps unambiguously to a hash table and is used for application configuration files. It supports strings, integers, floats, booleans, dates, arrays, and tables.

Configuration Key-Value
Technical Specifications
Structure: Plain text with Jira markup syntax
Encoding: UTF-8
Format: Atlassian markup language
Platforms: Jira, Confluence, Bitbucket
Extensions: .jira, .txt
Structure: Key-value pairs with sections (tables)
Encoding: UTF-8 (required)
Standard: TOML v1.0.0 specification
MIME Type: application/toml
Extension: .toml
Syntax Examples

JIRA uses Atlassian wiki markup:

h1. Main Heading
*bold text* and _italic text_

||Header 1||Header 2||
|Cell A1|Cell A2|
|Cell B1|Cell B2|

{code:java}
System.out.println("Hello");
{code}

TOML uses key-value pairs with sections:

[project]
name = "MyApp"
version = "1.0.0"
enabled = true

[database]
host = "localhost"
port = 5432
max_connections = 100

tags = ["web", "api", "v1"]
Content Support
  • Bold (*bold*), italic (_italic_), strikethrough (-text-)
  • Headings (h1. through h6.)
  • Bullet lists (*) and numbered lists (#)
  • Tables with ||header|| and |cell| syntax
  • Code blocks with {code}...{code}
  • Links [text|url] and images !image.png!
  • Panels, quotes, and color formatting
  • Strings (basic and literal, multi-line)
  • Integers, floats, and booleans
  • Date-time values (RFC 3339)
  • Arrays and inline arrays
  • Tables (sections) and inline tables
  • Array of tables ([[section]])
  • Comments with # prefix
Advantages
  • Quick formatting without HTML knowledge
  • Native integration with Atlassian tools
  • Simple syntax for issue descriptions
  • Supports tables, code blocks, and panels
  • Widely used in software development teams
  • Easy to learn and write quickly
  • Minimal and easy to read
  • Strong typing (strings, integers, dates)
  • Unambiguous hash table mapping
  • Support for comments
  • Growing adoption in modern toolchains
  • Native support in Rust (Cargo.toml) and Python
Disadvantages
  • Proprietary to Atlassian ecosystem
  • Limited rendering outside Jira/Confluence
  • Syntax differs from Markdown standards
  • No official specification document
  • Complex nesting can be difficult
  • Not designed for document content
  • Deep nesting can become verbose
  • Less widespread than JSON or YAML
  • No schema validation standard
  • Limited tooling compared to JSON
Common Uses
  • Jira issue descriptions and comments
  • Confluence wiki page authoring
  • Bitbucket pull request descriptions
  • Sprint planning and project documentation
  • Technical specifications and requirements
  • Rust project configuration (Cargo.toml)
  • Python project metadata (pyproject.toml)
  • Application configuration files
  • Hugo static site generator config
  • CI/CD pipeline configuration
Best For
  • Issue tracking and bug reports
  • Sprint planning and agile workflows
  • Confluence wiki documentation
  • Atlassian ecosystem collaboration
  • Application and project configuration files
  • Rust package manifests (Cargo.toml)
  • Python project metadata (pyproject.toml)
  • CI/CD pipeline and deployment settings
Version History
Introduced: 2002 (Atlassian)
Current Version: Jira Cloud markup
Status: Active, widely used in enterprise
Evolution: Wiki markup to rich text editor (markup still supported)
Introduced: 2013 (Tom Preston-Werner)
Current Version: TOML 1.0
Status: Active, growing adoption in modern toolchains
Evolution: Initial spec (2013) to TOML 1.0 (2021), adopted by Rust and Python ecosystems
Software Support
Primary: Jira, Confluence, Bitbucket
Editors: Any text editor
Converters: Pandoc (jira format), j2m
Platforms: Atlassian Cloud, Data Center, Server
Python: tomllib (stdlib), tomli, tomlkit
Rust: toml crate (native Cargo support)
Go: BurntSushi/toml, pelletier/go-toml
Editors: VS Code, IntelliJ (with TOML plugins)

Why Convert JIRA to TOML?

Converting JIRA markup to TOML transforms document-style content into a structured configuration format. This is useful when you need to extract structured data from Jira tables and lists into configuration files that can be read by applications, build systems, or deployment tools.

Teams that manage project configurations in Jira can convert their specifications to TOML for direct use in Rust (Cargo.toml), Python (pyproject.toml), or other tools that read TOML configuration. The structured nature of TOML ensures that extracted data is properly typed and organized in a machine-readable format.

This conversion is also valuable for documenting configurations within Jira and then generating the actual configuration files. Development teams can maintain human-readable configuration specifications in Confluence pages and automatically generate TOML files for their projects.

Key Benefits of Converting JIRA to TOML:

  • Structured Output: Transform Jira content into organized key-value pairs
  • Configuration Ready: Generate config files from Jira specifications
  • Strong Typing: TOML preserves data types (strings, numbers, booleans)
  • Human Readable: TOML is designed to be easy to read and edit
  • Tool Integration: Direct use in Cargo, pyproject, Hugo, and more
  • Comment Support: Add inline documentation with TOML comments
  • Modern Standard: TOML is gaining adoption in modern development workflows

Practical Examples

Example 1: Project Configuration to TOML

Input JIRA file (config.jira):

h2. Project Configuration

*Project Name:* MyApp
*Version:* 2.1.0
*Author:* Development Team

h3. Dependencies
||Package||Version||Required||
|express|4.18.2|Yes|
|lodash|4.17.21|Yes|
|jest|29.7.0|No|

h3. Build Settings
* Target: ES2022
* Module: CommonJS
* Source Map: Enabled

Output TOML file (config.toml):

# Project Configuration
# Converted from JIRA markup

[project]
name = "MyApp"
version = "2.1.0"
author = "Development Team"

[[dependencies]]
package = "express"
version = "4.18.2"
required = true

[[dependencies]]
package = "lodash"
version = "4.17.21"
required = true

[[dependencies]]
package = "jest"
version = "29.7.0"
required = false

[build]
target = "ES2022"
module = "CommonJS"
source_map = true

Example 2: Environment Settings to TOML

Input JIRA file (env.jira):

h2. Environment Configuration

h3. Database
* Host: db.example.com
* Port: 5432
* Name: production_db
* Pool Size: 20

h3. Cache
* Provider: Redis
* Host: cache.example.com
* TTL: 3600
* Max Memory: 512mb

Output TOML file (env.toml):

# Environment Configuration
# Converted from JIRA markup

[database]
host = "db.example.com"
port = 5432
name = "production_db"
pool_size = 20

[cache]
provider = "Redis"
host = "cache.example.com"
ttl = 3600
max_memory = "512mb"

Example 3: Deployment Spec to TOML

Input JIRA file (deploy.jira):

h1. Deployment Specification

*Service:* user-api
*Region:* us-east-1

h3. Resources
||Resource||Min||Max||
|CPU|2 cores|8 cores|
|Memory|4 GB|16 GB|
|Replicas|3|10|

h3. Health Check
* Endpoint: /health
* Interval: 30s
* Timeout: 5s
* Unhealthy Threshold: 3

Output TOML file (deploy.toml):

# Deployment Specification
# Converted from JIRA markup

[service]
name = "user-api"
region = "us-east-1"

[resources.cpu]
min = "2 cores"
max = "8 cores"

[resources.memory]
min = "4 GB"
max = "16 GB"

[resources.replicas]
min = 3
max = 10

[health_check]
endpoint = "/health"
interval = "30s"
timeout = "5s"
unhealthy_threshold = 3

Frequently Asked Questions (FAQ)

Q: How is Jira content mapped to TOML structure?

A: Jira headings become TOML table sections, lists become arrays or key-value pairs, and tables are converted to arrays of tables. The document hierarchy maps naturally to TOML's nested table structure.

Q: Can I use the output as a configuration file?

A: Yes, the generated TOML is valid and can be parsed by any TOML-compatible library. However, you may need to adjust key names and data types to match your application's expected configuration schema.

Q: How are Jira tables converted to TOML?

A: Jira tables with headers are converted to TOML arrays of tables ([[section]]), where each table row becomes an entry with the header column names as keys. This produces a structured, queryable TOML representation.

Q: Are data types preserved in the conversion?

A: The converter attempts to detect data types from Jira content. Numbers are stored as integers or floats, boolean-like values (Yes/No, True/False) as booleans, and everything else as strings. You can adjust types after conversion.

Q: Can I use this for Cargo.toml or pyproject.toml?

A: The output is valid TOML, but Cargo.toml and pyproject.toml have specific required schemas. You can use the converter to generate initial content and then adjust the structure to match the required format.

Q: How are Jira code blocks handled in TOML?

A: Code block content is stored as multi-line TOML strings using triple-quote syntax ("""). The code content is preserved as-is within the string value.

Q: Does TOML support comments from Jira content?

A: Yes, TOML supports single-line comments with # prefix. Descriptive text from Jira that does not map to key-value pairs can be included as TOML comments to preserve context.

Q: How are nested Jira lists handled?

A: Nested Jira lists (**, ***) are converted to nested TOML tables or arrays depending on their structure. Each nesting level maps to a deeper table level in the TOML hierarchy.