tpmlang
v0.2.0
Published
🎭 Theater Play Markup Language
Downloads
5
Readme
tpml
🎭 Theater Play Markup Language
What is it?
tpml is a markup language for theater plays. It is designed to be easy to read and write, and to be easy to parse.
Why?
In school, we're currently writing a play. At first, we had various files in all different kinds of formats and layouts. Pages files, Word files, PDFs, Text Documents, etc. I was tasked with combining these into a single file, and I decided to write a parser for a markup language.
Should I use this for my play?
Probably not. This is a project I made for fun, and it's not really meant to be used for anything serious. It's also not very feature-rich or battle-tested.
How does the markup language work?
The markup language is very simple. A .tpml
file consists of one "feature" per line. A feature can be a line of dialogue, a stage direction, a scene heading or similiar.
Features
Line of dialogue
A line of dialogue is a line of text that is spoken by a character. It is written as follows:
<CHARACTER> This is dialogue.
Stage direction
A stage direction is a line of text that describes what is happening on stage. It is written as follows:
This is a stage direction
Scene heading
A scene heading is a line of text that describes the scene. It is written as follows:
! SCENE HEADING
Seperator
The seperator is a page break (but can be styled to be just a line) that is used to seperate scenes. It is written as follows:
---
Subfeatures
⚠️ Note: Subfeatures are not yet implemented.
Subfeatures are features that are part of another feature. They are written as follows:
Comment
A comment is a line of text that is not part of the play. It is written as follows:
# This is a comment.
or
<ROMEO> Hello! # Change this later.
Action
An action is a line of text that describes what is happening in the scene. It is written as follows:
*Romeo walks forwards*
or
<ROMEO> Hello! *walks forwards*
Adjective
An adjective is a line of text that describes how dialogue is spoken. It is written as follows:
<ROMEO> Stop! [angrily]