Module:Folger Shakespeare/configuration

-- This module's function lookup table, used by the calling context

local folger_config = {};

-- printf()-like format string for the Folger play URLs.

local url_pattern = 'http://www.folgerdigitaltexts.org/?chapter=5&play=%s&loc=%s'

-- printf()-like format string for the act, scene, line display.

local location_format = '[%s %s.%s.%s].'

-- printf()-like format string for the FTLN display.

local ftln_format = 'ftln [%s %s].'

-- TODO: Need some way to specify things like Prologue, Epilogue, Scene Direction, etc.

-- Aliases by which plays can be specified in the wrapping template.

-- Every entry is (and must be) an associative array because we loop over it

-- later in order to extract the aliases. The key is the play code from Folger.

local _aliases = {

['AWW'] = {'All\'s Well That Ends Well'},

['Ant'] = {'Antony and Cleopatra'},

['AYL'] = {'As You Like It'},

['Err'] = {'The Comedy of Errors'},

['Cor'] = {'Coriolanus'},

['Cym'] = {'Cymbeline'},

['Ham'] = {'Hamlet'},

['1H4'] = {'Henry IV, Part 1', '1H4'},

['2H4'] = {'Henry IV, Part 2', '2H4'},

['H5'] = {'Henry V', 'H5'},

['1H6'] = {'Henry VI, Part 1', '1H6'},

['2H6'] = {'Henry VI, Part 2', '2H6'},

['3H6'] = {'Henry VI, Part 3', '3H6'},

['H8'] = {'Henry VIII', 'H8'},

['JC'] = {'Julius Caesar'},

['Jn'] = {'King John'},

['Lr'] = {'King Lear'},

['LLL'] = {'Love\'s Labour\'s Lost'},

['Mac'] = {'Macbeth'},

['MM'] = {'Measure for Measure'},

['MV'] = {'The Merchant of Venice'},

['Wiv'] = {'The Merry Wives of Windsor'},

['MND'] = {'A Midsummer Night\'s Dream'},

['Ado'] = {'Much Ado About Nothing'},

['Oth'] = {'Othello'},

['Per'] = {'Pericles'},

['R2'] = {'Richard II', 'R2'},

['R3'] = {'Richard III', 'R3'},

['Rom'] = {'Romeo and Juliet', 'RJ', 'R&J'},

['Shr'] = {'The Taming of the Shrew'},

['Tmp'] = {'The Tempest'},

['Tim'] = {'Timon of Athens'},

['Tit'] = {'Titus Andronicus'},

['Tro'] = {'Troilus and Cressida'},

['TN'] = {'Twelfth Night'},

['TGV'] = {'Two Gentlemen of Verona'},

['TNK'] = {'Two Noble Kinsmen'},

['WT'] = {'The Winter\'s Tale'},

}

-- Turn the table inside out, so looking up an alias will return the play code.

local aliases = {}

for play_id, alias_list in pairs(_aliases) do

for iterator, alias in ipairs(alias_list) do

aliases[alias] = play_id

end

end

-- Canonical names and Wikipedia article name for plays for display in output.

-- A map from Folger play code to a canonical name for in-article display.

-- All aliases are mapped to play code above, and here we map back to the

-- canonical name and Wikipedia article about that play.

local names = {

['AWW'] = {title = 'All\'s Well That Ends Well', article = 'All\'s Well That Ends Well'},

['Ant'] = {title = 'Antony and Cleopatra', article = 'Antony and Cleopatra'},

['AYL'] = {title = 'As You Like It', article = 'As You Like It'},

['Err'] = {title = 'The Comedy of Errors', article = 'The Comedy of Errors'},

['Cor'] = {title = 'Coriolanus', article = 'Coriolanus'},

['Cym'] = {title = 'Cymbeline', article = 'Cymbeline'},

['Ham'] = {title = 'Hamlet', article = 'Hamlet'},

['1H4'] = {title = 'Henry IV, Part 1', article = 'Henry IV, Part 1'},

['2H4'] = {title = 'Henry IV, Part 2', article = 'Henry IV, Part 2'},

['H5'] = {title = 'Henry V', article = 'Henry V (play)'},

['1H6'] = {title = 'Henry VI, Part 1', article = 'Henry VI, Part 1'},

['2H6'] = {title = 'Henry VI, Part 2', article = 'Henry VI, Part 2'},

['3H6'] = {title = 'Henry VI, Part 3', article = 'Henry VI, Part 3'},

['H8'] = {title = 'Henry VIII', article = 'Henry VIII (play)'},

['JC'] = {title = 'Julius Caesar', article = 'Julius Caesar (play)'},

['Jn'] = {title = 'King John', article = 'King John (play)'},

['Lr'] = {title = 'King Lear', article = 'King Lear'},

['LLL'] = {title = 'Love\'s Labor\'s Lost', article = 'Love\'s Labor\'s Lost'},

['Mac'] = {title = 'Macbeth', article = 'Macbeth'},

['MM'] = {title = 'Measure for Measure', article = 'Measure for Measure'},

['MV'] = {title = 'The Merchant of Venice', article = 'The Merchant of Venice'},

['Wiv'] = {title = 'The Merry Wives of Windsor', article = 'The Merry Wives of Windsor'},

['MND'] = {title = 'A Midsummer Night\'s Dream', article = 'A Midsummer Night\'s Dream'},

['Ado'] = {title = 'Much Ado About Nothing', article = 'Much Ado About Nothing'},

['Oth'] = {title = 'Othello', article = 'Othello'},

['Per'] = {title = 'Pericles', article = 'Pericles, Prince of Tyre'},

['R2'] = {title = 'Richard II', article = 'Richard II (play)'},

['R3'] = {title = 'Richard III', article = 'Richard III (play)'},

['Rom'] = {title = 'Romeo and Juliet', article = 'Romeo and Juliet'},

['Shr'] = {title = 'The Taming of the Shrew', article = 'The Taming of the Shrew'},

['Tmp'] = {title = 'The Tempest', article = 'The Tempest'},

['Tim'] = {title = 'Timon of Athens', article = 'Timon of Athens'},

['Tit'] = {title = 'Titus Andronicus', article = 'Titus Andronicus'},

['Tro'] = {title = 'Troilus and Cressida', article = 'Troilus and Cressida'},

['TN'] = {title = 'Twelfth Night', article = 'Twelfth Night'},

['TGV'] = {title = 'The Two Gentlemen of Verona', article = 'The Two Gentlemen of Verona'},

['TNK'] = {title = 'The Two Noble Kinsmen', article = 'The Two Noble Kinsmen'},

['WT'] = {title = 'The Winter\'s Tale', article = 'The Winter\'s Tale'},

}

return {

aliases = aliases,

names = names,

url_pattern = url_pattern,

location_format = location_format,

ftln_format = ftln_format,

}