-- This implements Template:Tlglocal getArgs = require('Module:Arguments').getArgslocal p =
-- Is a string non-empty?local function _ne(s) return s ~= nil and s ~= ""end
local nw = mw.text.nowiki
local function addTemplate(s) local i, _ = s:find(':', 1, true) if i
or mw.site.namespaces[ns] then return s else return 'Template:' .. s endend
local function trimTemplate(s) local needle = 'template:' if s:sub(1, needle:len):lower
local function linkTitle(args) if _ne(args.nolink) then return args['1'] end local titleObj local titlePart = '' .. textPart .. '' if _ne(args.braceinside) then titlePart = nw('') end return titlePartend
function p.main(frame) local args = getArgs(frame,) return p._main(args)end
function p._main(args) local bold = _ne(args.bold) or _ne(args.boldlink) or _ne(args.boldname) local italic = _ne(args.italic) or _ne(args.italics) local dontBrace = _ne(args.brace) or _ne(args.braceinside) local code = _ne(args.code) or _ne(args.tt) local show_result = _ne(args._show_result) local expand = _ne(args._expand) -- Build the link part local titlePart = linkTitle(args) if bold then titlePart = "" .. titlePart .. "" end if _ne(args.nowrapname) then titlePart = '
' .. titlePart .. '' end -- Build the arguments local textPart = "" local textPartBuffer = "|" local codeArguments = local codeArgumentsString = "" local i = 2 local j = 1 while args[i] do local val = args[i] if val ~= "" then if _ne(args.nowiki) then -- Unstrip nowiki tags first because calling nw on something that already contains nowiki tags will -- mangle the nowiki strip marker and result in literal UNIQ...QINU showing up val = nw(mw.text.unstripNoWiki(val)) end local k, v = string.match(val, "(.*)=(.*)") if not k then codeArguments[j] = val j = j + 1 else codeArguments[k] = v end codeArgumentsString = codeArgumentsString .. textPartBuffer .. val if italic then val = '' .. val .. '' end textPart = textPart .. textPartBuffer .. val end i = i + 1 end-- final wrap local ret = titlePart .. textPart if not dontBrace then ret = nw('') end if _ne(args.a) then ret = nw('*') .. ' ' .. ret end if _ne(args.kbd) then ret = '' .. ret .. '' end if code then ret = '' .. ret .. '
' elseif _ne(args.plaincode) then ret = '' .. ret .. '
' end if _ne(args.nowrap) then ret = '
' .. mw.text.encode(mw.dumpObject(args)) .. '' end
if show_result then local result = mw.getCurrentFrame:expandTemplate ret = ret .. " → " .. result end
if expand then local query = mw.text.encode('') local url = mw.uri.fullUrl('special:ExpandTemplates', 'wpInput=' .. query) mw.log ret = ret .. " [" .. tostring(url) .. "]" end
return retend
return p