Modul:Cite
Vzhled
Cite může být použit k převedení cizojazyčných citačních šablon na české.
Použití
Do šablony, kterou chcete převést:
{{{{{|safesubst:}}}#invoke:Cite|cite| původní šablona | nová šablona }}
['původní šablona'] = { ['původní parametr'] = 'nový parametr', ['původní parametr'] = 'nový parametr', },
local p = {}
function p.cite(context)
-- Get parameters
local args = require('Modul:Arguments')
local parameters = args.getArgs(context:getParent())
-- Get convert table for template
local all_templates = mw.loadData('Modul:Cite/convert')
local template = args.getArgs(context)[1]
local convert_table = all_templates[template]
-- Convert parameters
local result = {}
for p, v in pairs(parameters) do
if convert_table[p] then
result[convert_table[p]] = v
else
result[p] = v
end
end
-- Fix parameter aliases (TODO: should be handled somewhat better)
if template == 'Cite web' or template == 'Cite book' then
if result['překladatelé-před'] and result['překladatelé-za'] then
result['překladatelé'] = result['překladatelé-před'] .. ' ' .. result['překladatelé-za']
result['překladatelé-před'] = nil
result['překladatelé-za'] = nil
elseif result['překladatelé-před'] then
result['překladatelé'] = result['překladatelé-před']
result['překladatelé-před'] = nil
elseif result['překladatelé-za'] then
result['překladatelé'] = result['překladatelé-za']
result['překladatelé-za'] = nil
end
if result['redaktoři-před'] and result['redaktoři-za'] then
result['redaktoři'] = result['redaktoři-před'] .. ' ' .. result['redaktoři-za']
result['redaktoři-před'] = nil
result['redaktoři-za'] = nil
elseif result['redaktoři-před'] then
result['redaktoři'] = result['redaktoři-před']
result['redaktoři-před'] = nil
elseif result['redaktoři-za'] then
result['redaktoři'] = result['redaktoři-za']
result['redaktoři-za'] = nil
end
if result['titul-před'] and result['titul-za'] then
result['titul'] = result['titul-před'] .. '. ' .. result['titul-za']
result['titul-před'] = nil
result['titul-za'] = nil
elseif result['titul-před'] then
result['titul'] = result['titul-před']
result['titul-před'] = nil
elseif result['titul-za'] then
result['titul'] = result['titul-za']
result['titul-za'] = nil
end
end
-- Prepare new template
local text='{{' .. convert_table[1] .. '\n'
for p, v in pairs(result) do
text = text .. ' | ' .. p .. ' = ' .. v .. '\n'
end
text = text .. '}}'
text = context:preprocess(text)
-- Print output
return text
end
return p