Модуль:Песочница/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