Модуль:Звук
Внешний вид
Для документации этого модуля может быть создана страница Модуль:Звук/doc
-- <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("Модуль:ProcessArgs").merge(true)
return p.makeSounds(args)
end
return p
-- </nowiki>