Textile Viewer

Paste Textile markup and see it rendered as formatted HTML on the right. Textile is the lightweight markup language used by Textpattern and Redmine, with a syntax like h2. for headings, *strong*, _emphasis_, and bq. for blockquotes. The converter escapes your input first and then translates a practical subset of Textile, building the preview safely inside a sandboxed frame. Headings, inline styling, quotes, code blocks, ordered and unordered lists, links, images, and tables are all supported. Nothing is uploaded — the rendering happens entirely in your browser.

How to use the Textile Viewer

Type or paste Textile into the left box and watch it render on the right as you type. Press Example to load a snippet covering most of the supported syntax, or Clear to empty the editor. Blocks are separated by blank lines, the way Textile expects, so leave an empty line between a heading and the paragraph that follows it.

The supported syntax covers h1. through h6. headings; *strong*, _emphasis_, -deleted-, +inserted+, ^superscript^, and ~subscript~ inline spans; bq. blockquotes and bc. code blocks; numbered lists with # and bulleted lists with * at the start of a line; "label":url links and !url! images; and pipe-delimited tables written as |cell|cell|. A plain paragraph needs no marker, though you can write p. in front of one. The preview renders inside a sandboxed iframe so the converted markup is displayed faithfully without touching this page.

What is Textile?

Textile is a lightweight markup language designed to read naturally as plain text while converting cleanly to structured HTML. Dean Allen created it in 2002 for the Textpattern content-management system, and it went on to power a generation of blogs and, most durably, the Redmine project-tracking platform, where it remains a first-class formatting option to this day. Like Markdown, its goal is to let writers focus on words rather than tags: you mark a heading by writing h2. at the start of a line and emphasize a word by wrapping it in asterisks, and the processor turns that into the corresponding HTML element.

Where Textile differs from Markdown is in its richer, more explicit vocabulary. It distinguishes *strong* from _emphasis_ as separate semantic spans rather than overloading asterisks and underscores, and it has built-in syntax for deletions (-text-), insertions (+text+), superscript (^text^), and subscript (~text~) that base Markdown simply lacks. Block signifiers like bq. for blockquote and bc. for a code block are prefixed to a paragraph, and Textile carries a notation for attaching CSS classes, styles, and alignment to almost any element. That expressiveness made it attractive for content systems that needed fine control over output, at the cost of a syntax that is a little less forgiving and a little less universally recognized than Markdown.

Today Markdown has won the broader developer world — it is the lingua franca of README files, chat apps, and static-site generators — but Textile persists wherever the software that adopted it lives on, most notably across the large installed base of Redmine. If you administer or contribute to a Redmine instance, edit a Textpattern site, or migrate old content, you still meet Textile regularly. This viewer escapes your input before converting it, so any literal HTML you paste is shown as text rather than executed, and renders the result in an isolated frame, letting you preview Textile safely and privately without sending it to a server.

Common use cases

  • Drafting Redmine content. Preview an issue description, wiki page, or comment before posting it.
  • Editing Textpattern sites. Check how an article body renders without saving and reloading.
  • Learning the syntax. Experiment with Textile's headings, spans, lists, and tables to see what each produces.
  • Migrating content. Inspect how legacy Textile looks as HTML when moving to another system.
  • Private preview. Render Textile locally without sending it to any server.

Frequently asked questions

Which Textile features are supported?

Headings h1. to h6., the strong, emphasis, deleted, inserted, superscript and subscript spans, bq. blockquotes, bc. code blocks, ordered (#) and unordered (*) lists, "text":url links, !url! images, pipe tables, and p. paragraphs. It covers a practical subset, not every edge of the full Textile spec.

How does Textile differ from Markdown?

Textile has a richer explicit vocabulary: separate strong and emphasis markers, built-in deletion, insertion, superscript and subscript, and block signifiers like bq. and bc. Markdown is simpler and far more widely supported, but lacks several of those built-in spans.

Is it safe to paste Textile that contains raw HTML?

Yes. Your input is HTML-escaped before conversion, so literal tags are shown as text rather than run, and the preview is rendered inside a sandboxed iframe.

Where is Textile still used?

Most prominently in Redmine, where it is a default formatting option, and in Textpattern sites. You also meet it when migrating older blog or wiki content authored in Textile.

Is my text uploaded anywhere?

No. The conversion and preview run entirely in your browser. Nothing you paste leaves your device.