Table of Contents

Formatting Passages

Sometimes you'd like to apply styles to your text – to italicize a book title, for example. You can do this with simple formatting codes that are similar to the double brackets of a link. Here is what's available to you:

Formatting

Source Code

Appears As

Resulting HTML

Italics

//text//

text

<em>text</em>

Boldface

''text''

text

<strong>text</strong>

Underline

__text__

text

<u>text</u>

Strikethrough

==text==

text

<strike>text</strike>

Subscript

H~~2~~O

H2O

H<sub>2</sub>O

Superscript

meters/second^^2^^

meters/second2

meters/second<sup>2</sup>

Monospace

{{{a //word//}}}

a //word//

<code>a //word//</code>

Comment

/%a comment%/

Error

@@error@@

error

error

Inline styling

@@font-weight:bold;text@@

text

text

Some additional syntax:

Formatting

Source Code

Resulting HTML

Bulleted list

* one
* two

<ul><li>one</li>
<li>two</li></ul>

Numbered list

# one
# two

<ol><li>one</li>
<li>two</li></ol>

Horizontal line

----

<hr>

Indented text

>Text

<blockquote>Text</blockquote>

Doubly indented text

>>Text

<blockquote><blockquote>Text</blockquote></blockquote>

Indented block

<<<
Text
<<<

<blockquote>Text</blockquote>

Heading <h1>

!Title

<h1>Title</h1>

Heading <h2>

!!Title

<h2>Title</h2>

Heading <h3>

!!!Title

<h3>Title</h3>

Heading <h4>

!!!!Title

<h4>Title</h4>

Heading <h5>

!!!!!Title

<h5>Title</h5>

A note about monospace

When you use the monospace {{{ and }}} syntax, all other syntax inside the triple curly braces will be disabled. This allows you to, for instance, include ASCII art in your stories, or write documentation about a particular macro or HTML tag without that being interpreted by Twine.

Escaped line breaks

One extra piece of syntax, separate from the above tables, is available: ending a line with a backslash \ will cause both the backslash and the line break to be removed from the passage, thus “joining together” both lines. The main purpose of this will become apparent when you use macros.

Table syntax

Some shorthand syntax for creating HTML tables exists, and is used like so:

Note: make sure the first | character in each line doesn't have any whitespace before it.

Comments

Comments are used to leave remarks about particular parts of a passage. They are not displayed when the player views the passage. You could leave reminder messages to yourself, explanations about what a particularly complex macro structure is doing, or advice to a collaborator working on this game with you.

HTML

If there's a particular kind of formatting that you'd like to use that isn't supported natively by Twine, you can put HTML tags directly into your story's text. You can, for instance, produce a block of centered text with a white border using custom CSS like so:

The sign reads:
<center style="padding:1em; border: 1px solid white;">TICKTOCKERSON INSTITUTE OF TEMPORAL FREEZING</center>
It hangs in midair, detached from the wall and tilted askew, as if some cosmic video watcher clicked
the Pause button as it began to fall.

Also, don't forget that HTML tags have a “style” attribute which can be used to apply CSS styles to the element.

Inline styling

Inline styling is a shorthand way to apply one-off CSS styles to a span of text. Where normally you would have to write:

Some text

You can instead write:

@@color:magenta;letter-spacing:3px;font-size:1.5em;Some text@@

Any text between the first @@ and the final ; is usually interpreted as CSS style properties to apply to the span.

Note that if you intend to re-use a particular set of CSS styles throughout the story, there is an easier way than copying and pasting the same inline style syntax over and over! You should create a stylesheet and define a CSS class (say, that you named “hotpink”) like so:

.hotpink {
color:magenta;
letter-spacing:3px;
font-size:1.5em;
}

This class collects several CSS properties into a set that you wish to re-use many times throughout your story. You can simply write this syntax every time you want to use this class:

@@.hotpink;Some text@@

Any properties which begin with . are interpreted as CSS class names to apply to the style, instead of individual style properties.