Module:C

local p = {} local getArgs = require('Dev:Arguments').getArgs local h = require("Module:HF") local standard = require("Module:StandardizedName")

function p.reference(frame) local args = getArgs(frame) local arg = args[1] local arg2 = args[2] local pagename = '' local pagetype = '' local info = '' local info2 = '' local link = '' local output = '' if not h.isempty(arg) then pagename = standard.lua_replace_number_sign(arg) if string.find(pagename, ' Vol ') ~= nil then pagetype = 'Vol' elseif string.find(pagename, ' Season ') ~= nil then pagetype = 'Season' end

if pagetype == 'Vol' or pagetype == 'Season' then info = standard.lua_get_title_volume_issue(pagename, pagetype) link = info.link.all if not h.isempty(arg2) then if string.match(arg2, '^%d+$') ~= nil then info2 = standard.lua_get_title_volume_issue(info.noissue..' '..arg2, pagetype) output = link..'–'..h.Link(info2.link.part1, arg2) else output = link..' '..arg2 end else output = link end else link = arg if not h.isempty(arg2) then output = link..' '..arg2 else output = link end end else output = 'Reference Needed' end return output end

function p.referenceName(frame) local args = getArgs(frame) local arg = args[1] local arg2 = args[2] local output = ""

if h.isempty(arg) then output = "Reference Needed" else output = string.gsub(arg, ":", "") output = string.gsub(output, "%.", "") output = string.gsub(output, "%[", "") output = string.gsub(output, "%]", "") end if not h.isempty(arg2) then output = output .. "-" .. arg2 end return output end

function p.cite_web(frame) local args = getArgs(frame) local url = args.url local title = args.title local archiveurl = args.archiveurl local archivedate = args.archivedate local author = args.author local authorlink = args.authorlink local first = args.first local last = args.last local coauthors = args.coauthors local date = args.date local year = args.year local month = args.month local language = args.language local format = args.format local work = args.work local pages = args.pages local publisher = args.publisher local accessdate = args.accessdate local accessyear = args.accessyear local accessmonthday = args.accessmonthday local link local output = "" if h.isempty(url) or h.isempty(title) then output = "Error on call to Template:Cite web: Parameters url and title must be specified"..h.Category('Pages with script errors') elseif ( not h.isempty(archiveurl) and h.isempty(archivedate) ) or ( h.isempty(archiveurl) and not h.isempty(archivedate) ) then output = "Error on call to Template:Cite web: Parameters archiveurl and archivedate must be both specified or both omitted"..h.Category('Pages with script errors') else if not h.isempty(author) or not h.isempty(last) then if not h.isempty(authorlink) then output = output .. authorlink end if not h.isempty(last) -- author's last name then output = output .. last if not h.isempty(first) -- author's first name then output = output .. ', ' .. first end else output = output .. author end if not h.isempty(coauthors) then output = output .. '; ' .. coauthors end if not h.isempty(date) then output = output .. ' (' .. date .. ')' elseif not h.isempty(year) then if not h.isempty(month) then output = output .. ' (' .. month .. ' ' .. year .. ')' else output = output .. ' (' .. year .. ')' end end end if not h.isempty(archiveurl) then link = archiveurl else link = url end output = output .. ' [' .. link .. ' ' .. title .. ']'			if not h.isempty(language) then output = output .. ' (in ' .. language .. ')' end

if not h.isempty(format) then output = output .. ' ' .. format end

if not h.isempty(work) then output = output .. " ''" .. work .. "''"			end if not h.isempty(pages) then output = output .. " pp." .. pages end if not h.isempty(publisher) then output = output .. " " .. publisher end output = output .. "."			if not h.isempty(archivedate) then output = output .. " Archived from " .. "[" .. url .. " the original] on " .. archivedate .. "."				elseif not h.isempty(accessdate) then output = output .. " Retrieved on " .. accessdate .. "."				elseif not h.isempty(accessyear) then if not h.isempty(accessmonthday) then output = output .. " Retrieved on " .. accessmonthday .. ", " .. accessyear .. "."							else output = output .. " Retrieved on " .. accessyear .. "."						end end end

return output end

return p