Difference between revisions of "Module:Demo"

From MINR.ORG WIKI
(keeps pre tag source looking like expected)
m (prevent arg from spilling into frame)
Line 3: Line 3:
 
function p.get(frame, arg)
 
function p.get(frame, arg)
 
frame = frame:getParent() or frame
 
frame = frame:getParent() or frame
return {
+
        local nowiki = frame.args[arg or 1]
source = mw.text.nowiki(mw.text.decode(mw.text.unstripNoWiki(frame.args[arg or 1] or ''))),
+
frame.args[arg or 1] = nil
output = frame:preprocess(mw.text.unstripNoWiki(frame.args[arg or 1] or '')),
+
local result = {
frame = frame
+
source = mw.text.nowiki(mw.text.decode(mw.text.unstripNoWiki(nowiki or ''))),
 +
output = frame:preprocess(mw.text.unstripNoWiki(nowiki or ''))
 
}
 
}
 +
frame.args[arg or 1] = nowiki
 +
result.frame = frame
 +
return result
 
end
 
end
  

Revision as of 21:34, 7 January 2015

Documentation for this module may be created at Module:Demo/doc

local p = {}

function p.get(frame, arg)
	frame = frame:getParent() or frame
        local nowiki = frame.args[arg or 1]
	frame.args[arg or 1] = nil
	local result = {
		source = mw.text.nowiki(mw.text.decode(mw.text.unstripNoWiki(nowiki or ''))),
		output = frame:preprocess(mw.text.unstripNoWiki(nowiki or ''))
	}
	frame.args[arg or 1] = nowiki
	result.frame = frame
	return result
end

function p.main(frame)
	local show = p.get(frame)
	local br = ''
	for k = 1, (show.frame.args.br or 1) do
		br = br .. '<br>'
	end
	if show[show.frame.args.result_arg] then
		return show[show.frame.args.result_arg]
	end
	return string.format('<pre%s>%s</pre>%s%s', show.frame.args.style and string.format(" style='%s'", show.frame.args.style) or '', show.source, br, show.output)
end

return p