Convert JIRA to TOML
Max file size 100mb.
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 |
|
|
| Advantages |
|
|
| Disadvantages |
|
|
| Common Uses |
|
|
| Best For |
|
|
| 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.