Module:Social links
Appearance
Usage
[edit]This module is a sub-component of Template:Connect group. For more information, see Template:Connect group/doc.
local p = {}
function get_link(frame, label, link, file)
return frame:expandTemplate{
title = 'Link with icon',
args = { label = label, link = link, file = file }
} .. '\n\n'
end
function p.render(frame)
-- "Humanized" names: basically template parameter names but with capital
-- letters and/or spaces as needed. By default the module takes a parameter
-- name, makes the first letter uppercase, and calls it a day. For names
-- that require further transformations, define them below.
humanized_name_map = {
bitbucket = 'BitBucket',
github = 'GitHub',
googleplus = 'Google Plus',
linkedin = 'LinkedIn',
stumbleupon = 'StumbleUpon',
tencentweibo = 'Tencent Weibo',
vk = 'VK',
wechat = 'WeChat',
whatsapp = 'WhatsApp',
youtube = 'YouTube'
}
content = ''
for key, value in pairs(frame:getParent().args) do
-- {{Link with icon|label=Facebook|link=https://facebook.com|file=Facebook font awesome.svg}}
if key ~= 'icon' and key ~= 'introduction' then
if humanized_name_map[key] ~= nil then
-- Custom-defined transformations b/w parameter name and humanized name
humanized_name = humanized_name_map[key]
else
-- Take lowercase name and make the first letter capital.
-- facebook --> Facebook
humanized_name = key:gsub("^%l", string.upper)
end
content = content .. get_link(frame, humanized_name, value, humanized_name .. ' font awesome.svg')
end
end
return content
end
return p