Minecraft Wiki
Регистрация
(Новая страница: «-- <nowiki> --- Реализует Шаблон:Звук. local p = {} local h = {} local html = require("Модуль:HTMLUtils") --- Вставляет зву...»)
 
Нет описания правки
Строка 35: Строка 35:
 
 
 
local sounds = { h.makeSound(pargs[2], sound_title, fallback_first) }
 
local sounds = { h.makeSound(pargs[2], sound_title, fallback_first) }
for sound_no = 3, #pargs do
+
for sound_no = 3, table.maxn(pargs) do
  +
if not pargs[sound_no] then
  +
break -- неуказанное поведение #pargs, когда pargs[1] равен nil
  +
end
  +
 
sounds[sound_no - 1] = h.makeSound(pargs[sound_no], "", fallback_remaining)
 
sounds[sound_no - 1] = h.makeSound(pargs[sound_no], "", fallback_remaining)
 
end
 
end

Версия от 14:52, 30 июня 2020

[создать | история | обновить]Документация
У этого модуля нет документации. Если вы знаете, как использовать этот модуль, пожалуйста, добавьте соответствующую информацию.
-- <nowiki>
--- Реализует Шаблон:Звук.
local p = {}
local h = {}

local html = require("Модуль:HTMLUtils")

--- Вставляет звук.
--
--  • строка file: название звукового файла.
--  • строка title: отображаемое название файла.
--  • булево значение fallback: скрывать ли резервный плеер.
--
--  Возвращает строку с элементом звука.
function h.makeSound(file, title, fallback)
	local soundWrap = html.make_node("span .sound")
		:sel_node("span .sound-title", title)

	local fileText = ("[[Файл:%s|class=sound-audio]]"):format(file)
	local fileNode = html.make_node("span", fileText)
	if not fallback then
		fileNode:cssText("display: none")
	end
	
	soundWrap:node(fileNode)
	
	return tostring(soundWrap)
end

--- Основная функция для создания звуков.
function p.makeSounds(pargs)
	local fallback_first = not pargs.nofallback
	local fallback_remaining = pargs.fallback_all
	local sound_title = pargs[1] or ''
	
	local sounds = { h.makeSound(pargs[2], sound_title, fallback_first) }
	for sound_no = 3, table.maxn(pargs) do
		if not pargs[sound_no] then
			break -- неуказанное поведение #pargs, когда pargs[1] равен nil
		end
		
		sounds[sound_no - 1] = h.makeSound(pargs[sound_no], "", fallback_remaining)
	end
	
	return table.concat(sounds)
end

--- Точка входа для шаблона. См. документацию для сведений о вызове.
function p.sound(f)
	local args = require("Module:ProcessArgs").merge(true)
		
	return p.makeSounds(args)
end

return p
-- </nowiki>