American Horror Story Wiki
American Horror Story Wiki
American Horror Story Wiki

Navbox creates navboxes (inter-article navigation block elements).

Module:Navbox imports Navbox and overrides or extends that Global Lua Module's functions.

Documentation

Package items

Navbox.character(frame) (function)
Character Constructs a navigation box for American Horror Story main characters.
Parameters:
frame Scribunto frame object. (Frame)
frame.args Invocation arguments table. (table)
Returns: Navbox wikitext (string)
Usage: {{American Horror Story Characters}}
Navbox.charactersAsylum(frame) (function)
Characters of Asylum Constructs a navigation box for Asylum main characters.
Parameter: frame Scribunto frame object. (Frame)
Returns: Navbox wikitext (string)
Usage: {{Characters of Asylum}}
Navbox.charactersRoanoke(frame) (function)
Characters of Roanoke Constructs a navigation box for Roanoke main and supporting characters.
Parameter: frame Scribunto frame object. (Frame)
Returns: Navbox wikitext (string)
Usage: {{Characters of Roanoke}}
Navbox.charactersDoubleFeature(frame) (function)
Characters of Double Feature Constructs a navigation box for Double Feature main and supporting characters.
Parameter: frame Scribunto frame object. (Frame)
Returns: Navbox wikitext (string)
Usage: {{Characters of Double Feature}}
Navbox.cast(frame) (function)
Cast Constructs a navigation box for American Horror Story cast members.
Parameters:
frame Scribunto frame object. (Frame)
frame.args Invocation arguments table. (table)
Returns: Navbox wikitext (string)
Usage: {{American Horror Story Cast}}
Navbox.charactersDoubleFeature(frame) (function)
Cast of Double Feature Constructs a navigation box for Double Feature main and supporting characters.
Parameter: frame Scribunto frame object. (Frame)
Returns: Navbox wikitext (string)
Usage: {{Cast of Double Feature}}
Navbox.episodesAHS(frame) (function)
Episodes of American Horror Story Constructs a navigation box for American Horror Story episodes.
Parameters:
frame Scribunto frame object. (Frame)
frame.args Invocation arguments table. (table)
Returns: Navbox wikitext (string)
Usage: {{American Horror Story Episodes}}
Navbox.episodesDoubleFeature(frame) (function)
Episodes of Double Feature Constructs a navigation box for Double Feature episodes.
Parameter: frame Scribunto frame object. (Frame)
Returns: Navbox wikitext (string)
Usage: {{Episodes of Double Feature}}
Navbox.episodesStories(frame) (function)
Episodes of American Horror Stories Constructs a navigation box for American Horror Stories episodes.
Parameters:
frame Scribunto frame object. (Frame)
frame.args Invocation arguments table. (table)
Returns: Navbox wikitext (string)
Usage: {{American Horror Stories Episodes}}
Navbox.locations(frame) (function)
Locations in American Horror Story Constructs a navigation box for American Horror Story locations.
Parameters:
frame Scribunto frame object. (Frame)
frame.args Invocation arguments table. (table)
Returns: Navbox wikitext (string)
Usage: {{American Horror Story Locations}}

See also

Navbox from Fandom Developers Wiki

Subpages

--- Navbox ''creates navboxes (inter-article navigation block elements).'' 
-- 
-- [[Module:Navbox]] imports [[w:c:dev:Global_Lua_Modules/Navbox|Navbox]]
-- and overrides or extends that [[w:c:dev:Global Lua Modules|Global Lua Module]]'s functions.
--  @module             Navbox
--  @class              navbox
--  @see                [[w:c:dev:Global_Lua_Modules/Navbox|Navbox from Fandom Developers Wiki]]
--  @alias              N
--  @release            beta
--  @author             [[User:FishTank]]
--  @require            [[w:c:dev:Navbox]]
--  @require            [[Module:HF]]
--  @require            [[Module:List]]
--  @require            [[w:c:dev:Module:Arguments]]
--  @credit             [[w:c:layton:User:Tjcool007|User:Tjcool007]]
local N = require('Dev:Navbox')

local HF = require('Module:HF')
local L = require('Module:List')
local getArgs = require('Dev:Arguments').getArgs
local data = mw.loadData( 'Module:HF/data' )
local list = L.main
local yesno = require('Module:Yesno')

