Module:License
Þessi síða var afrituð frá ensku Wikiheimild. Reynt hefur verið að aðlaga hana að íslensku Wikiheimildum með sem fæstum mögulegum breytingum. Það er gert til að forðast fjölverknað og spara tíma en einnig svo hægt sé að taka við uppfærslum og nýjum eiginleikum með sem minnstri fyrirhöfn. Leiðbeiningar um notkun hennar má finna á enska verkefninu. Einungis það sem lesandinn sér skal íslenskað. Ef frekari breytingar eru nauðsynlegar til að aðlaga hana að íslenska verkefninu skulu þær útskýrðar hér fyrir neðan.
require('strict')
local p = {} --p stands for package
local getArgs = require('Module:Arguments').getArgs
function p._license(args)
local frame = mw.getCurrentFrame()
-- Parameters
local text = frame:preprocess(args.text or '{{{text}}}')
local image = args.image
local image_r = args.image_r or args['image-r']
local image_size = args.image_size or args['image-size'] or 'x48px'
local image_r_size = args.image_r_size or args['image-r-size'] or image_size
local warning = args.warning
local category = args.category
local category2 = args.category2
if category == '' then
category = nil
end
if category2 == '' then
category2 = nil
end
-- licenseContainer is the class that styles depend on
local class_param = 'class="' .. 'licenseContainer licenseBanner dynlayout-exempt ' .. (args.class or '') .. '"'
local id_param = ''
if args.id then
id_param = 'id="' .. args.id .. '"'
end
-- opening div
local openDiv = '<div>'
-- closing div
local closeDiv = '</div>'
-- license banner
local leftField = '<span class="noimageLeft"></span>'
if image then
leftField = '<span class="imageLeft">[[Mynd:' .. image .. '|' .. image_size .. '|alt=|link=]]</span>'
end
leftField = table.concat({openDiv, leftField, closeDiv}, '\n')
local centerField = table.concat({openDiv, openDiv, text, closeDiv}, '\n')
if warning then
centerField = centerField .. '\n' .. table.concat({
openDiv,
openDiv,
'[[Mynd:OOjs UI icon alert destructive black-darkred.svg|35px]]',
closeDiv,
openDiv,
warning,
closeDiv,
closeDiv
}, '\n')
end
centerField = centerField .. '\n' .. closeDiv
local rightField = '<span class="noimageRight></span>'
if image_r then
rightField = '<span class="imageRight">[[Mynd:' .. image_r .. '|' .. image_r_size .. '|alt=|link=]]</span>'
end
rightField = table.concat({openDiv, rightField, closeDiv}, '\n')
local licenseBanner = table.concat({
openDiv,
openDiv,
openDiv,
leftField,
centerField,
rightField,
closeDiv,
closeDiv,
closeDiv
})
-- Commons auto-detection
local commonsAutoDetection = table.concat({
'<div class="licensetpl">\n',
'<span class="licensetpl_short">Public domain</span>',
'<span class="licensetpl_long">Public domain</span>',
'<span class="licensetpl_link_req">false</span>',
'<span class="licensetpl_attr_req">false</span>',
'\n</div>'
})
-- Categorization
local namespace = mw.title.getCurrentTitle().nsText
local noCatNamespaces = {
['Help'] = true,
['Help talk'] = true,
['Template'] = true,
['Template talk'] = true,
['Wikisource'] = true,
['Wikisource talk'] = true,
['Module'] = true,
['Module talk'] = true,
['Category'] = true,
['Category talk'] = true
}
local categoryContent = ''
if not noCatNamespaces[namespace] then
if namespace == 'Author' or namespace == 'Author talk' then
if category then
category = 'Author-' .. category
end
if category2 then
category2 = 'Author-' .. category2
end
end
if category then
category = '[[Flokkur:' .. category .. ']]'
end
if category2 then
category2 = '[[Flokkur:' .. category2 .. ']]'
end
categoryContent = (category or '') .. (category2 or '')
end
local templateStyles = frame:preprocess('<templatestyles src="Snið:License/styles.css" />')
return templateStyles .. table.concat({
'<div ' .. class_param .. ' ' .. id_param .. '>',
licenseBanner,
commonsAutoDetection,
categoryContent .. closeDiv
}, '\n')
end
function p.license(frame)
return p._license(getArgs(frame))
end
return p