Модуль:Песочница/Jack who built the house/xpnd
Документация
local p = {}
-- используется для того, чтобы можно было удалять элементы из таблицы
local function copy(other)
local res = {}
for k,v in pairs(other) do
res[k] = v
end
return res
end
-- вызов шаблона, при ошибке возвращает пустую строку
local function expand(frame, tname, targs)
local success, result = pcall(
frame.expandTemplate,
frame,
{title = tname, args = targs}
)
if success then
return result
else
return ''
end
end
function p.main(frame)
local getArgs = require('Модуль:Arguments').getArgs
local args = copy(getArgs(frame, {trim = false, removeBlanks = false})) --copy(frame.args)
local tname = args[1]
table.remove(args, 1)
targs = args
subframe = frame:newChild({title = 'subframe', args = {}})
result1 = expand(subframe, 'tc', {'ttttt'}):gsub('{{', '{{subst:')
result = subframe:preprocess(result1)
--result = subframe:preprocess('{{tc|j}}')
--result = mw.text.unstripNoWiki(subframe:preprocess(expand(subframe, tname, targs)))
--result1 = subframe:preprocess(expand(subframe, 'tc', {'ttttt'}))
--result = mw.text.unstripNoWiki(subframe:extensionTag{ name = 'pre', content = result, args = '' })
--result = mw.text.unstrip(frame:extensionTag{ name = 'pre', content = 'sss', args = '' })
--result = mw.text.unstrip(frame:extensionTag( 'ref', 'some text', { name = 'foo', group = 'bar' } ))
--[[result = subframe:callParserFunction{ name = '#tag:ref', args = {
'{{=}}' .. result1, 'some other text'
} }]]
--result = mw.text.unstripNoWiki(frame:preprocess('{{tc|ttttt}}'))
--result = '{{tc|ttttt}}'
--result = result:sub(1, 7) .. 'fff' .. result:sub(8)
return result1
end
return p