--[===[
local Episodes = data.Episodes
local MainCharacters = data.MainCharacters
local LOC = data.Locations
local Cast = data.Cast
local SC = data.StoryCategories
local CharCat = data.CharacterCategories
local EpisCat = data.EpisodeCategories
local CastCat = data.CastCategories
local LocaCat = data.LocationCategories
local SpecialCat = data.Categories
local SN = data.StoryNames
local SG = data.StoryLogos
--]===]

local function bold (text)
	return ("'''" .. text .. "'''")
end

--- Supporting characters for a story
--  @table supporting
local supporting = {
	['Murder House'] = "[[Moira O'Hara]]␟[[Hayden McClaine]]␟[[Hugo Langdon]]␟[[Leah]]␟[[Lorraine Harvey]]␟[[Phil Critter]]␟[[Chad Warwick]]␟[[Dr. Hall]]␟[[Maria]]␟[[Patrick]]␟[[Hallie]]␟[[Travis Wanderly]]␟[[Billie Dean Howard]]␟[[Luke Maxcy]]␟[[Adelaide Langdon]]␟[[Infantata]]␟[[Nora Montgomery]]␟[[Troy and Bryan]]␟[[Michael Langdon]]␟[[R. Franklin]]",
	['Asylum'] = "[[Bloody Face]]␟[[Charlotte Brown]]␟[[Micro-Bot]]␟[[Missy Stone]]␟[[Leigh Emerson]]␟[[Spivey]]␟[[Carl]]␟[[Leo Morrison]]␟[[Mother Claudia]]␟[[Alma Walker]]␟[[Johnny Morgan]]␟[[Teresa Morrison]]␟[[Pepper]]␟[[Shachath]]␟[[Shelley]]␟[[Frank McCann]]␟[[Wendy Peyser]]",
	['Coven'] = "[[Alicia Spencer]]␟[[Anna Leigh Leighton]]␟[[Joan Ramsey]]␟[[Kaylee]]␟[[Louis LaLaurie]]␟[[Luke Ramsey]]␟[[Pauline LaLaurie]]␟[[The Minotaur]]␟[[Borquita Lopez]]␟[[The Axeman]]␟[[Hank Foxx]]",
	['Freak Show'] = "[[Legless Suzi]]␟[[Paul]]␟[[Amazon Eve]]␟[[Chester Creb]]␟[[Marjorie]]␟[[Michael (Freak Show)]]␟[[Edward Mordrake]]␟[[Jack Colquitt]]␟[[Massimo Dolcefino]]␟[[Thor]]␟[[Bonnie Lipton]]␟[[Corey Bachman]]␟[[Meep]]␟[[Dora Brown]]␟[[Ima Wiggles]]␟[[Regina Ross]]␟[[Salty]]␟[[Ma Petite]]",
	['Hotel'] = "[[Holden Lowe]]␟[[Hazel Evers]]␟[[Bartholomew]]␟[[Claudia Bankson]]␟[[Justin]]␟[[Gabriel]]␟[[Mrs. Ellison]]␟[[Natacha Rambova]]␟[[Rudolph Valentino]]␟[[Agnetha]]␟[[Vendela]]␟[[Lachlan Drake]]␟[[Max Ellison]]␟[[Scarlett Lowe]]␟[[Tristan Duffy]]␟[[The Addiction Demon]]␟[[Wren]]␟[[Andy Hahn]]␟[[Margaret Gibson]]␟[[The Mattress Man]]",
	['Roanoke'] = "[[Piggy Man]]␟[[Cricket Marlowe]]␟[[Diana Cross]]␟[[Edward Philippe Mott]]␟[[Todd Allan Connors]]␟[[Jether Polk]]␟[[Flora Harris]]␟[[Ishmael Polk]]␟[[Mama Polk]]␟[[Mason Harris]]␟[[Priscilla]]␟[[Scáthach]]␟[[Miranda and Bridget Jane]]␟[[Monet Tumusiime]]␟[[Lot Polk]]␟[[Milo]]␟[[Sophie Green]]",
	['Cult'] = "[[Beverly Hope]]␟[[Bob Thompson]]␟[[R.J.]]␟[[Jack Samuels]]␟[[Meadow Wilton]]␟[[Oz Mayfair-Richards]]␟[[Bebe Babbitt]]␟[[Serena Belinda]]",
	['Apocalypse'] = "[[Jeff Pfister]]␟[[Mutt Nutter]]␟[[The Fist]]␟[[Baldwin Pennypacker]]␟[[Andre Stevens]]␟[[Ariel Augustus]]␟[[Beauregard Langdon]]␟[[Behold Chablis]]␟[[Brock]]␟[[Bubbles McGee]]␟[[Constance Langdon]]␟[[Elizabeth Short]]␟[[Emily Campbell]]␟[[Evie Gallant]]␟[[James March]]␟[[Madelyn]]␟[[Misty Day]]␟[[Myrtle Snow]]␟[[Rubber Man]]␟[[Timothy Campbell]]␟[[Violet Harmon]]␟[[Vivien Harmon]]",
	['1984'] = "[[Bruce]]␟[[Courtney]]␟[[Lavinia Richter]]␟[[Bertie]]␟[[Jonas Shevoore]]␟[[Karen Hopple]]␟[[Ray Powell]]",
	['Red Tide'] = "[[Holden Vaughn]]",
	['Death Valley'] = "[[Valiant Thor]]␟[[Richard Nixon]]",
	['NYC'] = "[[Mac Marzara]]␟[[Dunaway]]␟[[Morris Delgado]]␟[[Big Daddy]]␟[[Gideon Whitely]]␟[[Alana Delarue]]",  
	['Delicate'] = "[[Talia Thompson]]␟[[Cora]]␟[[Ashley]]␟[[Ashleigh]]",
}

