Changes

Jump to navigation Jump to search

Module:Citation

361 bytes removed, 04:46, 26 August 2012
Added processing of more parameters.
end
function authorprefixlistpeople(Surnameconfig, Givenpeople) local text = "" local sep = config.AuthorSep or "&#59;" for i, Authorlink, ampersandperson in ipairs(people)do if (Surname =person.last ~= nil) then return "" end local prefix one = ampersand person.. Surnamelast if (Given person.first ~= nil) then prefix one = prefix one .. ", " .. Given person.first end if (Authorlink person.link ~= nil) then prefix one = "[[" .. Authorlink person.link .. "|" .. prefix one .. "]]" end text = text .. one if ( people[i + 1] ~= nil ) then text = text .. sep .. " " end end end return prefix text
end
-- Pick out the relevant fields from the arguments. Different citation templates define different field names for the same underlying things.
local AuthorMask = args.authormask or args.authormask
local Surname1 Authors = args.last or args.surname or args.author or args.last1 or args.surname1 or args.author1authors local Surname2 a = args.last2 or args.surname2 or args.author2{} local Surname3 = argsa[1].last3 or args.surname3 or args.author3 local Surname4 last = args.last4 last or args.surname4 surname or args.author4 local Surname5 = args.last5 author or args.surname5 last1 or args.author5 local Surname6 = args.last6 surname1 or args.surname6 or args.author6author1 local Surname7 = argsa[1].last7 or args.surname7 or args.author7 local Surname8 = args.last8 or args.surname8 or args.author8 local Surname9 = args.last9 or args.surname9 or args.author9 local Given1 first = args.first1 or args.given1 or args.first or args.given local Given2 a[1].link = args.first2 authorlink or args.given2 local Given3 = args.first3 author1link or args.given3authorlink1 local Given4 for i= args2,9,1 do a[i].first4 or args.given4 local Given5 last = args["last" .first5 or args.given5 local Given6 = args.first6 i] or args["surname" .given6 local Given7 = args.first7 i] or args["author" .given7 local Given8 = args.first8 or args.given8i] local Given9 = args a[i].first9 or args.given9 local Authorlink1 first = args["first" .authorlink or args.author1link i] or args["given" .authorlink1 local Authorlink2 = args.author2link or args.authorlink2i] local Authorlink3 = args.author3link or args a[i].authorlink3 local Authorlink4 link = args["author" .author4link or args.authorlink4 local Authorlink5 = argsi .author5link or args.authorlink5 local Authorlink6 = args.author6link "link"] or args["authorlink" .authorlink6 local Authorlink7 = args.author7link or args.authorlink7i] local Authorlink8 = args.author8link or args.authorlink8 local Authorlink9 = args.author9link or args.authorlink9end
local Coauthors = args.coauthor or args.coauthors
local Editors = args.editors
local e = {}
e[1].last = args.editor-last or args.editorsurname or args.editor or args.editor1-last or args.editor-last1 or args.editorsurname1 or args.editor1
e[1].first = args.first1 or args.given1 or args.first or args.given
e[1].link = args.authorlink or args.author1link or args.authorlink1
for i=2,9,1 do
e[i].last = args["editor" .. i .. "-last"] or args["editor-last" .. i] or args["EditorSurname" .. i] or args["Editor" .. i]
e[i].first = args["editor" .. i .. "-first"] or args["editor-first" .. i] or args["EditorGiven" .. i]
e[i].link = args["editor" .. i .. "link"] or args["editorlink" .. i]
end
local Year = args.year or args.publicationdate
local Date = args.date
local DOI = args.doi or args.DOI
local ID = args.id or args.ID or args.pmid or args.PMID
local Authors = args.authors
local Editors = args.editors
local Ref = args.ref or args.Ref
if ( ID ~= nil ) then ID = " " .. ID else ID = "" end
if ( Date ~= nil ) then Date = " (" .. Date .. ")" else Date = "" end
if ( Authors == nil ) then Authors = authorprefix(Surname1, Given1, Authorlink1, "") Authors = Authors .. authorprefix(Surname2, Given2, Authorlink2, "&#59; ") Authors = Authors .. authorprefix(Surname3, Given3, Authorlink3, "&#59; ") Authors = Authors .. authorprefix(Surname4, Given4, Authorlink4, "&#59; ") Authors = Authors .. authorprefix(Surname5, Given5, Authorlink5, "&#59; ") Authors = Authors .. authorprefix(Surname6, Given6, Authorlink6, "&#59; ") Authors = Authors .. authorprefix(Surname7, Given7, Authorlink7, "&#59; ") Authors = Authors .. authorprefix(Surname8, Given8, Authorlink8, "&#59; ") Authors = Authors .. authorprefixlistpeople(Surname9, Given9, Authorlink9config, "&#59; "a) end if ( "" ~Editors = Authors and "" ~= Date nil ) then Date Editors = Date .. "." end if listpeople( Editors ~= nil config, e) then Editors = " in " .. Editors .. "." else Editors = "" end
-- Piece all of the bits together at last. At this point, all of these should be guaranteed non-nil.
-- We build things this way because it is more efficient in LUA not to keep reassigning to the same string variable over and over.
local text if ( "" ~= Authors ) then if ( "" ~= Date ) then Date = Date .. "." else Authors = Authors .. "." end if ( "" ~= Editors ) then Editors = " in " .. Editors .. "." end text = Authors .. Date .. Chapter .. Editors .. Title .. Format .. Edition .. Language .. Volume .. Issue .. Pages .. Series .. PublicationPlace .. Publisher .. ISBN .. DOI .. ID .. URL elseif ( "" ~= Editors) then Editors = Editors .. " (eds.)" if ( "" ~= Date ) then Date = Date .. "." else Editors = Editors .. "." end text = Editors .. Date .. Chapter .. Title .. Format .. Edition .. Language .. Volume .. Issue .. Pages .. Series .. PublicationPlace .. Publisher .. ISBN .. DOI .. ID .. URL else text = Chapter .. Title .. Format .. Edition .. Language .. Volume .. Issue .. Pages .. Series .. PublicationPlace .. Publisher .. Date .. ISBN .. DOI .. ID .. URL end
-- Now enclose the whole thing in a <span/> element if it is cross-linked from elsewhere.
Anonymous user

Navigation menu