2022-01-01
skrish
plain text playscript formatter written in ksh.
For the artistically inclined individual it may prove challenging to compose plays in the terminal and output them in a neatly formatted fashion with ease. skrish aims to alleviate from this burden by letting you compose plays in a plain text document with no formatting.
The main reason I wrote skrish is to be able to output text-file formats of plays ready to be published on gopher. The main benefit is the ability to easily set page widths and dialogue sections via flags without the need to preformat anything inside the original document.
skrish-lang
The syntax for composing your play is the following:
Do note that all initial tags must be followed by a tab or a space (or many). With the exception of #. All blocks of text must be separated by an empty line. Otherwise empty lines are printed as empty lines.
TITLE this is the title of your play SUB this is a subtitle, like the name of the author ACT title (and number) of an act # comment; doesn't get printed #name of a character to speak CH name Text following CH name is treated as direct speech. CH name must be followed by a block of text. * blocks beginning with * are treated as text describing an action. Blocks of text with no initial tag are treated as regular paragraphs and must be separated by empty lines to signify the beginning and end of a paragraph.
The previous will by default be formatted like so:
THIS IS THE TITLE OF YOUR PLAY this is a subtitle, like the name of the author 1 title (and number) of an act NAME: "Text following CH name is treated as direct speech. CH name must be followed by a block of text. name is the name of a character." * lines beginning with * are treated as text describing an action Blocks of text with no initial tag are treated as regular paragraphs and must be separated by empty lines to signify the beginning and end of a paragraph.
For more explation see the separate file of a play written in skrish-lang here and the same file outputted by skrish here. Do note the arbitrarity of line length in example1.txt. Lines can be written as blocks of text or single long lines.
Usage
$ ksh skrish.ksh [-d width] [-e width] [-w width] FILE > FORMATTED_FILE
Options
For a full list of options and further help, see the attached help via skrish -h
By default the widths and margins are designed for gopher text documents. They can be tuned with various flags.
-h Display this text. -d INT Fold dialogue at INT characters. (Default 40) -D INT Margin of dialogue from the left. (Default 8) -C INT Margin of character name. (Default 4) -e INT Width of event paragraphs. (Default 66) -E INT Margin of event paragraphs. (Default 4) -S INT Margin of subtitle. (Default 0) -T INT Margin of title. (Default 0) -w INT Width of regular paragraphs. Effectively the width of the entire document. (Default 72) -W INT Margin of paragraphs. (Default 2)
Download
Caveats
skrish right now does not fold your titles, subtitles or act titles. If these fields will extend your desired file width, use a regular paragraph.