--- Character
--  Constructs a navigation box for American Horror Story main characters.
--  
--  @function           N.character
--  @param              {Frame} frame
--      Scribunto frame object.
--  @param              {table} frame.args
--      Invocation arguments table.
--  @returns            {string}
--      Navbox wikitext
--  @usage              {{American Horror Story Characters}}
function N.characters( frame )
	local args = getArgs(frame)
	
	return N.main( { 
		title = HF.LinkToCategory( 'Characters', "''American Horror Story'' Characters" ), 
		bodystyle = "width: 100%",
		state = 'collapsed',
		listclass = 'hlist hwrap',
		alternaterows = 'yes',
		group1 = HF.LinkToCategory( data['CharacterCategories']['Murder House'], 'Murder House' ),
		group2 = HF.LinkToCategory( data['CharacterCategories']['Asylum'], 'Asylum' ),
		group3 = HF.LinkToCategory( data['CharacterCategories']['Coven'], 'Coven' ),
		group4 = HF.LinkToCategory( data['CharacterCategories']['Freak Show'], 'Freak Show' ),
		group5 = HF.LinkToCategory( data['CharacterCategories']['Hotel'], 'Hotel' ),
		group6 = HF.LinkToCategory( data['CharacterCategories']['Roanoke'], 'Roanoke' ),
		group7 = HF.LinkToCategory( data['CharacterCategories']['Cult'], 'Cult' ),
		group8 = HF.LinkToCategory( data['CharacterCategories']['Apocalypse'], 'Apocalypse' ),
		group9 = HF.LinkToCategory( data['CharacterCategories']['1984'], '1984' ),
		group10 = HF.LinkToCategory( data['CharacterCategories']['Double Feature'], 'Double Feature' ),
		group11 = HF.LinkToCategory( data['CharacterCategories']['NYC'], 'NYC' ),
		group12 = HF.LinkToCategory( data['CharacterCategories']['Delicate'], 'Delicate' ),
		list1 = 
		  bold(list(data['MainCharacters']['Murder House Residents'])) .. list(supporting['Murder House']),
		list2 = frame:expandTemplate{ title = 'Characters of Asylum', args = { standalone = 'false' } },
		list3 = 
		  bold(list(data['MainCharacters']['Coven'])) .. list(supporting['Coven']),
		list4 = 
		  bold(list(data['MainCharacters']['Freak Show'])) .. list(supporting['Freak Show']),
		list5 = 
		  bold(list(data['MainCharacters']['Hotel'])) .. list(supporting['Hotel']),
		list6 = frame:expandTemplate{ title = 'Characters of Roanoke', args = { standalone = 'false' } },
		list7 = 
		  bold(list(data['MainCharacters']['Cult'])) .. list(supporting['Cult']),
		list8 = 
		  bold(list(data['MainCharacters']['Apocalypse'])) .. list(supporting['Apocalypse']),
		list9 = 
		  bold(list(data['MainCharacters']['1984'])) .. list(supporting['1984']),
		list10 = frame:expandTemplate{ title = 'Characters of Double Feature', args = { standalone = 'false' } },
		list11 = 
		  bold(list(data['MainCharacters']['NYC'])) .. list(supporting['NYC']),
		list12 = 
		  bold(list(data['MainCharacters']['Delicate'])) .. list(supporting['Delicate'])
		})
