Přeskočit na obsah

Modul:Cite

Tuto stránku mohou editovat jen zavedení uživatelé a správci.
Z Wikipedie, otevřené encyklopedie

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 }}

Do Modul:Cite/convert:

	['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 new_template = args.getArgs(context)[2]
	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

	-- Combine partial parameters
	if convert_table['~části'] then
		for _, parts in pairs(convert_table['~části']) do
			part = parts[1]
			separator = parts[2]
			if result[part .. '-před'] and result[part .. '-za'] then
				result[part] = result[part .. '-před'] .. separator .. result[part .. '-za']
				result[part .. '-před'] = nil
				result[part .. '-za'] = nil
			elseif result[part .. '-před'] then
				result[part] = result[part .. '-před']
				result[part .. '-před'] = nil
			elseif result[part .. '-za'] then
				result[part] = result[part .. '-za']
				result[part .. '-za'] = nil
			end
		end
	end

	-- Extract default language
	if not result['jazyk'] then
		result['jazyk'] = template:sub(1, 2)
	end

	-- Prepare new template
	local text='{{' .. new_template .. '\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