Модуль:Tools
Материал из Указатель частей и соединений РККА 1941-1945
Для документации этого модуля может быть создана страница Модуль:Tools/doc
local tools = {} local global = mw.ext.luaglobal ---------------------------------------------------------------------- |checkargs| function tools.checkargs( args, names, numbers ) local res = {} local hasArg for k, v in pairs( args ) do hasArg = true v = mw.text.trim(v) local dsc if numbers and type( k ) == 'number' then dsc = numbers else dsc = names[k] end if dsc == nil then -- return nil, k error( 'Недопустимый аргумент «' .. k .. '»' ) elseif v == '' then if dsc ~= true then res[k] = dsc end else res[k] = v end end for k, v in pairs( names ) do if not res[k] then if v ~= true then res[k] = v end end end return res, hasArg end function tools.Log( frame ) local args = tools.checkargs( frame:getParent().args, {}, true ) return tools.log( args ) end function tools.dmy( str ) if #str == 10 then return string.sub( str, 9, 10 ) .. '.' .. string.sub( str, 6, 7 ) .. '.' .. string.sub( str, 1, 4 ) elseif #str == 7 then return string.sub( str, 6, 7 ) .. '.' .. string.sub( str, 1, 4 ) else return str end end function tools.ymd( str ) return string.sub( str, 7, 10 ) .. '-' .. string.sub( str, 4, 5 ) .. '-' .. string.sub( str, 1, 2 ) end function tools.log( args ) for _, v in ipairs( args ) do global.add( 'szrLog', v ) end end function tools.PrintLog( frame ) local log = global.get( 'szrLog' ) global.set( 'szrLog', nil ) return '<br>LOG (((((( <br>' .. table.concat( log, '<br>' ) .. '<br>LOG )))))) <br>' end return tools