Markdown to Textile Converter

Convert Markdown into Textile markup, the lightweight syntax used by Redmine, classic Movable Type, and a range of wikis and bug trackers. It maps headings, bold and italic, links, images, lists, fenced code, blockquotes, and pipe tables to their Textile equivalents. Paste Markdown and get Textile you can drop straight into those systems — all in your browser.

How to use the Markdown to Textile Converter

Paste or type Markdown into the left box and the Textile equivalent appears on the right, updating as you type. Use the Copy button to grab the result for Redmine, a Movable Type blog, or any wiki that speaks Textile. The conversion is purely syntactic, so your text content is never changed — only the markup around it.

Most common Markdown constructs are supported: ATX headings become h1. through h6.; **bold** becomes *bold* and *italic* becomes _italic_ (Textile swaps which symbol means which); links become "text":url; images become !url!; inline code becomes @code@; fenced code blocks become bc. blocks; blockquotes become bq.; and pipe tables become Textile tables with |_. header cells. Ordered and unordered lists, including nesting, map to repeated # and * markers.

Everything runs in your browser, so conversion is instant, works offline, and nothing you paste is uploaded anywhere.

Markdown and Textile, and how they map

Textile is a lightweight markup language created by Dean Allen in 2002 for the Textpattern content management system, and it predates Markdown by a couple of years. Like Markdown, its goal is to let you write formatted text in plain ASCII that reads naturally and converts cleanly to HTML, but it made different syntactic choices. Textile leans on a system of block signatures — short prefixes like h1., bq., and bc. that announce what a block is — and on punctuation wrappers for inline styling. It became the native format of Redmine, an early version of Movable Type, and several wikis and issue trackers, so plenty of content and templates are still written in it.

Because the two languages cover almost the same ground, conversion is mostly a matter of swapping notations. Headings are the clearest case: Markdown\'s # Title becomes Textile\'s h1. Title, with the number tracking the heading level. The most error-prone difference is emphasis. Markdown uses * or _ for italic and doubles them for bold, whereas Textile uses _underscores_ for italic and *asterisks* for bold — so the symbols essentially trade meanings, and a naive find-and-replace would turn bold into italic. A correct converter has to recognise the doubled Markdown markers first, hold them aside, translate the single markers, and only then restore the bold, which is exactly what this tool does internally so the two never collide.

The block constructs follow the same spirit. Links flip from Markdown\'s [text](url) to Textile\'s "text":url, and images from ![alt](url) to !url!. Inline code wrapped in backticks becomes @code@, and a fenced code block becomes a bc. block so the contents are shown verbatim without Textile trying to format them. Blockquotes gain a bq. signature, and pipe tables map to Textile\'s own table syntax, where a header cell is marked with |_.. Lists are conceptually identical but use repeated marker characters for depth — ** for a second-level bullet rather than indentation. None of this changes your words; it simply re-expresses the structure in the dialect Textile-based systems expect, which is what makes moving a document between a Markdown editor and a Redmine ticket painless.

Common use cases

  • Redmine tickets. Convert Markdown notes into the Textile that Redmine issues and wikis use.
  • Legacy blogs. Move Markdown drafts into a Movable Type or Textpattern site.
  • Wikis and trackers. Paste formatted content into any tool whose markup is Textile.
  • Migration. Translate a batch of Markdown documents to Textile while keeping structure intact.

Frequently asked questions

Why do bold and italic symbols swap?

Markdown uses single asterisks or underscores for italic and doubled ones for bold. Textile reverses the asterisk and underscore roles: asterisks mean bold and underscores mean italic. The tool handles the swap so bold stays bold and italic stays italic.

How are code blocks converted?

Fenced Markdown code blocks become Textile bc. blocks, which display their contents verbatim, and inline backtick code becomes @code@. This stops Textile from interpreting symbols inside your code as formatting.

Does it convert tables?

Yes. Markdown pipe tables become Textile tables, with the header row's cells marked using the |_. prefix and the alignment delimiter row dropped, since Textile expresses alignment differently.

Is my content sent anywhere?

No. The entire conversion runs in your browser with JavaScript, so your Markdown never leaves your device and the tool works offline.