پودمان:Footnotes
ظاهر
این پودمان حفاظتشده ارزیابی شدهاست. این پودمان یکی از الگوهای حساس است و در صفحات بسیار زیادی استفاده میشود. محافظت این پودمان در برابر ویرایش، بهدلیل بار قابل توجهی است که خرابکاریها، خطاها یا ویرایشهای جزئی میتوانند به دوش سرورها بگذارند. |
این پودمان لوآ در تعداد زیادی صفحه صفحه بهکار رفته است و تغییر دادن آن میتواند تأثیرات گستردهای داشته باشد. لطفاً تغییرات را در زیرصفحههای /تمرین یا /آزمایشی پودمان، یا در پودمان تمرینی خودتان بیازمایید. توصیه میشود که ابتدا در خصوص تغییرات مورد نظر در صفحهٔ بحث گفتگو کرده و سپس آنها را پیادهسازی کنید. |
این پودمان {{sfn}}، {{harvard citation}} و انواع آن الگوها را پیادهسازی میکند..
این پودمان از پودمانهای زیر استفاده میکند: |
-- بخشهایی از این پودمان برای خروجی فارسی و انگلیسی مناسب تغییر کردهاست. لطفاً هنگام بهروزرسانی دقت کنید.
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 = "[[#" .. args.ref .. "|" .. result .. "]]"
else
result = "[[#CITEREF" .. 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 "."
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