Модуль:String/split
Для документации этого модуля может быть создана страница Модуль:String/split/doc
local str = {}
function str.split( 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 red = '[[Категория:Знание.Вики:Страницы с ошибками в национальном названии]]<span style="color: red;">В параметре «Национальное название» нарушен синтаксис: [[:Категория:Знание.Вики:Страницы с ошибками в национальном названии|его верное заполнение]]: «код языка/название/код второго языка/название». Пожалуйста, исправьте данную ошибку!</span>'
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 == 0 or mw.ustring.match( s, '[\]\[\<\>\127]' ) then
return red
end
frame.args = args
return listLang(frame)
end
function str.reflang( frame )
local s = frame.args[1] or '';
local v = frame.args[2] or false;
if s == '' then
return
end
local args = {}
local iterator = mw.ustring.gmatch(s, "[^/]+");
for w in iterator do
table.insert(args, w)
end
if #args == 0 then
return
end
if v then
args['в'] = 'в'
end
local listRef = require('Module:Languages').list_ref
frame.args = args
return listRef(frame)
end
return str