Stripdown is a superset of Markdown for writing comic book scripts. It takes inspiration from Markdown, Fountain, and programming editors.
Stripdown is not an app or set of features. It is a syntax that allows for certain features to exist. I believe a good comic book script editor should have all of the following features:
And then there are some other nice-to-haves:
A script is not an end in itself. It is a communication tool. A script is a structured way for a writer to describe to an artist and to a letterer what the art should look like, what the text should be, and what story they’re trying to tell.
The overall design goal of Stripdown is the same as that of Markdown:
The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions. - John Gruber
Unlike screenplays and teleplays, comic book scripts have no generally recognized standard. However, there are some basic elements found in most scripts no matter the format:
A script title should use level-1 heading. Either the ATX or Setext heading syntax will work, though the simpler ATX syntax is preferred.
# Lost in Time
Lost in Time
============
Only one level-1 heading should be used in the document.
Page headings use the level-2 heading. Again, the ATX syntax is preferred.
## Page 1
Page 1
------
A line can be recognized as a page heading by matching both of the following rules:
The word “page” is optional, but recommended. To support all languages, any words can be used in the heading and the location of the numerals does not matter.
Markdown parsers will treat these like other level-2 headings. Stripdown parsers will use the numbering to allow for validation and other supportive features, as well as create page breaks to assist with reading.
Panel headings use the level-3 ATX heading. (Markdown only supports Setext style headings for levels 1 and 2.)
### Panel 1
A line can be recognized as a panel heading by matching both of the following rules:
As with page headings, the word “panel” is optional but recommended.
Markdown parsers will treat these like other level-3 headings. Stripdown parsers will use the numbering to allow for validation and other supportive features.
Heading numbers must be written in Western Arabic numerals. They can appear anywhere within the heading. Non-numeric characters and spaces are ignored.
## Page 1
(English)
## Seite 2
(German)
## Página 3
(Spanish)
## Страница 4
(Russian)
## 第5页
(Chinese)
## 6ページ
(Japanese)
## 7쪽
(Korean)
## 8 الصفحة
(Arabic)
## 9 עמוד
(Hebrew)
Both page and panel headings support ranges of numbers. This can be used for defining multi-page spreads or panel sequences that would be too wordy to spell out. Ranges are separated by one of the following characters:
The order of the numbers does not matter. Languages that are read left-to-right place the lower number on the left, while languages read right-to-left place the lower number on the right. Because there is no ambiguity in the order of the pages, either direction works. Parsers must treat the lower number as the starting page or panel, and the higher number as the ending page or panel.
## Pages 1-2
(English)
## Seiten 3-4
(German)
## Páginas 5-6
(Spanish)
## Страница 7-8
(Russian)
## 第9-10页
(Chinese)
## 11〜12ページ
(Japanese)
## 13-14쪽
(Korean)
## 16-15 الصفحات
(Arabic)
## 18-17 עמודים
(Hebrew)
As in CommonMark, numbers can be backslash-escaped. Escaped numbered headings should be ignored by parsers. They should not be autocorrected or considered invalid, and the numeric value should not be used for correcting later headings.
The following example is valid because the “Notes on Lost in Time 1” heading is ignored.
## Page 1
## Notes on Lost in Time \1
## Page 2
There may be cases where you need to prevent a heading number from being autocorrected, but still consider its value for further headings. You may, for example, break your script up into multiple text documents and thus need to start the page numbering at something other than 1. Or you may have a two-page spread that absolutely needs to be at the center of the comic book to avoid bleed. You may want to preserve that numbering even while adding and removing earlier pages.
In this case, you can force the numbering by padding it with a 0.
## Page 10
## Pages 012-13
## Page 14
This is valid because 012 begins with a leading 0. The missing 11th page is ignored.
Note that only the escaped number is ignored, so the following heading example will be counted as panel 4:
### Panel 4 of \6
A speaker block is defined by ending a line in a colon and immediately following it with a non-blank line.
A speaker is any line that meets all of the following criteria.
A dialogue block is any line or group of lines immediately following a speaker block with no blank lines in between.
Speaker:
This is dialogue.
This is also dialogue.
This is not dialogue. The blank line above ends the previous dialogue block.
Not a speaker:
The blank line above prevents the colon-terminating line from being considered a speaker block.
That makes this a normal paragraph as well.
## This is a heading:
- This is a list item:
This syntax has no significance in Markdown. The example block above will be treated as a normal paragraph. Even the line break after the colon will be ignored.
Speaker: This is dialogue. This is also dialogue.
A parenthetical is a line entirely wrapped in parentheses. These can be used for different purposes, such as after speaker lines to add descriptors for the letterer, or after page headings to override auto-generated page summaries.
## Page 12-13
(Two-page splash)
### Panel 1
(No border or bleed)
Villain:
(Shouting)
**Time to meet your maker!**
When used after a speaker line, they are not to be considered part of the dialogue.
In editors that support it, the following YAML frontmatter property names have special meanings and requirements.
characters
A list of character names to use in autocompletion.
characters:
- Annette
- Blanche
- Estelle
pageTurnDirection
The direction a book is read in the published language and region. In Western comics, this is usually ltr
(left-to-right). In Manga, this is usually rtl
(right-to-left).
Western comics:
pageTurnDirection: ltr
Manga and right-to-left languages:
pageTurnDirection: rtl
oddSide
The hand-side of the odd-numbered pages. In English-language books, page 1 is usually on the right-hand side. For Manga, page 1 is usually on the left-hand side.
pageTurnDirection
is “ltr”, oddSide
is usually be “right”.pageTurnDirection
is “rtl”, oddSide
is usually “left”.Western comics:
oddSide: right
Manga and right-to-left languages:
oddSide: left