Модуль:String/strip
Внешний вид
Для документации этого модуля может быть создана страница Модуль:String/strip/doc
local str = {}
function str.strip( frame )
local ret = ''
local s = frame.args[1] or '';
if s == '' then
return
end
local o = frame.args['o'] or '%';
local l = frame.args['l'] or '';
local t = frame.args['t'] or '';
local r = frame.args['r'] or '';
local m = tonumber(frame.args['m']) or 1000;
local n = frame.args['nodis'] or '0';
if l ~= '' then
ret = '<ul>'
o = '<li>' .. o .. r .. '</li>'
else
o = o .. r
end
local i = 0
local iterator = mw.ustring.gmatch(s, "[^/]+");
for w in iterator do
if t ~= '' then
local args = {}
args[1] = w
ret = ret .. mw.ustring.gsub( o, '%%', frame:expandTemplate{ title = t, args = args } )
else
if n == '1' then
w = w .. '|' .. mw.ustring.gsub( w, '%s?%(.*%)$', '' )
end
w = mw.ustring.gsub( o, '%%', w )
ret = ret .. w
end
i = i + 1
if i == m then
break
end
end
if l ~= '' then
ret = mw.ustring.gsub( ret, r .. '</li>$', '</li>' )
ret = ret .. '</ul>'
else
ret = mw.ustring.gsub( ret, r .. '$', '' )
end
return ret
end
function str.lang( frame )
local s = frame.args[1] or '';
if s == '' then
return
end
local listLang = require('Module:Languages').list
local i = 1
local args = {}
local iterator = mw.ustring.gmatch(s, "[^/]+");
for w in iterator do
args[i] = w
i = i + 1
end
if i == 2 then
return
end
frame.args = args
return listLang(frame)
end
return str