Модуль:GeoInfobox

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Документация
local p = {};

function p.renderLine( frame )
	local args = frame:getParent().args;
	frame.args = frame:getParent().args;

	local text = args[1] or '';
	local label = args[2] or ''; -- одиночная метка
	local label2 = args[3] or ''; -- множественная метка
	local wikify = args[4] or '';
	local after = args[5] or '';
	
	if text == '-' then 
		return ''; 
	end
	
    if text ~= '' then
    	if label2 ~= '' then
    		if mw.ustring.match( text, "[^/]+/[^/]+") then
    			label = label2
    		end
    		if wikify == '1' then 
				frame.args['o'] = '[[%]]'
				frame.args['nodis'] = '1'
			end
	    	local strip = require('Module:String/strip').strip
	    	frame.args[1] = text
	    	text = strip(frame)
	    else
    	    if after ~= '' then 
    	    	if tonumber(text) then
    	    	   	local lang = mw.language.getContentLanguage()
    	    	   	text = lang:formatNum( tonumber( text ) )
    	    	end
	    	    text = text .. ' ' .. after 
    	    end
	    	if wikify == '1' then
	    		text = '[[' .. text .. '|' .. mw.ustring.gsub(text, '%s?%(.*%)$', '' ) .. ']]'
			end
		end
	else
		if args[ 'd' ] and args[ 'd' ] ~= '' then
			text = frame:expandTemplate{ title = 'Wikidata', args = {
				args[ 'd' ],
				text,
				separator = args['r'] or ''
			} };
		
		end
	end	 
	
	if text ~= '' then 
		return '<tr><th>' .. label .. '</th><td>' .. text .. '</td></tr>';
	end
    
	return '';
end

return p;