Convert INI to TEXTILE

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

INI vs TEXTILE Format Comparison

Aspect INI (Source Format) TEXTILE (Target Format)
Format Overview
INI
Initialization File

Simple configuration file format organized into sections with key-value pairs. Used across Windows, PHP, Python, Git, and MySQL for storing application settings. Designed for simplicity with human-readable syntax that is also easily parsed by programs.

Configuration Key-Value
TEXTILE
Textile Markup Language

Lightweight markup language created by Dean Allen for producing well-structured HTML from plain text. Textile emphasizes readable source syntax and provides rich formatting including tables, footnotes, block quotes, and CSS class assignment. Popular in Redmine, Textpattern CMS, and Ruby on Rails projects.

Markup Language Web Publishing
Technical Specifications
Structure: Sections and key-value pairs
Encoding: Typically UTF-8 or ASCII
Comments: Semicolon (;) or hash (#)
Data Types: Strings only (no typing)
Extensions: .ini, .cfg, .conf
Structure: Inline markup with special characters
Encoding: UTF-8
Output: HTML
Headings: h1. h2. h3. (dot notation)
Extensions: .textile, .txt
Syntax Examples

INI uses sections and key-value pairs:

[api]
version = 2.1
base_url = /api/v2
rate_limit = 1000

; Authentication
[auth]
method = oauth2
token_expiry = 3600

Textile uses inline markup symbols:

h2. API Configuration

|_. Key |_. Value |
| version | @2.1@ |
| base_url | @/api/v2@ |
| rate_limit | @1000@ |

h2. Authentication

p. _OAuth2 authentication settings_

|_. Key |_. Value |
| method | @oauth2@ |
| token_expiry | @3600@ |
Content Support
  • Named sections with brackets
  • Key-value pair assignments
  • Single-line comments
  • Multi-line values (with continuation)
  • Simple string values
  • No formatting features
  • Headings (h1. through h6.)
  • Bold, italic, strikethrough text
  • Tables with header rows
  • Ordered and unordered lists
  • Inline code and code blocks
  • Block quotes and footnotes
  • CSS class and ID assignment
  • Images and hyperlinks
Advantages
  • Extremely simple syntax
  • Easy to read and edit
  • Universal platform support
  • Minimal learning curve
  • Lightweight files
  • Fast parsing
  • Rich formatting from simple markup
  • Clean, readable source text
  • Built-in table support
  • CSS class integration
  • Footnote support
  • Redmine native format
  • Generates clean HTML output
Disadvantages
  • No data types
  • Flat structure only
  • No nesting support
  • No formal standard
  • No visual formatting
  • Less popular than Markdown
  • Limited tool and editor support
  • Complex table syntax
  • Fewer learning resources
  • Not supported by GitHub/GitLab
Common Uses
  • Application configuration
  • Windows system settings
  • PHP settings (php.ini)
  • Git configuration (.gitconfig)
  • MySQL configuration (my.cnf)
  • Python setup.cfg files
  • Redmine wiki pages and issues
  • Textpattern CMS content
  • Ruby on Rails documentation
  • Web content authoring
  • Project documentation wikis
  • Blog post formatting
Best For
  • Simple application settings
  • Platform-independent configs
  • Quick configuration editing
  • Machine-readable parameters
  • Redmine documentation pages
  • Wiki-based config references
  • Web-published settings guides
  • Structured content with tables
Version History
Origin: Early Windows era (1980s)
Standardization: No formal standard
Status: Widely used, stable
Evolution: Minimal changes over decades
Introduced: 2002 (Dean Allen)
Current Version: Textile 2
Status: Stable, niche usage
Evolution: Textpattern CMS, Redmine adoption
Software Support
Windows: Native support
Python: configparser module
PHP: parse_ini_file()
Other: Nearly all programming languages
Redmine: Default markup format
Textpattern: Native CMS format
Ruby: RedCloth library
Other: Python textile, PHP Textile

Why Convert INI to TEXTILE?

Converting INI configuration files to Textile markup is essential when you need to publish configuration documentation in platforms that use Textile as their native formatting language. Redmine, one of the most widely used open-source project management tools, uses Textile as its default wiki and issue markup format. By converting INI to Textile, you can create rich configuration reference pages directly in your Redmine wiki with properly formatted headings, tables, and code blocks.

Textile's built-in table syntax is particularly well-suited for presenting configuration data. Each INI section can be converted to a heading (using h2. or h3. notation), and key-value pairs can be displayed in clean Textile tables with header rows, monospaced code formatting for values, and descriptive notes derived from INI comments. This produces configuration documentation that is both visually appealing and easy to maintain.

Unlike Markdown, Textile supports inline CSS class assignment, footnotes, and block-level attributes, giving you more control over the presentation of configuration documentation. You can highlight critical settings with custom styling, add footnotes explaining default values, and create block quotes for important configuration warnings -- all using Textile's concise syntax.

The conversion is also valuable for teams using Textpattern CMS for their documentation sites, Ruby on Rails projects with Textile-based help pages, or any web application that renders Textile content. The Textile output is clean, human-readable even in source form, and generates semantic HTML when processed by a Textile parser, ensuring accessibility and search engine optimization for your published configuration guides.

Key Benefits of Converting INI to TEXTILE:

  • Redmine Integration: Post directly to Redmine wikis and issue descriptions
  • Table Formatting: Clean configuration tables with header rows and code styling
  • CSS Integration: Apply custom CSS classes for visual emphasis
  • Footnote Support: Add explanatory footnotes for configuration values
  • Clean HTML Output: Generates semantic, accessible HTML
  • Readable Source: Textile source is easy to read and edit manually
  • Web-Ready: Publish configuration docs on Textile-powered platforms

Practical Examples

Example 1: API Configuration for Redmine Wiki

Input INI file (api_config.ini):

[api]
; REST API configuration
version = 3.0
base_url = https://api.example.com/v3
timeout = 30000
max_retries = 3

[authentication]
; JWT authentication settings
algorithm = RS256
issuer = auth.example.com
token_lifetime = 3600
refresh_enabled = true

Output Textile file (api_config.textile):

h1. API Configuration

h2. API

p. _REST API configuration_

|_. Parameter |_. Value |
| version | @3.0@ |
| base_url | @https://api.example.com/v3@ |
| timeout | @30000@ |
| max_retries | @3@ |

h2. Authentication

p. _JWT authentication settings_

|_. Parameter |_. Value |
| algorithm | @RS256@ |
| issuer | @auth.example.com@ |
| token_lifetime | @3600@ |
| refresh_enabled | @true@ |

Example 2: Deployment Settings Documentation

Input INI file (deploy_settings.ini):

[kubernetes]
# Cluster configuration
namespace = production
replicas = 3
cpu_limit = 500m
memory_limit = 512Mi

[docker]
; Container image settings
registry = registry.example.com
image = myapp
tag = v2.4.1
pull_policy = IfNotPresent

Output Textile file (deploy_settings.textile):

h1. Deployment Settings

h2. Kubernetes

p. _Cluster configuration_

|_. Setting |_. Value |
| namespace | @production@ |
| replicas | @3@ |
| cpu_limit | @500m@ |
| memory_limit | @512Mi@ |

h2. Docker

p. _Container image settings_

|_. Setting |_. Value |
| registry | @registry.example.com@ |
| image | @myapp@ |
| tag | @v2.4.1@ |
| pull_policy | @IfNotPresent@ |

Example 3: Monitoring Configuration Wiki Page

Input INI file (monitoring.ini):

[prometheus]
; Metrics collection
scrape_interval = 15s
evaluation_interval = 15s
retention = 30d

[alertmanager]
; Alert routing configuration
smtp_from = [email protected]
smtp_to = [email protected]
slack_webhook = https://hooks.slack.com/xxx
repeat_interval = 4h

Output Textile file (monitoring.textile):

h1. Monitoring Configuration

h2. Prometheus

p. _Metrics collection_

|_. Parameter |_. Value |
| scrape_interval | @15s@ |
| evaluation_interval | @15s@ |
| retention | @30d@ |

h2. Alertmanager

p. _Alert routing configuration_

|_. Parameter |_. Value |
| smtp_from | @[email protected]@ |
| smtp_to | @[email protected]@ |
| slack_webhook | @https://hooks.slack.com/xxx@ |
| repeat_interval | @4h@ |

Frequently Asked Questions (FAQ)

Q: What is Textile markup?

A: Textile is a lightweight markup language created by Dean Allen in 2002. It converts simple text notation into well-formed HTML. Textile uses intuitive symbols like asterisks for bold (*bold*), underscores for italic (_italic_), and pipe characters for tables. It is the default markup language in Redmine and Textpattern CMS.

Q: Where can I use Textile markup?

A: Textile is primarily used in Redmine (project management), Textpattern CMS (web publishing), and some Ruby on Rails applications. Libraries exist for Python (textile), Ruby (RedCloth), PHP (PHP Textile), and JavaScript, allowing you to render Textile content in custom applications.

Q: How does Textile differ from Markdown?

A: While both are lightweight markup languages, Textile has some unique features: built-in CSS class support (p(classname). text), footnote notation, and more predictable table formatting. Markdown is more widely supported (GitHub, GitLab, VS Code), while Textile is dominant in Redmine and Textpattern environments.

Q: Can I paste the Textile output into Redmine?

A: Yes! The generated Textile is fully compatible with Redmine's wiki and issue description fields. Simply copy the Textile content and paste it into any Redmine text field that supports Textile formatting. The headings, tables, and code formatting will render correctly when previewed or saved.

Q: How are INI values formatted in Textile?

A: Configuration values are wrapped in Textile's inline code notation (@value@), which renders them in a monospaced font with subtle background highlighting. This visually distinguishes configuration values from labels and descriptions, making the documentation easier to scan.

Q: Does Textile support syntax highlighting for code blocks?

A: Textile supports code blocks using bc. (block code) notation, which preserves whitespace and renders in monospaced font. Some Textile processors (like Redmine's) also support syntax highlighting with bc[language]. notation. However, basic inline code with @@ is usually sufficient for configuration values.

Q: Can I add custom styling to the Textile output?

A: Yes! Textile uniquely supports inline CSS class assignment. For example, p(important). creates a paragraph with class "important", and table rows can have custom classes. This allows you to style configuration documentation to match your project's visual theme when rendered as HTML.

Q: Is the Textile output human-readable in source form?

A: Yes, Textile was designed to be readable even before rendering. The source text uses intuitive symbols (h2. for headings, |for tables, @for code) that are easy to understand. This means your configuration documentation is readable both in its raw Textile form and when rendered as HTML.