Modul:Broken/Footnotes
Prijeđi na navigaciju
Prijeđi na pretraživanje
Script error: The function "nonexistent" does not exist.
local f = {}
f.args_default = {
bracket_left = "",
bracket_right = "",
bracket_year_left = "",
bracket_year_right = "",
postscript = "",
page = "",
pages = "",
location = "",
page_sep = ", str. ",
pages_sep = ", str. ",
ref = "",
P1 = "",
P2 = "",
P3 = "",
P4 = "",
P5 = ""
}
local function trim(str)
if not str then return "" end
str = mw.text.trim(str)
return str:gsub("%.$", "")
end
local function core(args)
local result
if args.P5 ~= "" then
result = args.P1 .. " et al. " .. args.bracket_year_left .. args.P5 .. args.bracket_year_right
elseif args.P4 ~= "" then
result = args.P1 .. ", " .. args.P2 .. " i " .. args.P3 .. " " ..
args.bracket_year_left .. args.P4 .. args.bracket_year_right
elseif args.P3 ~= "" then
result = args.P1 .. " i " .. args.P2 .. " " ..
args.bracket_year_left .. args.P3 .. args.bracket_year_right
else
result = trim(args.P1 .. " " .. args.bracket_year_left .. args.P2 .. args.bracket_year_right)
end
-- REF handling
if args.ref ~= "none" then
if args.ref ~= "" then
result = "[[#" .. mw.uri.anchorEncode(args.ref) .. "|" .. result .. "]]"
else
local anchor = args.P1 .. args.P2 .. args.P3 .. args.P4 .. args.P5
result = "[[#CITEREF" .. mw.uri.anchorEncode(anchor) .. "|" .. result .. "]]"
end
end
-- pages
if args.page ~= "" then
result = result .. args.page_sep .. args.page
elseif args.pages ~= "" then
result = result .. args.pages_sep .. args.pages
end
-- location
if args.location ~= "" then
result = result .. ", " .. args.location
end
return args.bracket_left .. result .. args.bracket_right .. args.postscript
end
function f.harvard_core(frame)
local pframe = frame:getParent()
local args = mw.clone(f.args_default)
args.bracket_left = pframe.args.BracketLeft or ""
args.bracket_right = pframe.args.BracketRight or ""
args.bracket_year_left = pframe.args.BracketYearLeft or ""
args.bracket_year_right = pframe.args.BracketYearRight or ""
args.postscript = (pframe.args.Postscript == "none") and "" or (pframe.args.Postscript or "")
args.page = pframe.args.Page or ""
args.pages = pframe.args.Pages or ""
args.location = pframe.args.Location or ""
args.page_sep = pframe.args.PageSep or args.page_sep
args.pages_sep = pframe.args.PagesSep or args.pages_sep
args.ref = pframe.args.REF or ""
args.P1 = trim(pframe.args.P1)
args.P2 = trim(pframe.args.P2)
args.P3 = trim(pframe.args.P3)
args.P4 = trim(pframe.args.P4)
args.P5 = trim(pframe.args.P5)
return core(args)
end
function f.harvard_citation(frame)
local pframe = frame:getParent()
local args = mw.clone(f.args_default)
args.bracket_left = "("
args.bracket_right = ")"
args.page = pframe.args.p or pframe.args.page or ""
args.pages = pframe.args.pp or pframe.args.pages or ""
args.location = pframe.args.loc or ""
args.ref = pframe.args.ref or pframe.args.Ref or ""
args.P1 = trim(pframe.args[1])
args.P2 = trim(pframe.args[2])
args.P3 = trim(pframe.args[3])
args.P4 = trim(pframe.args[4])
args.P5 = trim(pframe.args[5])
return core(args)
end
function f.harvard_citation_no_bracket(frame)
local pframe = frame:getParent()
local args = mw.clone(f.args_default)
args.page = pframe.args.p or pframe.args.page or ""
args.pages = pframe.args.pp or pframe.args.pages or ""
args.location = pframe.args.loc or ""
args.ref = pframe.args.ref or pframe.args.Ref or ""
args.P1 = trim(pframe.args[1])
args.P2 = trim(pframe.args[2])
args.P3 = trim(pframe.args[3])
args.P4 = trim(pframe.args[4])
args.P5 = trim(pframe.args[5])
return core(args)
end
function f.sfn(frame)
local pframe = frame:getParent()
local args = mw.clone(f.args_default)
-- override defaults with #invoke args
for k, v in pairs(frame.args) do
args[k] = v
end
args.postscript = (pframe.args.postscript == "none") and "" or (pframe.args.postscript or pframe.args.ps or ".")
args.page = pframe.args.p or pframe.args.page or ""
args.pages = pframe.args.pp or pframe.args.pages or ""
args.location = pframe.args.loc or ""
args.ref = pframe.args.ref or pframe.args.Ref or ""
args.P1 = trim(pframe.args[1])
args.P2 = trim(pframe.args[2])
args.P3 = trim(pframe.args[3])
args.P4 = trim(pframe.args[4])
args.P5 = trim(pframe.args[5])
local result = core(args)
local name = "FOOTNOTE" ..
args.P1 .. args.P2 .. args.P3 .. args.P4 .. args.P5 ..
args.page .. args.pages .. args.location
return frame:extensionTag{
name = "ref",
args = { name = name },
content = result
}
end
return f