end

--- Characters of Asylum
--  Constructs a navigation box for Asylum main characters.
--  
--  @function           N.charactersAsylum
--  @param              {Frame} frame
--      Scribunto frame object.
--  @returns            {string}
--      Navbox wikitext
--  @usage              {{Characters of Asylum}}
function N.charactersAsylum( frame )
	local args = getArgs(frame, { parentOnly = true, wrappers = 'Template:Characters of Asylum' })
	local def = {
		border ='child', 
		bodystyle = "width: 100%",
		listclass = 'hlist hwrap',
		state = 'plain',
		group1 = HF.LinkToCategory( data['Categories']['BMS'], 'Staff'),
		group2 = HF.LinkToCategory( data['Categories']['BMI'], 'Inmates'),
		list1  = list(data['MainCharacters']['Briarcliff Staff']),
		list2  = list(data['MainCharacters']['Briarcliff Inmates']),
		list3  = list(supporting['Asylum'])
	}
	if yesno(args['standalone'], 'true') then
		def.border = nil
		def.title = HF.LinkToCategory( 'Characters of Asylum', "''Asylum'' Characters" )
		def.state = 'collapsed'
		def.alternaterows = 'yes'
	end
	return N.main(def)
end

--- Characters of Roanoke
--  Constructs a navigation box for Roanoke main and supporting characters.
--  
--  @function           N.charactersRoanoke
--  @param              {Frame} frame
--      Scribunto frame object.
--  @returns            {string}
--      Navbox wikitext
--  @usage              {{Characters of Roanoke}}
function N.charactersRoanoke( frame )
	local args = getArgs(frame, { parentOnly = true, wrappers = 'Template:Characters of Roanoke' })
	local def = { 
		border='child', 
		bodystyle = "width: 100%",
		listclass = 'hlist hwrap',
		state = 'plain',
		group1 = 'Residents',
		group2 = 'Colonists',
		group3 = 'My Roanoke Nightmare',
		list1  = 
            bold(list('[[Shelby Miller]]␟[[Matt Miller]]␟[[Elias Cunningham]]␟[[Lee Harris]]'))..
            list('[[Flora Harris]]␟[[Chen Family]]␟[[Elias Cunningham]]␟[[Mason Harris]]␟[[Miranda and Bridget Jane]]␟[[Cricket Marlowe]]␟[[Edward Philippe Mott]]␟[[Cain Polk]]␟[[Ishmael Polk]]␟[[Jether Polk]]␟[[Lot Polk]]␟[[Mama Polk]]␟[[Priscilla]]'),
		list2  = bold(list('[[The Butcher]]␟[[Ambrose White]]'))..list('[[John White]]␟[[Piggy Man]]␟[[Scáthach]]'),
		list3  = bold(list('[[Agnes Mary Winstead]]␟[[Audrey Tindall]]␟[[Dominic Banks]]␟[[William van Henderson]]␟[[Dylan Conrad]]␟[[Rory Monahan]]␟[[Sidney Aaron James]]␟[[Monet Tumusiime]]'))..list('[[Diana Cross]]␟[[Ashley Gilbert]]␟[[Todd Allan Connors]]␟[[Sophie Green]]')
	}
	if yesno(args['standalone'], nil) then
		def.border = nil
		def.title = HF.LinkToCategory( 'Characters of Roanoke', "''Roanoke'' Characters" )
		def.state = 'collapsed'
		def.alternaterows = 'yes'
	end
	return N.main(def)
end

--- Characters of Double Feature
--  Constructs a navigation box for Double Feature main and supporting characters.
--  
--  @function           N.charactersDoubleFeature
--  @param              {Frame} frame
--      Scribunto frame object.
--  @returns            {string}
--      Navbox wikitext
--  @usage              {{Characters of Double Feature}}
function N.charactersDoubleFeature( frame )
	local args = getArgs(frame, { parentOnly = true, wrappers = 'Template:Characters of Double Feature' })
	local def = { 
		border='child', 
		bodystyle = "width: 100%",
		listclass = 'hlist hwrap',
		state = 'plain',
		group1 = 'Red Tide',
		group2 = 'Death Valley',
		list1  = bold(list(data['MainCharacters']['Red Tide'])) .. list(supporting['Red Tide']),
		list2  = bold(list('[[Mamie Eisenhower]]␟[[Amelia Earhart]]␟[[Calico]]␟[[Theta]]␟[[Dwight Eisenhower]]␟[[Kendall Carr]]␟[[Cal Cambon]]␟[[Troy Lord]]␟[[Jamie Howard]]␟[[Maria Wycoff]]')) .. list(supporting['Death Valley']),
	}
	if yesno(args['standalone'], nil) then
		def.border = nil
		def.title = HF.LinkToCategory( 'Characters of Double Feature', "''Double Feature'' Characters" )
		def.state = 'collapsed'
		def.alternaterows = 'yes'
	end
	return N.main(def)
