Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.The edit appears to have already been undone. Anti-spam check. Do not fill this in!require("strict") -- This module requires the use of Module:List. local list = require("Module:List") local p = {} -- Local function which is used to get a correctly formatted entry. -- Function checks if the array had a value added by checking the counter, -- and returns the relevant result. local function getFormattedEntry(args, counter) if (counter == 1) then -- Check if the counter stayed the same. return "" -- Nothing was added to array; Return empty string. elseif (counter == 2) then -- Check if only one value was added to the array. return args[1] -- Only one value was added to array; Return that value. else -- The array had more than one value added. return list.makeList("unbulleted", args) -- Call list.makeList() to retrieve the formatted plainlist. end end --[[ Local function which is used to format an appearance for a comic book, in the style of: Line 1: <comic book title> #<issue number> (with comic book title in italics) Line 2: <release date> For other usages, see createGenericEntry(). The function works with the following combinations: -- Only comic book title (example: "The Incredible Hulk"). -- Title and issue number (example: "The Incredible Hulk" and "181"). -- Title and release date (example: "The Incredible Hulk and "November 1974"). -- Title, issue number and release date (example: "The Incredible Hulk", "181" and "November 1974"). -- Only release date (example: "November 1974"). --]] local function createComicEntry(appearanceMajor, appearanceMinor, appearanceDate) local fullString = {} -- Variable to save the array. local counter = 1 -- Variable to save the array counter. if (appearanceMajor ~= nil) then -- Check if a comic book title was entered. if (appearanceMinor == nil) then -- A comic book title was entered; Check if a issue number was entered. fullString[counter] = appearanceMajor -- A issue was not entered; Add only the comic book title to the array. counter = counter + 1 -- Increment counter by one. else fullString[counter] = appearanceMajor .. " " .. appearanceMinor -- A issue was entered; Add both to the array. counter = counter + 1 -- Increment counter by one. end end if (appearanceDate ~= nil) then -- Check if a release date was entered. fullString[counter] = appearanceDate -- A release date was entered; Add it to the array. counter = counter + 1 -- Increment counter by one. end return getFormattedEntry(fullString, counter) -- Call getFormattedEntry() to get a correctly formatted entry. end --[[ Local function which is used to format an appearance for most usages, including television, film, books, songs and games, in the style of: Line 1: <minor work title> (in quotes) (Minor works include: TV episodes, chapters, songs and game missions) Line 2: <major work title> (in italics) (Major works include: TV series, films, books, albums and games) Line 3: <release date> For comic book usages, see createComicEntry(). The function works with the following combinations: -- Only minor work title (example: "Live Together, Die Alone"). -- Minor work title and major work title (example: "Live Together, Die Alone" and "Lost"). -- Minor work title and release date (example: "Live Together, Die Alone" and "May 24, 2006"). -- Minor work title, major work title and release date (example: "Live Together, Die Alone", "Lost" and "May 24, 2006"). -- Only major work title (example: "Lost"). -- major work title and release date (example: "Lost" and "May 24, 2006"). -- Only release date (example: "May 24, 2006"). --]] local function createGenericEntry(appearanceMajor, appearanceMinor, appearanceDate) local fullString = {} -- Variable to save the array. local counter = 1 -- Variable to save the array counter. if (appearanceMinor ~= nil) then -- Check if a minor appearance was entered. fullString[counter] = appearanceMinor -- A minor appearance was entered; Add it to the array. counter = counter + 1 -- Increment counter by one. end if (appearanceMajor ~= nil) then -- Check if a major appearance was entered. fullString[counter] = appearanceMajor -- A major appearance was entered; Add it to the array. counter = counter + 1 -- Increment counter by one. end if (appearanceDate ~= nil) then -- Check if a release date was entered. fullString[counter] = appearanceDate -- A release date was entered; Add it to the array. counter = counter + 1 -- Increment counter by one. end return getFormattedEntry(fullString, counter) -- Call getFormattedEntry() to get a correctly formatted entry. end -- Local function which is used to format with a hash symbol comic book issues. -- For other minor works, see getFormattedGenericMinorWork(). local function getFormattedComicMinorWorkTitle(issue) if (issue ~= nil) then -- Check if the issue is not nil. if (string.find(issue, "#")) then -- Check if the issue already has a hash symbol. return issue -- Hash symbol already present; Return issue. else local formattedString = string.gsub(issue, "%d+", "#%1") -- Hash symbol not found; Add the symbol before the issue number. return formattedString -- Return issue. end else return nil -- issue is nil; Return nil. end end -- Local function which is used to format with quotes a minor work title of most types. -- For comic book issues, see getFormattedComicMinorWork() (see [MOS:MINORWORK]). local function getFormattedGenericMinorWorkTitle(title) if (title ~= nil) then -- Check if the title is not nil. return "\"" .. title .. "\"" -- Title is not nil; Add quotes to the title. else return nil -- Title is nil; Return nil. end end -- Local function which is used to format with italics a major work title (see [MOS:MAJORWORK]). local function getFormattedMajorWorkTitle(title) if (title ~= nil) then -- Check if the title is not nil. return "''" .. title .. "''" -- Title is not nil; Add italics to the title. else return nil -- Title is nil; Return nil. end end -- Local function which does the actual main process. local function _getFormattedAppearance(args) local appearanceMajor = args.major_work -- Get the title of the major work. local appearanceMinor = args.minor_work -- Get the title of the minor work. local isComic = false -- Variable to save the status of wether the appearence is from a comic book. if (args.issue ~= nil) then -- Check if the comic specific issue is not nil. appearanceMinor = args.issue -- Issue is not nil; Get the issue number. isComic = true -- Set isComic to true. end local appearanceDate = args.date -- Get the release date of the minor work. local formattedAppearanceMajor = getFormattedMajorWorkTitle(appearanceMajor) -- Call getFormattedMajorWorkTitle() to get a formatted major work title. if (isComic == false) then -- Check if the appearance is a comic book appearance. -- The appearance is not a comic book appearance; local formattedAppearanceMinor = getFormattedGenericMinorWorkTitle(appearanceMinor) -- Call getFormattedGenericMinorWorkTitle() to get a formatted minor work title. return createGenericEntry(formattedAppearanceMajor, formattedAppearanceMinor, appearanceDate) -- Call createGenericEntry() to create an appearance entry. else -- The appearance is a comic book appearance. local formattedAppearanceMinor = getFormattedComicMinorWorkTitle(appearanceMinor) -- Call getFormattedComicMinorWorkTitle() to get a formatted minor work title. return createComicEntry(formattedAppearanceMajor, formattedAppearanceMinor, appearanceDate) -- Call createComicEntry() to create a comic book appearance entry. end end --[[ Public function which is used to format the |first_appeared= and |last_appeared= fields. The usage of this module allows for correct title formatting (see [MOS:MAJORWORK] and [MOS:MINORWORK]), and correct line breaks based on guidelines (see [WP:UBLIST]). Parameters: -- |major_work= — optional; The title of the major work the fictional element appeared in. Major works include TV series, films, books, albums and games. -- |minor_work= — optional; The title of the minor work the fictional element appeared in. Minor works include TV episodes, chapters, songs and game missions. -- |issue= — optional; The number of the comic book issue the fictional element appeared in. -- |date= — optional; The date of the publication/release of the minor work where the fictional element appeared in. --]] function p.getFormattedAppearance(frame) local getArgs = require("Module:Arguments").getArgs -- Use Module:Arguments to access module arguments. local args = getArgs(frame) -- Get the arguments sent via the template. return _getFormattedAppearance(args) -- Call _getFormattedAppearance() to perform the actual process. end return p Summary: Please note that all contributions to Arcadian Odyssey Extended Universe may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here. You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Arcadian Odyssey Extended Universe:Copyrights for details). Do not submit copyrighted work without permission! Cancel Editing help (opens in new window) Template used on this page: Module:Formatted appearance/doc (edit)