art  ksh  play  software 

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.