end

--- Cast
--  Constructs a navigation box for American Horror Story cast members.
--  
--  @function           N.cast
--  @param              {Frame} frame
--      Scribunto frame object.
--  @param              {table} frame.args
--      Invocation arguments table.
--  @returns            {string}
--      Navbox wikitext
--  @usage              {{American Horror Story Cast}}
function N.cast( frame )
	local args = getArgs(frame)
	local config = { 
		title = HF.LinkToCategory( 'Cast', "Main Cast of ''American Horror Story''" ),
		state = 'expanded', listclass = 'hlist hwrap', alternaterows = 'yes',
		group1 = HF.LinkToCategory( data['CastCategories']['Murder House'], 'Murder House' ),
		group2 = HF.LinkToCategory( data['CastCategories']['Asylum'], 'Asylum' ),
		group3 = HF.LinkToCategory( data['CastCategories']['Coven'], 'Coven' ),
		group4 = HF.LinkToCategory( data['CastCategories']['Freak Show'], 'Freak Show' ),
		group5 = HF.LinkToCategory( data['CastCategories']['Hotel'], 'Hotel' ),
		group6 = HF.LinkToCategory( data['CastCategories']['Roanoke'], 'Roanoke' ),
		group7 = HF.LinkToCategory( data['CastCategories']['Cult'], 'Cult' ),
		group8 = HF.LinkToCategory( data['CastCategories']['Apocalypse'], 'Apocalypse' ),
		group9 = HF.LinkToCategory( data['CastCategories']['1984'], '1984' ),
		group10 = HF.LinkToCategory( data['CastCategories']['Double Feature'], 'Double Feature' ),
		group11 = HF.LinkToCategory( data['CastCategories']['NYC'], 'NYC' ),
		group12 = HF.LinkToCategory( data['CastCategories']['Delicate'], 'Delicate' ),
		list1 = list(data['Cast']['Murder House']),
		list2 = list(data['Cast']['Asylum']),
		list3 = list(data['Cast']['Coven']),
		list4 = list(data['Cast']['Freak Show']),
		list5 = list(data['Cast']['Hotel']),
		list6 = list(data['Cast']['Roanoke']),
		list7 = list(data['Cast']['Cult']),
		list8 = list(data['Cast']['Apocalypse']),
		list9 = list(data['Cast']['1984']),
		list10 = frame:expandTemplate{ title = 'Cast of Double Feature', args = { standalone = 'false' } },
		list11 = list(data['Cast']['NYC']),
		list12 = list(data['Cast']['Delicate']),
	}
	return N.main(config)
end

--- Cast of Double Feature
--  Constructs a navigation box for Double Feature main and supporting characters.
--  
--  @function           N.charactersDoubleFeature
--  @param              {Frame} frame
--      Scribunto frame object.
--  @returns            {string}
--      Navbox wikitext
--  @usage              {{Cast of Double Feature}}
function N.castDoubleFeature( frame )
	local args = getArgs(frame, { parentOnly = true, wrappers = 'Template:Cast of Double Feature' })
	local def = { border='child', 
		bodystyle = "width: 100%",
		listclass = 'hlist hwrap',
		group1 = 'Red Tide',
		group2 = 'Death Valley',
		list1  = list(data['Cast']['Red Tide']),
		list2  = list(data['Cast']['Death Valley'])
	}
	if yesno(args['standalone'], nil) then
		def.border = nil
		def.title = HF.LinkToCategory( 'Cast of Double Feature', "Cast of ''Double Feature''" )
		def.state = 'collapsed'
		def.alternaterows = 'yes'
	end
	return N.main(def)
end

