Its-scripted v0.1.0: A screenplay template

I initially found out about typst after trying to write a non-english screenplay in latex and getting annoyed at the lack of proper multi-lingual support. By now I’ve become farrelly confident with typst and have been using it to write notes for my computer-science degree for the past semester. Recently I came back to the screenplay idea (the procrastinator that I am) but was surprised to find out there is no existing screenplay template for typst (at least not on typst universe) - so I decided to make my own. I’ve been working on it in my free time for the past month or so, and now it’s finally out! Introducing its-scripted - a screenplay template for typst:

I took a relatively minimal approach with this, relying a lot on existing typst elements so you can benefit from that sweet syntactic sugar. Here’s a simple scene written using it:

= INT. WORK AREA

The Librarian is alone in a back room sorting books for reshelving.
Behind her is the card catalogue. One of the books attracts her interest
and she starts leafing through it.

== THE CARD CATALOGUE

Another eerie note is heard as one of the drawers silently slides open
behind the Librarian and hundreds of index cards start popping out. The
Librarian continues reading completely oblivious to this strange
phenomenon.

She gets up and moves past another row of cabinets. Two more drawers
quietly slide open, and thousands of file cards start shooting out of the
open drawers just behind her, but the Librarian still doesn't notice.

== THE STACKS

The Librarian works her way through rows and rows of old iron shelves
containing many thousands of volumes stacked from floor to ceiling. As
she puts the books back in their proper places, she slowly gets the
feeling that she's being watched. She continues her task but suddenly
hears a scratching noise and stops.

#dialog[
    === LIBRARIAN
    #parenthetical[puzzled]

    Hello? Is anybody there?
]

== A ROW OF BOOKS

As the Librarian walks down the aisle, books start shooting off the shelf
behind her. She turns suddenly and sees the fallen books.

== THE LIBRARIAN

Frightened now, she walks slowly to the end of the aisle and tentatively
peeks around the corner. Seeing no one, she starts to scratch her head
and suddenly a dozen books fly off the shelf right in front of her and
fall to the floor.

#dialog[
    === LIBRARIAN
    #parenthetical[frightened]

    All right! Who's there? Lyle? Is that you?
]

Very slowly now, her heart pounding, the Librarian tiptoes to the other
end of the aisle. She gets to the corner and starts to peek around it,
afraid to look but unable to resist.

= INT. THE NEXT AISLE -- DAY

The Librarian comes slowly around the end of the stacks and gets her first
look at the thing that's been watching her. Her eyes go very wide and her
mouth opens in horror. She screams.


(this was the opening to Ghost-Busters, for anyone who didn’t recognize)

You can find out more information about actually using the package on it’s universe page or in the official documentation.

This package is still pre-1.0 everything is up for debate and I’d be happy to hear any suggestions. Some things I would like to do in future releases are:

  • Creating a proper template that you can use with typst init - this is technically just a library.
  • Improving the documentation - currently it’s just a markdown file that has to be separately maintained.
  • Get closer to the industry standard - I’ve done the best I can to replicate professional screenwriting software such as Final-Draft with the resources available to me, but at the end of the day I’m just a hobbyist so there is surely room to improve.

If you have any suggestions or bugs you found please submit an issue on the github, and off course any code submissions will be greatly appreciated - though please create an issue before submitting any code that may not prove useful.

I also encourage anyone reading this to make their own screen-writing packages (and not necessarily just templates) - currently this is the only package that pops up when you search screenplay on typst universe, which I think is a shame considering how suitable it is for the job in my eyes.

Please tell me what you think and whether or not this seems like it could be useful to you.

7 Likes

Very nice idea! It seems like a great project to start creating your own typst template!

It would be great if you could provide the preview of your example code as an image file or you can upload the PDF file on the forum.

3 Likes

Thanks for the kind words! I should’ve probabeley mentioned it in the README but you can download the compiled pdf from the release page on github.