Module:Expand wikitext

From MOASSpedia
Jump to navigation Jump to search


Interprets the input as wikitext using the frame:preprocess function. Any arguments passed to {{Expand wikitext}} are available in the preprocessed code, letting this be used as a rudimentary way of using variables.

If the entire input is in a nowiki tag, or if the optional parameter |unstrip=yes is specified, first extracts the contents of nowiki tags before preprocessing. This feature does not work in the mobile app, visual editor, or Special:ExpandTemplates due to Phab:T203293.

Example

  • {{#invoke:expand wikitext|main|{{Make code|<<As of!2015!02>>}}}} → As of February 2015
  • {{#invoke:expand wikitext|main|<nowiki>{{Episode list/sublist | 1 = One Piece (season 15) | EpisodeNumber = {{{ep}}} | Title = An Explosive Situation! Luffy vs. Fake Luffy! | OriginalAirDate = {{Date|2011-10-02 +{{#expr:({{{ep}}})-517}} weeks }} }} </nowiki>|ep=518}} → 518"An Explosive Situation! Luffy vs. Fake Luffy!"9 October 2011
  • {{#invoke:expand wikitext|main|<nowiki>{{2x|x}}-</nowiki>}} → {{2x|x}}-
  • {{#invoke:expand wikitext|main|<nowiki>{{2x|x}} -</nowiki>}} → xx -
  • {{#invoke:expand wikitext|main|<nowiki><u>u</u><ref>text</ref></nowiki>}} → <u>u</u><ref>text</ref>

local p = {}
local yesno = require("Module:Yesno")
function p.main(frame)
	local pframe = frame:getParent()
	local code = frame.args[1]
	if mw.text.trim(mw.text.killMarkers(code)) == "" or yesno(frame.args.unstrip) then
		code = mw.text.unstripNoWiki(code);
	end
	return pframe:preprocess(code)
end

return p