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.