Модуль:Видеоролик
Внешний вид
Для документации этого модуля может быть создана страница Модуль:Видеоролик/doc
local p = {}
local i18n = {
trackCategory = '[[Категория:Страницы с видеороликами%s]]',
services = { -- если нужно встроить видео с нового сервиса, добавьте его сюда
youtube = ' YouTube',
vimeo = ' Vimeo',
bilibili = ' Bilibili',
}
}
function p.genVideo( provider, id, width, height, align, caption, urlArgs )
if not id then
return nil
end
provider = provider and provider:lower() or 'youtube'
local dimensions = tonumber( width ) or 425
height = tonumber( height )
if height then
dimensions = dimensions .. 'x' .. height
end
if urlArgs then
return mw.getCurrentFrame():callParserFunction{ name = '#ev', args = { provider, id = id, dimensions = dimensions, alignment = align, description = caption, urlArgs = urlArgs } }
else
return mw.getCurrentFrame():extensionTag{ name = provider, content = id, args = { dimensions = dimensions, alignment = align, description = caption } }
end
end
function p.main( f )
local args = f
if f == mw.getCurrentFrame() then
args = require( 'Модуль:ProcessArgs' ).merge( true )
end
local result = p.genVideo( args['сервис'], args[ 1 ], args[ 2 ], args[ 3 ], args['выравн'], args['описание'], args['адрес'] )
if result then
result = mw.html.create( 'div' ):wikitext( result )
if not args['некат'] then
result = tostring( result ) .. i18n.trackCategory:format( i18n.services[ args['сервис'] and args['сервис']:lower() or '' ] or '' )
end
end
return result
end
return p