--- Episodes of American Horror Story
--  Constructs a navigation box for American Horror Story episodes.
--  
--  @function           N.episodesAHS
--  @param              {Frame} frame
--      Scribunto frame object.
--  @param              {table} frame.args
--      Invocation arguments table.
--  @returns            {string}
--      Navbox wikitext
--  @usage              {{American Horror Story Episodes}}
function N.episodesAHS (frame)
	local args = getArgs(frame)
    local content = {
        ['Murder House'] = list(data['Episodes']['Murder House']),
		['Asylum'] = list(data['Episodes']['Asylum']),
		['Coven'] = list(data['Episodes']['Coven']),
		['Freak Show'] = list(data['Episodes']['Freak Show']),
		['Hotel'] = list(data['Episodes']['Hotel']),
		['Roanoke'] = list(data['Episodes']['Roanoke']),
		['Cult'] = list(data['Episodes']['Cult']),
		['Apocalypse'] = list(data['Episodes']['Apocalypse']),
		['1984'] = list(data['Episodes']['1984']),
		['Double Feature'] = frame:expandTemplate{ title = 'Episodes of Double Feature' },
		['NYC'] = list(data['Episodes']['NYC']),
		['Delicate'] = list(data['Episodes']['Delicate'])
    }
	local series = { 
		title = HF.LinkToCategory( 'Episodes', "Episodes of ''American Horror Story''" ),
		state = 'expanded', listclass = 'hlist hwrap', alternaterows = 'yes',
		group1 = HF.LinkToCategory( data['EpisodeCategories']['Murder House'], 'Murder House' ),
		group2 = HF.LinkToCategory( data['EpisodeCategories']['Asylum'], 'Asylum' ),
		group3 = HF.LinkToCategory( data['EpisodeCategories']['Coven'], 'Coven' ),
		group4 = HF.LinkToCategory( data['EpisodeCategories']['Freak Show'], 'Freak Show' ),
		group5 = HF.LinkToCategory( data['EpisodeCategories']['Hotel'], 'Hotel' ),
		group6 = HF.LinkToCategory( data['EpisodeCategories']['Roanoke'], 'Roanoke' ),
		group7 = HF.LinkToCategory( data['EpisodeCategories']['Cult'], 'Cult' ),
		group8 = HF.LinkToCategory( data['EpisodeCategories']['Apocalypse'], 'Apocalypse' ),
		group9 = HF.LinkToCategory( data['EpisodeCategories']['1984'], '1984' ),
		group10 = HF.LinkToCategory( data['EpisodeCategories']['Double Feature'], 'Double Feature' ),
		group11 = HF.LinkToCategory( data['EpisodeCategories']['NYC'], 'NYC' ),
		group12 = HF.LinkToCategory( data['EpisodeCategories']['Delicate'], 'Delicate' ),
		list1 = content['Murder House'],
		list2 = content['Asylum'],
		list3 = content['Coven'],
		list4 = content['Freak Show'],
		list5 = content['Hotel'],
		list6 = content['Roanoke'],
		list7 = content['Cult'],
		list8 = content['Apocalypse'],
		list9 = content['1984'],
		list10 = content['Double Feature'],
		list11 = content['NYC'],
		list12 = content['Delicate']
	}
    if args[1] then
      local standalone = {
	  	state = 'expanded', listclass = 'hlist hwrap', alternaterows = 'yes', bodystyle = 'width: 100%;'
      }
      standalone.title = HF.LinkToCategory(data['EpisodeCategories'][args[1]], ("Episodes of ''%s''"):format(args[1]))
      standalone.list1 = content[args[1]]
      return N.main(standalone)
    end
    return N.main(series)
end

--- Episodes of Double Feature
--  Constructs a navigation box for Double Feature episodes.
--  
--  @function           N.episodesDoubleFeature
--  @param              {Frame} frame
--      Scribunto frame object.
--  @returns            {string}
--      Navbox wikitext
--  @usage              {{Episodes of Double Feature}}
function N.episodesDoubleFeature( frame )
	local args = getArgs(frame, { parentOnly = true, wrappers = 'Template:Episodes of Double Feature' })
	local def = { border='child', 
		bodystyle = "width: 100%",
		listclass = 'hlist hwrap',
		group1 = 'Red Tide',
		group2 = 'Death Valley',
		list1  = list(data['Episodes']['Red Tide']),
		list2  = list(data['Episodes']['Death Valley'])
	}
	if args['standalone'] then
		def.border = nil
		def.title = HF.LinkToCategory( 'Episodes of Double Feature', "Episodes of ''Double Feature''" )
		def.state = 'collapsed'
		def.alternaterows = 'yes'
	end
	return N.main(def)
