Extension:Sternograph

Adds the &lt;sterno> tag to allow easy formatting of plays and interviews, or any other kind of spoken word transcript.

Introduction
Currently on MediaWiki, if one wishes to provide an in-text quote one uses the &lt;blockquote> tag or a template. This is fine for short quotes, but on sites such as WikiMedia or Wikia we don't have such simple quotes. In some cases, we have transcripts of whole scenes with multiple speakers: situations that do not lend themselves well to blockquotes and templates. Currently, one must include a manual of style to demonstrate exactly how to format these transcripts.

The drawbacks to this approach are: Stephen: That's with a P-H. Steven: That's with a V. Am I the same person?
 * Multiple specifications. Changing the formatting for one transcript does not guarantee the change is reflected in all other transcripts.  It's also possible that one speaker's cue is different: for example:
 * Inconsistency. Editors have better things to do than making sure all of the transcripts follow the manual of style.
 * Inconvenience. Repeatedly applying formatting every other line is tedious, even in wiki format.

This is where the Sternograph extension comes in. It provides a new tag, within which one can use wiki-style markup to format the speech, unspoken directions, and even a short context paragraph to come immediately underneath the quote. Formatting of the speakers' names and directions are automatically applied from a CSS file.

Usage
Unless otherwise noted, the Sternograph completely ignores whitespace. This means you can place the delimeters on different lines without affecting the appearance of the sternograph.

(All samples are from The Merchant of Venice Act IV Scene i)

Lines
The simplest usage of the sternograph is to include the speaker's name, an = (equals sign) character to separate the speaker from the line, and the ^ (caret) character to separate different speakers. As in this example:

The Sternograph first looks for all the carets and separates them into different sections. If the section contains an equals sign, that is considered a spoken line; otherwise, the section is considered a stage direction. Stage directions are formatted to appear differently from a spoken line.

In a spoken line, everything that occurs before the equal sign is considered to be the name of the speaker; everything that occurs after the equal sign is considered to be what is actually spoken. The name of the speaker is (automatically) formatted differently from the rest of the line.

Only the first equal sign after the caret is intercepted by the Sternograph: all subsequent equals signs are interpreted as normal wiki-text. This means a template in the speaker block that uses equals signs will not work correctly; you can work around this using a Speakers section.

Directions
Stage directions are text that appear in the Sternograph but are not actually spoken. They may appear on their own (a block direction), or as part of a spoken line (an in-line direction). This sample demonstrates both types of directions:

An in-line direction is enclosed within the _ (underscore) character. If no closing underscore is present, then everything until the next caret is interpreted as an in-line direction.

Context
A Sternograph's context is a short paragraph that comes after the spoken line, which can include any text you like.

The context block always comes after the spoken lines, and is indicated by placing 2 carets (^^) in succession.

Speakers
To save having to re-type a speaker's name in full, you can declare a Speaker Block. The Speaker Block always precedes the spoken lines, and is separated from the lines by 3 carets in succession (^^^).

You can also use the short form of the text within angle brackets (&lt; and &gt;), to save having to type them within spoken lines or stage directions.

Installation

 * 1) In your MediaWiki installation, create a new extensions folder: /extensions/Sternograph
 * 2) Download the latest version from the MediaWiki Subversion repository and place it in your Sternograph folder.
 * 3) Add the following line to your LocalSettings.php file: require_once( "$IP/extensions/Sternograph/Sternograph.php" );
 * 4) Copy the contents of Sternograph.css into your Common.css file. You can customise each of these classes as you would any other CSS class.

Version 1.1

 * Internationalisation keys corrected to current standard. (Thanks to Raymond and Platonides for keeping them in-line.)

Version 1.0

 * Added to MediaWiki's SVN repository.
 * Changed the delimeters to use ^ and _ to help with internationalisation.

Version 0.0

 * The internationalisation file is there, but the only language is English.