Module:Similar
Jump to navigation
Jump to search
local p = {} --p stands for package
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
function p.similar(frame)
local args = getArgs(frame)
local all = yesno(args.all) or false
local namespace = args.namespace or mw.title.getCurrentTitle().nsText
local page_text
if all then
page_text = "works, authors or portals with similar titles or names"
elseif namespace == "Author" then
page_text = "authors with similar names"
elseif namespace == "Portal" then
page_text = "portals with similar names"
else
page_text = "works with similar titles"
end
local link_table = {}
for k, v in pairs(args) do
if tonumber(k) then
table.insert(link_table, 1, "[[" .. v .. "]]")
end
end
local link_text = "[[{{{1}}}]]" -- default value
if #link_table == 1 then
link_text = link_table[1]
elseif #link_table == 2 then
link_text = link_table[1] .. " and " .. link_table[2]
elseif #link_table > 2 then
link_text = link_table[1]
for i = 2, #link_table - 1, 1 do
link_text = link_text .. ", " .. link_table[i]
end
link_text = link_text .. ", and " .. link_table[#link_table]
end
local openingDiv = '<div class="similar ws-noexport" style="font-size:0.90em; line-height:1.2; margin:0.25em 2.00em 0.25em 2.00em; font-style:italic;">'
return openingDiv .. 'For ' .. page_text .. ', see ' .. link_text .. '.</div>'
end
return p