Изменения
параметры с вики-разметкой
local function copy(other)
local function copy(other)
local res = {}
local res = {}
for k,v in pairs(other) do
for k,v in pairs(other) do
res[k] = v
res[k] = v
end
end
end
end
--return frame:expandTemplate({title = tname, args = args})
--return frame:expandTemplate({title = tname, args = args})
end
end
--предотвращает обработку вики-текста в отображении образца
local function nowiki(str)
local res = str
str = string.gsub(str,'%[','[')
str = string.gsub(str,'<','<')
str = string.gsub(str,'{','{')
return str
end
if not getArgs then
if not getArgs then
getArgs = require('Module:Arguments').getArgs
getArgs = require('Module:Arguments').getArgs
end
end
local args = copy(getArgs(frame)) --copy(frame.args)
local args = copy(getArgs(frame)) --copy(frame.args)
local tag = args._tag or 'code'
local tag = args._tag or 'code'
local sep = args._sep or '→' -- по умолчанию "→"
local sep = args._sep or '→' -- по умолчанию ">"
local nwt = mw.html.create(tag):tag(tag) --"no-wiki tag", внутри него шаблон не вызывается
local nwt = mw.html.create(tag):tag(tag) --"no-wiki tag", внутри него шаблон не вызывается
local content = '{{' --для накопления содержимого тэга
local content = '{{' --для накопления содержимого тэга
local tname = args._template or args[1]
local tname = args._template or args[1]
if args._template == nil then --имя вызываемого шаблона в неименованном первом параметре, больше его обрабатывать не надо
if args._template == nil then --имя вызываемого шаблона в неименованном первом параметре, больше его обрабатывать не надо
table.remove(args,1)
table.remove(args,1)
end
end
content = content .. tname
content = content .. tname
local targs = {}
local targs = {}
for k, v in pairs(args) do
for k, v in pairs(args) do
if type(k) == 'number' then --неименованные параметры
if type(k) == 'number' then --неименованные параметры
targs[k] = v
targs[k] = v
content = content .. '|' .. v
content = content .. '|' .. nowiki(v)
elseif not k:find('^_') then --именованные параметры, исключая модификаторы внешнего вида
elseif not k:find('^_') then --именованные параметры, исключая модификаторы внешнего вида
targs[k] = v
targs[k] = v
content = content .. '|' .. k .. '=' .. v
content = content .. '|' .. k .. '=' .. nowiki(v)
end
end
end
end