end

--- Episodes of American Horror Stories
--  Constructs a navigation box for American Horror Stories episodes.
--  
--  @function           N.episodesStories
--  @param              {Frame} frame
--      Scribunto frame object.
--  @param              {table} frame.args
--      Invocation arguments table.
--  @returns            {string}
--      Navbox wikitext
--  @usage              {{American Horror Stories Episodes}}
function N.episodesStories( frame )
	local args = getArgs(frame)
    local content = {
        ['Installment 1'] = list(data['Episodes']['Installment 1']),
		['Installment 2'] = list(data['Episodes']['Installment 2']),
		['Huluween Event'] = list(data['Episodes']['Huluween Event'])
    }
	local series = { 
		title = HF.LinkToCategory( 'Episodes of American Horror Stories', "Episodes of ''American Horror Stories''" ),
		state = 'expanded', listclass = 'hlist hwrap', alternaterows = 'yes',
		group1 = HF.LinkToCategory( 'Installment 1/By Broadcast', 'Installment 1' ),
		group2 = HF.LinkToCategory( 'Installment 2/By Broadcast', 'Installment 2' ),
		group3 = HF.LinkToCategory( 'Huluween Event/By Broadcast', 'Huluween Event' ),
		list1 = content['Installment 1'],
		list2 = content['Installment 2'],
		list3 = content['Huluween Event']
	}
    if args[1] then
      local standalone = {
	  	state = 'expanded', listclass = 'hlist hwrap', alternaterows = 'yes', bodystyle = 'width: 100%;'
      }
      standalone.title = ("Episodes of ''%s''"):format(args[1])
      standalone.list1 = content[args[1]]
      return N.main(standalone)
    end
    return N.main(series)
end

--- Locations in American Horror Story
--  Constructs a navigation box for American Horror Story locations.
--  
--  @function           N.locations
--  @param              {Frame} frame
--      Scribunto frame object.
--  @param              {table} frame.args
--      Invocation arguments table.
--  @returns            {string}
--      Navbox wikitext
--  @usage              {{American Horror Story Locations}}
function N.locations( frame )
	local args = getArgs(frame)
	local config = { 
		title = HF.LinkToCategory( 'Locations', "Locations in ''American Horror Story''" ),
		state = 'expanded', listclass = 'hlist hwrap', alternaterows = 'yes',
        group1 = HF.LinkToCategory( data['LocationCategories']['Murder House'], 'Murder House' ),
        group2 = HF.LinkToCategory( data['LocationCategories']['Asylum'], 'Asylum' ),
        group3 = HF.LinkToCategory( data['LocationCategories']['Coven'], 'Coven' ),
        group4 = HF.LinkToCategory( data['LocationCategories']['Freak Show'], 'Freak Show' ),
        group5 = HF.LinkToCategory( data['LocationCategories']['Hotel'], 'Hotel' ),
        group6 = HF.LinkToCategory( data['LocationCategories']['Roanoke'], 'Roanoke' ),
        group7 = HF.LinkToCategory( data['LocationCategories']['Cult'], 'Cult' ),
        group8 = HF.LinkToCategory( data['LocationCategories']['Apocalypse'], 'Apocalypse' ),
        group9 = HF.LinkToCategory( data['LocationCategories']['1984'], '1984' ),
        group10 = HF.LinkToCategory( data['LocationCategories']['Double Feature'], 'Double Feature' ),
        group11 = HF.LinkToCategory( data['LocationCategories']['NYC'], 'NYC' ),
        group12 = HF.LinkToCategory( data['LocationCategories']['Delicate'], 'Delicate' ),
        list1 = list(data['Locations']['Murder House']),
        list2 = list(data['Locations']['Asylum']),
        list3 = list(data['Locations']['Coven']),
        list4 = list(data['Locations']['Freak Show']),
        list5 = list(data['Locations']['Hotel']),
        list6 = list(data['Locations']['Roanoke']),
        list7 = list(data['Locations']['Cult']),
        list8 = list(data['Locations']['Apocalypse']),
        list9 = list(data['Locations']['1984']),
        list10 = list(data['Locations']['Double Feature']),
        list11 = list(data['Locations']['NYC']),
        list12 = list(data['Locations']['Delicate'])
	}
	return N.main(config)
end
return N