Модуль:Анимация: различия между версиями

Материал из Minecraft Wiki
Перейти к: навигация, поиск
 
Строка 24: Строка 24:
 
return '<span class="animated">' .. table.concat( images ) .. '</span>'
 
return '<span class="animated">' .. table.concat( images ) .. '</span>'
 
end
 
end
  +
  +
function p.text( f )
  +
local args = f
  +
if f == mw.getCurrentFrame() then
  +
args = f:getParent().args
  +
end
  +
local texts = args[1]
  +
local result = {}
  +
for text in mw.text.gsplit( texts, '%s*;%s*' ) do
  +
if text == '' then
  +
table.insert( result, '<span><br></span>' )
  +
else
  +
table.insert( result, '<span>' .. text .. '</span>' )
  +
table.insert( result, '<span>' .. text .. '</span>' )
  +
end
  +
end
  +
result[1] = result[1]:gsub( '^<span>', '<span class="animated">' )
  +
  +
return '<span class="animated">' .. table.concat( result ) .. '</span>'
  +
end
  +
 
return p
 
return p

Версия 08:35, 31 января 2017

Этот модуль реализует шаблоны {{Анимация}} и {{АнимацияСтроки}}. Он (модуль) при включении в шаблонах принимает не непосредственные аргументы, а аргументы вызвавшей страницы, поэтому вызывать этот модуль в шаблонах напрямую не рекомендуется.

local p = {}
function p.animate( f )
	local args = f
	if f == mw.getCurrentFrame() then
		args = f:getParent().args
	end
	local files = args[1] or ''
	local size = args[2] or ''
	
	if size ~= '' then
		size = '|' .. size
	end
	
	local images = {}
	for image in mw.text.gsplit( files, '%s*;%s*' ) do
		if image == '' then
			table.insert( images, '<span><br></span>' )
		else
			table.insert( images, '<span>[[Файл:' .. image .. size .. ']]</span>' )
		end
	end
	images[1] = images[1]:gsub( '^<span>', '<span class="active">' )
	
	return '<span class="animated">' .. table.concat( images ) .. '</span>'
end

function p.text( f )
	local args = f
		if f == mw.getCurrentFrame() then
			args = f:getParent().args
		end
		local texts = args[1]
		local result = {}
		for text in mw.text.gsplit( texts, '%s*;%s*' ) do
			if text == '' then
				table.insert( result, '<span><br></span>' )
		else
		table.insert( result, '<span>' .. text .. '</span>' )
		table.insert( result, '<span>' .. text .. '</span>' )
		end
		end
	result[1] = result[1]:gsub( '^<span>', '<span class="animated">' )
		
	return '<span class="animated">' .. table.concat( result ) .. '</span>'
end

return p