پودمان:Footnotes
توضیحات این پودمان میتواند در پودمان:Footnotes/توضیحات قرار گیرد.
-- بخشهایی از این پودمان برای خروجی فارسی و انگلیسی مناسب تغییر کردهاست. لطفاً هنگام بهروزرسانی دقت کنید. local getArgs = require("Module:Arguments").getArgs f = { args_default = { bracket_left = "", bracket_right = "", bracket_year_left = "", bracket_year_right = "", postscript = "", page = "", pages = "", location = "", page_sep = "، ص ", pages_sep = "، صص ", ref = "", P1 = "", P2 = "", P3 = "", P4 = "", P5 = "", -- برای خروجی فارسی و انگلیسی خطوط زیر اضافه شدهاند. andOthers = "و دیگران." } }; function trim( str ) if str == nil then return nil; end return str:match( "^%s*(.-)%s*$"); end function core( args ) local result; if args.P5 ~= "" then -- خط زیر برای خروجی مناسب تغییر کردهاست. result = args.P1 .. ' ' .. args.andOthers .. ' ' .. args.bracket_year_left .. args.P5 .. args.bracket_year_right; elseif args.P4 ~= "" then result = args.P1 .. '، ' .. args.P2 .. ' & ' .. args.P3 .. ' ' .. args.bracket_year_left .. args.P4 .. args.bracket_year_right; elseif args.P3 ~= "" then result = args.P1 .. ' & ' .. 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 if args.ref ~= 'none' then if args.ref ~= "" then result = "[[#" .. mw.uri.anchorEncode(args.ref) .. "|" .. result .. "]]"; else result = "[[#CITEREF" .. mw.uri.anchorEncode(args.P1 .. args.P2 .. args.P3 .. args.P4 .. args.P5) .. "|" .. result .. "]]"; end end if args.page ~= "" then result = result .. args.page_sep .. args.page; elseif args.pages ~= "" then result = result .. args.pages_sep .. args.pages; end if args.location ~= "" then result = result .. ", " .. args.location; end result = args.bracket_left .. result .. args.bracket_right .. args.postscript; return result; end function f.harvard_core( frame ) local defArgs = {}; local args = getArgs(frame); defArgs.bracket_left = args.BracketLeft or ""; defArgs.bracket_right = args.BracketRight or ""; defArgs.bracket_year_left = args.BracketYearLeft or ""; defArgs.bracket_year_right = args.BracketYearRight or ""; defArgs.postscript = args.Postscript or ""; defArgs.page = args.Page or ""; defArgs.pages = args.Pages or ""; defArgs.location = args.Location or ""; defArgs.page_sep = args.PageSep or ""; defArgs.pages_sep = args.PagesSep or ""; defArgs.ref = args.REF or "{{{REF}}}"; defArgs.P1 = trim( args.P1 ) or ""; defArgs.P2 = trim( args.P2 ) or ""; defArgs.P3 = trim( args.P3 ) or ""; defArgs.P4 = trim( args.P4 ) or ""; defArgs.P5 = trim( args.P5 ) or ""; -- برای خروجی فارسی و انگلیسی خطوط زیر اضافه شدهاند. defArgs.andOthers = trim( args.AndOthers ) or ""; return core( defArgs ); end function f.harvard_citation( frame ) local defArgs = f.args_default; local args = getArgs(frame); defArgs.bracket_left = "("; defArgs.bracket_right = ")"; defArgs.page = args.p or args.page or ""; defArgs.pages = args.pp or args.pages or ""; defArgs.location = args.loc or ""; defArgs.ref = args.ref or args.Ref or ""; defArgs.P1 = trim( args[1] ) or ""; defArgs.P2 = trim( args[2] ) or ""; defArgs.P3 = trim( args[3] ) or ""; defArgs.P4 = trim( args[4] ) or ""; defArgs.P5 = trim( args[5] ) or ""; -- برای خروجی فارسی و انگلیسی خطوط زیر اضافه شدهاند. defArgs.andOthers = trim( args.AndOthers ) or ""; defArgs.page_sep = args.PageSep or ""; defArgs.pages_sep = args.PagesSep or ""; return core( defArgs ); end function f.harvard_citation_no_bracket( frame ) local defArgs = f.args_default; local args = getArgs(frame); defArgs.page = args.p or args.page or ""; defArgs.pages = args.pp or args.pages or ""; defArgs.location = args.loc or ""; defArgs.ref = args.ref or args.Ref or ""; defArgs.P1 = trim( args[1] ) or ""; defArgs.P2 = trim( args[2] ) or ""; defArgs.P3 = trim( args[3] ) or ""; defArgs.P4 = trim( args[4] ) or ""; defArgs.P5 = trim( args[5] ) or ""; -- برای خروجی فارسی و انگلیسی خطوط زیر اضافه شدهاند. defArgs.andOthers = trim( args.AndOthers ) or "" defArgs.page_sep = args.PageSep or ""; defArgs.pages_sep = args.PagesSep or ""; return core( defArgs ); end function f.sfn( frame ) local defArgs = f.args_default; local args = getArgs(frame); defArgs.postscript = args.postscript or args.ps or "."; if 'none' == args.postscript then args.postscript = ''; end defArgs.page = args.p or args.page or ""; defArgs.pages = args.pp or args.pages or ""; defArgs.location = args.loc or ""; defArgs.ref = args.ref or args.Ref or ""; defArgs.P1 = trim( args[1] ) or ""; defArgs.P2 = trim( args[2] ) or ""; defArgs.P3 = trim( args[3] ) or ""; defArgs.P4 = trim( args[4] ) or ""; defArgs.P5 = trim( args[5] ) or ""; -- برای خروجی فارسی و انگلیسی خطوط زیر اضافه شدهاند. defArgs.andOthers = trim( args.AndOthers ) or "" defArgs.page_sep = args.PageSep or "" defArgs.pages_sep = args.PagesSep or "" local result = core( defArgs ); local name = "FOOTNOTE" .. defArgs.P1 .. defArgs.P2 .. defArgs.P3 .. defArgs.P4 .. defArgs.P5 .. defArgs.page .. defArgs.pages .. defArgs.location; result = frame:extensionTag{ name = "ref", args = {name=name}, content=result }; return result; end return f;